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 CHANGED
@@ -1 +1 @@
1
- version = '0.4.11'
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
- data_models.add(instance)
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
 
@@ -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.mapped_classes[taxonomy] = new_class
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 = list(data_models)[0]
130
+ data_model = config.get_default_data_model()
117
131
 
118
132
  if create_all:
119
133
  new_component_list = set()
@@ -2,7 +2,7 @@ import hashlib
2
2
  import json
3
3
 
4
4
  from copy import copy
5
- from weakref import WeakSet, WeakValueDictionary
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
- from .data_model import data_models
67
- if list(data_models.data).__len__() == 1:
68
- data_model = list(data_models.data)[0]()
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
- if config.get_default_data_model() is not None:
72
- logger.warning(
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
- 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.11
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=wj8hrxMOKTkO5CRs4zxQrfueZQ9w0XgwJ6F_yezzYAk,20
1
+ PySimultan2/__about__.py,sha256=EY8c7-iLRSsrqamMgeexR0J6u60PLRTp9GGf8iqIJsI,20
2
2
  PySimultan2/__init__.py,sha256=cabTN1Oz8xtFM31ouBKg5lwLqW5vtexDP669PYyNLnA,3224
3
- PySimultan2/data_model.py,sha256=3O6O2Lw0lQJtlwNa7_NuTjp4gpdHiusjXHyWtmmHtlU,27214
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=nMQL3mmir3nEiW2eEm9EgE3QXjy_XRrIbxlQDHo6F3c,12441
8
- PySimultan2/simultan_object.py,sha256=Plr9nwgRmKzdkTO7l8ksWekEow9pT-MgjjAfLlChgDI,17208
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.11.dist-info/METADATA,sha256=u-rayltJK3PsxzyFfZOWcpJwON9FND0r_sWLSyvLASI,2483
79
- pysimultan-0.4.11.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
80
- pysimultan-0.4.11.dist-info/licenses/LICENSE.txt,sha256=pmSr98k6N005KMojnZxzLGRuRlDjDx3PUrK1lFj53HA,1126
81
- pysimultan-0.4.11.dist-info/RECORD,,
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,,