77def name (variable : ModelVariable | Item , suffix : str = "" ) -> str :
88 """Convert the FMI variable name to a valid Modelica identifier"""
99 import re
10+
1011 ex = re .compile (r"^[a-zA-Z_$][\w$]*$" )
1112 if ex .match (variable .name ):
1213 return variable .name + suffix
@@ -51,14 +52,14 @@ def set_variables(variables: Iterable[ModelVariable], indent: int = 2) -> str:
5152 if len (variable .dimensions ) == 2 :
5253 line += "Matrix"
5354 line += f"(instance, valueReferences={{{ variable .valueReference } }}, values="
54- if variable .type == ' Enumeration' :
55+ if variable .type == " Enumeration" :
5556 line += f"Types.{ variable .declaredType .name } ToInt64("
5657 if not variable .dimensions :
5758 line += "{"
5859 line += name (variable )
5960 if not variable .dimensions :
6061 line += "}"
61- if variable .type == ' Enumeration' :
62+ if variable .type == " Enumeration" :
6263 line += ")"
6364 line += ");"
6465 lines .append (line )
@@ -121,9 +122,7 @@ def value2enum(value: str) -> str:
121122 return f'"{ variable .start } "'
122123 elif variable .type == "Enumeration" :
123124 item = next (
124- item
125- for item in variable .declaredType .items
126- if item .value == variable .start
125+ item for item in variable .declaredType .items if item .value == variable .start
127126 )
128127 return f"Types.{ variable .declaredType .name } .{ name (item )} "
129128 else :
@@ -140,7 +139,6 @@ def modelica_type(variable):
140139
141140
142141def modifiers (variable : ModelVariable , start : bool = False ):
143-
144142 attrs = []
145143
146144 prefix = "each " if variable .dimensions else ""
@@ -150,16 +148,13 @@ def modifiers(variable: ModelVariable, start: bool = False):
150148
151149 if variable .unit is not None :
152150 attrs .append (f'{ prefix } unit="{ variable .unit } "' )
153- elif (
154- variable .declaredType is not None and variable .declaredType .unit is not None
155- ):
151+ elif variable .declaredType is not None and variable .declaredType .unit is not None :
156152 attrs .append (f'{ prefix } unit="{ variable .declaredType .unit } "' )
157153
158154 if variable .quantity is not None :
159155 attrs .append (f'{ prefix } quantity="{ variable .quantity } "' )
160156 elif (
161- variable .declaredType is not None
162- and variable .declaredType .quantity is not None
157+ variable .declaredType is not None and variable .declaredType .quantity is not None
163158 ):
164159 attrs .append (f'{ prefix } quantity="{ variable .declaredType .quantity } "' )
165160
@@ -168,19 +163,20 @@ def modifiers(variable: ModelVariable, start: bool = False):
168163
169164 return ""
170165
166+
171167def choices (variable : ModelVariable ) -> str :
172168 if variable .type == "Enumeration" :
173169 choices = [
174- f'choice={ item .value } "{ item .name } "'
175- for item in variable .declaredType .items
170+ f'choice={ item .value } "{ item .name } "' for item in variable .declaredType .items
176171 ]
177172 return " annotation(choices(" + ", " .join (choices ) + "))"
178173 else :
179174 return ""
180175
181176
182- def dependencies (model_description : ModelDescription , variable : ModelVariable , type , nValues = False ):
183-
177+ def dependencies (
178+ model_description : ModelDescription , variable : ModelVariable , type , nValues = False
179+ ):
184180 variables = {}
185181
186182 unknown = next (
@@ -206,6 +202,7 @@ def dependencies(model_description: ModelDescription, variable: ModelVariable, t
206202
207203 return arguments
208204
205+
209206def dependencies2 (model_description : ModelDescription , variable ):
210207 unknown = next (
211208 filter (
@@ -215,16 +212,18 @@ def dependencies2(model_description: ModelDescription, variable):
215212 )
216213 return unknown .dependencies
217214
215+
218216def numel (variables : dict [int , ModelVariable ], variable : ModelVariable ):
219217 n = 1
220218 for dimension in variable .dimensions :
221219 n *= int (
222220 dimension .start
223- if dimension .start
221+ if dimension .start
224222 else variables [dimension .valueReference ].start
225223 )
226224 return n
227225
226+
228227def shape (variables : dict [int , ModelVariable ], variable : ModelVariable ):
229228 s = []
230229 for dimension in variable .dimensions :
@@ -237,7 +236,13 @@ def shape(variables: dict[int, ModelVariable], variable: ModelVariable):
237236 )
238237 return tuple (s )
239238
240- def dependencies3 (model_description : ModelDescription , variables : dict [int , ModelVariable ], variable : ModelVariable , types : list [str ]):
239+
240+ def dependencies3 (
241+ model_description : ModelDescription ,
242+ variables : dict [int , ModelVariable ],
243+ variable : ModelVariable ,
244+ types : list [str ],
245+ ):
241246 arguments = []
242247
243248 for type in types :
0 commit comments