PySimultan 0.4.2__py3-none-any.whl → 0.4.3__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
PySimultan2/__about__.py CHANGED
@@ -1 +1 @@
1
- version = '0.4.2'
1
+ version = '0.4.3'
@@ -117,7 +117,7 @@ class ComponentList(SimultanObject):
117
117
  [all_components[i] for i in np.argsort(indices)]]
118
118
  except TypeError as e:
119
119
  logger.warning(f'Could not sort list {all_components}:\n{e}')
120
- return [self._object_mapper.create_python_object(x) for x in all_components]
120
+ return [self._object_mapper.create_python_object(x, data_model=self._data_model) for x in all_components]
121
121
  except Exception as e:
122
122
  logger.error(f'Could not get data from list {self}:\n{e}')
123
123
  return []
@@ -249,11 +249,12 @@ class ComponentList(SimultanObject):
249
249
  if isinstance(i, slice):
250
250
  if self._object_mapper is None:
251
251
  return self.__class__(self.data[i])
252
- return [self._object_mapper.create_python_object(x) for x in self.__class__(self.data[i])]
252
+ return [self._object_mapper.create_python_object(x, data_model=self._data_model)
253
+ for x in self.__class__(self.data[i])]
253
254
  else:
254
255
  if self._object_mapper is None:
255
256
  return self.data[i]
256
- return self._object_mapper.create_python_object(self.data[i])
257
+ return self._object_mapper.create_python_object(self.data[i], data_model=self._data_model)
257
258
 
258
259
  def __repr__(self):
259
260
  return f'List {self.name}: ' + repr(list(self.data))
@@ -278,13 +279,13 @@ class ComponentList(SimultanObject):
278
279
  return None
279
280
 
280
281
  if self._wrapped_obj.Parent is not None:
281
- return self._object_mapper.create_python_object(self._wrapped_obj.Parent)
282
+ return self._object_mapper.create_python_object(self._wrapped_obj.Parent, data_model=self._data_model)
282
283
  else:
283
284
  return None
284
285
 
285
286
  @property
286
287
  def referenced_by(self):
287
- return set([self._object_mapper.create_python_object(x.Target) for x in self._wrapped_obj.ReferencedBy if
288
+ return set([self._object_mapper.create_python_object(x.Target, data_model=self._data_model) for x in self._wrapped_obj.ReferencedBy if
288
289
  x.Target != self._wrapped_obj])
289
290
 
290
291
  def clear(self):
@@ -33,6 +33,8 @@ class PythonMapper(object):
33
33
  return instance
34
34
 
35
35
  def __init__(self, *args, **kwargs):
36
+
37
+ self.name = kwargs.get('name', 'PythonMapper')
36
38
  self.registered_classes = default_registered_classes # dict with all registered classes: {taxonomy: class}
37
39
  self.mapped_classes = default_mapped_classes # dict with all mapped classes: {taxonomy: class}
38
40
  self.taxonomy_maps = default_taxonomy_maps # dict with all taxonomie maps: {taxonomy: taxonomie_map}
@@ -136,8 +138,7 @@ class PythonMapper(object):
136
138
  typed_data.append(typed_object)
137
139
  return typed_data
138
140
 
139
- # @lru_cache(maxsize=500)
140
- def create_python_object(self, component, cls=None, data_model=None, *args, **kwargs):
141
+ def create_python_geometry_object(self, component, data_model=None, *args, **kwargs):
141
142
 
142
143
  if component is None:
143
144
  return None
@@ -145,11 +146,6 @@ class PythonMapper(object):
145
146
  if data_model is None:
146
147
  logger.warning(f'No data model provided. Using default data model: {config.get_default_data_model().id}.')
147
148
  data_model = config.get_default_data_model()
148
- data_model_id = data_model.id
149
- # data_model_id = list(data_models)[0].id
150
- # data_model = list(data_models)[0]
151
- else:
152
- data_model_id = data_model.id
153
149
 
154
150
  if isinstance(component, (Layer, Vertex, Edge, PEdge, Face, Volume, EdgeLoop)):
155
151
  if isinstance(component, Layer):
@@ -157,7 +153,22 @@ class PythonMapper(object):
157
153
  else:
158
154
  geometry_model = component.Layer.Model.Model
159
155
  cls = self.registered_geometry_classes[type(component)]
160
- return create_python_geometry(cls, component, data_model_id, self, geometry_model)
156
+ return create_python_geometry(cls, component, data_model, self, geometry_model)
157
+ else:
158
+ self.create_python_object(component, data_model, *args, **kwargs)
159
+
160
+ # @lru_cache(maxsize=500)
161
+ def create_python_object(self, component, cls=None, data_model=None, *args, **kwargs):
162
+
163
+ if component is None:
164
+ return None
165
+
166
+ if data_model is None:
167
+ logger.warning(f'No data model provided. Using default data model: {config.get_default_data_model().id}.')
168
+ data_model = config.get_default_data_model()
169
+
170
+ if isinstance(component, (Layer, Vertex, Edge, PEdge, Face, Volume, EdgeLoop)):
171
+ self.create_python_geometry_object(component, data_model, *args, **kwargs)
161
172
 
162
173
  if cls is None:
163
174
  c_slots = [x.Target.Key for x in component.Slots.Items]
@@ -181,10 +192,8 @@ class PythonMapper(object):
181
192
  else:
182
193
  return create_python_object(component,
183
194
  cls,
184
- data_model_id=data_model_id,
185
195
  object_mapper=self,
186
196
  data_model=data_model,
187
-
188
197
  *args,
189
198
  **kwargs)
190
199
 
@@ -223,7 +223,7 @@ class SimultanObject(object, metaclass=MetaMock):
223
223
  return None
224
224
 
225
225
  if self._wrapped_obj.Parent is not None:
226
- return self._object_mapper.create_python_object(self._wrapped_obj.Parent)
226
+ return self._object_mapper.create_python_object(self._wrapped_obj.Parent, data_model=self._data_model)
227
227
  else:
228
228
  return None
229
229
 
@@ -239,7 +239,8 @@ class SimultanObject(object, metaclass=MetaMock):
239
239
 
240
240
  @property
241
241
  def referenced_by(self) -> set['SimultanObject']:
242
- return set([self._object_mapper.create_python_object(x.Target) for x in self._wrapped_obj.ReferencedBy if
242
+ return set([self._object_mapper.create_python_object(x.Target, data_model=self._data_model)
243
+ for x in self._wrapped_obj.ReferencedBy if
243
244
  x.Target != self._wrapped_obj])
244
245
 
245
246
  @property
@@ -259,14 +260,17 @@ class SimultanObject(object, metaclass=MetaMock):
259
260
  def get_subcomponents(self) -> dict[[str, str], Union['SimultanObject', SimComponent]]:
260
261
  subcomponents = {}
261
262
  for comp in self._wrapped_obj.Components:
262
- subcomponents[(comp.Slot.SlotBase.Target.Key, comp.Slot.SlotExtension)] = self._object_mapper.create_python_object(comp.Component)
263
+ subcomponents[(comp.Slot.SlotBase.Target.Key,
264
+ comp.Slot.SlotExtension)] = self._object_mapper.create_python_object(comp.Component,
265
+ data_model=self._data_model)
263
266
  return subcomponents
264
267
 
265
268
  def get_subcomponent_list(self) -> list[Union['SimultanObject', SimComponent]]:
266
269
  return list(self.get_subcomponents().values())
267
270
 
268
271
  def get_referenced_components(self) -> list['SimultanObject']:
269
- return [self._object_mapper.create_python_object(x) for x in self._wrapped_obj.ReferencedComponents]
272
+ return [self._object_mapper.create_python_object(x, data_model=self._data_model)
273
+ for x in self._wrapped_obj.ReferencedComponents]
270
274
 
271
275
  def add_taxonomy_entry_reference(self,
272
276
  taxonomy_entry_reference: SimTaxonomyEntryReference,
PySimultan2/utils.py CHANGED
@@ -64,14 +64,19 @@ def create_python_object(wrapped_obj: SimComponent, cls: Type[SimultanObject], *
64
64
  :param cls: class of the python object
65
65
  :param args: additional arguments
66
66
  :param kwargs: additional keyword arguments
67
+ :param data_model: DataModel
68
+ :param object_mapper: PythonMapper
69
+
70
+ :return: SimultanObject
67
71
  :return:
68
72
  """
69
73
 
70
74
  from .default_types import ComponentList, ComponentDictionary
71
75
 
72
- if kwargs.get('data_model_id', None) is None:
73
- from .data_model import data_models
74
- kwargs['data_model_id'] = list(data_models)[0].id
76
+ data_model = kwargs.get('data_model', None)
77
+
78
+ if data_model is None:
79
+ data_model = config.get_default_data_model()
75
80
 
76
81
  if wrapped_obj is None:
77
82
  return None
@@ -103,7 +108,7 @@ def create_python_object(wrapped_obj: SimComponent, cls: Type[SimultanObject], *
103
108
  obj.__obj_init__ = True
104
109
  obj.__property_cache__ = dict()
105
110
  obj._wrapped_obj = wrapped_obj
106
- obj._data_model = kwargs.get('data_model', None)
111
+ obj._data_model = data_model
107
112
  obj._object_mapper = kwargs.get('object_mapper', None)
108
113
  obj.component_policy = kwargs.get('component_policy', 'subcomponent')
109
114
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: PySimultan
3
- Version: 0.4.2
3
+ Version: 0.4.3
4
4
  Project-URL: Documentation, https://github.com/Bühler Maximilian/PySimultan2#readme
5
5
  Project-URL: Issues, https://github.com/Bühler Maximilian/PySimultan2/issues
6
6
  Project-URL: Source, https://github.com/Bühler Maximilian/PySimultan2
@@ -1,13 +1,13 @@
1
- PySimultan2/__about__.py,sha256=Dz7KO6jRqp7b9P43mwLgOykNdRlA8qMxtHiAsqZsQbE,19
1
+ PySimultan2/__about__.py,sha256=l1cddhN_DochM-HfCX27Wng2U2p8iuhA7C5-Wd08cIA,19
2
2
  PySimultan2/__init__.py,sha256=2pdrZP8ECaVRlaCfwzFblht_30JfenzyQ2rEt-QldeU,2876
3
3
  PySimultan2/data_model.py,sha256=m9q3P5SfxYXdmwdQuPoTazHZAJ1xwazixFtdetJ2Dgk,26968
4
- PySimultan2/default_types.py,sha256=GGAnuOCwF7YSt6tPDMr6houAILWyRsAhMfb9Y_Rpetk,22946
4
+ PySimultan2/default_types.py,sha256=v_4awsUURLbu4Sfw7J_7BoQKirXbKdU9s7-wqgA4nNE,23112
5
5
  PySimultan2/files.py,sha256=gx3BA6WYjNVplqqes7jkPopp6O50pgLvantXgmitx54,12657
6
6
  PySimultan2/multi_values.py,sha256=ZFXlTLuZo32x7_7diYAp2XEjp5uwgHLgNOzN7v74-5I,13650
7
- PySimultan2/object_mapper.py,sha256=hRYvgQYZb4NBZ1DyA9Nwd04i19q8SawFv-8aJHFba_g,9702
8
- PySimultan2/simultan_object.py,sha256=F5XeHHmbh4s3hb4K8f4m-Pl9Oz1d0Pxc72VV91CQi3w,16929
7
+ PySimultan2/object_mapper.py,sha256=UUP8oZNkCG68DpizNJlcj14nrPTKMiq5oWAmA_XO1AY,10116
8
+ PySimultan2/simultan_object.py,sha256=Plr9nwgRmKzdkTO7l8ksWekEow9pT-MgjjAfLlChgDI,17208
9
9
  PySimultan2/taxonomy_maps.py,sha256=aU9zUJph7QcInIZq0W-Vqoy4DYr0CEs-VsXwPMK_cxU,7976
10
- PySimultan2/utils.py,sha256=j5xnjPIWy6k3_zY2xTXN0VsnpjQgRSyakbO9DIqBsLo,62482
10
+ PySimultan2/utils.py,sha256=J3T7KDfONFeLWBulXmGMCaaOu5sfkDSHmI92JWO8dW4,62553
11
11
  PySimultan2/geometry/__init__.py,sha256=nJolTD1i5J8qUkOQa-r3D20aq3Co3sN31Xc0n4wJpJo,248
12
12
  PySimultan2/geometry/geometry_base.py,sha256=jOTNMISGLRjUUjVfPZ64A2Fp4oinv42polIct9bgIY4,23417
13
13
  PySimultan2/geometry/utils.py,sha256=J25YsK8sso_UL7xRusItQZvyjtvxdOsSPelBQYFABhY,8519
@@ -75,7 +75,7 @@ PySimultan2/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
75
75
  PySimultan2/resources/assimp.dll,sha256=HwfDwXqoPDTFRyoQpA3qmgZoUdFtziJkV5fNtktEZEU,6081536
76
76
  PySimultan2/resources/defaultsettings.xml,sha256=s6Tk1tubLz5UYqXZWpD42EDHzedemRY1nEneoIVcUfg,392
77
77
  PySimultan2/resources/setup.bat,sha256=fjvvYfVM6TalS-QTSiKAbAId5nTsk8kGGo06ba-wWaY,32
78
- pysimultan-0.4.2.dist-info/METADATA,sha256=bwynJBG0p5oUVISh5e51xjWYfKmdU5IGPYpCkRmt7Tk,1657
79
- pysimultan-0.4.2.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
80
- pysimultan-0.4.2.dist-info/licenses/LICENSE.txt,sha256=pmSr98k6N005KMojnZxzLGRuRlDjDx3PUrK1lFj53HA,1126
81
- pysimultan-0.4.2.dist-info/RECORD,,
78
+ pysimultan-0.4.3.dist-info/METADATA,sha256=Pf9TmV9HU7TQg3_pk6bdKxPs_zXZjppZpgEvOCwUMAk,1657
79
+ pysimultan-0.4.3.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
80
+ pysimultan-0.4.3.dist-info/licenses/LICENSE.txt,sha256=pmSr98k6N005KMojnZxzLGRuRlDjDx3PUrK1lFj53HA,1126
81
+ pysimultan-0.4.3.dist-info/RECORD,,