PySimultan 0.2.2__tar.gz → 0.2.4__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {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
|