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.
- {pysimultan-0.2.2/src/PySimultan.egg-info → pysimultan-0.2.4}/PKG-INFO +1 -1
- {pysimultan-0.2.2 → pysimultan-0.2.4}/pyproject.toml +58 -58
- {pysimultan-0.2.2 → pysimultan-0.2.4}/setup.py +52 -52
- {pysimultan-0.2.2 → pysimultan-0.2.4/src/PySimultan.egg-info}/PKG-INFO +1 -1
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/data_model.py +19 -15
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/object_mapper.py +4 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/simultan_object.py +1 -2
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/utils.py +2 -2
- {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_calculate_steady_state_temperature.py +39 -17
- {pysimultan-0.2.2 → pysimultan-0.2.4}/LICENSE.txt +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/MANIFEST.in +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/README.md +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/requirements.txt +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/setup.cfg +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan.egg-info/SOURCES.txt +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan.egg-info/dependency_links.txt +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan.egg-info/not-zip-safe +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan.egg-info/top_level.txt +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/__init__.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/config.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/default_types.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/files.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/geometry/__init__.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/geometry/geometry_base.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/geometry/utils.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/multi_values.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/AssimpNet.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/AvalonDock.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/BruTile.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/ClosedXML.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/ComponentBuilder.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/ComponentBuilder.dll.config +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/ComponentBuilder.runtimeconfig.json +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/ComponentBuilder.xml +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/ControlzEx.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Cyotek.Drawing.BitmapFont.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/DocumentFormat.OpenXml.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/DotSpatial.Projections.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/ExcelNumberFormat.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Fluent.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/GeometryViewer.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/GeometryViewer.dll.config +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/GeometryViewer.xml +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/HelixToolkit.Core.Wpf.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.Wpf.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/HelixToolkit.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/MathNet.Numerics.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.AspNetCore.Authorization.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.AspNetCore.Metadata.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.Extensions.DependencyInjection.Abstractions.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.Extensions.Logging.Abstractions.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.Extensions.Options.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.Extensions.Primitives.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.Shell.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.Xaml.Behaviors.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Newtonsoft.Json.Bson.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Newtonsoft.Json.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.Client.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.Client.dll.config +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.DataTransferLibrary.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.DataTransferLibrary.dll.config +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.Lang.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.Lang.xml +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.Plugins.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.Plugins.xml +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.UI.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.UI.xml +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.xml +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.D3DCompiler.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.DXGI.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.Direct2D1.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.Direct3D11.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.Direct3D9.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.Mathematics.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SharpDX.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SitePlanner.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SitePlanner.dll.config +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SitePlanner.xml +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Sprache.Calc.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Sprache.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/System.Data.OleDb.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/System.Net.Http.Formatting.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/XAMLMarkupExtensions.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/__init__.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/assimp.dll +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/defaultsettings.xml +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/setup.bat +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/taxonomy_maps.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_calc_static_zone_temperature.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_create_geometry.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_files.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_files_load.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_load_geometry.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_load_multi_values.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_new_dll.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_new_project_creation.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_numeric_map.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_pythonnet.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_register_class.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_set_attr_property.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_set_dictionary.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_set_properties.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_taxonomie_maps.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_taxonomies.py +0 -0
- {pysimultan-0.2.2 → pysimultan-0.2.4}/tests/test_ui.py +0 -0
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
[project]
|
|
2
|
-
name = "PySimultan"
|
|
3
|
-
version = "0.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.
|
|
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
|
+
)
|
|
@@ -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(
|
|
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 =
|
|
92
|
-
passwordHash =
|
|
93
|
-
initialUser =
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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[
|
|
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) ->
|
|
256
|
+
def user(self) -> SimultanUsers.SimUserRole:
|
|
253
257
|
if self._user is None:
|
|
254
|
-
self._user =
|
|
258
|
+
self._user = SimultanUsers.SimUserRole.ADMINISTRATOR
|
|
255
259
|
return self._user
|
|
256
260
|
|
|
257
261
|
@user.setter
|
|
258
|
-
def user(self, value:
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
407
|
-
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/ComponentBuilder.runtimeconfig.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Cyotek.Drawing.BitmapFont.dll
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.Wpf.dll
RENAMED
|
File without changes
|
{pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.dll
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.AspNetCore.Metadata.dll
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.Extensions.Options.dll
RENAMED
|
File without changes
|
{pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.Extensions.Primitives.dll
RENAMED
|
File without changes
|
|
File without changes
|
{pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.dll
RENAMED
|
File without changes
|
{pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/Microsoft.Xaml.Behaviors.dll
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.Client.dll
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysimultan-0.2.2 → pysimultan-0.2.4}/src/PySimultan2/resources/System.Net.Http.Formatting.dll
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|