PySimultan 0.5.4__tar.gz → 0.5.5__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {pysimultan-0.5.4 → pysimultan-0.5.5}/PKG-INFO +1 -1
- pysimultan-0.5.5/src/PySimultan2/__about__.py +1 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/files.py +24 -4
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/utils.py +8 -1
- pysimultan-0.5.5/tests/test_directory_and_files.py +154 -0
- pysimultan-0.5.4/src/PySimultan2/__about__.py +0 -1
- pysimultan-0.5.4/tests/test_directory_and_files.py +0 -63
- pysimultan-0.5.4/tests/test_empty_file.txt +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/.gitignore +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/LICENSE.txt +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/README.md +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/pyproject.toml +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/CHANGELOG.md +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/__init__.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/data_model.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/default_types.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/geometry/__init__.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/geometry/geometry_base.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/geometry/utils.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/multi_values.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/object_mapper.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/AssimpNet.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/AvalonDock.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/BruTile.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/ClosedXML.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/ComponentBuilder.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/ComponentBuilder.dll.config +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/ComponentBuilder.runtimeconfig.json +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/ComponentBuilder.xml +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/ControlzEx.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/Cyotek.Drawing.BitmapFont.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/DocumentFormat.OpenXml.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/DotSpatial.Projections.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/ExcelNumberFormat.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/Fluent.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/HelixToolkit.Core.Wpf.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.Wpf.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/HelixToolkit.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/MathNet.Numerics.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/Microsoft.AspNetCore.Authorization.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/Microsoft.AspNetCore.Metadata.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/Microsoft.Extensions.DependencyInjection.Abstractions.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/Microsoft.Extensions.Logging.Abstractions.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/Microsoft.Extensions.Options.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/Microsoft.Extensions.Primitives.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.Shell.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/Microsoft.Xaml.Behaviors.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/Newtonsoft.Json.Bson.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/Newtonsoft.Json.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.Client.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.Client.dll.config +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.DataTransferLibrary.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.DataTransferLibrary.dll.config +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/SIMULTAN.Lang.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/SIMULTAN.Lang.xml +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/SIMULTAN.Plugins.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/SIMULTAN.Plugins.xml +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/SIMULTAN.UI.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/SIMULTAN.UI.xml +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/SIMULTAN.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/SIMULTAN.xml +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/SharpDX.D3DCompiler.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/SharpDX.DXGI.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/SharpDX.Direct2D1.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/SharpDX.Direct3D11.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/SharpDX.Direct3D9.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/SharpDX.Mathematics.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/SharpDX.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/Sprache.Calc.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/Sprache.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/System.Collections.Immutable.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/System.Data.OleDb.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/System.Net.Http.Formatting.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/System.Reflection.Metadata.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/System.Reflection.MetadataLoadContext.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/XAMLMarkupExtensions.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/__init__.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/assimp.dll +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/componentmanager.user +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/defaultsettings.xml +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/setup.bat +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/simultan_object.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/taxonomy_maps.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/type_setter_lookup.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/__init__.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/__init__.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/create_component.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/create_component_with_taxonomy_slot.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/create_referenced_component.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/create_taxonomies.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/resources/__init__.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/resources/change_references_example.simultan +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/resources/empty_project.simultan +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/resources/empty_test_excel.xlsx +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/resources/example1.simultan +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/resources/example2.simultan +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/resources/example3.simultan +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/resources/example4_reference_list.simultan +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/resources/example_extend_1.simultan +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/resources/list_test.simultan +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/resources/template_example3.yml +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/resources/template_example4.yml +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/resources/template_example_create_typed_component.yml +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/resources/template_example_create_typed_component_with_slots.yml +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/resources/template_example_extend.yml +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/resources/template_example_update_references.yml +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/readme_examples/resources/template_reference_list.yml +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/resources/U5.simultan +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/resources/U5_1.simultan +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/resources/U5_orig.simultan +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/resources/__init__.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/resources/new_geometry_test.simultan +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/resources/new_test_file.txt +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/resources/new_test_file2.txt +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/resources/test_file.yml +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/resources/test_file_load.simultan +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/resources/test_file_project.simultan +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/resources/test_multi_value_big_table_load.simultan +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/resources/test_parameter_reference_project.simultan +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/resources/test_set_dictionary.simultan +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_calc_static_zone_temperature.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_calculate_steady_state_temperature.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_circular_references.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_create_geometry.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_files.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_files_load.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_load_geometry.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_load_multi_values.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_new_dll.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_new_project_creation.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_numeric_map.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_parameter_reference.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_pythonnet.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_register_class.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_register_decorator.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_set_attr_property.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_set_dictionary.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_set_properties.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_taxonomie_maps.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_taxonomies.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/test_ui.py +0 -0
- {pysimultan-0.5.4 → pysimultan-0.5.5}/tests/ui_minimal_example.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: PySimultan
|
3
|
-
Version: 0.5.
|
3
|
+
Version: 0.5.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.5'
|
@@ -129,7 +129,7 @@ def create_asset_from_string(filename: str,
|
|
129
129
|
|
130
130
|
if target_dir is not None:
|
131
131
|
if isinstance(target_dir, DirectoryInfo):
|
132
|
-
target_dir = target_dir.
|
132
|
+
target_dir = target_dir.full_path
|
133
133
|
|
134
134
|
resource = data_model.add_resource(filepath,
|
135
135
|
target_dir=target_dir)
|
@@ -324,6 +324,11 @@ class FileInfo(object, metaclass=MetaMock):
|
|
324
324
|
except Exception as e:
|
325
325
|
return None
|
326
326
|
|
327
|
+
@property
|
328
|
+
def directory(self) -> DirectoryInfo:
|
329
|
+
return DirectoryInfo(resource_entry=self.resource_entry.Parent,
|
330
|
+
data_model=self.data_model)
|
331
|
+
|
327
332
|
@property
|
328
333
|
def resource_entry(self) -> Union[ResourceFileEntry, ContainedResourceFileEntry, None]:
|
329
334
|
if self._resource_entry is None:
|
@@ -505,14 +510,18 @@ class DirectoryInfo(object, metaclass=DirectoryInfoMetaMock):
|
|
505
510
|
|
506
511
|
def __init__(self,
|
507
512
|
path: Optional[str] = None,
|
513
|
+
helper_file: Optional[FileInfo] = None,
|
514
|
+
resource_entry: Optional[ResourceDirectoryEntry] = None,
|
508
515
|
*args,
|
509
516
|
**kwargs):
|
510
517
|
|
511
518
|
self._resource_entry: Optional[ResourceDirectoryEntry] = None
|
519
|
+
self._helper_file: Optional[FileInfo] = None
|
512
520
|
self.data_model: Optional[DataModel] = kwargs.get('data_model', None)
|
513
521
|
self.path: str = path
|
514
522
|
|
515
|
-
self.resource_entry =
|
523
|
+
self.resource_entry = resource_entry
|
524
|
+
self.helper_file = helper_file
|
516
525
|
|
517
526
|
@property
|
518
527
|
def tags(self) -> List[SimTaxonomyEntry]:
|
@@ -526,6 +535,17 @@ class DirectoryInfo(object, metaclass=DirectoryInfoMetaMock):
|
|
526
535
|
def relative_path(self) -> str:
|
527
536
|
return self.resource_entry.CurrentRelativePath
|
528
537
|
|
538
|
+
@property
|
539
|
+
def helper_file(self) -> Optional[FileInfo]:
|
540
|
+
if self._helper_file is None:
|
541
|
+
self._helper_file = self.add_file('__dir_helper_file__')
|
542
|
+
|
543
|
+
return self._helper_file
|
544
|
+
|
545
|
+
@helper_file.setter
|
546
|
+
def helper_file(self, value):
|
547
|
+
self._helper_file = value
|
548
|
+
|
529
549
|
@property
|
530
550
|
def resource_entry(self) -> Optional[ResourceDirectoryEntry]:
|
531
551
|
if self._resource_entry is None:
|
@@ -578,7 +598,7 @@ class DirectoryInfo(object, metaclass=DirectoryInfoMetaMock):
|
|
578
598
|
(
|
579
599
|
ResourceFileEntry,
|
580
600
|
ContainedResourceFileEntry)
|
581
|
-
)
|
601
|
+
) and entry.Name != '__dir_helper_file__'
|
582
602
|
]
|
583
603
|
|
584
604
|
@property
|
@@ -610,4 +630,4 @@ class DirectoryInfo(object, metaclass=DirectoryInfoMetaMock):
|
|
610
630
|
add_tag_to_resource(self.resource_entry, tag)
|
611
631
|
|
612
632
|
def __repr__(self):
|
613
|
-
return f'DirectoryInfo(key:{self.key}, hash: {hash(self)}; {self.full_path}
|
633
|
+
return f'DirectoryInfo(key:{self.key}, hash: {hash(self)}; {self.full_path})'
|
@@ -770,6 +770,13 @@ def get_resource_entry_value(obj: ResourceEntry,
|
|
770
770
|
data_model: DataModel = None,
|
771
771
|
object_mapper: PythonMapper = None) -> Union[FileInfo, DirectoryInfo]:
|
772
772
|
if isinstance(obj, (ResourceFileEntry, ContainedResourceFileEntry, LinkedResourceFileEntry)):
|
773
|
+
|
774
|
+
if obj.Name == '__dir_helper_file__':
|
775
|
+
return DirectoryInfo(file_path=obj.Parent.CurrentFullPath,
|
776
|
+
resource_entry=obj.Parent,
|
777
|
+
helper_file=obj,
|
778
|
+
data_model=data_model)
|
779
|
+
|
773
780
|
return FileInfo(file_path=obj.File.FullPath,
|
774
781
|
resource_entry=obj,
|
775
782
|
data_model=data_model)
|
@@ -1203,7 +1210,7 @@ def set_property_to_directory_info(value: DirectoryInfo,
|
|
1203
1210
|
ref_asset_idx = None
|
1204
1211
|
|
1205
1212
|
add_asset_to_component(component._wrapped_obj,
|
1206
|
-
value.resource_entry,
|
1213
|
+
value.helper_file.resource_entry,
|
1207
1214
|
'0',
|
1208
1215
|
tag=taxonomy_entry)
|
1209
1216
|
|
@@ -0,0 +1,154 @@
|
|
1
|
+
import os
|
2
|
+
from PySimultan2.src.PySimultan2 import DataModel, TaxonomyMap, Content, PythonMapper
|
3
|
+
from PySimultan2.src.PySimultan2.files import FileInfo, DirectoryInfo
|
4
|
+
|
5
|
+
|
6
|
+
project_dir = os.environ.get('PROJECT_DIR', '/simultan_projects')
|
7
|
+
if not os.path.exists(project_dir):
|
8
|
+
os.makedirs(project_dir)
|
9
|
+
|
10
|
+
|
11
|
+
def test_files_and_directory_creation():
|
12
|
+
new_data_model = DataModel.create_new_project(project_path=os.path.join(project_dir, 'test_dir_files.simultan'),
|
13
|
+
user_name='admin',
|
14
|
+
password='admin')
|
15
|
+
|
16
|
+
print(new_data_model.file_directories)
|
17
|
+
|
18
|
+
|
19
|
+
new_directory_info = DirectoryInfo(path='directory_info_dir',
|
20
|
+
data_model=new_data_model)
|
21
|
+
|
22
|
+
print(new_data_model.file_directories)
|
23
|
+
|
24
|
+
print(new_directory_info.resource_entry)
|
25
|
+
print(new_directory_info.parent)
|
26
|
+
|
27
|
+
new_file1 = new_directory_info.add_file('test_add_file.txt', 'This is a test file')
|
28
|
+
new_file2 = new_directory_info.add_file('test_add_file2.txt')
|
29
|
+
|
30
|
+
sub_directory_info = new_directory_info.add_sub_directory('sub_dir')
|
31
|
+
print(sub_directory_info.parent)
|
32
|
+
|
33
|
+
print(new_directory_info.sub_directories)
|
34
|
+
|
35
|
+
|
36
|
+
new_directory = new_data_model.create_resource_directory('test_dir')
|
37
|
+
new_directory2 = new_data_model.create_resource_directory('test_dir2')
|
38
|
+
new_directory4 = new_data_model.create_resource_directory('test_dir3')
|
39
|
+
|
40
|
+
new_data_model.add_empty_resource(filename=os.path.join(new_directory.CurrentFullPath, 'test_empty_file.txt'))
|
41
|
+
|
42
|
+
new_data_model.add_empty_resource(filename='test_empty_file2.txt',
|
43
|
+
target_dir=new_directory)
|
44
|
+
|
45
|
+
new_file_info0 = FileInfo.from_string(filename='test_file.txt',
|
46
|
+
content='This is a test file',
|
47
|
+
data_model=new_data_model)
|
48
|
+
|
49
|
+
new_file_info = FileInfo.from_string(filename='test_file.txt',
|
50
|
+
content='This is a test file',
|
51
|
+
target_dir=new_directory,
|
52
|
+
data_model=new_data_model)
|
53
|
+
|
54
|
+
new_file_info2 = FileInfo.from_string(filename='test_file2.txt',
|
55
|
+
content='This is a test file 2',
|
56
|
+
target_dir=new_directory2.current_full_path,
|
57
|
+
data_model=new_data_model)
|
58
|
+
|
59
|
+
# create just a file in the directory
|
60
|
+
with open(os.path.join(new_directory2.current_full_path, 'not_contained_test_file3.txt'), 'w') as f:
|
61
|
+
f.write('This is a test file 3')
|
62
|
+
|
63
|
+
|
64
|
+
new_data_model.save()
|
65
|
+
new_data_model.cleanup()
|
66
|
+
|
67
|
+
|
68
|
+
def create_mapper():
|
69
|
+
mapper = PythonMapper()
|
70
|
+
|
71
|
+
class TestComponent(object):
|
72
|
+
def __init__(self, *args, **kwargs):
|
73
|
+
self.file = kwargs.get('file')
|
74
|
+
self.directory = kwargs.get('directory')
|
75
|
+
self.param_1 = kwargs.get('param_1')
|
76
|
+
self.param_2 = kwargs.get('param_2')
|
77
|
+
|
78
|
+
content0 = Content(text_or_key='file', # text or key of the content/parameter/property
|
79
|
+
property_name='file', # name of the generated property
|
80
|
+
type='file', # type of the content/parameter/property
|
81
|
+
unit=None, # unit of the content/parameter/property
|
82
|
+
documentation='file_value to test')
|
83
|
+
|
84
|
+
content1 = Content(text_or_key='directory', # text or key of the content/parameter/property
|
85
|
+
property_name='directory', # name of the generated property
|
86
|
+
type='file', # type of the content/parameter/property
|
87
|
+
unit=None, # unit of the content/parameter/property
|
88
|
+
documentation='file_value_2 to test')
|
89
|
+
|
90
|
+
content2 = Content(text_or_key='param_1', # text or key of the content/parameter/property
|
91
|
+
property_name='param_1', # name of the generated property
|
92
|
+
type=None, # type of the content/parameter/property
|
93
|
+
unit=None, # unit of the content/parameter/property
|
94
|
+
documentation='param_1 to test')
|
95
|
+
|
96
|
+
content3 = Content(text_or_key='param_2', # text or key of the content/parameter/property
|
97
|
+
property_name='param_2', # name of the generated property
|
98
|
+
type=None, # type of the content/parameter/property
|
99
|
+
unit=None, # unit of the content/parameter/property
|
100
|
+
documentation='param_2 to test')
|
101
|
+
|
102
|
+
test_component_map = TaxonomyMap(taxonomy_name='PySimultan',
|
103
|
+
taxonomy_key='Test',
|
104
|
+
taxonomy_entry_name='test_component',
|
105
|
+
taxonomy_entry_key='test_component',
|
106
|
+
content=[content0, content1, content2, content3],
|
107
|
+
)
|
108
|
+
|
109
|
+
mapper.register(test_component_map.taxonomy_entry_key, TestComponent, taxonomy_map=test_component_map)
|
110
|
+
|
111
|
+
return mapper
|
112
|
+
|
113
|
+
|
114
|
+
def test_component_with_directory():
|
115
|
+
|
116
|
+
new_data_model = DataModel.create_new_project(project_path=os.path.join(project_dir, 'test_dir_component.simultan'),
|
117
|
+
user_name='admin',
|
118
|
+
password='admin')
|
119
|
+
|
120
|
+
mapper = create_mapper()
|
121
|
+
mapped_test_component_cls = mapper.get_mapped_class('test_component')
|
122
|
+
|
123
|
+
new_component = mapped_test_component_cls(file=FileInfo.from_string(filename='test_file.txt',
|
124
|
+
content='This is a test file',
|
125
|
+
data_model=new_data_model),
|
126
|
+
directory=DirectoryInfo(path='test_dir',
|
127
|
+
data_model=new_data_model),
|
128
|
+
param_1='param_1_value',
|
129
|
+
param_2=2)
|
130
|
+
|
131
|
+
print(new_component.directory)
|
132
|
+
|
133
|
+
new_data_model.save()
|
134
|
+
new_data_model.cleanup()
|
135
|
+
mapper.clear()
|
136
|
+
|
137
|
+
|
138
|
+
def test_load_component_with_directory():
|
139
|
+
new_data_model = DataModel(project_path=os.path.join(project_dir, 'test_dir_component.simultan'))
|
140
|
+
|
141
|
+
mapper = create_mapper()
|
142
|
+
typed_data = new_data_model.get_typed_data(mapper=mapper)
|
143
|
+
mapped_test_component_cls = mapper.get_mapped_class('test_component')
|
144
|
+
|
145
|
+
assert isinstance(mapped_test_component_cls.cls_instances[0].directory, DirectoryInfo)
|
146
|
+
|
147
|
+
new_data_model.cleanup()
|
148
|
+
mapper.clear()
|
149
|
+
|
150
|
+
|
151
|
+
if __name__ == '__main__':
|
152
|
+
# test_files_and_directory_creation()
|
153
|
+
test_component_with_directory()
|
154
|
+
test_load_component_with_directory()
|
@@ -1 +0,0 @@
|
|
1
|
-
version = '0.5.4'
|
@@ -1,63 +0,0 @@
|
|
1
|
-
import os
|
2
|
-
from PySimultan2.src.PySimultan2 import DataModel
|
3
|
-
from PySimultan2.src.PySimultan2.files import FileInfo, DirectoryInfo
|
4
|
-
|
5
|
-
|
6
|
-
project_dir = os.environ.get('PROJECT_DIR', '/simultan_projects')
|
7
|
-
if not os.path.exists(project_dir):
|
8
|
-
os.makedirs(project_dir)
|
9
|
-
|
10
|
-
new_data_model = DataModel.create_new_project(project_path=os.path.join(project_dir, 'test_dir_files.simultan'),
|
11
|
-
user_name='admin',
|
12
|
-
password='admin')
|
13
|
-
|
14
|
-
print(new_data_model.file_directories)
|
15
|
-
|
16
|
-
|
17
|
-
new_directory_info = DirectoryInfo(path='directory_info_dir',
|
18
|
-
data_model=new_data_model)
|
19
|
-
|
20
|
-
print(new_data_model.file_directories)
|
21
|
-
|
22
|
-
print(new_directory_info.resource_entry)
|
23
|
-
print(new_directory_info.parent)
|
24
|
-
|
25
|
-
new_file1 = new_directory_info.add_file('test_add_file.txt', 'This is a test file')
|
26
|
-
new_file2 = new_directory_info.add_file('test_add_file2.txt')
|
27
|
-
|
28
|
-
sub_directory_info = new_directory_info.add_sub_directory('sub_dir')
|
29
|
-
print(sub_directory_info.parent)
|
30
|
-
|
31
|
-
print(new_directory_info.sub_directories)
|
32
|
-
|
33
|
-
|
34
|
-
new_directory = new_data_model.create_resource_directory('test_dir')
|
35
|
-
new_directory2 = new_data_model.create_resource_directory('test_dir2')
|
36
|
-
new_directory4 = new_data_model.create_resource_directory('test_dir3')
|
37
|
-
|
38
|
-
new_data_model.add_empty_resource(filename=os.path.join(new_directory.CurrentFullPath, 'test_empty_file.txt'))
|
39
|
-
|
40
|
-
new_data_model.add_empty_resource(filename='test_empty_file2.txt',
|
41
|
-
target_dir=new_directory)
|
42
|
-
|
43
|
-
new_file_info0 = FileInfo.from_string(filename='test_file.txt',
|
44
|
-
content='This is a test file',
|
45
|
-
data_model=new_data_model)
|
46
|
-
|
47
|
-
new_file_info = FileInfo.from_string(filename='test_file.txt',
|
48
|
-
content='This is a test file',
|
49
|
-
target_dir=new_directory,
|
50
|
-
data_model=new_data_model)
|
51
|
-
|
52
|
-
new_file_info2 = FileInfo.from_string(filename='test_file2.txt',
|
53
|
-
content='This is a test file 2',
|
54
|
-
target_dir=new_directory2.current_full_path,
|
55
|
-
data_model=new_data_model)
|
56
|
-
|
57
|
-
# create just a file in the directory
|
58
|
-
with open(os.path.join(new_directory2.current_full_path, 'not_contained_test_file3.txt'), 'w') as f:
|
59
|
-
f.write('This is a test file 3')
|
60
|
-
|
61
|
-
|
62
|
-
new_data_model.save()
|
63
|
-
new_data_model.cleanup()
|
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.4 → pysimultan-0.5.5}/src/PySimultan2/resources/ComponentBuilder.runtimeconfig.json
RENAMED
File without changes
|
File without changes
|
File without changes
|
{pysimultan-0.5.4 → pysimultan-0.5.5}/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.4 → pysimultan-0.5.5}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.Wpf.dll
RENAMED
File without changes
|
{pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.dll
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/Microsoft.AspNetCore.Metadata.dll
RENAMED
File without changes
|
File without changes
|
File without changes
|
{pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/Microsoft.Extensions.Options.dll
RENAMED
File without changes
|
{pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/Microsoft.Extensions.Primitives.dll
RENAMED
File without changes
|
File without changes
|
{pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.dll
RENAMED
File without changes
|
{pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/Microsoft.Xaml.Behaviors.dll
RENAMED
File without changes
|
File without changes
|
File without changes
|
{pysimultan-0.5.4 → pysimultan-0.5.5}/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.4 → pysimultan-0.5.5}/src/PySimultan2/resources/System.Collections.Immutable.dll
RENAMED
File without changes
|
File without changes
|
{pysimultan-0.5.4 → pysimultan-0.5.5}/src/PySimultan2/resources/System.Net.Http.Formatting.dll
RENAMED
File without changes
|
{pysimultan-0.5.4 → pysimultan-0.5.5}/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
|
{pysimultan-0.5.4 → pysimultan-0.5.5}/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.4 → pysimultan-0.5.5}/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.4 → pysimultan-0.5.5}/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.4 → pysimultan-0.5.5}/tests/readme_examples/resources/template_example_extend.yml
RENAMED
File without changes
|
File without changes
|
{pysimultan-0.5.4 → pysimultan-0.5.5}/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
|
File without changes
|
File without changes
|
{pysimultan-0.5.4 → pysimultan-0.5.5}/tests/resources/test_multi_value_big_table_load.simultan
RENAMED
File without changes
|
{pysimultan-0.5.4 → pysimultan-0.5.5}/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
|
File without changes
|