PySimultan 0.2.2__tar.gz → 0.2.4__tar.gz

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.
Files changed (108) hide show
  1. {pysimultan-0.2.2/src/PySimultan.egg-info → pysimultan-0.2.4}/PKG-INFO +1 -1
  2. {pysimultan-0.2.2 → pysimultan-0.2.4}/pyproject.toml +58 -58
  3. {pysimultan-0.2.2 → pysimultan-0.2.4}/setup.py +52 -52
  4. {pysimultan-0.2.2 → pysimultan-0.2.4/src/PySimultan.egg-info}/PKG-INFO +1 -1
  5. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/data_model.py +19 -15
  6. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/object_mapper.py +4 -0
  7. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/simultan_object.py +1 -2
  8. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/utils.py +2 -2
  9. {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_calculate_steady_state_temperature.py +39 -17
  10. {pysimultan-0.2.2 → pysimultan-0.2.4}/LICENSE.txt +0 -0
  11. {pysimultan-0.2.2 → pysimultan-0.2.4}/MANIFEST.in +0 -0
  12. {pysimultan-0.2.2 → pysimultan-0.2.4}/README.md +0 -0
  13. {pysimultan-0.2.2 → pysimultan-0.2.4}/requirements.txt +0 -0
  14. {pysimultan-0.2.2 → pysimultan-0.2.4}/setup.cfg +0 -0
  15. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan.egg-info/SOURCES.txt +0 -0
  16. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan.egg-info/dependency_links.txt +0 -0
  17. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan.egg-info/not-zip-safe +0 -0
  18. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan.egg-info/top_level.txt +0 -0
  19. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/__init__.py +0 -0
  20. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/config.py +0 -0
  21. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/default_types.py +0 -0
  22. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/files.py +0 -0
  23. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/geometry/__init__.py +0 -0
  24. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/geometry/geometry_base.py +0 -0
  25. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/geometry/utils.py +0 -0
  26. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/multi_values.py +0 -0
  27. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/AssimpNet.dll +0 -0
  28. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/AvalonDock.dll +0 -0
  29. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/BruTile.dll +0 -0
  30. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/ClosedXML.dll +0 -0
  31. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/ComponentBuilder.dll +0 -0
  32. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/ComponentBuilder.dll.config +0 -0
  33. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/ComponentBuilder.runtimeconfig.json +0 -0
  34. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/ComponentBuilder.xml +0 -0
  35. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/ControlzEx.dll +0 -0
  36. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Cyotek.Drawing.BitmapFont.dll +0 -0
  37. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/DocumentFormat.OpenXml.dll +0 -0
  38. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/DotSpatial.Projections.dll +0 -0
  39. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/ExcelNumberFormat.dll +0 -0
  40. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Fluent.dll +0 -0
  41. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/GeometryViewer.dll +0 -0
  42. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/GeometryViewer.dll.config +0 -0
  43. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/GeometryViewer.xml +0 -0
  44. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/HelixToolkit.Core.Wpf.dll +0 -0
  45. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.Wpf.dll +0 -0
  46. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.dll +0 -0
  47. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/HelixToolkit.dll +0 -0
  48. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/MathNet.Numerics.dll +0 -0
  49. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.AspNetCore.Authorization.dll +0 -0
  50. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.AspNetCore.Metadata.dll +0 -0
  51. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.Extensions.DependencyInjection.Abstractions.dll +0 -0
  52. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.Extensions.Logging.Abstractions.dll +0 -0
  53. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.Extensions.Options.dll +0 -0
  54. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.Extensions.Primitives.dll +0 -0
  55. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.Shell.dll +0 -0
  56. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.dll +0 -0
  57. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.Xaml.Behaviors.dll +0 -0
  58. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Newtonsoft.Json.Bson.dll +0 -0
  59. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Newtonsoft.Json.dll +0 -0
  60. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.Client.dll +0 -0
  61. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.Client.dll.config +0 -0
  62. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.DataTransferLibrary.dll +0 -0
  63. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.DataTransferLibrary.dll.config +0 -0
  64. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.Lang.dll +0 -0
  65. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.Lang.xml +0 -0
  66. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.Plugins.dll +0 -0
  67. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.Plugins.xml +0 -0
  68. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.UI.dll +0 -0
  69. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.UI.xml +0 -0
  70. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.dll +0 -0
  71. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.xml +0 -0
  72. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.D3DCompiler.dll +0 -0
  73. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.DXGI.dll +0 -0
  74. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.Direct2D1.dll +0 -0
  75. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.Direct3D11.dll +0 -0
  76. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.Direct3D9.dll +0 -0
  77. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.Mathematics.dll +0 -0
  78. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.dll +0 -0
  79. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SitePlanner.dll +0 -0
  80. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SitePlanner.dll.config +0 -0
  81. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SitePlanner.xml +0 -0
  82. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Sprache.Calc.dll +0 -0
  83. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Sprache.dll +0 -0
  84. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/System.Data.OleDb.dll +0 -0
  85. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/System.Net.Http.Formatting.dll +0 -0
  86. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/XAMLMarkupExtensions.dll +0 -0
  87. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/__init__.py +0 -0
  88. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/assimp.dll +0 -0
  89. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/defaultsettings.xml +0 -0
  90. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/setup.bat +0 -0
  91. {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/taxonomy_maps.py +0 -0
  92. {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_calc_static_zone_temperature.py +0 -0
  93. {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_create_geometry.py +0 -0
  94. {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_files.py +0 -0
  95. {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_files_load.py +0 -0
  96. {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_load_geometry.py +0 -0
  97. {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_load_multi_values.py +0 -0
  98. {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_new_dll.py +0 -0
  99. {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_new_project_creation.py +0 -0
  100. {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_numeric_map.py +0 -0
  101. {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_pythonnet.py +0 -0
  102. {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_register_class.py +0 -0
  103. {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_set_attr_property.py +0 -0
  104. {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_set_dictionary.py +0 -0
  105. {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_set_properties.py +0 -0
  106. {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_taxonomie_maps.py +0 -0
  107. {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_taxonomies.py +0 -0
  108. {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_ui.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PySimultan
3
- Version: 0.2.2
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,58 +1,58 @@
1
- [project]
2
- name = "PySimultan"
3
- version = "0.2.2"
4
- authors = [
5
- {name = "Max Bühler", email = "maximilian.buehler@tuwien.ac.at"}
6
- ]
7
- readme = "README.md"
8
- requires-python = ">=3.8"
9
- classifiers = [
10
- "Programming Language :: Python :: 3",
11
- "License :: OSI Approved :: MIT License",
12
- "Operating System :: OS Independent"
13
- ]
14
- license = {file = "LICENSE.txt"}
15
-
16
- [build-system]
17
- requires = ["setuptools", "wheel"]
18
- build-backend = "setuptools.build_meta"
19
-
20
- [tool.setuptools.packages.find]
21
- where = ["src"]
22
-
23
- [tool.black]
24
- # Use the more relaxed max line length permitted in PEP8.
25
- line-length = 99
26
- target-version = ["py38", "py39", "py310", "py311", "py312"]
27
- exclude = '''
28
- /(
29
- \.eggs
30
- | \.git
31
- | \.mypy_cache
32
- | \.tox
33
- | \venv
34
- | build
35
- | dist
36
- | htmlcov
37
- )/
38
- '''
39
-
40
- [tool.isort]
41
- profile = "black"
42
- line_length = 99
43
- force_sort_within_sections = true
44
- src_paths = ["docs", "src", "tests", "setup.py"]
45
-
46
- [tool.coverage.run]
47
- branch = true
48
-
49
- [tool.coverage.paths]
50
- # Files with these prefixes are treated as identical for the purposes of coverage combine.
51
- source = [
52
- # The first path is the name to which all paths get unified
53
- "src/",
54
- # tox on Linux
55
- ".tox/py*/lib/python*/site-packages/",
56
- # tox on Windows
57
- ".tox/py*/Lib/site-packages/",
58
- ]
1
+ [project]
2
+ name = "PySimultan"
3
+ version = "0.2.4"
4
+ authors = [
5
+ {name = "Max Bühler", email = "maximilian.buehler@tuwien.ac.at"}
6
+ ]
7
+ readme = "README.md"
8
+ requires-python = ">=3.8"
9
+ classifiers = [
10
+ "Programming Language :: Python :: 3",
11
+ "License :: OSI Approved :: MIT License",
12
+ "Operating System :: OS Independent"
13
+ ]
14
+ license = {file = "LICENSE.txt"}
15
+
16
+ [build-system]
17
+ requires = ["setuptools", "wheel"]
18
+ build-backend = "setuptools.build_meta"
19
+
20
+ [tool.setuptools.packages.find]
21
+ where = ["src"]
22
+
23
+ [tool.black]
24
+ # Use the more relaxed max line length permitted in PEP8.
25
+ line-length = 99
26
+ target-version = ["py38", "py39", "py310", "py311", "py312"]
27
+ exclude = '''
28
+ /(
29
+ \.eggs
30
+ | \.git
31
+ | \.mypy_cache
32
+ | \.tox
33
+ | \venv
34
+ | build
35
+ | dist
36
+ | htmlcov
37
+ )/
38
+ '''
39
+
40
+ [tool.isort]
41
+ profile = "black"
42
+ line_length = 99
43
+ force_sort_within_sections = true
44
+ src_paths = ["docs", "src", "tests", "setup.py"]
45
+
46
+ [tool.coverage.run]
47
+ branch = true
48
+
49
+ [tool.coverage.paths]
50
+ # Files with these prefixes are treated as identical for the purposes of coverage combine.
51
+ source = [
52
+ # The first path is the name to which all paths get unified
53
+ "src/",
54
+ # tox on Linux
55
+ ".tox/py*/lib/python*/site-packages/",
56
+ # tox on Windows
57
+ ".tox/py*/Lib/site-packages/",
58
+ ]
@@ -1,52 +1,52 @@
1
- #!/usr/bin/env python3
2
-
3
- from pathlib import Path
4
-
5
- import setuptools
6
-
7
- project_dir = Path(__file__).parent
8
-
9
- setuptools.setup(
10
- name="PySimultan",
11
- version="0.2.2",
12
- description="Integrate SIMULTAN into Python",
13
- # Allow UTF-8 characters in README with encoding argument.
14
- long_description=project_dir.joinpath("README.md").read_text(encoding="utf-8"),
15
- keywords=["python"],
16
- author="Max Buehler",
17
- url="",
18
- packages=setuptools.find_packages("src"),
19
- package_dir={"": "src"},
20
- package_data={
21
- # This assumes your package is named "your_package_name"
22
- "PySimultan2": ["resources/*", "tests/*"]
23
- },
24
- # pip 9.0+ will inspect this field when installing to help users install a
25
- # compatible version of the library for their Python version.
26
- python_requires=">=3.10",
27
- setup_requires=["wheel"],
28
- # There are some peculiarities on how to include package data for source
29
- # distributions using setuptools. You also need to add entries for package
30
- # data to MANIFEST.in.
31
- # See https://stackoverflow.com/questions/7522250/
32
- include_package_data=True,
33
- # This is a trick to avoid duplicating dependencies between both setup.py and
34
- # requirements.txt.
35
- # requirements.txt must be included in MANIFEST.in for this to work.
36
- # It does not work for all types of dependencies (e.g. VCS dependencies).
37
- # For VCS dependencies, use pip >= 19 and the PEP 508 syntax.
38
- # Example: 'requests @ git+https://github.com/requests/requests.git@branch_or_tag'
39
- # See: https://github.com/pypa/pip/issues/6162
40
- install_requires=project_dir.joinpath("requirements.txt").read_text().split("\n"),
41
- zip_safe=False,
42
- license="MIT",
43
- license_files=["LICENSE.txt"],
44
- classifiers=[
45
- "Development Status :: 4 - Beta",
46
- "Intended Audience :: Developers",
47
- "License :: OSI Approved :: MIT License",
48
- "Programming Language :: Python",
49
- "Programming Language :: Python :: 3",
50
- "Programming Language :: Python :: 3 :: Only",
51
- ],
52
- )
1
+ #!/usr/bin/env python3
2
+
3
+ from pathlib import Path
4
+
5
+ import setuptools
6
+
7
+ project_dir = Path(__file__).parent
8
+
9
+ setuptools.setup(
10
+ name="PySimultan",
11
+ version="0.2.4",
12
+ description="Integrate SIMULTAN into Python",
13
+ # Allow UTF-8 characters in README with encoding argument.
14
+ long_description=project_dir.joinpath("README.md").read_text(encoding="utf-8"),
15
+ keywords=["python"],
16
+ author="Max Buehler",
17
+ url="",
18
+ packages=setuptools.find_packages("src"),
19
+ package_dir={"": "src"},
20
+ package_data={
21
+ # This assumes your package is named "your_package_name"
22
+ "PySimultan2": ["resources/*", "tests/*"]
23
+ },
24
+ # pip 9.0+ will inspect this field when installing to help users install a
25
+ # compatible version of the library for their Python version.
26
+ python_requires=">=3.10",
27
+ setup_requires=["wheel"],
28
+ # There are some peculiarities on how to include package data for source
29
+ # distributions using setuptools. You also need to add entries for package
30
+ # data to MANIFEST.in.
31
+ # See https://stackoverflow.com/questions/7522250/
32
+ include_package_data=True,
33
+ # This is a trick to avoid duplicating dependencies between both setup.py and
34
+ # requirements.txt.
35
+ # requirements.txt must be included in MANIFEST.in for this to work.
36
+ # It does not work for all types of dependencies (e.g. VCS dependencies).
37
+ # For VCS dependencies, use pip >= 19 and the PEP 508 syntax.
38
+ # Example: 'requests @ git+https://github.com/requests/requests.git@branch_or_tag'
39
+ # See: https://github.com/pypa/pip/issues/6162
40
+ install_requires=project_dir.joinpath("requirements.txt").read_text().split("\n"),
41
+ zip_safe=False,
42
+ license="MIT",
43
+ license_files=["LICENSE.txt"],
44
+ classifiers=[
45
+ "Development Status :: 4 - Beta",
46
+ "Intended Audience :: Developers",
47
+ "License :: OSI Approved :: MIT License",
48
+ "Programming Language :: Python",
49
+ "Programming Language :: Python :: 3",
50
+ "Programming Language :: Python :: 3 :: Only",
51
+ ],
52
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PySimultan
3
- Version: 0.2.2
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}
@@ -192,6 +193,9 @@ class PythonMapper(object):
192
193
  return prop_dict
193
194
 
194
195
  def clear(self):
196
+ for cls in self.registered_classes.values():
197
+ cls._cls_instances = WeakSet()
198
+
195
199
  for cls in self.mapped_classes.values():
196
200
  cls._cls_instances = WeakSet()
197
201
 
@@ -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
File without changes
File without changes
File without changes
File without changes