PySimultan 0.5.5__tar.gz → 0.5.7__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 (144) hide show
  1. pysimultan-0.5.7/PKG-INFO +173 -0
  2. pysimultan-0.5.7/README.md +145 -0
  3. pysimultan-0.5.7/src/PySimultan2/__about__.py +1 -0
  4. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/taxonomy_maps.py +13 -1
  5. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/type_setter_lookup.py +4 -1
  6. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/utils.py +2 -2
  7. pysimultan-0.5.5/PKG-INFO +0 -91
  8. pysimultan-0.5.5/README.md +0 -63
  9. pysimultan-0.5.5/src/PySimultan2/__about__.py +0 -1
  10. {pysimultan-0.5.5 → pysimultan-0.5.7}/.gitignore +0 -0
  11. {pysimultan-0.5.5 → pysimultan-0.5.7}/LICENSE.txt +0 -0
  12. {pysimultan-0.5.5 → pysimultan-0.5.7}/pyproject.toml +0 -0
  13. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/CHANGELOG.md +0 -0
  14. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/__init__.py +0 -0
  15. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/data_model.py +0 -0
  16. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/default_types.py +0 -0
  17. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/files.py +0 -0
  18. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/geometry/__init__.py +0 -0
  19. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/geometry/geometry_base.py +0 -0
  20. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/geometry/utils.py +0 -0
  21. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/multi_values.py +0 -0
  22. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/object_mapper.py +0 -0
  23. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/AssimpNet.dll +0 -0
  24. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/AvalonDock.dll +0 -0
  25. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/BruTile.dll +0 -0
  26. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/ClosedXML.dll +0 -0
  27. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/ComponentBuilder.dll +0 -0
  28. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/ComponentBuilder.dll.config +0 -0
  29. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/ComponentBuilder.runtimeconfig.json +0 -0
  30. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/ComponentBuilder.xml +0 -0
  31. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/ControlzEx.dll +0 -0
  32. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/Cyotek.Drawing.BitmapFont.dll +0 -0
  33. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/DocumentFormat.OpenXml.dll +0 -0
  34. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/DotSpatial.Projections.dll +0 -0
  35. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/ExcelNumberFormat.dll +0 -0
  36. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/Fluent.dll +0 -0
  37. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/HelixToolkit.Core.Wpf.dll +0 -0
  38. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.Wpf.dll +0 -0
  39. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.dll +0 -0
  40. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/HelixToolkit.dll +0 -0
  41. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/MathNet.Numerics.dll +0 -0
  42. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/Microsoft.AspNetCore.Authorization.dll +0 -0
  43. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/Microsoft.AspNetCore.Metadata.dll +0 -0
  44. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/Microsoft.Extensions.DependencyInjection.Abstractions.dll +0 -0
  45. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/Microsoft.Extensions.Logging.Abstractions.dll +0 -0
  46. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/Microsoft.Extensions.Options.dll +0 -0
  47. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/Microsoft.Extensions.Primitives.dll +0 -0
  48. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.Shell.dll +0 -0
  49. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.dll +0 -0
  50. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/Microsoft.Xaml.Behaviors.dll +0 -0
  51. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/Newtonsoft.Json.Bson.dll +0 -0
  52. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/Newtonsoft.Json.dll +0 -0
  53. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.Client.dll +0 -0
  54. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.Client.dll.config +0 -0
  55. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.DataTransferLibrary.dll +0 -0
  56. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.DataTransferLibrary.dll.config +0 -0
  57. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/SIMULTAN.Lang.dll +0 -0
  58. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/SIMULTAN.Lang.xml +0 -0
  59. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/SIMULTAN.Plugins.dll +0 -0
  60. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/SIMULTAN.Plugins.xml +0 -0
  61. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/SIMULTAN.UI.dll +0 -0
  62. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/SIMULTAN.UI.xml +0 -0
  63. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/SIMULTAN.dll +0 -0
  64. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/SIMULTAN.xml +0 -0
  65. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/SharpDX.D3DCompiler.dll +0 -0
  66. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/SharpDX.DXGI.dll +0 -0
  67. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/SharpDX.Direct2D1.dll +0 -0
  68. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/SharpDX.Direct3D11.dll +0 -0
  69. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/SharpDX.Direct3D9.dll +0 -0
  70. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/SharpDX.Mathematics.dll +0 -0
  71. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/SharpDX.dll +0 -0
  72. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/Sprache.Calc.dll +0 -0
  73. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/Sprache.dll +0 -0
  74. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/System.Collections.Immutable.dll +0 -0
  75. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/System.Data.OleDb.dll +0 -0
  76. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/System.Net.Http.Formatting.dll +0 -0
  77. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/System.Reflection.Metadata.dll +0 -0
  78. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/System.Reflection.MetadataLoadContext.dll +0 -0
  79. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/XAMLMarkupExtensions.dll +0 -0
  80. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/__init__.py +0 -0
  81. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/assimp.dll +0 -0
  82. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/componentmanager.user +0 -0
  83. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/defaultsettings.xml +0 -0
  84. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/resources/setup.bat +0 -0
  85. {pysimultan-0.5.5 → pysimultan-0.5.7}/src/PySimultan2/simultan_object.py +0 -0
  86. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/__init__.py +0 -0
  87. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/__init__.py +0 -0
  88. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/create_component.py +0 -0
  89. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/create_component_with_taxonomy_slot.py +0 -0
  90. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/create_referenced_component.py +0 -0
  91. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/create_taxonomies.py +0 -0
  92. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/resources/__init__.py +0 -0
  93. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/resources/change_references_example.simultan +0 -0
  94. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/resources/empty_project.simultan +0 -0
  95. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/resources/empty_test_excel.xlsx +0 -0
  96. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/resources/example1.simultan +0 -0
  97. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/resources/example2.simultan +0 -0
  98. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/resources/example3.simultan +0 -0
  99. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/resources/example4_reference_list.simultan +0 -0
  100. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/resources/example_extend_1.simultan +0 -0
  101. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/resources/list_test.simultan +0 -0
  102. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/resources/template_example3.yml +0 -0
  103. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/resources/template_example4.yml +0 -0
  104. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/resources/template_example_create_typed_component.yml +0 -0
  105. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/resources/template_example_create_typed_component_with_slots.yml +0 -0
  106. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/resources/template_example_extend.yml +0 -0
  107. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/resources/template_example_update_references.yml +0 -0
  108. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/readme_examples/resources/template_reference_list.yml +0 -0
  109. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/resources/U5.simultan +0 -0
  110. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/resources/U5_1.simultan +0 -0
  111. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/resources/U5_orig.simultan +0 -0
  112. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/resources/__init__.py +0 -0
  113. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/resources/new_geometry_test.simultan +0 -0
  114. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/resources/new_test_file.txt +0 -0
  115. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/resources/new_test_file2.txt +0 -0
  116. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/resources/test_file.yml +0 -0
  117. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/resources/test_file_load.simultan +0 -0
  118. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/resources/test_file_project.simultan +0 -0
  119. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/resources/test_multi_value_big_table_load.simultan +0 -0
  120. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/resources/test_parameter_reference_project.simultan +0 -0
  121. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/resources/test_set_dictionary.simultan +0 -0
  122. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_calc_static_zone_temperature.py +0 -0
  123. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_calculate_steady_state_temperature.py +0 -0
  124. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_circular_references.py +0 -0
  125. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_create_geometry.py +0 -0
  126. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_directory_and_files.py +0 -0
  127. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_files.py +0 -0
  128. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_files_load.py +0 -0
  129. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_load_geometry.py +0 -0
  130. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_load_multi_values.py +0 -0
  131. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_new_dll.py +0 -0
  132. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_new_project_creation.py +0 -0
  133. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_numeric_map.py +0 -0
  134. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_parameter_reference.py +0 -0
  135. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_pythonnet.py +0 -0
  136. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_register_class.py +0 -0
  137. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_register_decorator.py +0 -0
  138. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_set_attr_property.py +0 -0
  139. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_set_dictionary.py +0 -0
  140. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_set_properties.py +0 -0
  141. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_taxonomie_maps.py +0 -0
  142. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_taxonomies.py +0 -0
  143. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/test_ui.py +0 -0
  144. {pysimultan-0.5.5 → pysimultan-0.5.7}/tests/ui_minimal_example.py +0 -0
@@ -0,0 +1,173 @@
1
+ Metadata-Version: 2.3
2
+ Name: PySimultan
3
+ Version: 0.5.7
4
+ Project-URL: Documentation, https://github.com/Bühler Maximilian/PySimultan2#readme
5
+ Project-URL: Issues, https://github.com/Bühler Maximilian/PySimultan2/issues
6
+ Project-URL: Source, https://github.com/Bühler Maximilian/PySimultan2
7
+ Author-email: Bühler Maximilian <maximilian.buehler@tuwien.ac.at>
8
+ License: MIT
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Programming Language :: Python
11
+ Classifier: Programming Language :: Python :: 3.8
12
+ Classifier: Programming Language :: Python :: 3.9
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: Implementation :: CPython
17
+ Classifier: Programming Language :: Python :: Implementation :: PyPy
18
+ Requires-Python: >=3.8
19
+ Requires-Dist: colorlog
20
+ Requires-Dist: numpy
21
+ Requires-Dist: pandas
22
+ Requires-Dist: pyarrow
23
+ Requires-Dist: pythonnet
24
+ Requires-Dist: ruamel-yaml
25
+ Requires-Dist: six
26
+ Requires-Dist: tqdm
27
+ Description-Content-Type: text/markdown
28
+
29
+ # pysimultan
30
+
31
+ [![PyPI - Version](https://img.shields.io/pypi/v/pysimultan.svg)](https://pypi.org/project/pysimultan)
32
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pysimultan.svg)](https://pypi.org/project/pysimultan)
33
+
34
+ PySimultan is a Python library designed to facilitate the creation, manipulation, and management of SIMULTAN data models, taxonomies, and templates. It provides a structured way to define and interact with complex data structures, making it particularly useful for applications that require detailed data organization and templating.
35
+ Key Features:
36
+ - Data Models: Create and manage data SIMULTAN models with ease.
37
+ - Taxonomies: Define and use taxonomies to categorize and structure data.
38
+ - File and Directory Management: Handle files and directories within the data models.
39
+ - Mapping of Python objects to SIMULTAN data models: Map Python objects to SIMULTAN data models for easy data creation and manipulation.
40
+ - Simple integration in existing Python projects: Easily integrate PySimultan into existing Python projects to enhance data management capabilities.
41
+
42
+
43
+ -----
44
+
45
+ ## Table of Contents
46
+
47
+ - [Installation](#installation)
48
+ - [License](#license)
49
+ - [Usage](#usage)
50
+ - [Change Log](#change-log)
51
+
52
+ ## Installation
53
+
54
+ ```console
55
+ pip install PySimultan
56
+ ```
57
+
58
+ ## License
59
+
60
+ `PySimultan` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.
61
+
62
+
63
+ # Usage
64
+
65
+ ### Data Models
66
+
67
+ Create a new data model:
68
+ ```python
69
+ from PySimultan2 import DataModel
70
+
71
+ # Create a new data model
72
+ data_model = DataModel.create_new_project(project_path='my_project.simultan',
73
+ user_name='admin',
74
+ password='admin')
75
+ ```
76
+
77
+ Load an existing data model:
78
+ ```python
79
+ from PySimultan2 import DataModel
80
+
81
+ # Load an existing data model
82
+ data_model = DataModel(project_path='my_project.simultan',
83
+ user_name='admin',
84
+ password='admin')
85
+ ```
86
+
87
+ save the data model:
88
+ ```python
89
+ data_model.save()
90
+ ```
91
+
92
+ close and cleanup the data model:
93
+ ```python
94
+ data_model.cleanup()
95
+ ```
96
+
97
+
98
+ ### Mapping python to SIMULTAN
99
+
100
+ #### Create a mapped class:
101
+ ```python
102
+ from PySimultan2 import DataModel, TaxonomyMap, Content, PythonMapper
103
+
104
+ mapper = PythonMapper()
105
+
106
+ class TestComponent(object):
107
+ def __init__(self, *args, **kwargs):
108
+ self.param_1 = kwargs.get('param_1')
109
+ self.param_2 = kwargs.get('param_2')
110
+
111
+ content0 = Content(text_or_key='param_1', # text or key of the content/parameter/property
112
+ property_name='param_1', # name of the generated property
113
+ type=None, # type of the content/parameter/property
114
+ unit=None, # unit of the content/parameter/property
115
+ documentation='param_1 to test')
116
+
117
+ content1 = Content(text_or_key='param_2', # text or key of the content/parameter/property
118
+ property_name='param_2', # name of the generated property
119
+ type=None, # type of the content/parameter/property
120
+ unit=None, # unit of the content/parameter/property
121
+ documentation='param_2 to test')
122
+
123
+ test_component_map = TaxonomyMap(taxonomy_name='PySimultan',
124
+ taxonomy_key='Test',
125
+ taxonomy_entry_name='test_component',
126
+ taxonomy_entry_key='test_component',
127
+ content=[content0, content1],
128
+ )
129
+
130
+ mapper.register(test_component_map.taxonomy_entry_key, TestComponent, taxonomy_map=test_component_map)
131
+ ```
132
+
133
+ #### Create an instance of the mapped class:
134
+ ```python
135
+ # get the mapped class
136
+ mapped_test_component_cls = mapper.get_mapped_class('test_component')
137
+
138
+ # create an instance of the mapped class
139
+ mapped_test_component = mapped_test_component_cls(param_1='value1',
140
+ param_2='value2',
141
+ data_model=data_model)
142
+
143
+ # save the data_model
144
+ data_model.save()
145
+
146
+ # cleanup the data_model
147
+ data_model.cleanup()
148
+ ```
149
+
150
+ #### Load an instance of the mapped class:
151
+ ```python
152
+ # load the data_model
153
+ data_model = DataModel(project_path='my_project.simultan',
154
+ user_name='admin',
155
+ password='admin')
156
+
157
+ # get the mapped class
158
+ mapped_test_component_cls = mapper.get_mapped_class('test_component')
159
+
160
+ # get the instances of the mapped class
161
+ instances = mapped_test_component_cls.cls_instaces
162
+
163
+ print(instances[0].param_1)
164
+ ```
165
+
166
+
167
+ # Change Log
168
+
169
+ ## [0.4.20] - 2024-07-01
170
+ - Fixed Bug in nested dictionary creation
171
+
172
+ ## [0.4.19] - 2024-07-01
173
+ - Refactored dictionaries
@@ -0,0 +1,145 @@
1
+ # pysimultan
2
+
3
+ [![PyPI - Version](https://img.shields.io/pypi/v/pysimultan.svg)](https://pypi.org/project/pysimultan)
4
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pysimultan.svg)](https://pypi.org/project/pysimultan)
5
+
6
+ PySimultan is a Python library designed to facilitate the creation, manipulation, and management of SIMULTAN data models, taxonomies, and templates. It provides a structured way to define and interact with complex data structures, making it particularly useful for applications that require detailed data organization and templating.
7
+ Key Features:
8
+ - Data Models: Create and manage data SIMULTAN models with ease.
9
+ - Taxonomies: Define and use taxonomies to categorize and structure data.
10
+ - File and Directory Management: Handle files and directories within the data models.
11
+ - Mapping of Python objects to SIMULTAN data models: Map Python objects to SIMULTAN data models for easy data creation and manipulation.
12
+ - Simple integration in existing Python projects: Easily integrate PySimultan into existing Python projects to enhance data management capabilities.
13
+
14
+
15
+ -----
16
+
17
+ ## Table of Contents
18
+
19
+ - [Installation](#installation)
20
+ - [License](#license)
21
+ - [Usage](#usage)
22
+ - [Change Log](#change-log)
23
+
24
+ ## Installation
25
+
26
+ ```console
27
+ pip install PySimultan
28
+ ```
29
+
30
+ ## License
31
+
32
+ `PySimultan` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.
33
+
34
+
35
+ # Usage
36
+
37
+ ### Data Models
38
+
39
+ Create a new data model:
40
+ ```python
41
+ from PySimultan2 import DataModel
42
+
43
+ # Create a new data model
44
+ data_model = DataModel.create_new_project(project_path='my_project.simultan',
45
+ user_name='admin',
46
+ password='admin')
47
+ ```
48
+
49
+ Load an existing data model:
50
+ ```python
51
+ from PySimultan2 import DataModel
52
+
53
+ # Load an existing data model
54
+ data_model = DataModel(project_path='my_project.simultan',
55
+ user_name='admin',
56
+ password='admin')
57
+ ```
58
+
59
+ save the data model:
60
+ ```python
61
+ data_model.save()
62
+ ```
63
+
64
+ close and cleanup the data model:
65
+ ```python
66
+ data_model.cleanup()
67
+ ```
68
+
69
+
70
+ ### Mapping python to SIMULTAN
71
+
72
+ #### Create a mapped class:
73
+ ```python
74
+ from PySimultan2 import DataModel, TaxonomyMap, Content, PythonMapper
75
+
76
+ mapper = PythonMapper()
77
+
78
+ class TestComponent(object):
79
+ def __init__(self, *args, **kwargs):
80
+ self.param_1 = kwargs.get('param_1')
81
+ self.param_2 = kwargs.get('param_2')
82
+
83
+ content0 = Content(text_or_key='param_1', # text or key of the content/parameter/property
84
+ property_name='param_1', # name of the generated property
85
+ type=None, # type of the content/parameter/property
86
+ unit=None, # unit of the content/parameter/property
87
+ documentation='param_1 to test')
88
+
89
+ content1 = Content(text_or_key='param_2', # text or key of the content/parameter/property
90
+ property_name='param_2', # name of the generated property
91
+ type=None, # type of the content/parameter/property
92
+ unit=None, # unit of the content/parameter/property
93
+ documentation='param_2 to test')
94
+
95
+ test_component_map = TaxonomyMap(taxonomy_name='PySimultan',
96
+ taxonomy_key='Test',
97
+ taxonomy_entry_name='test_component',
98
+ taxonomy_entry_key='test_component',
99
+ content=[content0, content1],
100
+ )
101
+
102
+ mapper.register(test_component_map.taxonomy_entry_key, TestComponent, taxonomy_map=test_component_map)
103
+ ```
104
+
105
+ #### Create an instance of the mapped class:
106
+ ```python
107
+ # get the mapped class
108
+ mapped_test_component_cls = mapper.get_mapped_class('test_component')
109
+
110
+ # create an instance of the mapped class
111
+ mapped_test_component = mapped_test_component_cls(param_1='value1',
112
+ param_2='value2',
113
+ data_model=data_model)
114
+
115
+ # save the data_model
116
+ data_model.save()
117
+
118
+ # cleanup the data_model
119
+ data_model.cleanup()
120
+ ```
121
+
122
+ #### Load an instance of the mapped class:
123
+ ```python
124
+ # load the data_model
125
+ data_model = DataModel(project_path='my_project.simultan',
126
+ user_name='admin',
127
+ password='admin')
128
+
129
+ # get the mapped class
130
+ mapped_test_component_cls = mapper.get_mapped_class('test_component')
131
+
132
+ # get the instances of the mapped class
133
+ instances = mapped_test_component_cls.cls_instaces
134
+
135
+ print(instances[0].param_1)
136
+ ```
137
+
138
+
139
+ # Change Log
140
+
141
+ ## [0.4.20] - 2024-07-01
142
+ - Fixed Bug in nested dictionary creation
143
+
144
+ ## [0.4.19] - 2024-07-01
145
+ - Refactored dictionaries
@@ -0,0 +1 @@
1
+ version = '0.5.7'
@@ -46,6 +46,8 @@ class Content(object):
46
46
  self._taxonomy_entries = {}
47
47
  self._taxonomy_map = kwargs.get('taxonomy_map', None)
48
48
 
49
+ self.taxonomy_key = kwargs.get('taxonomy_key')
50
+
49
51
  add_kwargs = kwargs.copy()
50
52
  _ = [add_kwargs.pop(key, None) for key in ['taxonomy_name', 'taxonomy_key', 'taxonomy_entry_name',
51
53
  'taxonomy_entry_key', 'content', 'documentation', 'python_mapper',
@@ -54,10 +56,20 @@ class Content(object):
54
56
 
55
57
  self.additional_attributes = add_kwargs
56
58
 
59
+ self.taxonomy_key = kwargs.get('taxonomy_key')
60
+ self.taxonomy_name = kwargs.get('taxonomy_name')
61
+
62
+
57
63
  def get_taxonomie_entry(self, data_model: 'DataModel'):
58
64
  if self._taxonomy_entries.get(data_model, None) is None:
59
65
 
60
- taxonomy = self._taxonomy_map.get_or_create_simultan_taxonomy(data_model=data_model, create=True)
66
+ if self.taxonomy_key is None:
67
+ taxonomy = self._taxonomy_map.get_or_create_simultan_taxonomy(data_model=data_model, create=True)
68
+ else:
69
+ taxonomy = data_model.get_or_create_taxonomy(taxonomy_name=self.taxonomy_name,
70
+ taxonomy_key=self.taxonomy_key,
71
+ create=True)
72
+
61
73
  self._taxonomy_entries[data_model] = data_model.get_or_create_taxonomy_entry(name=self.text_or_key,
62
74
  key=self.text_or_key,
63
75
  description=self.documentation,
@@ -20,7 +20,6 @@ from SIMULTAN.Data.Components import (ComponentWalker, SimComponent, SimBoolPara
20
20
 
21
21
 
22
22
  class TypeSetterFcnLookupDict(object):
23
-
24
23
  lookup_dict = {None: lambda x: None,
25
24
  SimComponent: set_property_to_sim_component,
26
25
  SimultanObject: set_property_to_sim_component,
@@ -32,7 +31,11 @@ class TypeSetterFcnLookupDict(object):
32
31
  SimMultiValueField3D: set_property_to_value_field,
33
32
  SimMultiValueBigTable: set_property_to_value_field,
34
33
  int: set_property_to_parameter,
34
+ np.int32: set_property_to_parameter,
35
+ np.int64: set_property_to_parameter,
35
36
  float: set_property_to_parameter,
37
+ np.float32: set_property_to_parameter,
38
+ np.float64: set_property_to_parameter,
36
39
  str: set_property_to_parameter,
37
40
  bool: set_property_to_parameter,
38
41
  FileInfo: set_property_to_file_info,
@@ -360,9 +360,9 @@ def create_parameter(value: Union[int, float, str, SimTaxonomyEntry] = 0,
360
360
  taxonomy_entry = get_default_slot(SimTaxonomyEntry)
361
361
 
362
362
  if parameter_type is None:
363
- if type(value) is float:
363
+ if type(value) in (float, np.float64, np.float32):
364
364
  parameter_type = float
365
- elif type(value) is int:
365
+ elif type(value) in (int, np.int64, np.int32):
366
366
  parameter_type = int
367
367
  elif type(value) is str:
368
368
  parameter_type = str
pysimultan-0.5.5/PKG-INFO DELETED
@@ -1,91 +0,0 @@
1
- Metadata-Version: 2.3
2
- Name: PySimultan
3
- Version: 0.5.5
4
- Project-URL: Documentation, https://github.com/Bühler Maximilian/PySimultan2#readme
5
- Project-URL: Issues, https://github.com/Bühler Maximilian/PySimultan2/issues
6
- Project-URL: Source, https://github.com/Bühler Maximilian/PySimultan2
7
- Author-email: Bühler Maximilian <maximilian.buehler@tuwien.ac.at>
8
- License: MIT
9
- Classifier: Development Status :: 4 - Beta
10
- Classifier: Programming Language :: Python
11
- Classifier: Programming Language :: Python :: 3.8
12
- Classifier: Programming Language :: Python :: 3.9
13
- Classifier: Programming Language :: Python :: 3.10
14
- Classifier: Programming Language :: Python :: 3.11
15
- Classifier: Programming Language :: Python :: 3.12
16
- Classifier: Programming Language :: Python :: Implementation :: CPython
17
- Classifier: Programming Language :: Python :: Implementation :: PyPy
18
- Requires-Python: >=3.8
19
- Requires-Dist: colorlog
20
- Requires-Dist: numpy
21
- Requires-Dist: pandas
22
- Requires-Dist: pyarrow
23
- Requires-Dist: pythonnet
24
- Requires-Dist: ruamel-yaml
25
- Requires-Dist: six
26
- Requires-Dist: tqdm
27
- Description-Content-Type: text/markdown
28
-
29
- # pysimultan_api
30
-
31
- [![PyPI - Version](https://img.shields.io/pypi/v/pysimultan-api.svg)](https://pypi.org/project/pysimultan-api)
32
- [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pysimultan-api.svg)](https://pypi.org/project/pysimultan-api)
33
-
34
- -----
35
-
36
- ## Table of Contents
37
-
38
- - [Installation](#installation)
39
- - [License](#license)
40
- - [Usage](#usage)
41
- - [FreeCAD support](#freecad-support)
42
- - [Change Log](#change-log)
43
-
44
- ## Installation
45
-
46
- ```console
47
- pip install PySimultan
48
- ```
49
-
50
- ## License
51
-
52
- `pysimultan-api` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.
53
-
54
-
55
- ### Usage
56
-
57
- ```python
58
- from PySimultan2 import DataModel, Content, TaxonomyMap, PythonMapper
59
- ```
60
-
61
-
62
- ## FreeCAD support
63
-
64
- PySimultanUI looks for a FreeCAD version in C:\Program Files\FreeCAD. If you don't have FreeCAD installed, you can
65
- download it from the FreeCAD website or use the FreeCAD version provided in the FreeCAD-Bundle repository.
66
- Go to https://github.com/FreeCAD/FreeCAD-Bundle/releases/tag/weekly-builds and download the latest version
67
- of FreeCAD for your OS. The version must be compiled with the same python version you are using (e.g. py311).
68
-
69
- Extract the zip file to C:\Program Files\FreeCAD
70
-
71
- The directory structure should look like this:
72
-
73
- ```
74
- C:\Program Files\FreeCAD
75
- │ ...
76
- │ FreeCAD_weekly-builds-37730-conda-Windows-x86_64-py311
77
- │ │ bin
78
- │ │ lib
79
- │ │ ...
80
-
81
-
82
- ```
83
-
84
-
85
- # Change Log
86
-
87
- ## [0.4.20] - 2024-07-01
88
- - Fixed Bug in nested dictionary creation
89
-
90
- ## [0.4.19] - 2024-07-01
91
- - Refactored dictionaries
@@ -1,63 +0,0 @@
1
- # pysimultan_api
2
-
3
- [![PyPI - Version](https://img.shields.io/pypi/v/pysimultan-api.svg)](https://pypi.org/project/pysimultan-api)
4
- [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pysimultan-api.svg)](https://pypi.org/project/pysimultan-api)
5
-
6
- -----
7
-
8
- ## Table of Contents
9
-
10
- - [Installation](#installation)
11
- - [License](#license)
12
- - [Usage](#usage)
13
- - [FreeCAD support](#freecad-support)
14
- - [Change Log](#change-log)
15
-
16
- ## Installation
17
-
18
- ```console
19
- pip install PySimultan
20
- ```
21
-
22
- ## License
23
-
24
- `pysimultan-api` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.
25
-
26
-
27
- ### Usage
28
-
29
- ```python
30
- from PySimultan2 import DataModel, Content, TaxonomyMap, PythonMapper
31
- ```
32
-
33
-
34
- ## FreeCAD support
35
-
36
- PySimultanUI looks for a FreeCAD version in C:\Program Files\FreeCAD. If you don't have FreeCAD installed, you can
37
- download it from the FreeCAD website or use the FreeCAD version provided in the FreeCAD-Bundle repository.
38
- Go to https://github.com/FreeCAD/FreeCAD-Bundle/releases/tag/weekly-builds and download the latest version
39
- of FreeCAD for your OS. The version must be compiled with the same python version you are using (e.g. py311).
40
-
41
- Extract the zip file to C:\Program Files\FreeCAD
42
-
43
- The directory structure should look like this:
44
-
45
- ```
46
- C:\Program Files\FreeCAD
47
- │ ...
48
- │ FreeCAD_weekly-builds-37730-conda-Windows-x86_64-py311
49
- │ │ bin
50
- │ │ lib
51
- │ │ ...
52
-
53
-
54
- ```
55
-
56
-
57
- # Change Log
58
-
59
- ## [0.4.20] - 2024-07-01
60
- - Fixed Bug in nested dictionary creation
61
-
62
- ## [0.4.19] - 2024-07-01
63
- - Refactored dictionaries
@@ -1 +0,0 @@
1
- version = '0.5.5'
File without changes
File without changes
File without changes
File without changes
File without changes