PySimultan 0.4.1__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/__init__.py +6 -0
- PySimultan2/data_model.py +3 -3
- PySimultan2/default_types.py +6 -5
- PySimultan2/files.py +4 -4
- PySimultan2/geometry/geometry_base.py +4 -4
- PySimultan2/object_mapper.py +25 -16
- PySimultan2/simultan_object.py +13 -9
- PySimultan2/utils.py +17 -13
- {pysimultan-0.4.1.dist-info → pysimultan-0.4.3.dist-info}/METADATA +1 -1
- {pysimultan-0.4.1.dist-info → pysimultan-0.4.3.dist-info}/RECORD +13 -13
- {pysimultan-0.4.1.dist-info → pysimultan-0.4.3.dist-info}/WHEEL +0 -0
- {pysimultan-0.4.1.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/__init__.py
    CHANGED
    
    | @@ -91,6 +91,12 @@ class Config: | |
| 91 91 | 
             
                def get_default_mapper(self, *args, **kwargs):
         | 
| 92 92 | 
             
                    return self._default_mapper
         | 
| 93 93 |  | 
| 94 | 
            +
                def set_default_data_model(self, data_model):
         | 
| 95 | 
            +
                    self._default_data_model = data_model
         | 
| 96 | 
            +
             | 
| 97 | 
            +
                def set_default_mapper(self, mapper):
         | 
| 98 | 
            +
                    self._default_mapper = mapper
         | 
| 99 | 
            +
             | 
| 94 100 |  | 
| 95 101 | 
             
            config = Config()
         | 
| 96 102 |  | 
    
        PySimultan2/data_model.py
    CHANGED
    
    | @@ -119,7 +119,7 @@ class DataModel: | |
| 119 119 | 
             
                def __new__(cls, *args, **kwargs):
         | 
| 120 120 |  | 
| 121 121 | 
             
                    instance = super().__new__(cls)
         | 
| 122 | 
            -
                    config. | 
| 122 | 
            +
                    config.set_default_data_model(instance)
         | 
| 123 123 | 
             
                    try:
         | 
| 124 124 | 
             
                        data_models.add(instance)
         | 
| 125 125 | 
             
                    except Exception as e:
         | 
| @@ -378,8 +378,8 @@ class DataModel: | |
| 378 378 | 
             
                        data_models = WeakSet()
         | 
| 379 379 | 
             
                        data_models_dict = WeakValueDictionary()
         | 
| 380 380 |  | 
| 381 | 
            -
                        if config. | 
| 382 | 
            -
                            config. | 
| 381 | 
            +
                        if config.get_default_data_model() is self:
         | 
| 382 | 
            +
                            config.set_default_data_model(None)
         | 
| 383 383 |  | 
| 384 384 | 
             
                        del self
         | 
| 385 385 |  | 
    
        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/files.py
    CHANGED
    
    | @@ -20,7 +20,7 @@ from SIMULTAN.Data.Components import SimComponent, ComponentMapping | |
| 20 20 |  | 
| 21 21 | 
             
            # from .config import default_data_model
         | 
| 22 22 |  | 
| 23 | 
            -
            from . import config
         | 
| 23 | 
            +
            from . import config, logger
         | 
| 24 24 |  | 
| 25 25 | 
             
            from typing import TYPE_CHECKING
         | 
| 26 26 | 
             
            if TYPE_CHECKING:
         | 
| @@ -197,7 +197,7 @@ class FileInfo(object, metaclass=MetaMock): | |
| 197 197 | 
             
                    :return: FileInfo
         | 
| 198 198 | 
             
                    """
         | 
| 199 199 |  | 
| 200 | 
            -
                    data_model = kwargs.get('data_model', config. | 
| 200 | 
            +
                    data_model = kwargs.get('data_model', config.get_default_data_model())
         | 
| 201 201 | 
             
                    resource = create_asset_from_string(filename, content, *args, **kwargs)
         | 
| 202 202 |  | 
| 203 203 | 
             
                    file_info = cls(resource_entry=resource,
         | 
| @@ -241,8 +241,8 @@ class FileInfo(object, metaclass=MetaMock): | |
| 241 241 | 
             
                def resource_entry(self) -> Union[ResourceFileEntry, ContainedResourceFileEntry, None]:
         | 
| 242 242 | 
             
                    if self._resource_entry is None:
         | 
| 243 243 | 
             
                        if self.data_model is None:
         | 
| 244 | 
            -
                            logger.warning(f'No data model provided. Using default data model: {config. | 
| 245 | 
            -
                            self.data_model = config. | 
| 244 | 
            +
                            logger.warning(f'No data model provided. Using default data model: {config.get_default_data_model().id}.')
         | 
| 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 248 | 
             
                    return self._resource_entry
         | 
| @@ -63,7 +63,7 @@ class BaseGeometry(object, metaclass=MetaMock): | |
| 63 63 | 
             
                def __init__(self, *args, **kwargs):
         | 
| 64 64 | 
             
                    self._wrapped_object: Union[Vertex, Edge, Face, Volume, EdgeLoop, Layer] = kwargs.get('wrapped_object', None)
         | 
| 65 65 | 
             
                    self._geometry_model: Optional[GeometryModel] = kwargs.get('geometry_model', None)
         | 
| 66 | 
            -
                    self._object_mapper = kwargs.get('object_mapper', config. | 
| 66 | 
            +
                    self._object_mapper = kwargs.get('object_mapper', config.get_default_mapper())
         | 
| 67 67 | 
             
                    self._data_model = kwargs.get('data_model', None)
         | 
| 68 68 |  | 
| 69 69 | 
             
                @property
         | 
| @@ -537,7 +537,7 @@ class GeometryModel(object, metaclass=MetaMock): | |
| 537 537 | 
             
                @classmethod
         | 
| 538 538 | 
             
                def create_simultan_instance(cls, *args, **kwargs):
         | 
| 539 539 |  | 
| 540 | 
            -
                    data_model: DataModel = kwargs.get('data_model', config. | 
| 540 | 
            +
                    data_model: DataModel = kwargs.get('data_model', config.get_default_data_model())
         | 
| 541 541 | 
             
                    name: str = kwargs.get('name', 'GeometryModel')
         | 
| 542 542 |  | 
| 543 543 | 
             
                    new_geo_model, resource = data_model.create_new_geometry_model(name=name)
         | 
| @@ -549,8 +549,8 @@ class GeometryModel(object, metaclass=MetaMock): | |
| 549 549 |  | 
| 550 550 | 
             
                def __init__(self, *args, **kwargs):
         | 
| 551 551 | 
             
                    self._wrapped_object: NetGeometryModel = kwargs.get('wrapped_object', None)
         | 
| 552 | 
            -
                    self._object_mapper = kwargs.get('object_mapper', config. | 
| 553 | 
            -
                    self._data_model = kwargs.get('data_model', config. | 
| 552 | 
            +
                    self._object_mapper = kwargs.get('object_mapper', config.get_default_mapper())
         | 
| 553 | 
            +
                    self._data_model = kwargs.get('data_model', config.get_default_data_model())
         | 
| 554 554 |  | 
| 555 555 | 
             
                @property
         | 
| 556 556 | 
             
                def name(self):
         | 
    
        PySimultan2/object_mapper.py
    CHANGED
    
    | @@ -29,10 +29,12 @@ class PythonMapper(object): | |
| 29 29 |  | 
| 30 30 | 
             
                def __new__(cls, *args, **kwargs):
         | 
| 31 31 | 
             
                    instance = super(PythonMapper, cls).__new__(cls)
         | 
| 32 | 
            -
                    config. | 
| 32 | 
            +
                    config.set_default_mapper(instance)
         | 
| 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,20 +138,14 @@ 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
         | 
| 144 145 |  | 
| 145 146 | 
             
                    if data_model is None:
         | 
| 146 | 
            -
                        logger.warning(f'No data model provided. Using default data model: {config. | 
| 147 | 
            -
                        data_model = config. | 
| 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
         | 
| 147 | 
            +
                        logger.warning(f'No data model provided. Using default data model: {config.get_default_data_model().id}.')
         | 
| 148 | 
            +
                        data_model = config.get_default_data_model()
         | 
| 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 |  | 
| @@ -219,8 +228,8 @@ class PythonMapper(object): | |
| 219 228 | 
             
                        cls._cls_instances = WeakSet()
         | 
| 220 229 | 
             
                        cls.__property_cache__ = {}
         | 
| 221 230 |  | 
| 222 | 
            -
                    if config. | 
| 223 | 
            -
                        config. | 
| 231 | 
            +
                    if config.get_default_mapper() is self:
         | 
| 232 | 
            +
                        config.set_default_mapper(None)
         | 
| 224 233 |  | 
| 225 234 | 
             
                def copy(self):
         | 
| 226 235 | 
             
                    new_mapper = PythonMapper()
         | 
| @@ -231,4 +240,4 @@ class PythonMapper(object): | |
| 231 240 |  | 
| 232 241 |  | 
| 233 242 | 
             
            if config.get_default_mapper() is None:
         | 
| 234 | 
            -
                config. | 
| 243 | 
            +
                config.set_default_mapper(PythonMapper())
         | 
    
        PySimultan2/simultan_object.py
    CHANGED
    
    | @@ -68,10 +68,10 @@ class MetaMock(type): | |
| 68 68 | 
             
                                data_model = list(data_models.data)[0]()
         | 
| 69 69 | 
             
                                kwargs['data_model'] = data_model
         | 
| 70 70 | 
             
                            else:
         | 
| 71 | 
            -
                                if config. | 
| 71 | 
            +
                                if config.get_default_data_model() is not None:
         | 
| 72 72 | 
             
                                    logger.warning(
         | 
| 73 | 
            -
                                        f'No data model provided. Using default data model: {config. | 
| 74 | 
            -
                                    data_model = config. | 
| 73 | 
            +
                                        f'No data model provided. Using default data model: {config.get_default_data_model().id}')
         | 
| 74 | 
            +
                                    data_model = config.get_default_data_model()
         | 
| 75 75 | 
             
                                    kwargs['data_model'] = data_model
         | 
| 76 76 | 
             
                                else:
         | 
| 77 77 | 
             
                                    raise TypeError((f'Error creating new instance of class {cls.__name__}:\n'
         | 
| @@ -154,8 +154,8 @@ class SimultanObject(object, metaclass=MetaMock): | |
| 154 154 |  | 
| 155 155 | 
             
                    self._wrapped_obj: Union[SimComponent, None] = kwargs.get('wrapped_obj', None)
         | 
| 156 156 | 
             
                    self.__obj_init__ = kwargs.get('__obj_init__', False)
         | 
| 157 | 
            -
                    self._data_model: Union[DataModel, None] = kwargs.get('data_model', config. | 
| 158 | 
            -
                    self._object_mapper: Union[PythonMapper, None] = kwargs.get('object_mapper', config. | 
| 157 | 
            +
                    self._data_model: Union[DataModel, None] = kwargs.get('data_model', config.get_default_data_model())
         | 
| 158 | 
            +
                    self._object_mapper: Union[PythonMapper, None] = kwargs.get('object_mapper', config.get_default_mapper())
         | 
| 159 159 | 
             
                    self.name = kwargs.get('name', None)
         | 
| 160 160 |  | 
| 161 161 | 
             
                    self.__property_cache__ = {}
         | 
| @@ -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
    
    | @@ -1,6 +1,5 @@ | |
| 1 1 | 
             
            from __future__ import annotations
         | 
| 2 2 |  | 
| 3 | 
            -
            from . import config
         | 
| 4 3 | 
             
            from enum import Enum
         | 
| 5 4 | 
             
            from weakref import WeakSet
         | 
| 6 5 | 
             
            import numpy as np
         | 
| @@ -65,14 +64,19 @@ def create_python_object(wrapped_obj: SimComponent, cls: Type[SimultanObject], * | |
| 65 64 | 
             
                :param cls: class of the python object
         | 
| 66 65 | 
             
                :param args: additional arguments
         | 
| 67 66 | 
             
                :param kwargs: additional keyword arguments
         | 
| 67 | 
            +
                    :param data_model: DataModel
         | 
| 68 | 
            +
                    :param object_mapper: PythonMapper
         | 
| 69 | 
            +
             | 
| 70 | 
            +
                :return: SimultanObject
         | 
| 68 71 | 
             
                :return:
         | 
| 69 72 | 
             
                """
         | 
| 70 73 |  | 
| 71 74 | 
             
                from .default_types import ComponentList, ComponentDictionary
         | 
| 72 75 |  | 
| 73 | 
            -
                 | 
| 74 | 
            -
             | 
| 75 | 
            -
             | 
| 76 | 
            +
                data_model = kwargs.get('data_model', None)
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                if data_model is None:
         | 
| 79 | 
            +
                    data_model = config.get_default_data_model()
         | 
| 76 80 |  | 
| 77 81 | 
             
                if wrapped_obj is None:
         | 
| 78 82 | 
             
                    return None
         | 
| @@ -104,7 +108,7 @@ def create_python_object(wrapped_obj: SimComponent, cls: Type[SimultanObject], * | |
| 104 108 | 
             
                    obj.__obj_init__ = True
         | 
| 105 109 | 
             
                    obj.__property_cache__ = dict()
         | 
| 106 110 | 
             
                    obj._wrapped_obj = wrapped_obj
         | 
| 107 | 
            -
                    obj._data_model =  | 
| 111 | 
            +
                    obj._data_model = data_model
         | 
| 108 112 | 
             
                    obj._object_mapper = kwargs.get('object_mapper', None)
         | 
| 109 113 | 
             
                    obj.component_policy = kwargs.get('component_policy', 'subcomponent')
         | 
| 110 114 |  | 
| @@ -227,7 +231,7 @@ def get_default_slot(default_type: Union[SimTaxonomyEntryReference, SimTaxonomyE | |
| 227 231 | 
             
                :return:
         | 
| 228 232 | 
             
                """
         | 
| 229 233 |  | 
| 230 | 
            -
                default_taxonomy_entry = SimDefaultSlotKeys.GetDefaultSlot(config. | 
| 234 | 
            +
                default_taxonomy_entry = SimDefaultSlotKeys.GetDefaultSlot(config.get_default_data_model().project_data_manager.Taxonomies,
         | 
| 231 235 | 
             
                                                                           SimDefaultSlotKeys.Undefined)
         | 
| 232 236 |  | 
| 233 237 | 
             
                if default_type is SimTaxonomyEntryReference:
         | 
| @@ -604,7 +608,7 @@ def create_simultan_component_for_taxonomy(cls, *args, **kwargs) -> SimComponent | |
| 604 608 |  | 
| 605 609 | 
             
                data_model = kwargs.get('data_model', None)
         | 
| 606 610 | 
             
                if data_model is None:
         | 
| 607 | 
            -
                    data_model = config. | 
| 611 | 
            +
                    data_model = config.get_default_data_model()
         | 
| 608 612 |  | 
| 609 613 | 
             
                # simultan_taxonomy = cls._taxonomy_map.get_or_create_simultan_taxonomy(data_model=data_model)
         | 
| 610 614 | 
             
                # tayonomy_entry = cls._taxonomy_map.get_or_create_simultan_taxonomy_entry(data_model=data_model)
         | 
| @@ -679,7 +683,7 @@ def get_property(prop_name: Optional[str] = None, | |
| 679 683 | 
             
                    data_model = component._data_model
         | 
| 680 684 | 
             
                    object_mapper = component._object_mapper
         | 
| 681 685 | 
             
                else:
         | 
| 682 | 
            -
                    data_model = config. | 
| 686 | 
            +
                    data_model = config.get_default_data_model()
         | 
| 683 687 | 
             
                    obj = get_component_taxonomy_entry(wrapped_obj, text_or_key)
         | 
| 684 688 |  | 
| 685 689 | 
             
                return get_obj_value(obj, data_model=data_model, object_mapper=object_mapper)
         | 
| @@ -877,7 +881,7 @@ def create_mapped_python_object(value: SimComponent, | |
| 877 881 | 
             
                """
         | 
| 878 882 |  | 
| 879 883 | 
             
                if object_mapper is None:
         | 
| 880 | 
            -
                    object_mapper = config. | 
| 884 | 
            +
                    object_mapper = config.get_default_mapper()
         | 
| 881 885 |  | 
| 882 886 | 
             
                # logger.debug(f'Creating mapped python object for {value}.')
         | 
| 883 887 | 
             
                if type(value) in object_mapper.registered_classes.values():
         | 
| @@ -973,13 +977,13 @@ def set_property_to_list(value: Union[list, tuple, set, ComponentList], | |
| 973 977 |  | 
| 974 978 | 
             
                    if 'ComponentList' in [x.Target.Key for x in component.Slots]:
         | 
| 975 979 | 
             
                        if not hasattr(component, '_object_mapper'):
         | 
| 976 | 
            -
                            mapper = config. | 
| 980 | 
            +
                            mapper = config.get_default_mapper()
         | 
| 977 981 | 
             
                            component._object_mapper = mapper
         | 
| 978 982 | 
             
                        else:
         | 
| 979 983 | 
             
                            mapper = component._object_mapper
         | 
| 980 984 |  | 
| 981 985 | 
             
                        if not hasattr(component, '_data_model'):
         | 
| 982 | 
            -
                            data_model = config. | 
| 986 | 
            +
                            data_model = config.get_default_data_model()
         | 
| 983 987 | 
             
                            component._data_model = data_model
         | 
| 984 988 | 
             
                        else:
         | 
| 985 989 | 
             
                            data_model = component._data_model
         | 
| @@ -1240,13 +1244,13 @@ def set_property_to_dict(value: dict, | |
| 1240 1244 |  | 
| 1241 1245 | 
             
                    if 'ComponentDictionary' in [x.Target.Key for x in component.Slots]:
         | 
| 1242 1246 | 
             
                        if not hasattr(component, '_object_mapper'):
         | 
| 1243 | 
            -
                            mapper = config. | 
| 1247 | 
            +
                            mapper = config.get_default_mapper()
         | 
| 1244 1248 | 
             
                            component._object_mapper = mapper
         | 
| 1245 1249 | 
             
                        else:
         | 
| 1246 1250 | 
             
                            mapper = component._object_mapper
         | 
| 1247 1251 |  | 
| 1248 1252 | 
             
                        if not hasattr(component, '_data_model'):
         | 
| 1249 | 
            -
                            data_model = config. | 
| 1253 | 
            +
                            data_model = config.get_default_data_model()
         | 
| 1250 1254 | 
             
                            component._data_model = data_model
         | 
| 1251 1255 | 
             
                        else:
         | 
| 1252 1256 | 
             
                            data_model = component._data_model
         | 
| @@ -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,15 +1,15 @@ | |
| 1 | 
            -
            PySimultan2/__about__.py,sha256= | 
| 2 | 
            -
            PySimultan2/__init__.py,sha256= | 
| 3 | 
            -
            PySimultan2/data_model.py,sha256= | 
| 4 | 
            -
            PySimultan2/default_types.py,sha256= | 
| 5 | 
            -
            PySimultan2/files.py,sha256= | 
| 1 | 
            +
            PySimultan2/__about__.py,sha256=l1cddhN_DochM-HfCX27Wng2U2p8iuhA7C5-Wd08cIA,19
         | 
| 2 | 
            +
            PySimultan2/__init__.py,sha256=2pdrZP8ECaVRlaCfwzFblht_30JfenzyQ2rEt-QldeU,2876
         | 
| 3 | 
            +
            PySimultan2/data_model.py,sha256=m9q3P5SfxYXdmwdQuPoTazHZAJ1xwazixFtdetJ2Dgk,26968
         | 
| 4 | 
            +
            PySimultan2/default_types.py,sha256=v_4awsUURLbu4Sfw7J_7BoQKirXbKdU9s7-wqgA4nNE,23112
         | 
| 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 | 
            -
            PySimultan2/geometry/geometry_base.py,sha256= | 
| 12 | 
            +
            PySimultan2/geometry/geometry_base.py,sha256=jOTNMISGLRjUUjVfPZ64A2Fp4oinv42polIct9bgIY4,23417
         | 
| 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.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
         |