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 CHANGED
@@ -1 +1 @@
1
- version = '0.4.19'
1
+ version = '0.4.20'
@@ -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')[key]
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(self._wrapped_obj.Components.Items)
403
+ components = list(wrapped_obj.Components.Items)
401
404
  val = next((get_obj_value(x.Component,
402
- data_model=self._data_model,
403
- object_mapper=self._object_mapper) for x in components if
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(self._wrapped_obj.ReferencedComponents.Items)
409
+ ref_components = list(wrapped_obj.ReferencedComponents.Items)
407
410
  val = next((get_obj_value(x.Target,
408
- data_model=self._data_model,
409
- object_mapper=self._object_mapper) for x in ref_components
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(self._wrapped_obj.Parameters.Items)
415
+ parameters = list(wrapped_obj.Parameters.Items)
413
416
  val = next((get_obj_value(x,
414
- data_model=self._data_model,
415
- object_mapper=self._object_mapper) for x in parameters if
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=self._data_model,
424
- object_mapper=self._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
- # self._object_mapper.create_python_object(self._wrapped_obj)
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.Name] = get_obj_value(ref_component.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
- comp.Components.InsertItem(len(comp.Components.Items), entry)
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.19
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=Z9VH1opxusXUHCDJeWUusEwptfCLQBbFMXR9ph5aJS4,20
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=hE_JyKcykL3bSqpeEj-zSA04oLJ6UnsGR17SfdjkXNo,25578
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=qhF46rCHmI96Hdp9sdHAAkUJtaQxoG6YJu7Hx5IM4Go,62569
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.19.dist-info/METADATA,sha256=1uJ2SKZAtUEgv2A_EB35HQMeh0jCfA1AM0PW8EMGW1w,2551
79
- pysimultan-0.4.19.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
80
- pysimultan-0.4.19.dist-info/licenses/LICENSE.txt,sha256=pmSr98k6N005KMojnZxzLGRuRlDjDx3PUrK1lFj53HA,1126
81
- pysimultan-0.4.19.dist-info/RECORD,,
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,,