PySimultan 0.2.3__tar.gz → 0.2.4__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. {pysimultan-0.2.3 → pysimultan-0.2.4}/LICENSE.txt +17 -17
  2. {pysimultan-0.2.3 → pysimultan-0.2.4}/MANIFEST.in +9 -9
  3. {pysimultan-0.2.3/src/PySimultan.egg-info → pysimultan-0.2.4}/PKG-INFO +1 -1
  4. {pysimultan-0.2.3 → pysimultan-0.2.4}/README.md +5 -5
  5. {pysimultan-0.2.3 → pysimultan-0.2.4}/pyproject.toml +1 -1
  6. {pysimultan-0.2.3 → pysimultan-0.2.4}/requirements.txt +14 -14
  7. {pysimultan-0.2.3 → pysimultan-0.2.4}/setup.py +1 -1
  8. {pysimultan-0.2.3 → pysimultan-0.2.4/src/PySimultan.egg-info}/PKG-INFO +1 -1
  9. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan.egg-info/top_level.txt +1 -0
  10. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/data_model.py +19 -15
  11. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/object_mapper.py +1 -0
  12. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/simultan_object.py +1 -2
  13. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/utils.py +2 -2
  14. {pysimultan-0.2.3 → pysimultan-0.2.4}/tests/test_calculate_steady_state_temperature.py +39 -17
  15. {pysimultan-0.2.3 → pysimultan-0.2.4}/setup.cfg +0 -0
  16. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan.egg-info/SOURCES.txt +0 -0
  17. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan.egg-info/dependency_links.txt +0 -0
  18. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan.egg-info/not-zip-safe +0 -0
  19. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/__init__.py +0 -0
  20. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/config.py +0 -0
  21. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/default_types.py +0 -0
  22. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/files.py +0 -0
  23. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/geometry/__init__.py +0 -0
  24. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/geometry/geometry_base.py +0 -0
  25. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/geometry/utils.py +0 -0
  26. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/multi_values.py +0 -0
  27. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/AssimpNet.dll +0 -0
  28. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/AvalonDock.dll +0 -0
  29. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/BruTile.dll +0 -0
  30. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/ClosedXML.dll +0 -0
  31. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/ComponentBuilder.dll +0 -0
  32. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/ComponentBuilder.dll.config +0 -0
  33. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/ComponentBuilder.runtimeconfig.json +0 -0
  34. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/ComponentBuilder.xml +0 -0
  35. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/ControlzEx.dll +0 -0
  36. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/Cyotek.Drawing.BitmapFont.dll +0 -0
  37. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/DocumentFormat.OpenXml.dll +0 -0
  38. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/DotSpatial.Projections.dll +0 -0
  39. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/ExcelNumberFormat.dll +0 -0
  40. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/Fluent.dll +0 -0
  41. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/GeometryViewer.dll +0 -0
  42. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/GeometryViewer.dll.config +0 -0
  43. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/GeometryViewer.xml +0 -0
  44. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/HelixToolkit.Core.Wpf.dll +0 -0
  45. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.Wpf.dll +0 -0
  46. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.dll +0 -0
  47. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/HelixToolkit.dll +0 -0
  48. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/MathNet.Numerics.dll +0 -0
  49. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.AspNetCore.Authorization.dll +0 -0
  50. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.AspNetCore.Metadata.dll +0 -0
  51. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.Extensions.DependencyInjection.Abstractions.dll +0 -0
  52. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.Extensions.Logging.Abstractions.dll +0 -0
  53. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.Extensions.Options.dll +0 -0
  54. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.Extensions.Primitives.dll +0 -0
  55. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.Shell.dll +0 -0
  56. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.dll +0 -0
  57. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.Xaml.Behaviors.dll +0 -0
  58. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/Newtonsoft.Json.Bson.dll +0 -0
  59. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/Newtonsoft.Json.dll +0 -0
  60. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.Client.dll +0 -0
  61. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.Client.dll.config +0 -0
  62. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.DataTransferLibrary.dll +0 -0
  63. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.DataTransferLibrary.dll.config +0 -0
  64. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.Lang.dll +0 -0
  65. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.Lang.xml +0 -0
  66. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.Plugins.dll +0 -0
  67. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.Plugins.xml +0 -0
  68. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.UI.dll +0 -0
  69. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.UI.xml +0 -0
  70. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.dll +0 -0
  71. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.xml +0 -0
  72. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.D3DCompiler.dll +0 -0
  73. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.DXGI.dll +0 -0
  74. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.Direct2D1.dll +0 -0
  75. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.Direct3D11.dll +0 -0
  76. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.Direct3D9.dll +0 -0
  77. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.Mathematics.dll +0 -0
  78. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.dll +0 -0
  79. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SitePlanner.dll +0 -0
  80. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SitePlanner.dll.config +0 -0
  81. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/SitePlanner.xml +0 -0
  82. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/Sprache.Calc.dll +0 -0
  83. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/Sprache.dll +0 -0
  84. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/System.Data.OleDb.dll +0 -0
  85. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/System.Net.Http.Formatting.dll +0 -0
  86. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/XAMLMarkupExtensions.dll +0 -0
  87. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/__init__.py +0 -0
  88. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/assimp.dll +0 -0
  89. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/defaultsettings.xml +0 -0
  90. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/resources/setup.bat +0 -0
  91. {pysimultan-0.2.3 → pysimultan-0.2.4}/src/PySimultan2/taxonomy_maps.py +0 -0
  92. {pysimultan-0.2.3 → pysimultan-0.2.4}/tests/test_calc_static_zone_temperature.py +0 -0
  93. {pysimultan-0.2.3 → pysimultan-0.2.4}/tests/test_create_geometry.py +0 -0
  94. {pysimultan-0.2.3 → pysimultan-0.2.4}/tests/test_files.py +0 -0
  95. {pysimultan-0.2.3 → pysimultan-0.2.4}/tests/test_files_load.py +0 -0
  96. {pysimultan-0.2.3 → pysimultan-0.2.4}/tests/test_load_geometry.py +0 -0
  97. {pysimultan-0.2.3 → pysimultan-0.2.4}/tests/test_load_multi_values.py +0 -0
  98. {pysimultan-0.2.3 → pysimultan-0.2.4}/tests/test_new_dll.py +0 -0
  99. {pysimultan-0.2.3 → pysimultan-0.2.4}/tests/test_new_project_creation.py +0 -0
  100. {pysimultan-0.2.3 → pysimultan-0.2.4}/tests/test_numeric_map.py +0 -0
  101. {pysimultan-0.2.3 → pysimultan-0.2.4}/tests/test_pythonnet.py +0 -0
  102. {pysimultan-0.2.3 → pysimultan-0.2.4}/tests/test_register_class.py +0 -0
  103. {pysimultan-0.2.3 → pysimultan-0.2.4}/tests/test_set_attr_property.py +0 -0
  104. {pysimultan-0.2.3 → pysimultan-0.2.4}/tests/test_set_dictionary.py +0 -0
  105. {pysimultan-0.2.3 → pysimultan-0.2.4}/tests/test_set_properties.py +0 -0
  106. {pysimultan-0.2.3 → pysimultan-0.2.4}/tests/test_taxonomie_maps.py +0 -0
  107. {pysimultan-0.2.3 → pysimultan-0.2.4}/tests/test_taxonomies.py +0 -0
  108. {pysimultan-0.2.3 → pysimultan-0.2.4}/tests/test_ui.py +0 -0
@@ -1,17 +1,17 @@
1
- Permission is hereby granted, free of charge, to any person obtaining a copy
2
- of this software and associated documentation files (the "Software"), to
3
- deal in the Software without restriction, including without limitation the
4
- rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
5
- sell copies of the Software, and to permit persons to whom the Software is
6
- furnished to do so, subject to the following conditions:
7
-
8
- The above copyright notice and this permission notice shall be included in
9
- all copies or substantial portions of the Software.
10
-
11
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
12
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
13
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
14
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
15
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
16
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
17
- IN THE SOFTWARE.
1
+ Permission is hereby granted, free of charge, to any person obtaining a copy
2
+ of this software and associated documentation files (the "Software"), to
3
+ deal in the Software without restriction, including without limitation the
4
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
5
+ sell copies of the Software, and to permit persons to whom the Software is
6
+ furnished to do so, subject to the following conditions:
7
+
8
+ The above copyright notice and this permission notice shall be included in
9
+ all copies or substantial portions of the Software.
10
+
11
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
12
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
13
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
14
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
15
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
16
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
17
+ IN THE SOFTWARE.
@@ -1,9 +1,9 @@
1
- include README.rst
2
- include LICENSE.txt
3
- include requirements.txt
4
-
5
- graft src/py_plot_tools/resources
6
- graft src/py_plot_tools/basic_geometries/gui_adaptions/infos/generated
7
- graft src/py_plot_tools/generated
8
- recursive-exclude src/tests *
9
- recursive-include src/resources *
1
+ include README.rst
2
+ include LICENSE.txt
3
+ include requirements.txt
4
+
5
+ graft src/py_plot_tools/resources
6
+ graft src/py_plot_tools/basic_geometries/gui_adaptions/infos/generated
7
+ graft src/py_plot_tools/generated
8
+ recursive-exclude src/tests *
9
+ recursive-include src/resources *
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PySimultan
3
- Version: 0.2.3
3
+ Version: 0.2.4
4
4
  Home-page:
5
5
  Author: Max Buehler
6
6
  Author-email: Max Bühler <maximilian.buehler@tuwien.ac.at>
@@ -1,5 +1,5 @@
1
- ===================================================
2
- geometry_utils: Several tools to work with geometry
3
- ===================================================
4
-
5
- Python library with several tools to work with geometry
1
+ ===================================================
2
+ geometry_utils: Several tools to work with geometry
3
+ ===================================================
4
+
5
+ Python library with several tools to work with geometry
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "PySimultan"
3
- version = "0.2.3"
3
+ version = "0.2.4"
4
4
  authors = [
5
5
  {name = "Max Bühler", email = "maximilian.buehler@tuwien.ac.at"}
6
6
  ]
@@ -1,14 +1,14 @@
1
- #
2
- # This file is autogenerated by pip-compile
3
- # To update, run:
4
- #
5
- # pip-compile requirements.in
6
- #
7
- six
8
- numpy
9
- pythonnet
10
- colorlog
11
- ruamel.yaml
12
- tqdm
13
- pandas
14
- pyarrow
1
+ #
2
+ # This file is autogenerated by pip-compile
3
+ # To update, run:
4
+ #
5
+ # pip-compile requirements.in
6
+ #
7
+ six
8
+ numpy
9
+ pythonnet
10
+ colorlog
11
+ ruamel.yaml
12
+ tqdm
13
+ pandas
14
+ pyarrow
@@ -8,7 +8,7 @@ project_dir = Path(__file__).parent
8
8
 
9
9
  setuptools.setup(
10
10
  name="PySimultan",
11
- version="0.2.3",
11
+ version="0.2.4",
12
12
  description="Integrate SIMULTAN into Python",
13
13
  # Allow UTF-8 characters in README with encoding argument.
14
14
  long_description=project_dir.joinpath("README.md").read_text(encoding="utf-8"),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PySimultan
3
- Version: 0.2.3
3
+ Version: 0.2.4
4
4
  Home-page:
5
5
  Author: Max Buehler
6
6
  Author-email: Max Bühler <maximilian.buehler@tuwien.ac.at>
@@ -8,7 +8,7 @@ from weakref import WeakSet, WeakValueDictionary
8
8
  from . import config
9
9
  from .utils import *
10
10
  from pathlib import PosixPath, WindowsPath
11
- from typing import Union, Tuple
11
+ from typing import Union, Tuple, TYPE_CHECKING
12
12
 
13
13
 
14
14
  # from SIMULTAN import Projects
@@ -17,7 +17,7 @@ from SIMULTAN.Projects import ExtendedProjectData
17
17
  # noinspection PyUnresolvedReferences
18
18
  from SIMULTAN import Utils
19
19
  # noinspection PyUnresolvedReferences
20
- from SIMULTAN.Data import Users
20
+ from SIMULTAN.Data import Users as SimultanUsers
21
21
  # from SIMULTAN.Serializer import Projects
22
22
  from SIMULTAN.Serializer.SimGeo import *
23
23
  from SIMULTAN.Serializer.Projects import *
@@ -44,10 +44,14 @@ from System.Text import *
44
44
  from .files import add_tag_to_resource
45
45
 
46
46
 
47
+ if TYPE_CHECKING:
48
+ from .object_mapper import PythonMapper
49
+
50
+
47
51
  logger = getLogger('PySimultan')
48
52
 
49
53
 
50
- class IAuthenticationServiceNew(Users.IAuthenticationService):
54
+ class IAuthenticationServiceNew(SimultanUsers.IAuthenticationService):
51
55
  __namespace__ = "authenticate_namespace"
52
56
 
53
57
  user_name = None
@@ -88,13 +92,13 @@ class DataModel:
88
92
 
89
93
  passwordArray = Encoding.UTF8.GetBytes(password)
90
94
  encryptionKey = RandomNumberGenerator.GetBytes(32)
91
- encryptedEncryptionKey = Users.SimUsersManager.EncryptEncryptionKey(encryptionKey, passwordArray)
92
- passwordHash = Users.SimUsersManager.HashPassword(passwordArray)
93
- initialUser = Users.SimUser(Guid.NewGuid(),
94
- user_name,
95
- passwordHash,
96
- encryptedEncryptionKey,
97
- Users.SimUserRole.ADMINISTRATOR)
95
+ encryptedEncryptionKey = SimultanUsers.SimUsersManager.EncryptEncryptionKey(encryptionKey, passwordArray)
96
+ passwordHash = SimultanUsers.SimUsersManager.HashPassword(passwordArray)
97
+ initialUser = SimultanUsers.SimUser(Guid.NewGuid(),
98
+ user_name,
99
+ passwordHash,
100
+ encryptedEncryptionKey,
101
+ SimultanUsers.SimUserRole.ADMINISTRATOR)
98
102
 
99
103
  tempPath = Path.GetTempPath()
100
104
  projectFile = FileInfo(project_path)
@@ -151,7 +155,7 @@ class DataModel:
151
155
  self.i_aut_service.user_name = self.user_name
152
156
  self.i_aut_service.password = self.password
153
157
 
154
- self.service_provider.AddService[Users.IAuthenticationService](self.i_aut_service())
158
+ self.service_provider.AddService[SimultanUsers.IAuthenticationService](self.i_aut_service())
155
159
 
156
160
  # self.serv = GeometryViewerService([], self.service_provider)
157
161
  # self.service_provider.AddService[IGeometryViewerService](self.serv)
@@ -249,13 +253,13 @@ class DataModel:
249
253
  self._project_data_manager = value
250
254
 
251
255
  @property
252
- def user(self) -> Users.SimUserRole:
256
+ def user(self) -> SimultanUsers.SimUserRole:
253
257
  if self._user is None:
254
- self._user = Users.SimUserRole.ADMINISTRATOR
258
+ self._user = SimultanUsers.SimUserRole.ADMINISTRATOR
255
259
  return self._user
256
260
 
257
261
  @user.setter
258
- def user(self, value: Users.SimUserRole):
262
+ def user(self, value: SimultanUsers.SimUserRole):
259
263
  if value != self._user:
260
264
  self.project_data_manager = None
261
265
  self._project = None
@@ -279,7 +283,7 @@ class DataModel:
279
283
  def project(self, value):
280
284
  self._project = value
281
285
 
282
- def get_typed_data(self, mapper, create_all=False) -> list[SimultanObject]:
286
+ def get_typed_data(self, mapper: 'PythonMapper', create_all=False) -> list[SimultanObject]:
283
287
  """
284
288
  Return the typed data from the project
285
289
  :param mapper:
@@ -66,6 +66,7 @@ class PythonMapper(object):
66
66
  new_class_dict = {'__init__': new_init,
67
67
  '__name__': cls.__name__,
68
68
  '_taxonomy': taxonomy,
69
+ '_cls_instances': WeakSet(),
69
70
  '_taxonomy_map': self.taxonomy_maps.get(taxonomy, None),
70
71
  '_base': bases,
71
72
  '_object_mapper': self}
@@ -109,7 +109,6 @@ class SimultanObject(object, metaclass=MetaMock):
109
109
  @classproperty
110
110
  def cls_instances(cls) -> list['SimultanObject']:
111
111
  try:
112
- _ = cls._cls_instances
113
112
  return list(cls._cls_instances)
114
113
  except Exception as e:
115
114
  logger.error(f'Error getting cls_instances: {e}')
@@ -123,7 +122,7 @@ class SimultanObject(object, metaclass=MetaMock):
123
122
 
124
123
  def __new__(cls, *args, **kwargs):
125
124
  instance = super().__new__(cls)
126
- if not hasattr(cls, '_cls_instances'):
125
+ if "_cls_instances" not in cls.__dict__:
127
126
  cls._cls_instances = WeakSet()
128
127
  try:
129
128
  cls._cls_instances.add(instance)
@@ -5,7 +5,7 @@ from enum import Enum
5
5
  from functools import lru_cache
6
6
  import numpy as np
7
7
  import pandas as pd
8
- from typing import List as TypeList, Union, Optional
8
+ from typing import List as TypeList, Union, Optional, Type
9
9
  from SIMULTAN.Data.Components import (ComponentWalker, SimComponent, SimBoolParameter, SimDoubleParameter,
10
10
  SimEnumParameter, SimIntegerParameter, SimStringParameter, ComponentMapping,
11
11
  SimSlot, SimComponentVisibility, SimChildComponentEntry, SimDefaultSlots,
@@ -55,7 +55,7 @@ class CircularReferenceResolver(object):
55
55
  circ_ref_resolver = CircularReferenceResolver()
56
56
 
57
57
 
58
- def create_python_object(wrapped_obj: SimComponent, cls: SimultanObject, *args, **kwargs):
58
+ def create_python_object(wrapped_obj: SimComponent, cls: Type[SimultanObject], *args, **kwargs):
59
59
  """
60
60
  Create a new mapped python object from a wrapped object
61
61
  :param wrapped_obj: wrapped object to create the python object from
@@ -1,14 +1,14 @@
1
- from PySimultan2 import FileInfo
2
- from PySimultan2 import DataModel
3
- from PySimultan2 import PythonMapper
4
- from PySimultan2.taxonomy_maps import TaxonomyMap, Content
1
+ from src.PySimultan2 import FileInfo
2
+ from src.PySimultan2 import DataModel
3
+ from src.PySimultan2 import PythonMapper
4
+ from src.PySimultan2.taxonomy_maps import TaxonomyMap, Content
5
5
 
6
6
  from typing import List
7
7
 
8
8
  from tests import resources
9
- from PySimultan2.geometry.geometry_base import (GeometryModel, SimultanLayer, SimultanVertex, SimultanEdge,
9
+ from src.PySimultan2.geometry.geometry_base import (GeometryModel, SimultanLayer, SimultanVertex, SimultanEdge,
10
10
  SimultanEdgeLoop, SimultanFace, SimultanVolume)
11
- from PySimultan2.geometry.utils import create_cube
11
+ from src.PySimultan2.geometry.utils import create_cube
12
12
 
13
13
  try:
14
14
  import importlib.resources as pkg_resources
@@ -20,17 +20,12 @@ with pkg_resources.path(resources, 'new_geometry_test.simultan') as r_path:
20
20
  project_path = str(r_path)
21
21
 
22
22
 
23
- data_model = DataModel.create_new_project(project_path=project_path,
24
- user_name='admin',
25
- password='admin')
26
-
27
-
28
- def create_geometry_model(name='new_geometry_test'):
23
+ def create_geometry_model(name='new_geometry_test', data_model=None):
29
24
  return GeometryModel(name=name,
30
25
  data_model=data_model)
31
26
 
32
27
 
33
- def create_classes() -> dict[str, type]:
28
+ def create_classes() -> tuple[dict[str, type], PythonMapper]:
34
29
 
35
30
  class Source(object):
36
31
  def __init__(self, *args, **kwargs):
@@ -400,16 +395,21 @@ def create_mapped_classes(classes: dict[str, type]) -> dict[str, type]:
400
395
  'HeatFluxBoundaryCondition': mapped_heat_flux_bc_cls,
401
396
  'Source': mapped_source_cls}
402
397
 
403
- return mapped_cls_dict
398
+ return mapped_cls_dict, mapper
404
399
 
405
400
 
406
- if __name__ == '__main__':
407
- geo_model = create_geometry_model(name='new_geometry_test')
401
+ def create_model():
402
+ data_model = DataModel.create_new_project(project_path=project_path,
403
+ user_name='admin',
404
+ password='admin')
405
+
406
+ geo_model = create_geometry_model(name='new_geometry_test',
407
+ data_model=data_model)
408
408
 
409
409
  cube = create_cube(data_model, geo_model, scale=10)
410
410
 
411
411
  classes = create_classes()
412
- mapped_classes = create_mapped_classes(classes)
412
+ mapped_classes, mapper = create_mapped_classes(classes)
413
413
 
414
414
  Material = mapped_classes['Material']
415
415
  WallLayer = mapped_classes['Layer']
@@ -510,3 +510,25 @@ if __name__ == '__main__':
510
510
 
511
511
  data_model.save()
512
512
  data_model.cleanup()
513
+ mapper.clear()
514
+
515
+
516
+ def load_model():
517
+
518
+ mapped_cls_dict, mapper = create_mapped_classes(create_classes())
519
+ data_model = DataModel(project_path=project_path,
520
+ user_name='admin',
521
+ password='admin')
522
+ typed_data = data_model.get_typed_data(mapper=mapper)
523
+ zone_cls = mapper.get_mapped_class('Zone')
524
+ zone1 = zone_cls.cls_instances[0]
525
+ zone1.calculate_steady_state_temperature()
526
+ return typed_data
527
+
528
+
529
+ if __name__ == '__main__':
530
+
531
+ #create_model()
532
+ typed_data = load_model()
533
+
534
+ pass
File without changes
File without changes