PySimultan 0.4.19__py3-none-any.whl → 0.4.20__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/default_types.py +17 -18
- PySimultan2/utils.py +34 -2
- {pysimultan-0.4.19.dist-info → pysimultan-0.4.20.dist-info}/METADATA +4 -1
- {pysimultan-0.4.19.dist-info → pysimultan-0.4.20.dist-info}/RECORD +7 -7
- {pysimultan-0.4.19.dist-info → pysimultan-0.4.20.dist-info}/WHEEL +0 -0
- {pysimultan-0.4.19.dist-info → pysimultan-0.4.20.dist-info}/licenses/LICENSE.txt +0 -0
PySimultan2/__about__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
version = '0.4.
|
1
|
+
version = '0.4.20'
|
PySimultan2/default_types.py
CHANGED
@@ -377,12 +377,15 @@ class ComponentDictionary(SimultanObject):
|
|
377
377
|
|
378
378
|
if kwargs.get('check_dict', True) and comp_dict is not None and key in object.__getattribute__(self,
|
379
379
|
'_dict').keys():
|
380
|
-
return object.__getattribute__(self, '_dict')
|
380
|
+
return object.__getattribute__(self, '_dict').get(key, None)
|
381
381
|
else:
|
382
382
|
# data_model = config.default_data_model
|
383
383
|
# obj = get_component_taxonomy_entry(self._wrapped_obj, key)
|
384
384
|
# if obj is not None:
|
385
385
|
# val = get_obj_value(obj, data_model=self._data_model, object_mapper=self._object_mapper)
|
386
|
+
data_model = self._data_model
|
387
|
+
object_mapper = self._object_mapper
|
388
|
+
wrapped_obj = self._wrapped_obj
|
386
389
|
|
387
390
|
if key in self._taxonomy_map.parameter_taxonomy_entry_dict.keys():
|
388
391
|
text_or_key = self._taxonomy_map.parameter_taxonomy_entry_dict[key]
|
@@ -397,22 +400,22 @@ class ComponentDictionary(SimultanObject):
|
|
397
400
|
text_or_key = content.text_or_key
|
398
401
|
|
399
402
|
try:
|
400
|
-
components = list(
|
403
|
+
components = list(wrapped_obj.Components.Items)
|
401
404
|
val = next((get_obj_value(x.Component,
|
402
|
-
data_model=
|
403
|
-
object_mapper=
|
405
|
+
data_model=data_model,
|
406
|
+
object_mapper=object_mapper) for x in components if
|
404
407
|
x.Slot.SlotBase.Target.Key == text_or_key), None)
|
405
408
|
if val is None:
|
406
|
-
ref_components = list(
|
409
|
+
ref_components = list(wrapped_obj.ReferencedComponents.Items)
|
407
410
|
val = next((get_obj_value(x.Target,
|
408
|
-
data_model=
|
409
|
-
object_mapper=
|
411
|
+
data_model=data_model,
|
412
|
+
object_mapper=object_mapper) for x in ref_components
|
410
413
|
if x.Slot.SlotBase.Target.Key == text_or_key), None)
|
411
414
|
if val is None:
|
412
|
-
parameters = list(
|
415
|
+
parameters = list(wrapped_obj.Parameters.Items)
|
413
416
|
val = next((get_obj_value(x,
|
414
|
-
data_model=
|
415
|
-
object_mapper=
|
417
|
+
data_model=data_model,
|
418
|
+
object_mapper=object_mapper) for x in parameters if
|
416
419
|
x.NameTaxonomyEntry.TextOrKey == text_or_key), None)
|
417
420
|
|
418
421
|
except Exception as e:
|
@@ -420,8 +423,8 @@ class ComponentDictionary(SimultanObject):
|
|
420
423
|
raise ValueError(f'Could not get value for key {key} ({text_or_key}) in {self}:\n{e}')
|
421
424
|
|
422
425
|
self._dict[key] = get_obj_value(val,
|
423
|
-
data_model=
|
424
|
-
object_mapper=
|
426
|
+
data_model=data_model,
|
427
|
+
object_mapper=object_mapper)
|
425
428
|
return self._dict[key]
|
426
429
|
|
427
430
|
def __setitem__(self, key, value):
|
@@ -477,11 +480,7 @@ class ComponentDictionary(SimultanObject):
|
|
477
480
|
setter_fcn(*fcn_arg_list)
|
478
481
|
item = self.__getitem__(key, check_dict=False)
|
479
482
|
|
480
|
-
|
481
|
-
#
|
482
|
-
# if isinstance(value, ):
|
483
|
-
|
484
|
-
self._dict[key] = self.__getitem__(key, check_dict=False)
|
483
|
+
self._dict[key] = item
|
485
484
|
|
486
485
|
def __delitem__(self, key):
|
487
486
|
self[key] = None
|
@@ -512,7 +511,7 @@ class ComponentDictionary(SimultanObject):
|
|
512
511
|
data_model=self._data_model,
|
513
512
|
object_mapper=self._object_mapper)
|
514
513
|
for ref_component in self._wrapped_obj.ReferencedComponents.Items:
|
515
|
-
comp_dict[ref_component.Slot.SlotBase.Target.
|
514
|
+
comp_dict[ref_component.Slot.SlotBase.Target.Key] = get_obj_value(ref_component.Target,
|
516
515
|
data_model=self._data_model,
|
517
516
|
object_mapper=self._object_mapper)
|
518
517
|
for ref_asset in self._wrapped_obj.ReferencedAssets.Items:
|
PySimultan2/utils.py
CHANGED
@@ -1,10 +1,16 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
+
import sys
|
4
|
+
import traceback
|
5
|
+
|
3
6
|
from enum import Enum
|
4
7
|
from weakref import WeakSet
|
5
8
|
import numpy as np
|
6
9
|
import pandas as pd
|
7
10
|
from typing import List as TypeList, Union, Optional, Type, Any, TYPE_CHECKING
|
11
|
+
|
12
|
+
from System import ArgumentException, NotSupportedException
|
13
|
+
|
8
14
|
from SIMULTAN.Data.Components import (ComponentWalker, SimComponent, SimBoolParameter, SimDoubleParameter,
|
9
15
|
SimEnumParameter, SimIntegerParameter, SimStringParameter, ComponentMapping,
|
10
16
|
SimSlot, SimComponentVisibility, SimChildComponentEntry, SimDefaultSlots,
|
@@ -417,8 +423,31 @@ def add_sub_component(comp: SimComponent,
|
|
417
423
|
new_slot = SimSlot(sub_comp.Slots[0].Target, str(slot_extension))
|
418
424
|
|
419
425
|
entry = SimChildComponentEntry(new_slot, sub_comp)
|
426
|
+
|
427
|
+
error = None
|
428
|
+
new_slot_extension = 0
|
429
|
+
|
420
430
|
if entry not in comp.Components.Items:
|
421
|
-
|
431
|
+
try:
|
432
|
+
comp.Components.InsertItem(len(comp.Components.Items), entry)
|
433
|
+
except (ArgumentException, NotSupportedException) as e:
|
434
|
+
error = e
|
435
|
+
|
436
|
+
while error is not None and new_slot_extension < 100:
|
437
|
+
try:
|
438
|
+
try:
|
439
|
+
slot_extension += 1
|
440
|
+
if slot_extension > 1000:
|
441
|
+
break
|
442
|
+
except Exception as e:
|
443
|
+
new_slot_extension += 1
|
444
|
+
slot_extension = slot_extension + f'_{new_slot_extension}'
|
445
|
+
new_slot = SimSlot(sub_comp.Slots[0].Target, str(slot_extension))
|
446
|
+
entry = SimChildComponentEntry(new_slot, sub_comp)
|
447
|
+
comp.Components.InsertItem(len(comp.Components.Items), entry)
|
448
|
+
error = None
|
449
|
+
except (ArgumentException, NotSupportedException) as e:
|
450
|
+
error = e
|
422
451
|
return True
|
423
452
|
|
424
453
|
|
@@ -727,7 +756,8 @@ type_convert_dict = {SimComponent: get_sim_component_value,
|
|
727
756
|
SimEnumParameter: get_parameter_value,
|
728
757
|
ResourceEntry: get_resource_entry_value,
|
729
758
|
ContainedResourceFileEntry: get_resource_entry_value,
|
730
|
-
LinkedResourceFileEntry: get_resource_entry_value
|
759
|
+
LinkedResourceFileEntry: get_resource_entry_value
|
760
|
+
}
|
731
761
|
|
732
762
|
|
733
763
|
def get_obj_value(obj: Union[SimComponent, SimDoubleParameter, SimIntegerParameter, SimStringParameter,
|
@@ -738,6 +768,8 @@ def get_obj_value(obj: Union[SimComponent, SimDoubleParameter, SimIntegerParamet
|
|
738
768
|
|
739
769
|
if obj is None:
|
740
770
|
return
|
771
|
+
elif isinstance(obj, (int, float, str)):
|
772
|
+
return obj
|
741
773
|
elif type(obj) in type_convert_dict.keys():
|
742
774
|
return type_convert_dict[type(obj)](obj, data_model=data_model, object_mapper=object_mapper)
|
743
775
|
else:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: PySimultan
|
3
|
-
Version: 0.4.
|
3
|
+
Version: 0.4.20
|
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
|
@@ -82,5 +82,8 @@ C:\Program Files\FreeCAD
|
|
82
82
|
|
83
83
|
# Change Log
|
84
84
|
|
85
|
+
## [0.4.20] - 2024-07-01
|
86
|
+
- Fixed Bug in nested dictionary creation
|
87
|
+
|
85
88
|
## [0.4.19] - 2024-07-01
|
86
89
|
- Refactored dictionaries
|
@@ -1,13 +1,13 @@
|
|
1
|
-
PySimultan2/__about__.py,sha256=
|
1
|
+
PySimultan2/__about__.py,sha256=5LZKy2_Q7Bsu50daCLBwex_Hb1mMwOUMiteIDt5jRXI,20
|
2
2
|
PySimultan2/__init__.py,sha256=cabTN1Oz8xtFM31ouBKg5lwLqW5vtexDP669PYyNLnA,3224
|
3
3
|
PySimultan2/data_model.py,sha256=xosu5TAfgsrxwyhd6SfHFp4Wvo1_YtxdHsSuZmuNVJU,27022
|
4
|
-
PySimultan2/default_types.py,sha256=
|
4
|
+
PySimultan2/default_types.py,sha256=MvZuU7qQW-ybRIT5Fl5yKdyidXhTQjFZuUq2W8hvEI4,25504
|
5
5
|
PySimultan2/files.py,sha256=8F1QC9nTsTSrCpu5vGx1xGx-7UgkDwoICXau_5j7UzI,12725
|
6
6
|
PySimultan2/multi_values.py,sha256=ZFXlTLuZo32x7_7diYAp2XEjp5uwgHLgNOzN7v74-5I,13650
|
7
7
|
PySimultan2/object_mapper.py,sha256=yYVGeIzkdYvNMqW_kz9NwVxi6IJWGAqLS8CrYzW2oEg,13210
|
8
8
|
PySimultan2/simultan_object.py,sha256=P047pfjgScysBMIsW7Co63VlzXGnLqGwxjyAEVLh8kg,16917
|
9
9
|
PySimultan2/taxonomy_maps.py,sha256=YXOE-vUan2vLQyk96W728Vw5elBvIwH56tTuRBYeUyQ,8420
|
10
|
-
PySimultan2/utils.py,sha256=
|
10
|
+
PySimultan2/utils.py,sha256=NOetVGG51-JTCrTTXMMmUz2pZpAGmvuojtoXd1UmLtA,63716
|
11
11
|
PySimultan2/geometry/__init__.py,sha256=nJolTD1i5J8qUkOQa-r3D20aq3Co3sN31Xc0n4wJpJo,248
|
12
12
|
PySimultan2/geometry/geometry_base.py,sha256=nbb9U2W3vFviVLxISLHRi2CVyLEM-3zIKvoZ1uSYs_8,23420
|
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.
|
79
|
-
pysimultan-0.4.
|
80
|
-
pysimultan-0.4.
|
81
|
-
pysimultan-0.4.
|
78
|
+
pysimultan-0.4.20.dist-info/METADATA,sha256=TlRBXFruRV99PRNlQ_BOu8m4VeW3bgFu6-7Ufy-fjao,2619
|
79
|
+
pysimultan-0.4.20.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
|
80
|
+
pysimultan-0.4.20.dist-info/licenses/LICENSE.txt,sha256=pmSr98k6N005KMojnZxzLGRuRlDjDx3PUrK1lFj53HA,1126
|
81
|
+
pysimultan-0.4.20.dist-info/RECORD,,
|
File without changes
|
File without changes
|