PySimultan 0.5.8__tar.gz → 0.5.9__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (143) hide show
  1. {pysimultan-0.5.8 → pysimultan-0.5.9}/PKG-INFO +7 -3
  2. {pysimultan-0.5.8 → pysimultan-0.5.9}/README.md +3 -0
  3. pysimultan-0.5.9/src/PySimultan2/__about__.py +1 -0
  4. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/data_model.py +54 -0
  5. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/files.py +18 -0
  6. pysimultan-0.5.9/tests/resources/test_file_project.simultan +0 -0
  7. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_files.py +41 -2
  8. pysimultan-0.5.8/src/PySimultan2/__about__.py +0 -1
  9. pysimultan-0.5.8/tests/resources/test_file.yml +0 -1
  10. pysimultan-0.5.8/tests/resources/test_file_project.simultan +0 -0
  11. pysimultan-0.5.8/tests/resources/test_set_dictionary.simultan +0 -0
  12. {pysimultan-0.5.8 → pysimultan-0.5.9}/.gitignore +0 -0
  13. {pysimultan-0.5.8 → pysimultan-0.5.9}/LICENSE.txt +0 -0
  14. {pysimultan-0.5.8 → pysimultan-0.5.9}/pyproject.toml +0 -0
  15. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/CHANGELOG.md +0 -0
  16. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/__init__.py +0 -0
  17. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/default_types.py +0 -0
  18. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/geometry/__init__.py +0 -0
  19. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/geometry/geometry_base.py +0 -0
  20. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/geometry/utils.py +0 -0
  21. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/multi_values.py +0 -0
  22. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/object_mapper.py +0 -0
  23. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/AssimpNet.dll +0 -0
  24. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/AvalonDock.dll +0 -0
  25. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/BruTile.dll +0 -0
  26. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/ClosedXML.dll +0 -0
  27. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/ComponentBuilder.dll +0 -0
  28. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/ComponentBuilder.dll.config +0 -0
  29. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/ComponentBuilder.runtimeconfig.json +0 -0
  30. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/ComponentBuilder.xml +0 -0
  31. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/ControlzEx.dll +0 -0
  32. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/Cyotek.Drawing.BitmapFont.dll +0 -0
  33. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/DocumentFormat.OpenXml.dll +0 -0
  34. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/DotSpatial.Projections.dll +0 -0
  35. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/ExcelNumberFormat.dll +0 -0
  36. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/Fluent.dll +0 -0
  37. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/HelixToolkit.Core.Wpf.dll +0 -0
  38. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.Wpf.dll +0 -0
  39. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.dll +0 -0
  40. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/HelixToolkit.dll +0 -0
  41. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/MathNet.Numerics.dll +0 -0
  42. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.AspNetCore.Authorization.dll +0 -0
  43. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.AspNetCore.Metadata.dll +0 -0
  44. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.Extensions.DependencyInjection.Abstractions.dll +0 -0
  45. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.Extensions.Logging.Abstractions.dll +0 -0
  46. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.Extensions.Options.dll +0 -0
  47. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.Extensions.Primitives.dll +0 -0
  48. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.Shell.dll +0 -0
  49. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.dll +0 -0
  50. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/Microsoft.Xaml.Behaviors.dll +0 -0
  51. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/Newtonsoft.Json.Bson.dll +0 -0
  52. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/Newtonsoft.Json.dll +0 -0
  53. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.Client.dll +0 -0
  54. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.Client.dll.config +0 -0
  55. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.DataTransferLibrary.dll +0 -0
  56. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.DataTransferLibrary.dll.config +0 -0
  57. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.Lang.dll +0 -0
  58. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.Lang.xml +0 -0
  59. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.Plugins.dll +0 -0
  60. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.Plugins.xml +0 -0
  61. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.UI.dll +0 -0
  62. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.UI.xml +0 -0
  63. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.dll +0 -0
  64. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/SIMULTAN.xml +0 -0
  65. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/SharpDX.D3DCompiler.dll +0 -0
  66. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/SharpDX.DXGI.dll +0 -0
  67. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/SharpDX.Direct2D1.dll +0 -0
  68. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/SharpDX.Direct3D11.dll +0 -0
  69. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/SharpDX.Direct3D9.dll +0 -0
  70. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/SharpDX.Mathematics.dll +0 -0
  71. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/SharpDX.dll +0 -0
  72. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/Sprache.Calc.dll +0 -0
  73. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/Sprache.dll +0 -0
  74. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/System.Collections.Immutable.dll +0 -0
  75. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/System.Data.OleDb.dll +0 -0
  76. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/System.Net.Http.Formatting.dll +0 -0
  77. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/System.Reflection.Metadata.dll +0 -0
  78. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/System.Reflection.MetadataLoadContext.dll +0 -0
  79. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/XAMLMarkupExtensions.dll +0 -0
  80. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/__init__.py +0 -0
  81. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/assimp.dll +0 -0
  82. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/componentmanager.user +0 -0
  83. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/defaultsettings.xml +0 -0
  84. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/resources/setup.bat +0 -0
  85. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/simultan_object.py +0 -0
  86. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/taxonomy_maps.py +0 -0
  87. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/type_setter_lookup.py +0 -0
  88. {pysimultan-0.5.8 → pysimultan-0.5.9}/src/PySimultan2/utils.py +0 -0
  89. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/__init__.py +0 -0
  90. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/__init__.py +0 -0
  91. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/create_component.py +0 -0
  92. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/create_component_with_taxonomy_slot.py +0 -0
  93. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/create_referenced_component.py +0 -0
  94. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/create_taxonomies.py +0 -0
  95. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/resources/__init__.py +0 -0
  96. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/resources/change_references_example.simultan +0 -0
  97. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/resources/empty_project.simultan +0 -0
  98. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/resources/empty_test_excel.xlsx +0 -0
  99. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/resources/example1.simultan +0 -0
  100. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/resources/example2.simultan +0 -0
  101. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/resources/example3.simultan +0 -0
  102. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/resources/example4_reference_list.simultan +0 -0
  103. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/resources/example_extend_1.simultan +0 -0
  104. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/resources/list_test.simultan +0 -0
  105. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/resources/template_example3.yml +0 -0
  106. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/resources/template_example4.yml +0 -0
  107. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/resources/template_example_create_typed_component.yml +0 -0
  108. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/resources/template_example_create_typed_component_with_slots.yml +0 -0
  109. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/resources/template_example_extend.yml +0 -0
  110. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/resources/template_example_update_references.yml +0 -0
  111. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/readme_examples/resources/template_reference_list.yml +0 -0
  112. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/resources/U5.simultan +0 -0
  113. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/resources/U5_1.simultan +0 -0
  114. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/resources/U5_orig.simultan +0 -0
  115. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/resources/__init__.py +0 -0
  116. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/resources/new_geometry_test.simultan +0 -0
  117. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/resources/new_test_file.txt +0 -0
  118. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/resources/new_test_file2.txt +0 -0
  119. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/resources/test_file_load.simultan +0 -0
  120. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/resources/test_multi_value_big_table_load.simultan +0 -0
  121. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/resources/test_parameter_reference_project.simultan +0 -0
  122. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_calc_static_zone_temperature.py +0 -0
  123. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_calculate_steady_state_temperature.py +0 -0
  124. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_circular_references.py +0 -0
  125. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_create_geometry.py +0 -0
  126. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_directory_and_files.py +0 -0
  127. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_files_load.py +0 -0
  128. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_load_geometry.py +0 -0
  129. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_load_multi_values.py +0 -0
  130. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_new_dll.py +0 -0
  131. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_new_project_creation.py +0 -0
  132. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_numeric_map.py +0 -0
  133. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_parameter_reference.py +0 -0
  134. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_pythonnet.py +0 -0
  135. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_register_class.py +0 -0
  136. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_register_decorator.py +0 -0
  137. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_set_attr_property.py +0 -0
  138. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_set_dictionary.py +0 -0
  139. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_set_properties.py +0 -0
  140. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_taxonomie_maps.py +0 -0
  141. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_taxonomies.py +0 -0
  142. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/test_ui.py +0 -0
  143. {pysimultan-0.5.8 → pysimultan-0.5.9}/tests/ui_minimal_example.py +0 -0
@@ -1,11 +1,12 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: PySimultan
3
- Version: 0.5.8
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,9 @@ 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
+
169
173
  ## [0.5.7] - 2024-12-09
170
174
  - Added support for different taxonomy for content
171
175
  - Added support for numpy np.float32, np.float64 and np.int32, np.int64
@@ -138,6 +138,9 @@ 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
+
141
144
  ## [0.5.7] - 2024-12-09
142
145
  - Added support for different taxonomy for content
143
146
  - Added support for numpy np.float32, np.float64 and np.int32, np.int64
@@ -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:
@@ -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.8'
@@ -1 +0,0 @@
1
- ardgadfb
File without changes
File without changes
File without changes
File without changes
File without changes