Skip to content

Commit 438cfb9

Browse files
Minor polish
Minor editing of comments, indentation, a duplicated call. No bugs fixed, just cleaning up the codebase
1 parent fc425d6 commit 438cfb9

7 files changed

Lines changed: 75 additions & 75 deletions

File tree

controllers/main_controller.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,9 @@ def parse_dzn_file(self, path: str) -> Tuple[str, str, str]:
8686
"""
8787
logger.debug(f"Parsing DZN file: {path}")
8888
try:
89-
cols, rows, controls = scan_dzn(path)
90-
self.state.num_cols = cols
89+
rows, cols, controls = scan_dzn(path)
9190
self.state.num_rows = rows
91+
self.state.num_cols = cols
9292
self.state.control_names = controls
9393
self.state.dzn_file_path = path
9494
return (cols, rows, controls)

core/csv_validator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,4 +114,4 @@ def check_csv_consistency(
114114
csv_rows=max_row,
115115
csv_cols=max_col,
116116
warnings=warnings
117-
)
117+
)

core/dzn_parser.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ def scan_dzn(file_path: str) -> Tuple[str, str, str]:
7070
if rows.isnumeric() and cols.isnumeric():
7171
controls = str(__parse_control_string__(ctrs))
7272
logger.info(f"DZN parsed: {cols}x{rows} plate, controls: {controls}")
73-
return cols, rows, controls
73+
return rows, cols, controls
7474
else:
7575
logger.error(f"Invalid DZN file - non-numeric dimensions: rows={rows}, cols={cols}")
7676
raise ValueError('Corrupt dzn file - invalid numeric values')

core/io_utils.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ def convert_to_pharmbio_format(layout_text_array: List[str]) -> List[str]:
176176
for i in range(rows):
177177
for j in range(1,cols):
178178
if drugs_matrix[i][j] != '':
179+
# VOLuL column always empty as we do not store VOLuL column in Plater format
179180
plater_layout_text_array.append(''.join(['plate_1',
180181
',',
181182
drugs_matrix[i][0] + "{:02d}".format(j),

models/dto.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535

3636
@dataclass(frozen=True)
3737
class AppConfig:
38-
"""Contains all all configuration fields (paths) the app relies on
38+
"""Contains all configuration fields (paths) the app relies on
3939
"""
4040
minizinc_path: str
4141
plaid_path: str

views/dzn_view.py

Lines changed: 69 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -298,82 +298,82 @@ def _on_replicates_same_changed(self) -> None:
298298
self.flag_replicates_on_different_plates.set(False)
299299

300300
def _on_generate(self) -> None:
301-
"""Handle generate button click."""
302-
logger.info("Generate DZN button clicked")
303-
304-
# Collect form data
305-
form_data = DznFormData(
306-
num_rows=self.num_rows.get(),
307-
num_cols=self.num_cols.get(),
308-
inner_empty_edge=self.inner_empty_edge.get(),
309-
size_empty_edge=self.size_empty_edge.get(),
310-
size_corner_empty_wells=self.size_corner_empty_wells.get(),
311-
horizontal_cell_lines=self.horizontal_cell_lines.get(),
312-
vertical_cell_lines=self.vertical_cell_lines.get(),
313-
flag_allow_empty_wells=self.flag_allow_empty_wells.get(),
314-
flag_concentrations_on_different_rows=self.flag_concentrations_on_different_rows.get(),
315-
flag_concentrations_on_different_columns=self.flag_concentrations_on_different_columns.get(),
316-
flag_replicates_on_different_plates=self.flag_replicates_on_different_plates.get(),
317-
flag_replicates_on_same_plate=self.flag_replicates_on_same_plate.get(),
318-
compounds_dict=self.drugs.get(),
319-
controls_dict=self.controls.get()
320-
)
321-
self.button_generate.config(state=tk.DISABLED, text='Generating...')
322-
self.window.update_idletasks()
301+
"""Handle generate button click."""
302+
logger.info("Generate DZN button clicked")
323303

324-
try:
325-
# Step 1: UI-level validation
326-
errors = self.controller.validate_form_data(form_data)
327-
if errors:
328-
logger.warning(f"DZN validation failed: {len(errors)} errors")
329-
error_message = '\n'.join([f"{i+1}. {err}" for i, err in enumerate(errors)])
330-
messagebox.showerror("Input Validation Error", error_message)
331-
return
304+
# Collect form data
305+
form_data = DznFormData(
306+
num_rows=self.num_rows.get(),
307+
num_cols=self.num_cols.get(),
308+
inner_empty_edge=self.inner_empty_edge.get(),
309+
size_empty_edge=self.size_empty_edge.get(),
310+
size_corner_empty_wells=self.size_corner_empty_wells.get(),
311+
horizontal_cell_lines=self.horizontal_cell_lines.get(),
312+
vertical_cell_lines=self.vertical_cell_lines.get(),
313+
flag_allow_empty_wells=self.flag_allow_empty_wells.get(),
314+
flag_concentrations_on_different_rows=self.flag_concentrations_on_different_rows.get(),
315+
flag_concentrations_on_different_columns=self.flag_concentrations_on_different_columns.get(),
316+
flag_replicates_on_different_plates=self.flag_replicates_on_different_plates.get(),
317+
flag_replicates_on_same_plate=self.flag_replicates_on_same_plate.get(),
318+
compounds_dict=self.drugs.get(),
319+
controls_dict=self.controls.get()
320+
)
321+
self.button_generate.config(state=tk.DISABLED, text='Generating...')
322+
self.window.update_idletasks()
332323

333-
# Step 2: Model compatibility validation
334-
verdict = self.controller.validate_model_compat(form_data)
324+
try:
325+
# Step 1: UI-level validation
326+
errors = self.controller.validate_form_data(form_data)
327+
if errors:
328+
logger.warning(f"DZN validation failed: {len(errors)} errors")
329+
error_message = '\n'.join([f"{i+1}. {err}" for i, err in enumerate(errors)])
330+
messagebox.showerror("Input Validation Error", error_message)
331+
return
335332

336-
if verdict.both_blocked():
337-
msg = _format_verdict_message(verdict)
338-
messagebox.showerror("Incompatible with All Models", msg)
339-
return
333+
# Step 2: Model compatibility validation
334+
verdict = self.controller.validate_model_compat(form_data)
340335

341-
if verdict.any_issues():
342-
msg = _format_verdict_message(verdict)
343-
proceed = messagebox.askokcancel("Model Compatibility Warnings", msg +
344-
"\n\nProceed with file generation?")
345-
if not proceed:
346-
return
336+
if verdict.both_blocked():
337+
msg = _format_verdict_message(verdict)
338+
messagebox.showerror("Incompatible with All Models", msg)
339+
return
347340

348-
# Step 3: Generate and save
349-
dzn_content, control_names = self.controller.generate_dzn_content(form_data, verdict)
350-
logger.info(f"DZN content generated: {len(dzn_content)} characters")
351-
352-
# Save via controller
353-
file_path = self.controller.save_dzn_file(dzn_content)
341+
if verdict.any_issues():
342+
msg = _format_verdict_message(verdict)
343+
proceed = messagebox.askokcancel("Model Compatibility Warnings", msg +
344+
"\n\nProceed with file generation?")
345+
if not proceed:
346+
return
347+
348+
# Step 3: Generate and save
349+
dzn_content, control_names = self.controller.generate_dzn_content(form_data, verdict)
350+
logger.info(f"DZN content generated: {len(dzn_content)} characters")
351+
352+
# Save via controller
353+
file_path = self.controller.save_dzn_file(dzn_content)
354+
355+
if file_path:
356+
logger.info(f"DZN saved successfully: {file_path}")
354357

355-
if file_path:
356-
logger.info(f"DZN saved successfully: {file_path}")
357-
358-
# Notify callback
359-
self.on_generation_complete(
360-
file_path,
361-
form_data.num_rows,
362-
form_data.num_cols,
363-
str(control_names)
364-
)
365-
366-
# Hide window
367-
self.hide()
368-
self.parent.focus_force()
369-
else:
370-
logger.info("DZN save cancelled by user")
358+
# Notify callback
359+
self.on_generation_complete(
360+
file_path,
361+
form_data.num_rows,
362+
form_data.num_cols,
363+
str(control_names)
364+
)
371365

372-
except Exception as e:
373-
logger.error(f"DZN generation failed: {e}")
374-
messagebox.showerror("Error", f"DZN generation failed:\n{str(e)}")
375-
finally:
376-
self.button_generate.config(state=tk.NORMAL, text='Generate *.dzn file')
366+
# Hide window
367+
self.hide()
368+
self.parent.focus_force()
369+
else:
370+
logger.info("DZN save cancelled by user")
371+
372+
except Exception as e:
373+
logger.error(f"DZN generation failed: {e}")
374+
messagebox.showerror("Error", f"DZN generation failed:\n{str(e)}")
375+
finally:
376+
self.button_generate.config(state=tk.NORMAL, text='Generate *.dzn file')
377377

378378
def _on_close(self) -> None:
379379
"""Handle window close button."""

views/main_view.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -601,7 +601,6 @@ def _load_csv_into_ui(self, path: str) -> None:
601601
warning_text = "\n\n".join(diagnostics.warnings)
602602
messagebox.showwarning("CSV Consistency Warning", warning_text)
603603

604-
self.controller.load_csv_file(path)
605604
path_show(path, self.label_csv_loaded)
606605
self.csv_file_path.set(path)
607606
self.button_visualize.config(state=tk.NORMAL)

0 commit comments

Comments
 (0)