From fe489362eb140c72a81c9bf78f29eb4ca04c63ba Mon Sep 17 00:00:00 2001 From: siranipour Date: Tue, 30 Jun 2020 12:40:09 +0100 Subject: [PATCH 1/2] Reading lockfiles if specified in the runcard --- validphys2/src/validphys/config.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/validphys2/src/validphys/config.py b/validphys2/src/validphys/config.py index 0faab45183..029f9fe2be 100644 --- a/validphys2/src/validphys/config.py +++ b/validphys2/src/validphys/config.py @@ -1068,7 +1068,11 @@ def produce_rules( if use_cuts is not CutsPolicy.INTERNAL: return None if default_filter_rules_recorded_spec_ is not None: + # For when using a lockfile as a runcard filter_rules = default_filter_rules_recorded_spec_[default_filter_rules] + elif default_filter_rules is not None: + # For when a rules spec is specified + filter_rules = self.load_default_default_filter_rules(default_filter_rules) else: filter_rules = default_filter_rules_input() @@ -1148,12 +1152,17 @@ def produce_defaults( raise ConfigError("w2min defined multiple times with different values") if default_filter_settings_recorded_spec_ is not None: + # If running on a lockfile filter_defaults = default_filter_settings_recorded_spec_[ default_filter_settings ] # If we find recorded specs return immediately and don't read q2min and w2min # from runcard return filter_defaults + elif default_filter_settings is not None: + # If the user requests to read from a pre existing settings lockfile + filter_defaults = self.load_default_default_filter_settings(default_filter_settings) + defaults_loaded = True elif not filter_defaults: filter_defaults = default_filter_settings_input() defaults_loaded = True From 91057855288d946a5f16c3e76cc168b9b48ece22 Mon Sep 17 00:00:00 2001 From: siranipour Date: Tue, 9 Feb 2021 14:37:12 +0000 Subject: [PATCH 2/2] Assigning default value of None to theoryID --- validphys2/src/validphys/config.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/validphys2/src/validphys/config.py b/validphys2/src/validphys/config.py index 029f9fe2be..282d9ceb65 100644 --- a/validphys2/src/validphys/config.py +++ b/validphys2/src/validphys/config.py @@ -381,8 +381,6 @@ def produce_cuts(self, *, commondata, use_cuts, rules, fit=None, theoryid=None): except LoadFailedError as e: raise ConfigError(e) from e elif use_cuts is CutsPolicy.INTERNAL: - if not theoryid: - raise ConfigError("theoryid must be specified for internal cuts") return self.loader.check_internal_cuts(commondata, rules) elif use_cuts is CutsPolicy.FROM_CUT_INTERSECTION_NAMESPACE: cut_list = [] @@ -1046,9 +1044,9 @@ def parse_default_filter_rules_recorded_spec_(self, spec): def produce_rules( self, - theoryid, use_cuts, defaults, + theoryid=None, default_filter_rules=None, filter_rules=None, default_filter_rules_recorded_spec_=None, @@ -1061,8 +1059,6 @@ def produce_rules( default_filter_rules_input, ) - theory_parameters = theoryid.get_description() - if filter_rules is None: # Don't bother loading the rules if we are not using them. if use_cuts is not CutsPolicy.INTERNAL: @@ -1076,6 +1072,14 @@ def produce_rules( else: filter_rules = default_filter_rules_input() + if theoryid is None: + raise ConfigError( + "Valid theoryid is required when rules are set to " + f"`{CutsPolicy.INTERNAL}`" + ) + + theory_parameters = theoryid.get_description() + try: rule_list = [ Rule(