PySimultan 0.5.7__tar.gz → 0.5.9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pysimultan-0.5.7 → pysimultan-0.5.9}/PKG-INFO +11 -3
- {pysimultan-0.5.7 → pysimultan-0.5.9}/README.md +7 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/CHANGELOG.md +3 -0
- pysimultan-0.5.9/src/PySimultan2/__about__.py +1 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/data_model.py +54 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/files.py +18 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/geometry/geometry_base.py +12 -0
- pysimultan-0.5.9/tests/resources/test_file_project.simultan +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_files.py +41 -2
- pysimultan-0.5.7/src/PySimultan2/__about__.py +0 -1
- pysimultan-0.5.7/tests/resources/test_file.yml +0 -1
- pysimultan-0.5.7/tests/resources/test_file_project.simultan +0 -0
- pysimultan-0.5.7/tests/resources/test_set_dictionary.simultan +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/.gitignore +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/LICENSE.txt +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/pyproject.toml +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/__init__.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/default_types.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/geometry/__init__.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/geometry/utils.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/multi_values.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/object_mapper.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/AssimpNet.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/AvalonDock.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/BruTile.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/ClosedXML.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/ComponentBuilder.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/ComponentBuilder.dll.config +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/ComponentBuilder.runtimeconfig.json +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/ComponentBuilder.xml +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/ControlzEx.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/Cyotek.Drawing.BitmapFont.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/DocumentFormat.OpenXml.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/DotSpatial.Projections.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/ExcelNumberFormat.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/Fluent.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/HelixToolkit.Core.Wpf.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.Wpf.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/HelixToolkit.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/MathNet.Numerics.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.AspNetCore.Authorization.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.AspNetCore.Metadata.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.Extensions.DependencyInjection.Abstractions.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.Extensions.Logging.Abstractions.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.Extensions.Options.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.Extensions.Primitives.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.Shell.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.Xaml.Behaviors.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/Newtonsoft.Json.Bson.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/Newtonsoft.Json.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.Client.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.Client.dll.config +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.DataTransferLibrary.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.DataTransferLibrary.dll.config +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.Lang.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.Lang.xml +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.Plugins.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.Plugins.xml +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.UI.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.UI.xml +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.xml +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/SharpDX.D3DCompiler.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/SharpDX.DXGI.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/SharpDX.Direct2D1.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/SharpDX.Direct3D11.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/SharpDX.Direct3D9.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/SharpDX.Mathematics.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/SharpDX.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/Sprache.Calc.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/Sprache.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/System.Collections.Immutable.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/System.Data.OleDb.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/System.Net.Http.Formatting.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/System.Reflection.Metadata.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/System.Reflection.MetadataLoadContext.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/XAMLMarkupExtensions.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/__init__.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/assimp.dll +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/componentmanager.user +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/defaultsettings.xml +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/setup.bat +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/simultan_object.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/taxonomy_maps.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/type_setter_lookup.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/utils.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/__init__.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/__init__.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/create_component.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/create_component_with_taxonomy_slot.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/create_referenced_component.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/create_taxonomies.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/__init__.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/change_references_example.simultan +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/empty_project.simultan +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/empty_test_excel.xlsx +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/example1.simultan +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/example2.simultan +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/example3.simultan +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/example4_reference_list.simultan +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/example_extend_1.simultan +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/list_test.simultan +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/template_example3.yml +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/template_example4.yml +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/template_example_create_typed_component.yml +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/template_example_create_typed_component_with_slots.yml +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/template_example_extend.yml +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/template_example_update_references.yml +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/template_reference_list.yml +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/resources/U5.simultan +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/resources/U5_1.simultan +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/resources/U5_orig.simultan +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/resources/__init__.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/resources/new_geometry_test.simultan +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/resources/new_test_file.txt +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/resources/new_test_file2.txt +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/resources/test_file_load.simultan +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/resources/test_multi_value_big_table_load.simultan +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/resources/test_parameter_reference_project.simultan +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_calc_static_zone_temperature.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_calculate_steady_state_temperature.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_circular_references.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_create_geometry.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_directory_and_files.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_files_load.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_load_geometry.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_load_multi_values.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_new_dll.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_new_project_creation.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_numeric_map.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_parameter_reference.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_pythonnet.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_register_class.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_register_decorator.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_set_attr_property.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_set_dictionary.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_set_properties.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_taxonomie_maps.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_taxonomies.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/test_ui.py +0 -0
- {pysimultan-0.5.7 → pysimultan-0.5.9}/tests/ui_minimal_example.py +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: PySimultan
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.9
|
|
4
4
|
Project-URL: Documentation, https://github.com/Bühler Maximilian/PySimultan2#readme
|
|
5
5
|
Project-URL: Issues, https://github.com/Bühler Maximilian/PySimultan2/issues
|
|
6
6
|
Project-URL: Source, https://github.com/Bühler Maximilian/PySimultan2
|
|
7
7
|
Author-email: Bühler Maximilian <maximilian.buehler@tuwien.ac.at>
|
|
8
|
-
License: MIT
|
|
8
|
+
License-Expression: MIT
|
|
9
|
+
License-File: LICENSE.txt
|
|
9
10
|
Classifier: Development Status :: 4 - Beta
|
|
10
11
|
Classifier: Programming Language :: Python
|
|
11
12
|
Classifier: Programming Language :: Python :: 3.8
|
|
@@ -166,6 +167,13 @@ print(instances[0].param_1)
|
|
|
166
167
|
|
|
167
168
|
# Change Log
|
|
168
169
|
|
|
170
|
+
## [0.5.8] - 2024-12-17
|
|
171
|
+
- Added FileInfo.from_existing_file method to create FileInfo object from existing file in ProjectUnpackFolder
|
|
172
|
+
|
|
173
|
+
## [0.5.7] - 2024-12-09
|
|
174
|
+
- Added support for different taxonomy for content
|
|
175
|
+
- Added support for numpy np.float32, np.float64 and np.int32, np.int64
|
|
176
|
+
|
|
169
177
|
## [0.4.20] - 2024-07-01
|
|
170
178
|
- Fixed Bug in nested dictionary creation
|
|
171
179
|
|
|
@@ -138,6 +138,13 @@ print(instances[0].param_1)
|
|
|
138
138
|
|
|
139
139
|
# Change Log
|
|
140
140
|
|
|
141
|
+
## [0.5.8] - 2024-12-17
|
|
142
|
+
- Added FileInfo.from_existing_file method to create FileInfo object from existing file in ProjectUnpackFolder
|
|
143
|
+
|
|
144
|
+
## [0.5.7] - 2024-12-09
|
|
145
|
+
- Added support for different taxonomy for content
|
|
146
|
+
- Added support for numpy np.float32, np.float64 and np.int32, np.int64
|
|
147
|
+
|
|
141
148
|
## [0.4.20] - 2024-07-01
|
|
142
149
|
- Fixed Bug in nested dictionary creation
|
|
143
150
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
version = '0.5.9'
|
|
@@ -532,6 +532,60 @@ class DataModel:
|
|
|
532
532
|
)
|
|
533
533
|
)
|
|
534
534
|
|
|
535
|
+
def add_resource_file(self,
|
|
536
|
+
filename: Union[str, FileInfo, PythonFileInfo],
|
|
537
|
+
target_dir: Union[ResourceDirectoryEntry, FileInfo, str] = None) -> ResourceEntry:
|
|
538
|
+
|
|
539
|
+
"""
|
|
540
|
+
Add a file as resource to the project which already exists in the project folder
|
|
541
|
+
:param filename:
|
|
542
|
+
:param target_dir:
|
|
543
|
+
:return:
|
|
544
|
+
"""
|
|
545
|
+
|
|
546
|
+
if isinstance(filename, str):
|
|
547
|
+
filename = FileInfo(filename)
|
|
548
|
+
elif isinstance(filename, PythonFileInfo):
|
|
549
|
+
filename = FileInfo(filename.full_path)
|
|
550
|
+
|
|
551
|
+
if target_dir is None:
|
|
552
|
+
# check if file is already in project folder
|
|
553
|
+
if not os.path.exists(os.path.join(str(self.project.ProjectUnpackFolder), filename.Name)):
|
|
554
|
+
raise FileNotFoundError(f'File {filename} not found in project folder {self.project.ProjectUnpackFolder}')
|
|
555
|
+
|
|
556
|
+
self.project.AddResourceFile(FileInfo(str(filename)),
|
|
557
|
+
self.project_data_manager)
|
|
558
|
+
|
|
559
|
+
full_filename = os.path.join(str(self.project.ProjectUnpackFolder), filename.Name)
|
|
560
|
+
|
|
561
|
+
return next(
|
|
562
|
+
(
|
|
563
|
+
x for x in self.project_data_manager.AssetManager.Resources if x.CurrentFullPath == full_filename
|
|
564
|
+
)
|
|
565
|
+
, None
|
|
566
|
+
)
|
|
567
|
+
|
|
568
|
+
else:
|
|
569
|
+
if isinstance(target_dir, str):
|
|
570
|
+
target_dir = DirectoryInfo(target_dir)
|
|
571
|
+
elif isinstance(target_dir, ResourceDirectoryEntry):
|
|
572
|
+
target_dir = DirectoryInfo(target_dir.CurrentFullPath)
|
|
573
|
+
elif isinstance(target_dir, FileInfo):
|
|
574
|
+
pass
|
|
575
|
+
|
|
576
|
+
# check if file is already in project folder
|
|
577
|
+
if not os.path.exists(os.path.join(target_dir.FullPath, filename.Name)):
|
|
578
|
+
raise FileNotFoundError(f'File {filename} not found in project folder {target_dir.FullPath}')
|
|
579
|
+
|
|
580
|
+
self.project.AddResourceFile(
|
|
581
|
+
FileInfo(os.path.join(target_dir.FullPath, filename.Name)),
|
|
582
|
+
self.project_data_manager)
|
|
583
|
+
|
|
584
|
+
# get added resource
|
|
585
|
+
return next((x for x in self.project_data_manager.AssetManager.Resources if
|
|
586
|
+
x.CurrentFullPath == os.path.join(target_dir.FullPath, filename.Name)), None)
|
|
587
|
+
|
|
588
|
+
|
|
535
589
|
def add_resource(self,
|
|
536
590
|
filename: Union[str, FileInfo],
|
|
537
591
|
target_dir: Optional[Union[DirectoryInfo, ResourceDirectoryEntry, str]] = None,
|
|
@@ -281,6 +281,21 @@ class FileInfo(object, metaclass=MetaMock):
|
|
|
281
281
|
file_info.write_content(content)
|
|
282
282
|
return file_info
|
|
283
283
|
|
|
284
|
+
@classmethod
|
|
285
|
+
def from_existing_file(cls,
|
|
286
|
+
file_path: str,
|
|
287
|
+
*args,
|
|
288
|
+
**kwargs) -> FileInfo:
|
|
289
|
+
|
|
290
|
+
data_model = kwargs.get('data_model', config.get_default_data_model())
|
|
291
|
+
resource = data_model.add_resource_file(file_path)
|
|
292
|
+
|
|
293
|
+
return cls(resource_entry=resource,
|
|
294
|
+
data_model=data_model,
|
|
295
|
+
*args,
|
|
296
|
+
**kwargs)
|
|
297
|
+
|
|
298
|
+
|
|
284
299
|
def __init__(self, file_path=None, *args, **kwargs):
|
|
285
300
|
"""
|
|
286
301
|
Custom file info object to be used with the with statement. This object is used to open a file and close it
|
|
@@ -475,7 +490,10 @@ class FileInfo(object, metaclass=MetaMock):
|
|
|
475
490
|
:return: None
|
|
476
491
|
"""
|
|
477
492
|
if self.resource_entry is not None:
|
|
493
|
+
if self.resource_entry.Key in self._cls_instances:
|
|
494
|
+
del self._cls_instances[self.resource_entry.Key]
|
|
478
495
|
self.data_model.delete_resource(self.resource_entry)
|
|
496
|
+
|
|
479
497
|
os.remove(self.file_path)
|
|
480
498
|
|
|
481
499
|
def to_json(self) -> dict:
|
|
@@ -471,6 +471,18 @@ class SimultanFace(ExtendedBaseGeometry):
|
|
|
471
471
|
|
|
472
472
|
return vertices, triangles
|
|
473
473
|
|
|
474
|
+
def get_orientation_to_volume(self, volume: 'SimultanVolume') -> Optional[GeometricOrientation]:
|
|
475
|
+
|
|
476
|
+
p_face = next((x for x in volume._wrapped_object.Faces if x.Face.Id is self._wrapped_object.Id), None)
|
|
477
|
+
|
|
478
|
+
if p_face is None or p_face.Orientation == GeometricOrientation.Undefined:
|
|
479
|
+
return None
|
|
480
|
+
|
|
481
|
+
mul_1 = 1 if self.orientation == GeometricOrientation.Forward else -1
|
|
482
|
+
mul_2 = 1 if p_face.Orientation == GeometricOrientation.Forward else -1
|
|
483
|
+
|
|
484
|
+
return GeometricOrientation.Forward if mul_1 * mul_2 == 1 else GeometricOrientation.Backward
|
|
485
|
+
|
|
474
486
|
def __repr__(self):
|
|
475
487
|
return f"SimultanFace {self.id} ({self.boundary.id}, {[x.id for x in self.holes]})"
|
|
476
488
|
|
|
Binary file
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import io
|
|
2
1
|
import os
|
|
3
2
|
|
|
4
3
|
from PySimultan2.data_model import DataModel
|
|
@@ -97,12 +96,52 @@ def test_set_file():
|
|
|
97
96
|
test_component = mapped_test_component_cls(name='test_component',
|
|
98
97
|
file_value_2=file_info)
|
|
99
98
|
|
|
99
|
+
return mapper
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def test_add_resource_in_directory(mapper):
|
|
103
|
+
|
|
104
|
+
file_path = os.path.join(str(data_model.project.ProjectUnpackFolder), 'already_exising.txt')
|
|
105
|
+
|
|
106
|
+
with open(file_path, 'w') as f:
|
|
107
|
+
f.write('This is the content of the already existing file.')
|
|
108
|
+
|
|
109
|
+
file_info = FileInfo(file_path=file_path)
|
|
110
|
+
mapped_test_component_cls = mapper.get_mapped_class('TestComponent')
|
|
111
|
+
test_component = mapped_test_component_cls(name='test_component 2',
|
|
112
|
+
file_value_2=file_info)
|
|
113
|
+
|
|
114
|
+
def test_add_resource_file():
|
|
115
|
+
file_path = os.path.join(str(data_model.project.ProjectUnpackFolder), 'already_exising_2.txt')
|
|
116
|
+
|
|
117
|
+
with open(file_path, 'w') as f:
|
|
118
|
+
f.write('This is the content of the already existing file 2.')
|
|
119
|
+
|
|
120
|
+
file = data_model.add_resource_file(file_path)
|
|
121
|
+
print(file)
|
|
122
|
+
|
|
123
|
+
file_path = os.path.join(str(data_model.project.ProjectUnpackFolder), 'already_exising_3.txt')
|
|
124
|
+
|
|
125
|
+
with open(file_path, 'w') as f:
|
|
126
|
+
f.write('This is the content of the already existing file 3.')
|
|
127
|
+
|
|
128
|
+
file_info = FileInfo.from_existing_file(file_path=file_path,
|
|
129
|
+
data_model=data_model)
|
|
130
|
+
|
|
131
|
+
mapped_test_component_cls = mapper.get_mapped_class('TestComponent')
|
|
132
|
+
test_component3 = mapped_test_component_cls(name='test_component 3',
|
|
133
|
+
file_value_2=file_info)
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
100
137
|
|
|
101
138
|
if __name__ == '__main__':
|
|
102
139
|
new_resource = test_create_resource()
|
|
103
140
|
test_create_resource_from_string()
|
|
104
141
|
test_add_resource_to_component(new_resource)
|
|
105
|
-
test_set_file()
|
|
142
|
+
mapper = test_set_file()
|
|
143
|
+
test_add_resource_in_directory(mapper)
|
|
144
|
+
test_add_resource_file()
|
|
106
145
|
data_model.save()
|
|
107
146
|
|
|
108
147
|
data_model.cleanup()
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
version = '0.5.7'
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ardgadfb
|
|
Binary file
|
|
Binary file
|
|
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.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/ComponentBuilder.runtimeconfig.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysimultan-0.5.7 → pysimultan-0.5.9}/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
|
{pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.Wpf.dll
RENAMED
|
File without changes
|
{pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.dll
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.AspNetCore.Metadata.dll
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.Extensions.Options.dll
RENAMED
|
File without changes
|
{pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.Extensions.Primitives.dll
RENAMED
|
File without changes
|
|
File without changes
|
{pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.dll
RENAMED
|
File without changes
|
{pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.Xaml.Behaviors.dll
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysimultan-0.5.7 → pysimultan-0.5.9}/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
|
{pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/System.Collections.Immutable.dll
RENAMED
|
File without changes
|
|
File without changes
|
{pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/System.Net.Http.Formatting.dll
RENAMED
|
File without changes
|
{pysimultan-0.5.7 → pysimultan-0.5.9}/src/PySimultan2/resources/System.Reflection.Metadata.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
|
{pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/create_component_with_taxonomy_slot.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/empty_project.simultan
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/example_extend_1.simultan
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/template_example_extend.yml
RENAMED
|
File without changes
|
|
File without changes
|
{pysimultan-0.5.7 → pysimultan-0.5.9}/tests/readme_examples/resources/template_reference_list.yml
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.5.7 → pysimultan-0.5.9}/tests/resources/test_multi_value_big_table_load.simultan
RENAMED
|
File without changes
|
{pysimultan-0.5.7 → pysimultan-0.5.9}/tests/resources/test_parameter_reference_project.simultan
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
|