@@ -86,12 +86,14 @@ class Condition:
86
86
Not = None
87
87
Equals = None
88
88
Influenced_Equals = None
89
+ Name = None
89
90
90
91
def __init__ (self , template , name = None , sub_condition = None ):
91
92
self .And = []
92
93
self .Or = []
93
94
self .Not = []
94
95
self .Influenced_Equals = {}
96
+ self .Name = name
95
97
if name is not None :
96
98
value = template .get ("Conditions" , {}).get (name , {})
97
99
try :
@@ -106,6 +108,11 @@ def __init__(self, template, name=None, sub_condition=None):
106
108
LOGGER .debug ("Error parsing condition: %s" , name )
107
109
self .Equals = None
108
110
111
+ def __eq__ (self , __o : object ) -> bool :
112
+ if self .Name is None :
113
+ return False
114
+ return self .Name == __o .Name
115
+
109
116
def test (self , scenarios ):
110
117
"""Test a condition based on a scenario"""
111
118
if self .And :
@@ -441,9 +448,10 @@ def multiply_equals(currents, s_hash, sets, parameter_values):
441
448
if matched_conditions :
442
449
scenarios = []
443
450
for con_hash , sets in matched_equals .items ():
444
- scenarios = multiply_equals (
445
- scenarios , con_hash , sets , self .Parameters .get (con_hash )
446
- )
451
+ if len (scenarios ) < 20 :
452
+ scenarios = multiply_equals (
453
+ scenarios , con_hash , sets , self .Parameters .get (con_hash )
454
+ )
447
455
448
456
for scenario in scenarios :
449
457
r_condition = {}
0 commit comments