PySimultan 0.5.9.4__tar.gz → 0.5.9.5__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/PKG-INFO +1 -1
- pysimultan-0.5.9.5/src/PySimultan2/__about__.py +1 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/__init__.py +0 -1
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/data_model.py +18 -17
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/files.py +27 -3
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/utils.py +4 -1
- pysimultan-0.5.9.5/tests/RoomAcoustics_V02.py +601 -0
- pysimultan-0.5.9.4/src/PySimultan2/__about__.py +0 -1
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/.gitignore +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/LICENSE.txt +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/README.md +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/pyproject.toml +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/CHANGELOG.md +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/default_types.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/geometry/__init__.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/geometry/geometry_base.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/geometry/utils.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/multi_values.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/object_mapper.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/AssimpNet.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/AvalonDock.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/BruTile.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/ClosedXML.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/ComponentBuilder.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/ComponentBuilder.dll.config +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/ComponentBuilder.runtimeconfig.json +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/ComponentBuilder.xml +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/ControlzEx.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/Cyotek.Drawing.BitmapFont.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/DocumentFormat.OpenXml.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/DotSpatial.Projections.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/ExcelNumberFormat.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/Fluent.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/HelixToolkit.Core.Wpf.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.Wpf.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/HelixToolkit.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/MathNet.Numerics.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/Microsoft.AspNetCore.Authorization.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/Microsoft.AspNetCore.Metadata.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/Microsoft.Extensions.DependencyInjection.Abstractions.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/Microsoft.Extensions.Logging.Abstractions.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/Microsoft.Extensions.Options.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/Microsoft.Extensions.Primitives.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.Shell.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/Microsoft.Xaml.Behaviors.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/Newtonsoft.Json.Bson.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/Newtonsoft.Json.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.Client.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.Client.dll.config +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.DataTransferLibrary.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.DataTransferLibrary.dll.config +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/SIMULTAN.Lang.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/SIMULTAN.Lang.xml +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/SIMULTAN.Plugins.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/SIMULTAN.Plugins.xml +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/SIMULTAN.UI.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/SIMULTAN.UI.xml +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/SIMULTAN.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/SIMULTAN.xml +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/SharpDX.D3DCompiler.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/SharpDX.DXGI.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/SharpDX.Direct2D1.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/SharpDX.Direct3D11.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/SharpDX.Direct3D9.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/SharpDX.Mathematics.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/SharpDX.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/Sprache.Calc.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/Sprache.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/System.Collections.Immutable.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/System.Data.OleDb.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/System.Net.Http.Formatting.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/System.Reflection.Metadata.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/System.Reflection.MetadataLoadContext.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/XAMLMarkupExtensions.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/__init__.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/assimp.dll +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/componentmanager.user +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/defaultsettings.xml +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/resources/setup.bat +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/simultan_object.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/taxonomy_maps.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/src/PySimultan2/type_setter_lookup.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/__init__.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/readme_examples/__init__.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/readme_examples/create_component.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/readme_examples/create_component_with_taxonomy_slot.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/readme_examples/create_referenced_component.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/readme_examples/create_taxonomies.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/readme_examples/resources/__init__.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/readme_examples/resources/empty_test_excel.xlsx +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/readme_examples/resources/template_example3.yml +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/readme_examples/resources/template_example4.yml +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/readme_examples/resources/template_example_create_typed_component.yml +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/readme_examples/resources/template_example_create_typed_component_with_slots.yml +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/readme_examples/resources/template_example_extend.yml +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/readme_examples/resources/template_example_update_references.yml +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/readme_examples/resources/template_reference_list.yml +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/resources/__init__.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/resources/new_test_file.txt +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/resources/new_test_file2.txt +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_calc_static_zone_temperature.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_calculate_steady_state_temperature.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_circular_references.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_create_geometry.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_directory_and_files.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_files.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_files_load.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_load_geometry.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_load_multi_values.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_new_dll.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_new_project_creation.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_numeric_map.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_parameter_reference.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_pythonnet.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_register_class.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_register_decorator.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_set_attr_property.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_set_dictionary.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_set_properties.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_taxonomie_maps.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_taxonomies.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/test_ui.py +0 -0
- {pysimultan-0.5.9.4 → pysimultan-0.5.9.5}/tests/ui_minimal_example.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: PySimultan
|
3
|
-
Version: 0.5.9.
|
3
|
+
Version: 0.5.9.5
|
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
|
@@ -0,0 +1 @@
|
|
1
|
+
version = '0.5.9.5'
|
@@ -38,6 +38,7 @@ from System.Security import SecureString
|
|
38
38
|
from SIMULTAN.Data import SimId
|
39
39
|
from System import Guid
|
40
40
|
from System.IO import DirectoryInfo
|
41
|
+
from System.IO import FileInfo as SystemFileInfo
|
41
42
|
from System.IO import *
|
42
43
|
from System.Security import *
|
43
44
|
from System.Security.Cryptography import *
|
@@ -99,7 +100,7 @@ class DataModel:
|
|
99
100
|
SimultanUsers.SimUserRole.ADMINISTRATOR)
|
100
101
|
|
101
102
|
tempPath = Path.GetTempPath()
|
102
|
-
projectFile =
|
103
|
+
projectFile = SystemFileInfo(project_path)
|
103
104
|
projectData = ExtendedProjectData()
|
104
105
|
|
105
106
|
projectData.UsersManager.EncryptionKey = encryptionKey
|
@@ -249,7 +250,7 @@ class DataModel:
|
|
249
250
|
def project(self):
|
250
251
|
if (self._project is None) and (self.project_path is not None) and (self.project_data_manager is not None):
|
251
252
|
logger.debug('loading project')
|
252
|
-
self.project = ZipProjectIO.Load(
|
253
|
+
self.project = ZipProjectIO.Load(SystemFileInfo(self.project_path), self.project_data_manager)
|
253
254
|
exit_code = ZipProjectIO.AuthenticateUserAfterLoading(self.project,
|
254
255
|
self.project_data_manager,
|
255
256
|
self.service_provider)
|
@@ -474,7 +475,7 @@ class DataModel:
|
|
474
475
|
"""
|
475
476
|
self.get_file_infos.cache_clear()
|
476
477
|
geo_resource = self.add_geometry_resource(file_name)
|
477
|
-
file_info =
|
478
|
+
file_info = SystemFileInfo(geo_resource.CurrentFullPath)
|
478
479
|
try:
|
479
480
|
model = SimGeoIO.Load(file_info, self.inst, self.serv)
|
480
481
|
self.models_dict[geo_resource.Key] = model
|
@@ -508,7 +509,7 @@ class DataModel:
|
|
508
509
|
|
509
510
|
def add_empty_resource(self,
|
510
511
|
filename: str,
|
511
|
-
target_dir: Union[ResourceDirectoryEntry,
|
512
|
+
target_dir: Union[ResourceDirectoryEntry, SystemFileInfo, str] = None) -> ResourceEntry:
|
512
513
|
"""
|
513
514
|
Add an empty resource to the project
|
514
515
|
:param filename: name of the new resource
|
@@ -519,12 +520,12 @@ class DataModel:
|
|
519
520
|
|
520
521
|
self.get_file_infos.cache_clear()
|
521
522
|
if target_dir is None:
|
522
|
-
return self.project.AddEmptyResource(
|
523
|
+
return self.project.AddEmptyResource(SystemFileInfo(str(filename)))
|
523
524
|
else:
|
524
525
|
|
525
526
|
if isinstance(target_dir, ResourceDirectoryEntry):
|
526
527
|
target_dir = target_dir.CurrentFullPath
|
527
|
-
if isinstance(target_dir,
|
528
|
+
if isinstance(target_dir, SystemFileInfo):
|
528
529
|
target_dir = target_dir.FullPath
|
529
530
|
|
530
531
|
return self.project.AddEmptyResource(FileInfo(
|
@@ -533,8 +534,8 @@ class DataModel:
|
|
533
534
|
)
|
534
535
|
|
535
536
|
def add_resource_file(self,
|
536
|
-
filename: Union[str,
|
537
|
-
target_dir: Union[ResourceDirectoryEntry,
|
537
|
+
filename: Union[str, SystemFileInfo, PythonFileInfo],
|
538
|
+
target_dir: Union[ResourceDirectoryEntry, SystemFileInfo, str] = None) -> ResourceEntry:
|
538
539
|
|
539
540
|
"""
|
540
541
|
Add a file as resource to the project which already exists in the project folder
|
@@ -544,9 +545,9 @@ class DataModel:
|
|
544
545
|
"""
|
545
546
|
|
546
547
|
if isinstance(filename, str):
|
547
|
-
filename =
|
548
|
+
filename = SystemFileInfo(filename)
|
548
549
|
elif isinstance(filename, PythonFileInfo):
|
549
|
-
filename =
|
550
|
+
filename = SystemFileInfo(filename.full_path)
|
550
551
|
|
551
552
|
if target_dir is None:
|
552
553
|
# check if file is already in project folder
|
@@ -562,7 +563,7 @@ class DataModel:
|
|
562
563
|
target_dir = DirectoryInfo(target_dir)
|
563
564
|
elif isinstance(target_dir, ResourceDirectoryEntry):
|
564
565
|
target_dir = DirectoryInfo(target_dir.CurrentFullPath)
|
565
|
-
elif isinstance(target_dir,
|
566
|
+
elif isinstance(target_dir, SystemFileInfo):
|
566
567
|
pass
|
567
568
|
|
568
569
|
# check if file is already in project folder
|
@@ -573,7 +574,7 @@ class DataModel:
|
|
573
574
|
return self.project_data_manager.AssetManager.GetResource(key)
|
574
575
|
|
575
576
|
def add_resource(self,
|
576
|
-
filename: Union[str,
|
577
|
+
filename: Union[str, SystemFileInfo],
|
577
578
|
target_dir: Optional[Union[DirectoryInfo, ResourceDirectoryEntry, str]] = None,
|
578
579
|
tag: Union[SimTaxonomyEntry, SimTaxonomyEntryReference] = None) -> ResourceEntry:
|
579
580
|
"""
|
@@ -605,7 +606,7 @@ class DataModel:
|
|
605
606
|
del_copy = True
|
606
607
|
|
607
608
|
if isinstance(filename, (str, PosixPath, WindowsPath)):
|
608
|
-
filename =
|
609
|
+
filename = SystemFileInfo(str(filename))
|
609
610
|
|
610
611
|
if target_dir is None:
|
611
612
|
resource = self.project.CopyResourceAsContainedFileEntry(filename,
|
@@ -616,7 +617,7 @@ class DataModel:
|
|
616
617
|
target_dir = DirectoryInfo(target_dir)
|
617
618
|
elif isinstance(target_dir, ResourceDirectoryEntry):
|
618
619
|
target_dir = DirectoryInfo(target_dir.CurrentFullPath)
|
619
|
-
elif isinstance(target_dir,
|
620
|
+
elif isinstance(target_dir, SystemFileInfo):
|
620
621
|
pass
|
621
622
|
|
622
623
|
resource = self.project.CopyResourceAsContainedFileEntry(filename,
|
@@ -626,7 +627,7 @@ class DataModel:
|
|
626
627
|
if del_copy:
|
627
628
|
os.remove(str(filename))
|
628
629
|
|
629
|
-
# file_id = self.project_data_manager.AssetManager.AddResourceEntry(
|
630
|
+
# file_id = self.project_data_manager.AssetManager.AddResourceEntry(SystemFileInfo(filename))
|
630
631
|
# return self.project_data_manager.AssetManager.Resources[file_id]
|
631
632
|
if tag is not None:
|
632
633
|
add_tag_to_resource(resource, tag)
|
@@ -639,14 +640,14 @@ class DataModel:
|
|
639
640
|
logger.error(f'Error while adding resource {filename} to project {self.project_path}: {e}')
|
640
641
|
raise e
|
641
642
|
|
642
|
-
def delete_resource(self, resource: Union[ResourceEntry,
|
643
|
+
def delete_resource(self, resource: Union[ResourceEntry, SystemFileInfo, ContainedResourceFileEntry]):
|
643
644
|
"""
|
644
645
|
Delete a resource from the project and the project folder
|
645
646
|
:param resource: resource to delete
|
646
647
|
:return:
|
647
648
|
"""
|
648
649
|
|
649
|
-
if isinstance(resource,
|
650
|
+
if isinstance(resource, SystemFileInfo):
|
650
651
|
resource = resource.resource_entry
|
651
652
|
|
652
653
|
success = self.project.DeleteResource(resource)
|
@@ -20,6 +20,7 @@ from SIMULTAN.Data.Taxonomy import SimTaxonomyEntry, SimTaxonomyEntryReference,
|
|
20
20
|
from SIMULTAN.Data.Components import SimComponent, ComponentMapping
|
21
21
|
|
22
22
|
from System.IO import DirectoryInfo as SystemDirectoryInfo
|
23
|
+
from System.IO import FileInfo as SystemFileInfo
|
23
24
|
|
24
25
|
# from .config import default_data_model
|
25
26
|
|
@@ -436,6 +437,21 @@ class FileInfo(object, metaclass=MetaMock):
|
|
436
437
|
def __repr__(self):
|
437
438
|
return f'FileInfo({self.file_path})'
|
438
439
|
|
440
|
+
def move(self, new_directory_path: Union[str, DirectoryInfo]) -> FileInfo:
|
441
|
+
|
442
|
+
if isinstance(new_directory_path, str):
|
443
|
+
new_directory_path = DirectoryInfo.from_existing_directory(new_directory_path,
|
444
|
+
data_model=self.data_model)
|
445
|
+
|
446
|
+
# check if file can be moved
|
447
|
+
try:
|
448
|
+
self.resource_entry.ChangeLocation(SystemDirectoryInfo(new_directory_path.full_path),
|
449
|
+
'1',
|
450
|
+
True)
|
451
|
+
except Exception as e:
|
452
|
+
logger.error(f'Error moving file: {e}')
|
453
|
+
raise e
|
454
|
+
|
439
455
|
def get_content(self, encoding='utf-8') -> Optional[Union[str, dict[str, str]]]:
|
440
456
|
"""
|
441
457
|
Get the content of the file.
|
@@ -455,14 +471,19 @@ class FileInfo(object, metaclass=MetaMock):
|
|
455
471
|
else:
|
456
472
|
return
|
457
473
|
|
458
|
-
def copy(self,
|
474
|
+
def copy(self,
|
475
|
+
new_file_path: Union[str, DirectoryInfo]) -> FileInfo:
|
459
476
|
"""
|
460
477
|
Copy the file to a new location.
|
461
478
|
:param new_file_path: New file path.
|
462
479
|
:return: FileInfo
|
463
480
|
"""
|
481
|
+
if isinstance(new_file_path, DirectoryInfo):
|
482
|
+
new_file_path = os.path.join(new_file_path.full_path, self.filename)
|
483
|
+
|
464
484
|
shutil.copy(self.full_path, new_file_path)
|
465
|
-
return FileInfo(new_file_path
|
485
|
+
return FileInfo.from_existing_file(file_path=new_file_path,
|
486
|
+
data_model=self.data_model)
|
466
487
|
|
467
488
|
def write_content(self, content: str, encoding='utf-8') -> None:
|
468
489
|
"""
|
@@ -693,10 +714,13 @@ class DirectoryInfo(object, metaclass=DirectoryInfoMetaMock):
|
|
693
714
|
|
694
715
|
return res
|
695
716
|
|
717
|
+
def file_exists(self, filename: str) -> bool:
|
718
|
+
return any(x for x in self.files if x.resource_entry.Name == filename)
|
719
|
+
|
696
720
|
def get_file(self, filename: str) -> Optional[FileInfo]:
|
697
721
|
resource = next((x for x in self.files if x.resource_entry.Name == filename), None)
|
698
722
|
if resource is not None:
|
699
|
-
return FileInfo(resource_entry=
|
723
|
+
return FileInfo(resource_entry=resource,
|
700
724
|
data_model=self.data_model)
|
701
725
|
else:
|
702
726
|
return None
|
@@ -21,7 +21,7 @@ from SIMULTAN.Data.MultiValues import (SimMultiValueField3D, SimMultiValueField3
|
|
21
21
|
SimMultiValueBigTableHeader, SimMultiValueBigTableParameterSource)
|
22
22
|
|
23
23
|
from SIMULTAN.Data.Assets import (ResourceEntry, ResourceFileEntry, ContainedResourceFileEntry, Asset,
|
24
|
-
LinkedResourceFileEntry, ResourceDirectoryEntry)
|
24
|
+
LinkedResourceFileEntry, ResourceDirectoryEntry, DocumentAsset)
|
25
25
|
from SIMULTAN.Data.Geometry import Face, Edge, Vertex, Volume
|
26
26
|
|
27
27
|
from .multi_values import (simultan_multi_value_field_3d_to_numpy, set_parameter_to_value_field,
|
@@ -695,10 +695,13 @@ def get_component_taxonomy_entry(component, taxonomy: str):
|
|
695
695
|
return param
|
696
696
|
|
697
697
|
for referenced_asset in component.ReferencedAssets:
|
698
|
+
if referenced_asset.Resource is None:
|
699
|
+
return None
|
698
700
|
resource_taxonomy_keys = [x.Target.Key for x in referenced_asset.Resource.Tags]
|
699
701
|
if taxonomy in resource_taxonomy_keys:
|
700
702
|
return referenced_asset.Resource
|
701
703
|
|
704
|
+
|
702
705
|
if obj is None:
|
703
706
|
return None
|
704
707
|
|