1212 Amplifier ,
1313 Adder ,
1414 Multiplier ,
15- Integrator ,
1615 Function ,
1716 Delay ,
1817 RNG ,
2726 Splitter3 ,
2827 Bubbler ,
2928 FestimWall ,
29+ Integrator ,
3030)
3131from flask import jsonify
3232import inspect
@@ -82,24 +82,13 @@ def create_integrator(
8282 if eval_namespace is None :
8383 eval_namespace = globals ()
8484
85- block = Integrator (
86- initial_value = eval (node ["data" ]["initial_value" ], eval_namespace )
87- if node ["data" ].get ("initial_value" ) and node ["data" ]["initial_value" ] != ""
88- else 0.0 ,
85+ parameters = get_parameters_for_block_class (
86+ Integrator , node , eval_namespace = eval_namespace
8987 )
88+
89+ block = Integrator (** parameters )
9090 # add events to reset integrator if needed
91- events = []
92- if node ["data" ]["reset_times" ] != "" :
93-
94- def reset_itg (_ ):
95- block .reset ()
96-
97- reset_times = eval (node ["data" ]["reset_times" ], eval_namespace )
98- if isinstance (reset_times , (int , float )):
99- # If it's a single number, convert it to a list
100- reset_times = [reset_times ]
101- for t in reset_times :
102- events .append (Schedule (t_start = t , t_end = t , func_act = reset_itg ))
91+ events = block .create_reset_events ()
10392 return block , events
10493
10594
@@ -161,7 +150,7 @@ def create_bubbler(node: dict) -> Bubbler:
161150 return block , events
162151
163152
164- def create_scope (node : dict , edges , nodes ) -> Scope :
153+ def make_labels_for_scope (node : dict , edges : list , nodes : list ) -> list [ str ] :
165154 # Find all incoming edges to this node and sort by source id for consistent ordering
166155 incoming_edges = [edge for edge in edges if edge ["target" ] == node ["id" ]]
167156 incoming_edges .sort (key = lambda x : x ["source" ])
@@ -188,12 +177,17 @@ def create_scope(node: dict, edges, nodes) -> Scope:
188177 if edge ["sourceHandle" ]:
189178 labels [i ] += f" ({ edge ['sourceHandle' ]} )"
190179
191- parameters = get_parameters_for_block_class (Scope , node , eval_namespace = globals ())
192- # remove labels from parameters, as they are set separately
193- parameters .pop ("labels" , None )
180+ return labels , connections_order
181+
182+
183+ def create_scope (node : dict , edges , nodes ) -> Scope :
184+ block = auto_block_construction (node , eval_namespace = globals ())
194185
195- block = Scope (labels = labels , ** parameters )
186+ # override labels + add connections order
187+ # TODO this should be done in "make connections"
188+ labels , connections_order = make_labels_for_scope (node , edges , nodes )
196189 block ._connections_order = connections_order
190+ block .labels = labels
197191
198192 return block
199193
0 commit comments