PySimultan 0.4.11__py3-none-any.whl → 0.4.13__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- PySimultan2/__about__.py +1 -1
- PySimultan2/data_model.py +11 -8
- PySimultan2/object_mapper.py +17 -3
- PySimultan2/simultan_object.py +8 -13
- {pysimultan-0.4.11.dist-info → pysimultan-0.4.13.dist-info}/METADATA +1 -1
- {pysimultan-0.4.11.dist-info → pysimultan-0.4.13.dist-info}/RECORD +8 -8
- {pysimultan-0.4.11.dist-info → pysimultan-0.4.13.dist-info}/WHEEL +0 -0
- {pysimultan-0.4.11.dist-info → pysimultan-0.4.13.dist-info}/licenses/LICENSE.txt +0 -0
PySimultan2/__about__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
version = '0.4.
|
1
|
+
version = '0.4.13'
|
PySimultan2/data_model.py
CHANGED
@@ -3,7 +3,6 @@ import os
|
|
3
3
|
import shutil
|
4
4
|
from uuid import uuid4
|
5
5
|
from colorlog import getLogger
|
6
|
-
from weakref import WeakSet, WeakValueDictionary
|
7
6
|
from . import config
|
8
7
|
from .utils import *
|
9
8
|
from pathlib import PosixPath, WindowsPath
|
@@ -73,8 +72,16 @@ class IAuthenticationServiceNew(SimultanUsers.IAuthenticationService):
|
|
73
72
|
return user.Item1
|
74
73
|
|
75
74
|
|
76
|
-
data_models = WeakSet()
|
77
|
-
data_models_dict = WeakValueDictionary()
|
75
|
+
# data_models = WeakSet()
|
76
|
+
# data_models_dict = WeakValueDictionary()
|
77
|
+
|
78
|
+
|
79
|
+
# def get_default_data_model():
|
80
|
+
# return data_models[0]
|
81
|
+
#
|
82
|
+
#
|
83
|
+
# def add_data_model(data_model):
|
84
|
+
# data_models.add(data_model)
|
78
85
|
|
79
86
|
|
80
87
|
# noinspection PyUnresolvedReferences
|
@@ -121,7 +128,7 @@ class DataModel:
|
|
121
128
|
instance = super().__new__(cls)
|
122
129
|
config.set_default_data_model(instance)
|
123
130
|
try:
|
124
|
-
|
131
|
+
default_data_model.set_default_data_model(instance)
|
125
132
|
except Exception as e:
|
126
133
|
logger.error(f'Error adding instance {instance} to data_models: {e}')
|
127
134
|
return instance
|
@@ -140,7 +147,6 @@ class DataModel:
|
|
140
147
|
atexit.register(self.cleanup)
|
141
148
|
|
142
149
|
self.id = uuid4()
|
143
|
-
data_models_dict[self.id] = self
|
144
150
|
self.data = None
|
145
151
|
self._project_data_manager = None
|
146
152
|
self._user = None
|
@@ -377,9 +383,6 @@ class DataModel:
|
|
377
383
|
del self._project_data_manager
|
378
384
|
self._project_data_manager = None
|
379
385
|
|
380
|
-
data_models = WeakSet()
|
381
|
-
data_models_dict = WeakValueDictionary()
|
382
|
-
|
383
386
|
if config.get_default_data_model() is self:
|
384
387
|
config.set_default_data_model(None)
|
385
388
|
|
PySimultan2/object_mapper.py
CHANGED
@@ -5,7 +5,6 @@ from colorlog import getLogger
|
|
5
5
|
from weakref import WeakSet
|
6
6
|
|
7
7
|
from . import config
|
8
|
-
from .data_model import data_models
|
9
8
|
from .utils import create_python_object, add_properties
|
10
9
|
from .default_types import ComponentList, component_list_map, ComponentDictionary, component_dict_map
|
11
10
|
|
@@ -40,6 +39,8 @@ class PythonMapper(object):
|
|
40
39
|
|
41
40
|
def __init__(self, *args, **kwargs):
|
42
41
|
|
42
|
+
self._mapped_classes = {}
|
43
|
+
|
43
44
|
self.name = kwargs.get('name', 'PythonMapper')
|
44
45
|
self.registered_classes: dict[str: SimultanObject] = copy(default_registered_classes) # dict with all registered classes: {taxonomy: class}
|
45
46
|
|
@@ -58,6 +59,19 @@ class PythonMapper(object):
|
|
58
59
|
self.re_register = False
|
59
60
|
self.load_undefined = False
|
60
61
|
|
62
|
+
@property
|
63
|
+
def mapped_classes(self):
|
64
|
+
if len(self.registered_classes) > len(self._mapped_classes):
|
65
|
+
for taxonomy in self.registered_classes.keys():
|
66
|
+
if self._mapped_classes.get(taxonomy, None) is None:
|
67
|
+
self.create_mapped_class(taxonomy, self.registered_classes[taxonomy])
|
68
|
+
|
69
|
+
return self._mapped_classes
|
70
|
+
|
71
|
+
@mapped_classes.setter
|
72
|
+
def mapped_classes(self, value):
|
73
|
+
self._mapped_classes = value
|
74
|
+
|
61
75
|
def register(self, taxonomy, cls, taxonomy_map=None):
|
62
76
|
if not self.re_register and taxonomy in self.registered_classes.keys():
|
63
77
|
return
|
@@ -95,7 +109,7 @@ class PythonMapper(object):
|
|
95
109
|
new_class_dict.update(self.get_properties(taxonomy))
|
96
110
|
new_class = type(cls.__name__, bases, new_class_dict)
|
97
111
|
|
98
|
-
self.
|
112
|
+
self._mapped_classes[taxonomy] = new_class
|
99
113
|
|
100
114
|
return new_class
|
101
115
|
|
@@ -113,7 +127,7 @@ class PythonMapper(object):
|
|
113
127
|
component_list = list(data_model.data.Items)
|
114
128
|
|
115
129
|
if data_model is None:
|
116
|
-
data_model =
|
130
|
+
data_model = config.get_default_data_model()
|
117
131
|
|
118
132
|
if create_all:
|
119
133
|
new_component_list = set()
|
PySimultan2/simultan_object.py
CHANGED
@@ -2,7 +2,7 @@ import hashlib
|
|
2
2
|
import json
|
3
3
|
|
4
4
|
from copy import copy
|
5
|
-
from weakref import WeakSet
|
5
|
+
from weakref import WeakSet
|
6
6
|
from . import utils
|
7
7
|
from numpy import ndarray
|
8
8
|
import colorlog
|
@@ -63,20 +63,15 @@ class MetaMock(type):
|
|
63
63
|
|
64
64
|
data_model = kwargs.get('data_model', None)
|
65
65
|
if data_model is None:
|
66
|
-
|
67
|
-
|
68
|
-
|
66
|
+
if config.get_default_data_model() is not None:
|
67
|
+
logger.warning(
|
68
|
+
f'No data model provided. Using default data model: {config.get_default_data_model().id}')
|
69
|
+
data_model = config.get_default_data_model()
|
69
70
|
kwargs['data_model'] = data_model
|
70
71
|
else:
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
data_model = config.get_default_data_model()
|
75
|
-
kwargs['data_model'] = data_model
|
76
|
-
else:
|
77
|
-
raise TypeError((f'Error creating new instance of class {cls.__name__}:\n'
|
78
|
-
f'Any data model was defined. Tried to use default data model but there are multiple datamodels.\n'
|
79
|
-
f'Define the data model to use with the key: data_model'))
|
72
|
+
raise TypeError((f'Error creating new instance of class {cls.__name__}:\n'
|
73
|
+
f'Any data model was defined. Tried to use default data model but there are multiple datamodels.\n'
|
74
|
+
f'Define the data model to use with the key: data_model'))
|
80
75
|
|
81
76
|
wrapped_obj = cls.create_simultan_component(*args, **kwargs)
|
82
77
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: PySimultan
|
3
|
-
Version: 0.4.
|
3
|
+
Version: 0.4.13
|
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,11 +1,11 @@
|
|
1
|
-
PySimultan2/__about__.py,sha256=
|
1
|
+
PySimultan2/__about__.py,sha256=EY8c7-iLRSsrqamMgeexR0J6u60PLRTp9GGf8iqIJsI,20
|
2
2
|
PySimultan2/__init__.py,sha256=cabTN1Oz8xtFM31ouBKg5lwLqW5vtexDP669PYyNLnA,3224
|
3
|
-
PySimultan2/data_model.py,sha256=
|
3
|
+
PySimultan2/data_model.py,sha256=bRApPggy5dOMFDt6MLctEDWevY9aOYB3OWQMCCsSa0k,27201
|
4
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=lGF9gJNMtrtfUErVnaDgTpLSaJh1wzdQdavTlWeBQho,12938
|
8
|
+
PySimultan2/simultan_object.py,sha256=xpBmyJTkP7iHg4CgaoezBB5YxpES2RaoFOUSe_2jWwI,16899
|
9
9
|
PySimultan2/taxonomy_maps.py,sha256=IYpIat6ZJi5MyCbsjAxWvVOWDRp_VvSMWUY3CApKSik,8061
|
10
10
|
PySimultan2/utils.py,sha256=J3T7KDfONFeLWBulXmGMCaaOu5sfkDSHmI92JWO8dW4,62553
|
11
11
|
PySimultan2/geometry/__init__.py,sha256=nJolTD1i5J8qUkOQa-r3D20aq3Co3sN31Xc0n4wJpJo,248
|
@@ -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.13.dist-info/METADATA,sha256=AQifEiOB8xWkvUKa_ECTWSCvGhSrhlZ-7j7jSHwyRvI,2483
|
79
|
+
pysimultan-0.4.13.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
|
80
|
+
pysimultan-0.4.13.dist-info/licenses/LICENSE.txt,sha256=pmSr98k6N005KMojnZxzLGRuRlDjDx3PUrK1lFj53HA,1126
|
81
|
+
pysimultan-0.4.13.dist-info/RECORD,,
|
File without changes
|
File without changes
|