Skip to content

Commit 989f1d3

Browse files
committed
- Fix not capturing error from visualization lint
- enable linting of visualization table Close #134
1 parent 42ae98c commit 989f1d3

2 files changed

Lines changed: 22 additions & 5 deletions

File tree

src/petab_gui/controllers/mother_controller.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -836,9 +836,10 @@ def new_file(self):
836836
def check_model(self):
837837
"""Check the consistency of the model. And log the results."""
838838
capture_handler = CaptureLogHandler()
839-
logger = logging.getLogger("petab.v1.lint") # Target the specific
840-
# logger
841-
logger.addHandler(capture_handler)
839+
logger_lint = logging.getLogger("petab.v1.lint")
840+
logger_vis = logging.getLogger("petab.v1.visualize.lint")
841+
logger_lint.addHandler(capture_handler)
842+
logger_vis.addHandler(capture_handler)
842843

843844
try:
844845
# Run the consistency check
@@ -867,7 +868,8 @@ def check_model(self):
867868
self.logger.log_message(msg, color="red")
868869
finally:
869870
# Always remove the capture handler
870-
logger.removeHandler(capture_handler)
871+
logger_lint.removeHandler(capture_handler)
872+
logger_vis.removeHandler(capture_handler)
871873

872874
def unsaved_changes_change(self, unsaved_changes: bool):
873875
self.unsaved_changes = unsaved_changes
@@ -1150,3 +1152,7 @@ def _show_help_welcome(self):
11501152
msg.exec()
11511153
if dont.isChecked():
11521154
settings.setValue("help_mode/welcome_disabled", True)
1155+
1156+
def get_current_problem(self):
1157+
"""Get the current PEtab problem from the model."""
1158+
return self.model.current_petab_problem

src/petab_gui/controllers/table_controllers.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def __init__(
7171
self.undo_stack = undo_stack
7272
self.model.undo_stack = undo_stack
7373
self.check_petab_lint_mode = True
74-
if model.table_type in ["simulation", "visualization"]:
74+
if model.table_type in ["simulation"]:
7575
self.check_petab_lint_mode = False
7676
self.mother_controller = mother_controller
7777
self.view.table_view.setModel(self.proxy_model)
@@ -1315,3 +1315,14 @@ def __init__(
13151315
undo_stack=undo_stack,
13161316
mother_controller=mother_controller,
13171317
)
1318+
1319+
@linter_wrapper(additional_error_check=True)
1320+
def check_petab_lint(
1321+
self,
1322+
row_data: pd.DataFrame = None,
1323+
row_name: str = None,
1324+
col_name: str = None,
1325+
):
1326+
"""Check a number of rows of the model with petablint."""
1327+
problem = self.mother_controller.get_current_problem()
1328+
return petab.visualize.validate_visualization_df(problem)

0 commit comments

Comments
 (0)