PySimultan 0.4.2__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/default_types.py +6 -5
- PySimultan2/object_mapper.py +19 -10
- PySimultan2/simultan_object.py +8 -4
- PySimultan2/utils.py +9 -4
- {pysimultan-0.4.2.dist-info → pysimultan-0.4.3.dist-info}/METADATA +1 -1
- {pysimultan-0.4.2.dist-info → pysimultan-0.4.3.dist-info}/RECORD +9 -9
- {pysimultan-0.4.2.dist-info → pysimultan-0.4.3.dist-info}/WHEEL +0 -0
- {pysimultan-0.4.2.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/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/object_mapper.py
    CHANGED
    
    | @@ -33,6 +33,8 @@ class PythonMapper(object): | |
| 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,8 +138,7 @@ 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
         | 
| @@ -145,11 +146,6 @@ class PythonMapper(object): | |
| 145 146 | 
             
                    if data_model is None:
         | 
| 146 147 | 
             
                        logger.warning(f'No data model provided. Using default data model: {config.get_default_data_model().id}.')
         | 
| 147 148 | 
             
                        data_model = config.get_default_data_model()
         | 
| 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
         | 
| 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 |  | 
    
        PySimultan2/simultan_object.py
    CHANGED
    
    | @@ -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
    
    | @@ -64,14 +64,19 @@ def create_python_object(wrapped_obj: SimComponent, cls: Type[SimultanObject], * | |
| 64 64 | 
             
                :param cls: class of the python object
         | 
| 65 65 | 
             
                :param args: additional arguments
         | 
| 66 66 | 
             
                :param kwargs: additional keyword arguments
         | 
| 67 | 
            +
                    :param data_model: DataModel
         | 
| 68 | 
            +
                    :param object_mapper: PythonMapper
         | 
| 69 | 
            +
             | 
| 70 | 
            +
                :return: SimultanObject
         | 
| 67 71 | 
             
                :return:
         | 
| 68 72 | 
             
                """
         | 
| 69 73 |  | 
| 70 74 | 
             
                from .default_types import ComponentList, ComponentDictionary
         | 
| 71 75 |  | 
| 72 | 
            -
                 | 
| 73 | 
            -
             | 
| 74 | 
            -
             | 
| 76 | 
            +
                data_model = kwargs.get('data_model', None)
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                if data_model is None:
         | 
| 79 | 
            +
                    data_model = config.get_default_data_model()
         | 
| 75 80 |  | 
| 76 81 | 
             
                if wrapped_obj is None:
         | 
| 77 82 | 
             
                    return None
         | 
| @@ -103,7 +108,7 @@ def create_python_object(wrapped_obj: SimComponent, cls: Type[SimultanObject], * | |
| 103 108 | 
             
                    obj.__obj_init__ = True
         | 
| 104 109 | 
             
                    obj.__property_cache__ = dict()
         | 
| 105 110 | 
             
                    obj._wrapped_obj = wrapped_obj
         | 
| 106 | 
            -
                    obj._data_model =  | 
| 111 | 
            +
                    obj._data_model = data_model
         | 
| 107 112 | 
             
                    obj._object_mapper = kwargs.get('object_mapper', None)
         | 
| 108 113 | 
             
                    obj.component_policy = kwargs.get('component_policy', 'subcomponent')
         | 
| 109 114 |  | 
| @@ -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,13 +1,13 @@ | |
| 1 | 
            -
            PySimultan2/__about__.py,sha256= | 
| 1 | 
            +
            PySimultan2/__about__.py,sha256=l1cddhN_DochM-HfCX27Wng2U2p8iuhA7C5-Wd08cIA,19
         | 
| 2 2 | 
             
            PySimultan2/__init__.py,sha256=2pdrZP8ECaVRlaCfwzFblht_30JfenzyQ2rEt-QldeU,2876
         | 
| 3 3 | 
             
            PySimultan2/data_model.py,sha256=m9q3P5SfxYXdmwdQuPoTazHZAJ1xwazixFtdetJ2Dgk,26968
         | 
| 4 | 
            -
            PySimultan2/default_types.py,sha256= | 
| 4 | 
            +
            PySimultan2/default_types.py,sha256=v_4awsUURLbu4Sfw7J_7BoQKirXbKdU9s7-wqgA4nNE,23112
         | 
| 5 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 12 | 
             
            PySimultan2/geometry/geometry_base.py,sha256=jOTNMISGLRjUUjVfPZ64A2Fp4oinv42polIct9bgIY4,23417
         | 
| 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.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
         |