MCPcopy Create free account
hub / github.com/FreeOpcUa/python-opcua / _make_model

Method _make_model

opcua/common/structures.py:153–184  ·  view source on GitHub ↗
(self, root)

Source from the content-addressed store, hash-verified

151 self._make_model(root)
152
153 def _make_model(self, root):
154 enums = {}
155 for child in root.iter("{*}EnumeratedType"):
156 intenum = EnumType(child.get("Name"))
157 for xmlfield in child.iter("{*}EnumeratedValue"):
158 name = xmlfield.get("Name")
159 value = xmlfield.get("Value")
160 enumvalue = EnumeratedValue(name, value)
161 intenum.fields.append(enumvalue)
162 enums[child.get("Name")] = value
163 self.model.append(intenum)
164
165 for child in root.iter("{*}StructuredType"):
166 struct = Struct(child.get("Name"))
167 array = False
168 for xmlfield in child.iter("{*}Field"):
169 name = xmlfield.get("Name")
170 if name.startswith("NoOf"):
171 array = True
172 continue
173 field = Field(_clean_name(name))
174 field.uatype = xmlfield.get("TypeName")
175 if ":" in field.uatype:
176 field.uatype = field.uatype.split(":")[1]
177 field.uatype = _clean_name(field.uatype)
178 field.value = get_default_value(field.uatype, enums)
179 if array:
180 field.array = True
181 field.value = []
182 array = False
183 struct.fields.append(field)
184 self.model.append(struct)
185
186 def save_to_file(self, path, register=False):
187 _file = open(path, "w+")

Callers 2

make_model_from_fileMethod · 0.95

Calls 7

EnumTypeClass · 0.85
EnumeratedValueClass · 0.85
_clean_nameFunction · 0.85
getMethod · 0.80
StructClass · 0.70
FieldClass · 0.70
get_default_valueFunction · 0.70

Tested by

no test coverage detected