From c5cf79bf220a4d343cc04cd11d13ffcfb17a1842 Mon Sep 17 00:00:00 2001 From: Stefano Borini <sborini@enthought.com> Date: Mon, 21 May 2018 17:00:39 +0100 Subject: [PATCH] More protections --- force_bdss/core_evaluation_driver.py | 5 +++-- force_bdss/core_mco_driver.py | 14 ++++++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/force_bdss/core_evaluation_driver.py b/force_bdss/core_evaluation_driver.py index 498fc0c..151da8c 100644 --- a/force_bdss/core_evaluation_driver.py +++ b/force_bdss/core_evaluation_driver.py @@ -38,8 +38,9 @@ class CoreEvaluationDriver(BaseCoreDriver): "Unable to create communicator from MCO factory '{}' " "in plugin '{}'. This may indicate a programming " "error in the plugin".format( - mco_factory.get_identifier(), + mco_factory.id, mco_factory.plugin.id)) + raise mco_data_values = _get_data_values_from_mco( mco_model, mco_communicator) @@ -100,7 +101,7 @@ def _compute_layer_results(environment_data_values, "Unable to create data source from factory '{}' " "in plugin '{}'. This may indicate a programming " "error in the plugin".format( - factory.get_identifier(), + factory.id, factory.plugin.id)) raise diff --git a/force_bdss/core_mco_driver.py b/force_bdss/core_mco_driver.py index 6dfde55..a75f1aa 100644 --- a/force_bdss/core_mco_driver.py +++ b/force_bdss/core_mco_driver.py @@ -25,7 +25,17 @@ class CoreMCODriver(BaseCoreDriver): @on_trait_change("application:started") def application_started(self): - self.mco.run(self.workflow.mco) + mco = self.workflow.mco + try: + mco.run(self.workflow.mco) + except Exception: + log.exception( + "Method run() of MCO with id '{}' from plugin '{}' " + "raised exception. This might indicate a " + "programming error in the plugin.".format( + mco.factory.id, + mco.factory.plugin.id)) + raise @on_trait_change("application:stopping") def application_stopping(self): @@ -38,7 +48,7 @@ class CoreMCODriver(BaseCoreDriver): workflow = self.workflow except Exception: log.exception("Unable to open workflow file.") - sys.exit(1) + raise mco_model = workflow.mco if mco_model is None: -- GitLab