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
         |