PySimultan 0.4.13__py3-none-any.whl → 0.4.16__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/data_model.py +5 -9
- PySimultan2/files.py +1 -0
- PySimultan2/geometry/geometry_base.py +1 -1
- PySimultan2/object_mapper.py +7 -0
- PySimultan2/simultan_object.py +6 -7
- PySimultan2/utils.py +8 -8
- {pysimultan-0.4.13.dist-info → pysimultan-0.4.16.dist-info}/METADATA +1 -1
- {pysimultan-0.4.13.dist-info → pysimultan-0.4.16.dist-info}/RECORD +11 -11
- {pysimultan-0.4.13.dist-info → pysimultan-0.4.16.dist-info}/WHEEL +0 -0
- {pysimultan-0.4.13.dist-info → pysimultan-0.4.16.dist-info}/licenses/LICENSE.txt +0 -0
PySimultan2/__about__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
version = '0.4.
|
1
|
+
version = '0.4.16'
|
PySimultan2/data_model.py
CHANGED
@@ -127,10 +127,6 @@ class DataModel:
|
|
127
127
|
|
128
128
|
instance = super().__new__(cls)
|
129
129
|
config.set_default_data_model(instance)
|
130
|
-
try:
|
131
|
-
default_data_model.set_default_data_model(instance)
|
132
|
-
except Exception as e:
|
133
|
-
logger.error(f'Error adding instance {instance} to data_models: {e}')
|
134
130
|
return instance
|
135
131
|
|
136
132
|
def __init__(self, *args, **kwargs):
|
@@ -179,7 +175,7 @@ class DataModel:
|
|
179
175
|
@property
|
180
176
|
def models(self) -> dict[int, 'GeometryModel']:
|
181
177
|
"""
|
182
|
-
Return the
|
178
|
+
Return the fc_geometry models of the project
|
183
179
|
:return: dict[int, GeometryModel]
|
184
180
|
"""
|
185
181
|
|
@@ -437,9 +433,9 @@ class DataModel:
|
|
437
433
|
|
438
434
|
def add_new_geometry_model(self, file_name: str, model_name: str = None, return_resource=False):
|
439
435
|
"""
|
440
|
-
Create and add a new
|
436
|
+
Create and add a new fc_geometry model
|
441
437
|
:param file_name: name of the created .simgeo file
|
442
|
-
:param model_name: name of the
|
438
|
+
:param model_name: name of the fc_geometry model
|
443
439
|
:param return_resource: return the resource
|
444
440
|
:return: GeometryViewer.Model.GeometryModel, geo_resource
|
445
441
|
"""
|
@@ -465,7 +461,7 @@ class DataModel:
|
|
465
461
|
|
466
462
|
def add_geometry_resource(self, model_name: str):
|
467
463
|
"""
|
468
|
-
Add / create new
|
464
|
+
Add / create new fc_geometry resource (.simgeo file)
|
469
465
|
:param model_name: name of the new .simgeo file without file extension; Example: 'new_model'
|
470
466
|
"""
|
471
467
|
self.service_provider.GetService[IGeometryViewerService]()
|
@@ -654,7 +650,7 @@ class DataModel:
|
|
654
650
|
name,
|
655
651
|
f'{0} ({1})',
|
656
652
|
self.project.AllProjectDataManagers.DispatcherTimerFactory)
|
657
|
-
# Load the
|
653
|
+
# Load the fc_geometry model
|
658
654
|
model_to_work_with = SimGeoIO.Load(resource_file,
|
659
655
|
self.project_data_manager,
|
660
656
|
None)
|
PySimultan2/files.py
CHANGED
@@ -245,6 +245,7 @@ class FileInfo(object, metaclass=MetaMock):
|
|
245
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
|
+
self.file_path = self.resource_entry.File.FullPath
|
248
249
|
return self._resource_entry
|
249
250
|
|
250
251
|
@resource_entry.setter
|
@@ -108,7 +108,7 @@ class SimultanLayer(BaseGeometry):
|
|
108
108
|
@classmethod
|
109
109
|
def create_simultan_instance(cls, *args, **kwargs) -> 'SimultanLayer':
|
110
110
|
"""
|
111
|
-
Create a new SimultanLayer instance and add to the
|
111
|
+
Create a new SimultanLayer instance and add to the fc_geometry model
|
112
112
|
:keyword geometry_model: GeometryModel
|
113
113
|
:keyword name: str
|
114
114
|
:return: SimultanLayer
|
PySimultan2/object_mapper.py
CHANGED
@@ -300,6 +300,13 @@ class PythonMapper(object):
|
|
300
300
|
if remove_from_default and config.get_default_mapper() is self:
|
301
301
|
config.set_default_mapper(None)
|
302
302
|
|
303
|
+
def create_sim_component(self,
|
304
|
+
obj,
|
305
|
+
data_model: 'DataModel'):
|
306
|
+
from . utils import create_mapped_python_object
|
307
|
+
new_val = create_mapped_python_object(obj, self, data_model)
|
308
|
+
return new_val
|
309
|
+
|
303
310
|
def copy(self):
|
304
311
|
new_mapper = PythonMapper()
|
305
312
|
new_mapper.registered_classes = self.registered_classes
|
PySimultan2/simultan_object.py
CHANGED
@@ -6,7 +6,7 @@ from weakref import WeakSet
|
|
6
6
|
from . import utils
|
7
7
|
from numpy import ndarray
|
8
8
|
import colorlog
|
9
|
-
from typing import Union, Optional
|
9
|
+
from typing import Union, Optional, Any
|
10
10
|
|
11
11
|
logger = colorlog.getLogger('PySimultan')
|
12
12
|
|
@@ -148,16 +148,15 @@ class SimultanObject(object, metaclass=MetaMock):
|
|
148
148
|
"""
|
149
149
|
|
150
150
|
self._wrapped_obj: Union[SimComponent, None] = kwargs.get('wrapped_obj', None)
|
151
|
-
self.__obj_init__ = kwargs.get('__obj_init__', False)
|
151
|
+
self.__obj_init__: bool = kwargs.get('__obj_init__', False)
|
152
152
|
self._data_model: Union[DataModel, None] = kwargs.get('data_model', config.get_default_data_model())
|
153
153
|
self._object_mapper: Union[PythonMapper, None] = kwargs.get('object_mapper', config.get_default_mapper())
|
154
|
-
self.name = kwargs.get('name',
|
154
|
+
self.name: str = kwargs.get('name', '')
|
155
155
|
|
156
156
|
self.__property_cache__ = {}
|
157
|
-
|
158
157
|
self._slot = None
|
159
158
|
|
160
|
-
def __getattribute__(self, attr):
|
159
|
+
def __getattribute__(self, attr) -> Any:
|
161
160
|
|
162
161
|
try:
|
163
162
|
return object.__getattribute__(self, attr)
|
@@ -168,7 +167,7 @@ class SimultanObject(object, metaclass=MetaMock):
|
|
168
167
|
else:
|
169
168
|
raise KeyError
|
170
169
|
|
171
|
-
def __setattr__(self, attr, value):
|
170
|
+
def __setattr__(self, attr, value) -> None:
|
172
171
|
if hasattr(self, '_wrapped_obj'):
|
173
172
|
if hasattr(self._wrapped_obj, attr) and (self._wrapped_obj is not None) and not self.__obj_init__:
|
174
173
|
object.__setattr__(self._wrapped_obj, attr, value)
|
@@ -330,7 +329,7 @@ class SimultanObject(object, metaclass=MetaMock):
|
|
330
329
|
def associate(self, other: 'ExtendedBaseGeometry'):
|
331
330
|
"""
|
332
331
|
Associate this object with another object
|
333
|
-
:param other:
|
332
|
+
:param other: fc_geometry object to associate with
|
334
333
|
:return: None
|
335
334
|
"""
|
336
335
|
other.associate(self)
|
PySimultan2/utils.py
CHANGED
@@ -4,7 +4,7 @@ from enum import Enum
|
|
4
4
|
from weakref import WeakSet
|
5
5
|
import numpy as np
|
6
6
|
import pandas as pd
|
7
|
-
from typing import List as TypeList, Union, Optional, Type
|
7
|
+
from typing import List as TypeList, Union, Optional, Type, Any, TYPE_CHECKING
|
8
8
|
from SIMULTAN.Data.Components import (ComponentWalker, SimComponent, SimBoolParameter, SimDoubleParameter,
|
9
9
|
SimEnumParameter, SimIntegerParameter, SimStringParameter, ComponentMapping,
|
10
10
|
SimSlot, SimComponentVisibility, SimChildComponentEntry, SimDefaultSlots,
|
@@ -21,7 +21,6 @@ from .multi_values import (simultan_multi_value_field_3d_to_numpy, set_parameter
|
|
21
21
|
create_field_parameter, simultan_multi_value_big_table_to_pandas)
|
22
22
|
from .files import FileInfo, remove_asset_from_component, add_asset_to_component
|
23
23
|
|
24
|
-
from typing import TYPE_CHECKING
|
25
24
|
if TYPE_CHECKING:
|
26
25
|
from .default_types import ComponentList, ComponentDictionary
|
27
26
|
from .simultan_object import SimultanObject
|
@@ -125,7 +124,7 @@ def create_python_object(wrapped_obj: SimComponent, cls: Type[SimultanObject], *
|
|
125
124
|
logger.error(f'Error adding instance {obj} to _cls_instances: {e}')
|
126
125
|
|
127
126
|
if hasattr(cls, '__load_init__'):
|
128
|
-
obj.
|
127
|
+
obj.__load_init__(*args, **kwargs)
|
129
128
|
#
|
130
129
|
circ_ref_resolver.unresolved_objects.pop(wrapped_obj.Id)
|
131
130
|
|
@@ -563,7 +562,7 @@ def find_components_with_taxonomy(component_list: list[SimComponent], key, first
|
|
563
562
|
|
564
563
|
def get_component_geometry(data_model, geometry_model, component) -> tuple[list[Vertex], list[Edge], list[Face], list[Volume]]:
|
565
564
|
"""
|
566
|
-
Get the
|
565
|
+
Get the fc_geometry of a component from a fc_geometry model
|
567
566
|
:param data_model:
|
568
567
|
:param geometry_model:
|
569
568
|
:param component:
|
@@ -867,7 +866,7 @@ param_type_lookup_dict = {str: SimStringParameter,
|
|
867
866
|
bool: SimBoolParameter}
|
868
867
|
|
869
868
|
|
870
|
-
def create_mapped_python_object(value:
|
869
|
+
def create_mapped_python_object(value: Any,
|
871
870
|
object_mapper: PythonMapper,
|
872
871
|
data_model: DataModel,
|
873
872
|
add_to_data_model=True) -> SimultanObject:
|
@@ -885,8 +884,9 @@ def create_mapped_python_object(value: SimComponent,
|
|
885
884
|
|
886
885
|
# logger.debug(f'Creating mapped python object for {value}.')
|
887
886
|
if type(value) in object_mapper.registered_classes.values():
|
888
|
-
key = list(filter(lambda x: object_mapper.registered_classes[x] ==
|
889
|
-
|
887
|
+
key = list(filter(lambda x: object_mapper.registered_classes[x] == type(value),
|
888
|
+
object_mapper.registered_classes)
|
889
|
+
)[0]
|
890
890
|
mapped_cls = object_mapper.get_mapped_class(key)
|
891
891
|
new_val = mapped_cls(**value.__dict__,
|
892
892
|
data_model=data_model,
|
@@ -1346,7 +1346,7 @@ def add_properties(prop_name: str,
|
|
1346
1346
|
getx.__taxonomy__ = taxonomy
|
1347
1347
|
content = taxonomy_map.get_content_by_property_name(prop_name)
|
1348
1348
|
|
1349
|
-
def setx(self, value: Union[int, float, SimComponent, SimultanObject]):
|
1349
|
+
def setx(self, value: Union[int, float, str, tuple, set, SimComponent, SimultanObject]):
|
1350
1350
|
self.__property_cache__.pop(content.text_or_key, None)
|
1351
1351
|
|
1352
1352
|
slot_extension = content.slot_extension
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: PySimultan
|
3
|
-
Version: 0.4.
|
3
|
+
Version: 0.4.16
|
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=
|
1
|
+
PySimultan2/__about__.py,sha256=0e2on0xO5xwM95wRw1ckE4dW-wmxFjVGnM8xbJRrNEk,20
|
2
2
|
PySimultan2/__init__.py,sha256=cabTN1Oz8xtFM31ouBKg5lwLqW5vtexDP669PYyNLnA,3224
|
3
|
-
PySimultan2/data_model.py,sha256=
|
3
|
+
PySimultan2/data_model.py,sha256=xosu5TAfgsrxwyhd6SfHFp4Wvo1_YtxdHsSuZmuNVJU,27022
|
4
4
|
PySimultan2/default_types.py,sha256=v_4awsUURLbu4Sfw7J_7BoQKirXbKdU9s7-wqgA4nNE,23112
|
5
|
-
PySimultan2/files.py,sha256=
|
5
|
+
PySimultan2/files.py,sha256=8F1QC9nTsTSrCpu5vGx1xGx-7UgkDwoICXau_5j7UzI,12725
|
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=2VewplU_qaJV-TBeirbOmDzdPJ8Ie6WMTFN7je-ydW0,13218
|
8
|
+
PySimultan2/simultan_object.py,sha256=GJ_uivwmYxXDqkP-wda7dAQZ9R-FDiXKwJIA3iLHBfg,16929
|
9
9
|
PySimultan2/taxonomy_maps.py,sha256=IYpIat6ZJi5MyCbsjAxWvVOWDRp_VvSMWUY3CApKSik,8061
|
10
|
-
PySimultan2/utils.py,sha256=
|
10
|
+
PySimultan2/utils.py,sha256=qhF46rCHmI96Hdp9sdHAAkUJtaQxoG6YJu7Hx5IM4Go,62569
|
11
11
|
PySimultan2/geometry/__init__.py,sha256=nJolTD1i5J8qUkOQa-r3D20aq3Co3sN31Xc0n4wJpJo,248
|
12
|
-
PySimultan2/geometry/geometry_base.py,sha256=
|
12
|
+
PySimultan2/geometry/geometry_base.py,sha256=nbb9U2W3vFviVLxISLHRi2CVyLEM-3zIKvoZ1uSYs_8,23420
|
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.16.dist-info/METADATA,sha256=HaedoQtjB0S9ke2jifPQiSDG9rB6aOqHv3JL2EvBJ9U,2483
|
79
|
+
pysimultan-0.4.16.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
|
80
|
+
pysimultan-0.4.16.dist-info/licenses/LICENSE.txt,sha256=pmSr98k6N005KMojnZxzLGRuRlDjDx3PUrK1lFj53HA,1126
|
81
|
+
pysimultan-0.4.16.dist-info/RECORD,,
|
File without changes
|
File without changes
|