PySimultan 0.4.1__py3-none-any.whl → 0.4.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- PySimultan2/__about__.py +1 -1
- PySimultan2/__init__.py +6 -0
- PySimultan2/data_model.py +3 -3
- PySimultan2/default_types.py +6 -5
- PySimultan2/files.py +4 -4
- PySimultan2/geometry/geometry_base.py +4 -4
- PySimultan2/object_mapper.py +25 -16
- PySimultan2/simultan_object.py +13 -9
- PySimultan2/utils.py +17 -13
- {pysimultan-0.4.1.dist-info → pysimultan-0.4.3.dist-info}/METADATA +1 -1
- {pysimultan-0.4.1.dist-info → pysimultan-0.4.3.dist-info}/RECORD +13 -13
- {pysimultan-0.4.1.dist-info → pysimultan-0.4.3.dist-info}/WHEEL +0 -0
- {pysimultan-0.4.1.dist-info → pysimultan-0.4.3.dist-info}/licenses/LICENSE.txt +0 -0
PySimultan2/__about__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
version = '0.4.
|
1
|
+
version = '0.4.3'
|
PySimultan2/__init__.py
CHANGED
@@ -91,6 +91,12 @@ class Config:
|
|
91
91
|
def get_default_mapper(self, *args, **kwargs):
|
92
92
|
return self._default_mapper
|
93
93
|
|
94
|
+
def set_default_data_model(self, data_model):
|
95
|
+
self._default_data_model = data_model
|
96
|
+
|
97
|
+
def set_default_mapper(self, mapper):
|
98
|
+
self._default_mapper = mapper
|
99
|
+
|
94
100
|
|
95
101
|
config = Config()
|
96
102
|
|
PySimultan2/data_model.py
CHANGED
@@ -119,7 +119,7 @@ class DataModel:
|
|
119
119
|
def __new__(cls, *args, **kwargs):
|
120
120
|
|
121
121
|
instance = super().__new__(cls)
|
122
|
-
config.
|
122
|
+
config.set_default_data_model(instance)
|
123
123
|
try:
|
124
124
|
data_models.add(instance)
|
125
125
|
except Exception as e:
|
@@ -378,8 +378,8 @@ class DataModel:
|
|
378
378
|
data_models = WeakSet()
|
379
379
|
data_models_dict = WeakValueDictionary()
|
380
380
|
|
381
|
-
if config.
|
382
|
-
config.
|
381
|
+
if config.get_default_data_model() is self:
|
382
|
+
config.set_default_data_model(None)
|
383
383
|
|
384
384
|
del self
|
385
385
|
|
PySimultan2/default_types.py
CHANGED
@@ -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
|
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):
|
PySimultan2/files.py
CHANGED
@@ -20,7 +20,7 @@ from SIMULTAN.Data.Components import SimComponent, ComponentMapping
|
|
20
20
|
|
21
21
|
# from .config import default_data_model
|
22
22
|
|
23
|
-
from . import config
|
23
|
+
from . import config, logger
|
24
24
|
|
25
25
|
from typing import TYPE_CHECKING
|
26
26
|
if TYPE_CHECKING:
|
@@ -197,7 +197,7 @@ class FileInfo(object, metaclass=MetaMock):
|
|
197
197
|
:return: FileInfo
|
198
198
|
"""
|
199
199
|
|
200
|
-
data_model = kwargs.get('data_model', config.
|
200
|
+
data_model = kwargs.get('data_model', config.get_default_data_model())
|
201
201
|
resource = create_asset_from_string(filename, content, *args, **kwargs)
|
202
202
|
|
203
203
|
file_info = cls(resource_entry=resource,
|
@@ -241,8 +241,8 @@ class FileInfo(object, metaclass=MetaMock):
|
|
241
241
|
def resource_entry(self) -> Union[ResourceFileEntry, ContainedResourceFileEntry, None]:
|
242
242
|
if self._resource_entry is None:
|
243
243
|
if self.data_model is None:
|
244
|
-
logger.warning(f'No data model provided. Using default data model: {config.
|
245
|
-
self.data_model = config.
|
244
|
+
logger.warning(f'No data model provided. Using default data model: {config.get_default_data_model().id}.')
|
245
|
+
self.data_model = config.get_default_data_model()
|
246
246
|
if self.data_model is not None:
|
247
247
|
self.resource_entry = self.data_model.add_resource(self.file_path)
|
248
248
|
return self._resource_entry
|
@@ -63,7 +63,7 @@ class BaseGeometry(object, metaclass=MetaMock):
|
|
63
63
|
def __init__(self, *args, **kwargs):
|
64
64
|
self._wrapped_object: Union[Vertex, Edge, Face, Volume, EdgeLoop, Layer] = kwargs.get('wrapped_object', None)
|
65
65
|
self._geometry_model: Optional[GeometryModel] = kwargs.get('geometry_model', None)
|
66
|
-
self._object_mapper = kwargs.get('object_mapper', config.
|
66
|
+
self._object_mapper = kwargs.get('object_mapper', config.get_default_mapper())
|
67
67
|
self._data_model = kwargs.get('data_model', None)
|
68
68
|
|
69
69
|
@property
|
@@ -537,7 +537,7 @@ class GeometryModel(object, metaclass=MetaMock):
|
|
537
537
|
@classmethod
|
538
538
|
def create_simultan_instance(cls, *args, **kwargs):
|
539
539
|
|
540
|
-
data_model: DataModel = kwargs.get('data_model', config.
|
540
|
+
data_model: DataModel = kwargs.get('data_model', config.get_default_data_model())
|
541
541
|
name: str = kwargs.get('name', 'GeometryModel')
|
542
542
|
|
543
543
|
new_geo_model, resource = data_model.create_new_geometry_model(name=name)
|
@@ -549,8 +549,8 @@ class GeometryModel(object, metaclass=MetaMock):
|
|
549
549
|
|
550
550
|
def __init__(self, *args, **kwargs):
|
551
551
|
self._wrapped_object: NetGeometryModel = kwargs.get('wrapped_object', None)
|
552
|
-
self._object_mapper = kwargs.get('object_mapper', config.
|
553
|
-
self._data_model = kwargs.get('data_model', config.
|
552
|
+
self._object_mapper = kwargs.get('object_mapper', config.get_default_mapper())
|
553
|
+
self._data_model = kwargs.get('data_model', config.get_default_data_model())
|
554
554
|
|
555
555
|
@property
|
556
556
|
def name(self):
|
PySimultan2/object_mapper.py
CHANGED
@@ -29,10 +29,12 @@ class PythonMapper(object):
|
|
29
29
|
|
30
30
|
def __new__(cls, *args, **kwargs):
|
31
31
|
instance = super(PythonMapper, cls).__new__(cls)
|
32
|
-
config.
|
32
|
+
config.set_default_mapper(instance)
|
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,20 +138,14 @@ class PythonMapper(object):
|
|
136
138
|
typed_data.append(typed_object)
|
137
139
|
return typed_data
|
138
140
|
|
139
|
-
|
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
|
144
145
|
|
145
146
|
if data_model is None:
|
146
|
-
logger.warning(f'No data model provided. Using default data model: {config.
|
147
|
-
data_model = config.
|
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
|
147
|
+
logger.warning(f'No data model provided. Using default data model: {config.get_default_data_model().id}.')
|
148
|
+
data_model = config.get_default_data_model()
|
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,
|
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
|
|
@@ -219,8 +228,8 @@ class PythonMapper(object):
|
|
219
228
|
cls._cls_instances = WeakSet()
|
220
229
|
cls.__property_cache__ = {}
|
221
230
|
|
222
|
-
if config.
|
223
|
-
config.
|
231
|
+
if config.get_default_mapper() is self:
|
232
|
+
config.set_default_mapper(None)
|
224
233
|
|
225
234
|
def copy(self):
|
226
235
|
new_mapper = PythonMapper()
|
@@ -231,4 +240,4 @@ class PythonMapper(object):
|
|
231
240
|
|
232
241
|
|
233
242
|
if config.get_default_mapper() is None:
|
234
|
-
config.
|
243
|
+
config.set_default_mapper(PythonMapper())
|
PySimultan2/simultan_object.py
CHANGED
@@ -68,10 +68,10 @@ class MetaMock(type):
|
|
68
68
|
data_model = list(data_models.data)[0]()
|
69
69
|
kwargs['data_model'] = data_model
|
70
70
|
else:
|
71
|
-
if config.
|
71
|
+
if config.get_default_data_model() is not None:
|
72
72
|
logger.warning(
|
73
|
-
f'No data model provided. Using default data model: {config.
|
74
|
-
data_model = config.
|
73
|
+
f'No data model provided. Using default data model: {config.get_default_data_model().id}')
|
74
|
+
data_model = config.get_default_data_model()
|
75
75
|
kwargs['data_model'] = data_model
|
76
76
|
else:
|
77
77
|
raise TypeError((f'Error creating new instance of class {cls.__name__}:\n'
|
@@ -154,8 +154,8 @@ class SimultanObject(object, metaclass=MetaMock):
|
|
154
154
|
|
155
155
|
self._wrapped_obj: Union[SimComponent, None] = kwargs.get('wrapped_obj', None)
|
156
156
|
self.__obj_init__ = kwargs.get('__obj_init__', False)
|
157
|
-
self._data_model: Union[DataModel, None] = kwargs.get('data_model', config.
|
158
|
-
self._object_mapper: Union[PythonMapper, None] = kwargs.get('object_mapper', config.
|
157
|
+
self._data_model: Union[DataModel, None] = kwargs.get('data_model', config.get_default_data_model())
|
158
|
+
self._object_mapper: Union[PythonMapper, None] = kwargs.get('object_mapper', config.get_default_mapper())
|
159
159
|
self.name = kwargs.get('name', None)
|
160
160
|
|
161
161
|
self.__property_cache__ = {}
|
@@ -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
|
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,
|
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
|
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
@@ -1,6 +1,5 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
-
from . import config
|
4
3
|
from enum import Enum
|
5
4
|
from weakref import WeakSet
|
6
5
|
import numpy as np
|
@@ -65,14 +64,19 @@ def create_python_object(wrapped_obj: SimComponent, cls: Type[SimultanObject], *
|
|
65
64
|
:param cls: class of the python object
|
66
65
|
:param args: additional arguments
|
67
66
|
:param kwargs: additional keyword arguments
|
67
|
+
:param data_model: DataModel
|
68
|
+
:param object_mapper: PythonMapper
|
69
|
+
|
70
|
+
:return: SimultanObject
|
68
71
|
:return:
|
69
72
|
"""
|
70
73
|
|
71
74
|
from .default_types import ComponentList, ComponentDictionary
|
72
75
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
+
data_model = kwargs.get('data_model', None)
|
77
|
+
|
78
|
+
if data_model is None:
|
79
|
+
data_model = config.get_default_data_model()
|
76
80
|
|
77
81
|
if wrapped_obj is None:
|
78
82
|
return None
|
@@ -104,7 +108,7 @@ def create_python_object(wrapped_obj: SimComponent, cls: Type[SimultanObject], *
|
|
104
108
|
obj.__obj_init__ = True
|
105
109
|
obj.__property_cache__ = dict()
|
106
110
|
obj._wrapped_obj = wrapped_obj
|
107
|
-
obj._data_model =
|
111
|
+
obj._data_model = data_model
|
108
112
|
obj._object_mapper = kwargs.get('object_mapper', None)
|
109
113
|
obj.component_policy = kwargs.get('component_policy', 'subcomponent')
|
110
114
|
|
@@ -227,7 +231,7 @@ def get_default_slot(default_type: Union[SimTaxonomyEntryReference, SimTaxonomyE
|
|
227
231
|
:return:
|
228
232
|
"""
|
229
233
|
|
230
|
-
default_taxonomy_entry = SimDefaultSlotKeys.GetDefaultSlot(config.
|
234
|
+
default_taxonomy_entry = SimDefaultSlotKeys.GetDefaultSlot(config.get_default_data_model().project_data_manager.Taxonomies,
|
231
235
|
SimDefaultSlotKeys.Undefined)
|
232
236
|
|
233
237
|
if default_type is SimTaxonomyEntryReference:
|
@@ -604,7 +608,7 @@ def create_simultan_component_for_taxonomy(cls, *args, **kwargs) -> SimComponent
|
|
604
608
|
|
605
609
|
data_model = kwargs.get('data_model', None)
|
606
610
|
if data_model is None:
|
607
|
-
data_model = config.
|
611
|
+
data_model = config.get_default_data_model()
|
608
612
|
|
609
613
|
# simultan_taxonomy = cls._taxonomy_map.get_or_create_simultan_taxonomy(data_model=data_model)
|
610
614
|
# tayonomy_entry = cls._taxonomy_map.get_or_create_simultan_taxonomy_entry(data_model=data_model)
|
@@ -679,7 +683,7 @@ def get_property(prop_name: Optional[str] = None,
|
|
679
683
|
data_model = component._data_model
|
680
684
|
object_mapper = component._object_mapper
|
681
685
|
else:
|
682
|
-
data_model = config.
|
686
|
+
data_model = config.get_default_data_model()
|
683
687
|
obj = get_component_taxonomy_entry(wrapped_obj, text_or_key)
|
684
688
|
|
685
689
|
return get_obj_value(obj, data_model=data_model, object_mapper=object_mapper)
|
@@ -877,7 +881,7 @@ def create_mapped_python_object(value: SimComponent,
|
|
877
881
|
"""
|
878
882
|
|
879
883
|
if object_mapper is None:
|
880
|
-
object_mapper = config.
|
884
|
+
object_mapper = config.get_default_mapper()
|
881
885
|
|
882
886
|
# logger.debug(f'Creating mapped python object for {value}.')
|
883
887
|
if type(value) in object_mapper.registered_classes.values():
|
@@ -973,13 +977,13 @@ def set_property_to_list(value: Union[list, tuple, set, ComponentList],
|
|
973
977
|
|
974
978
|
if 'ComponentList' in [x.Target.Key for x in component.Slots]:
|
975
979
|
if not hasattr(component, '_object_mapper'):
|
976
|
-
mapper = config.
|
980
|
+
mapper = config.get_default_mapper()
|
977
981
|
component._object_mapper = mapper
|
978
982
|
else:
|
979
983
|
mapper = component._object_mapper
|
980
984
|
|
981
985
|
if not hasattr(component, '_data_model'):
|
982
|
-
data_model = config.
|
986
|
+
data_model = config.get_default_data_model()
|
983
987
|
component._data_model = data_model
|
984
988
|
else:
|
985
989
|
data_model = component._data_model
|
@@ -1240,13 +1244,13 @@ def set_property_to_dict(value: dict,
|
|
1240
1244
|
|
1241
1245
|
if 'ComponentDictionary' in [x.Target.Key for x in component.Slots]:
|
1242
1246
|
if not hasattr(component, '_object_mapper'):
|
1243
|
-
mapper = config.
|
1247
|
+
mapper = config.get_default_mapper()
|
1244
1248
|
component._object_mapper = mapper
|
1245
1249
|
else:
|
1246
1250
|
mapper = component._object_mapper
|
1247
1251
|
|
1248
1252
|
if not hasattr(component, '_data_model'):
|
1249
|
-
data_model = config.
|
1253
|
+
data_model = config.get_default_data_model()
|
1250
1254
|
component._data_model = data_model
|
1251
1255
|
else:
|
1252
1256
|
data_model = component._data_model
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: PySimultan
|
3
|
-
Version: 0.4.
|
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,15 +1,15 @@
|
|
1
|
-
PySimultan2/__about__.py,sha256=
|
2
|
-
PySimultan2/__init__.py,sha256=
|
3
|
-
PySimultan2/data_model.py,sha256=
|
4
|
-
PySimultan2/default_types.py,sha256=
|
5
|
-
PySimultan2/files.py,sha256=
|
1
|
+
PySimultan2/__about__.py,sha256=l1cddhN_DochM-HfCX27Wng2U2p8iuhA7C5-Wd08cIA,19
|
2
|
+
PySimultan2/__init__.py,sha256=2pdrZP8ECaVRlaCfwzFblht_30JfenzyQ2rEt-QldeU,2876
|
3
|
+
PySimultan2/data_model.py,sha256=m9q3P5SfxYXdmwdQuPoTazHZAJ1xwazixFtdetJ2Dgk,26968
|
4
|
+
PySimultan2/default_types.py,sha256=v_4awsUURLbu4Sfw7J_7BoQKirXbKdU9s7-wqgA4nNE,23112
|
5
|
+
PySimultan2/files.py,sha256=gx3BA6WYjNVplqqes7jkPopp6O50pgLvantXgmitx54,12657
|
6
6
|
PySimultan2/multi_values.py,sha256=ZFXlTLuZo32x7_7diYAp2XEjp5uwgHLgNOzN7v74-5I,13650
|
7
|
-
PySimultan2/object_mapper.py,sha256=
|
8
|
-
PySimultan2/simultan_object.py,sha256=
|
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=
|
10
|
+
PySimultan2/utils.py,sha256=J3T7KDfONFeLWBulXmGMCaaOu5sfkDSHmI92JWO8dW4,62553
|
11
11
|
PySimultan2/geometry/__init__.py,sha256=nJolTD1i5J8qUkOQa-r3D20aq3Co3sN31Xc0n4wJpJo,248
|
12
|
-
PySimultan2/geometry/geometry_base.py,sha256=
|
12
|
+
PySimultan2/geometry/geometry_base.py,sha256=jOTNMISGLRjUUjVfPZ64A2Fp4oinv42polIct9bgIY4,23417
|
13
13
|
PySimultan2/geometry/utils.py,sha256=J25YsK8sso_UL7xRusItQZvyjtvxdOsSPelBQYFABhY,8519
|
14
14
|
PySimultan2/resources/AssimpNet.dll,sha256=x8uwMHPRmEH9fDQihfEQLUdblM1u7RP-CCnUjOpXcLo,205312
|
15
15
|
PySimultan2/resources/AvalonDock.dll,sha256=9tCcw7cpaVq0bh1H2sfcxb8EWhySmgujPs89lAqIPZs,500224
|
@@ -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.
|
79
|
-
pysimultan-0.4.
|
80
|
-
pysimultan-0.4.
|
81
|
-
pysimultan-0.4.
|
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,,
|
File without changes
|
File without changes
|