From 28bdec537b52e7fe4ca5946ed250bc5ac3113a5f Mon Sep 17 00:00:00 2001 From: Roman Bolgaryn Date: Wed, 10 Jan 2024 16:49:33 +0100 Subject: [PATCH] contingency: add option to raise errors if a contingency leads to an error instead of skipping it --- pandapower/contingency/contingency.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pandapower/contingency/contingency.py b/pandapower/contingency/contingency.py index eeb185baf..8e1081a2f 100644 --- a/pandapower/contingency/contingency.py +++ b/pandapower/contingency/contingency.py @@ -72,6 +72,7 @@ def run_contingency(net, nminus1_cases, pf_options=None, pf_options_nminus1=None """ # set up the dict for results and relevant variables # ".get" in case the options have been set in pp.set_user_pf_options: + raise_errors = kwargs.get("raise_errors", False) if "recycle" in kwargs: kwargs["recycle"] = False # so that we can be sure it doesn't happen if pf_options is None: pf_options = net.user_pf_options.get("pf_options", net.user_pf_options) if pf_options_nminus1 is None: pf_options_nminus1 = net.user_pf_options.get("pf_options_nminus1", @@ -104,6 +105,8 @@ def run_contingency(net, nminus1_cases, pf_options=None, pf_options_nminus1=None cause_element=element, cause_index=i) except Exception as err: logger.error(f"{element} {i} causes {err}") + if raise_errors: + raise err finally: net[element].at[i, 'in_service'] = True