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 +1 -1
- PySimultan2/taxonomy_maps.py +13 -1
- PySimultan2/type_setter_lookup.py +4 -1
- PySimultan2/utils.py +2 -2
- pysimultan-0.5.7.dist-info/METADATA +173 -0
- {pysimultan-0.5.5.dist-info → pysimultan-0.5.7.dist-info}/RECORD +8 -8
- pysimultan-0.5.5.dist-info/METADATA +0 -91
- {pysimultan-0.5.5.dist-info → pysimultan-0.5.7.dist-info}/WHEEL +0 -0
- {pysimultan-0.5.5.dist-info → pysimultan-0.5.7.dist-info}/licenses/LICENSE.txt +0 -0
PySimultan2/__about__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
version = '0.5.
|
1
|
+
version = '0.5.7'
|
PySimultan2/taxonomy_maps.py
CHANGED
@@ -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
|
-
|
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)
|
363
|
+
if type(value) in (float, np.float64, np.float32):
|
364
364
|
parameter_type = float
|
365
|
-
elif type(value)
|
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
|
+
[](https://pypi.org/project/pysimultan)
|
32
|
+
[](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=
|
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=
|
11
|
-
PySimultan2/type_setter_lookup.py,sha256=
|
12
|
-
PySimultan2/utils.py,sha256=
|
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.
|
79
|
-
pysimultan-0.5.
|
80
|
-
pysimultan-0.5.
|
81
|
-
pysimultan-0.5.
|
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
|
-
[](https://pypi.org/project/pysimultan-api)
|
32
|
-
[](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
|
File without changes
|
File without changes
|