PySimultan 0.5.5__py3-none-any.whl → 0.5.7__py3-none-any.whl

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.
PySimultan2/__about__.py CHANGED
@@ -1 +1 @@
1
- version = '0.5.5'
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,
PySimultan2/utils.py CHANGED
@@ -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
@@ -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
@@ -1,5 +1,5 @@
1
1
  PySimultan2/CHANGELOG.md,sha256=LeVHBC6dGDwDwgXipNrwgvgews9QkyjsqtYa_jiLMm0,217
2
- PySimultan2/__about__.py,sha256=vzEzJZ6JrU1XuEoNmBm-CHsw0z44e2mWFvuJveRe8YM,19
2
+ PySimultan2/__about__.py,sha256=NWLby5oM381mpRW-BF0cOAskZDpkNYAHG1kf2Mr6xZE,19
3
3
  PySimultan2/__init__.py,sha256=PGVR1uhY01dF5tHyad-znURUZ_LVB95vsjId2BT0aJM,3245
4
4
  PySimultan2/data_model.py,sha256=YYtfcR6jvGztng6Be8Vw9FQ02cPkl8ATHTZMoIu1ABQ,34140
5
5
  PySimultan2/default_types.py,sha256=K-Eka5BCKk8DT3HU5761Ym_-ZFmu1_Dro0zW0LVGoHA,27157
@@ -7,9 +7,9 @@ PySimultan2/files.py,sha256=BCETl4M8qedw7Bjt8QXvY6Rl3U6Lou36XqPY2ST1o9Q,22447
7
7
  PySimultan2/multi_values.py,sha256=ZFXlTLuZo32x7_7diYAp2XEjp5uwgHLgNOzN7v74-5I,13650
8
8
  PySimultan2/object_mapper.py,sha256=_SQye38NmIr4m_-X9CuvUJnVDBmjmUDdPH2bnaxpzKY,18546
9
9
  PySimultan2/simultan_object.py,sha256=akaSUZZWIVfwx1wT5EdOgRR2UeShUthX-LE2Uk6w8CQ,19058
10
- PySimultan2/taxonomy_maps.py,sha256=abMB2RSKEaliW-Ewegq-Inq9npHeOD1VVrMYoKJAlC0,8762
11
- PySimultan2/type_setter_lookup.py,sha256=px92E-BlnvY-11F-F7L7cOwbE1_L8FQVqi-23nJi5j4,3518
12
- PySimultan2/utils.py,sha256=TOrMMTh6n63VgjEGVX6j67_jhUx4ImFI39X61g0OegQ,66692
10
+ PySimultan2/taxonomy_maps.py,sha256=K8lwiBkEnQkx40YZxqSJAHdqwuo6ssvkXLL_GBxVYO0,9271
11
+ PySimultan2/type_setter_lookup.py,sha256=PGa5_EtV7SM15w3uxy0fA3LiQ0TaS4Ys0LYR5zs8aNk,3748
12
+ PySimultan2/utils.py,sha256=1e2sYW1ioV0L9NREbBr03Y2tK1Hx9HxQv1pdXnIPIGY,66740
13
13
  PySimultan2/geometry/__init__.py,sha256=nJolTD1i5J8qUkOQa-r3D20aq3Co3sN31Xc0n4wJpJo,248
14
14
  PySimultan2/geometry/geometry_base.py,sha256=nbb9U2W3vFviVLxISLHRi2CVyLEM-3zIKvoZ1uSYs_8,23420
15
15
  PySimultan2/geometry/utils.py,sha256=J25YsK8sso_UL7xRusItQZvyjtvxdOsSPelBQYFABhY,8519
@@ -75,7 +75,7 @@ PySimultan2/resources/assimp.dll,sha256=HwfDwXqoPDTFRyoQpA3qmgZoUdFtziJkV5fNtktE
75
75
  PySimultan2/resources/componentmanager.user,sha256=hrzr1US4pqkFnLHXcvPkvrgGd7QvlxaV8mhS6fuikEs,760
76
76
  PySimultan2/resources/defaultsettings.xml,sha256=s6Tk1tubLz5UYqXZWpD42EDHzedemRY1nEneoIVcUfg,392
77
77
  PySimultan2/resources/setup.bat,sha256=fjvvYfVM6TalS-QTSiKAbAId5nTsk8kGGo06ba-wWaY,32
78
- pysimultan-0.5.5.dist-info/METADATA,sha256=vqTp0MfBHnJUxHyFF_DCVeAXKICkXCsiVvuRINKvZXw,2665
79
- pysimultan-0.5.5.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
80
- pysimultan-0.5.5.dist-info/licenses/LICENSE.txt,sha256=pmSr98k6N005KMojnZxzLGRuRlDjDx3PUrK1lFj53HA,1126
81
- pysimultan-0.5.5.dist-info/RECORD,,
78
+ pysimultan-0.5.7.dist-info/METADATA,sha256=6I6o-yu_L5IPQxveKqC9hpki0YXFmWdOfiH82iZhIsM,5815
79
+ pysimultan-0.5.7.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
80
+ pysimultan-0.5.7.dist-info/licenses/LICENSE.txt,sha256=pmSr98k6N005KMojnZxzLGRuRlDjDx3PUrK1lFj53HA,1126
81
+ pysimultan-0.5.7.dist-info/RECORD,,
@@ -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