PySimultan 0.4.18__tar.gz → 0.4.19__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. {pysimultan-0.4.18 → pysimultan-0.4.19}/PKG-INFO +7 -1
  2. {pysimultan-0.4.18 → pysimultan-0.4.19}/README.md +6 -0
  3. pysimultan-0.4.19/src/PySimultan2/__about__.py +1 -0
  4. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/default_types.py +47 -6
  5. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/taxonomy_maps.py +8 -0
  6. pysimultan-0.4.19/tests/resources/test_set_dictionary.simultan +0 -0
  7. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/test_set_dictionary.py +62 -5
  8. pysimultan-0.4.18/src/PySimultan2/__about__.py +0 -1
  9. {pysimultan-0.4.18 → pysimultan-0.4.19}/.gitignore +0 -0
  10. {pysimultan-0.4.18 → pysimultan-0.4.19}/LICENSE.txt +0 -0
  11. {pysimultan-0.4.18 → pysimultan-0.4.19}/pyproject.toml +0 -0
  12. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/__init__.py +0 -0
  13. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/data_model.py +0 -0
  14. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/files.py +0 -0
  15. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/geometry/__init__.py +0 -0
  16. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/geometry/geometry_base.py +0 -0
  17. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/geometry/utils.py +0 -0
  18. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/multi_values.py +0 -0
  19. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/object_mapper.py +0 -0
  20. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/AssimpNet.dll +0 -0
  21. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/AvalonDock.dll +0 -0
  22. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/BruTile.dll +0 -0
  23. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/ClosedXML.dll +0 -0
  24. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/ComponentBuilder.dll +0 -0
  25. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/ComponentBuilder.dll.config +0 -0
  26. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/ComponentBuilder.runtimeconfig.json +0 -0
  27. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/ComponentBuilder.xml +0 -0
  28. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/ControlzEx.dll +0 -0
  29. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/Cyotek.Drawing.BitmapFont.dll +0 -0
  30. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/DocumentFormat.OpenXml.dll +0 -0
  31. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/DotSpatial.Projections.dll +0 -0
  32. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/ExcelNumberFormat.dll +0 -0
  33. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/Fluent.dll +0 -0
  34. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/GeometryViewer.dll +0 -0
  35. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/GeometryViewer.dll.config +0 -0
  36. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/GeometryViewer.xml +0 -0
  37. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/HelixToolkit.Core.Wpf.dll +0 -0
  38. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.Wpf.dll +0 -0
  39. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/HelixToolkit.SharpDX.Core.dll +0 -0
  40. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/HelixToolkit.dll +0 -0
  41. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/MathNet.Numerics.dll +0 -0
  42. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/Microsoft.AspNetCore.Authorization.dll +0 -0
  43. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/Microsoft.AspNetCore.Metadata.dll +0 -0
  44. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/Microsoft.Extensions.DependencyInjection.Abstractions.dll +0 -0
  45. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/Microsoft.Extensions.Logging.Abstractions.dll +0 -0
  46. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/Microsoft.Extensions.Options.dll +0 -0
  47. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/Microsoft.Extensions.Primitives.dll +0 -0
  48. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.Shell.dll +0 -0
  49. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/Microsoft.WindowsAPICodePack.dll +0 -0
  50. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/Microsoft.Xaml.Behaviors.dll +0 -0
  51. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/Newtonsoft.Json.Bson.dll +0 -0
  52. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/Newtonsoft.Json.dll +0 -0
  53. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.Client.dll +0 -0
  54. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.Client.dll.config +0 -0
  55. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.DataTransferLibrary.dll +0 -0
  56. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SIMULTAN.AutoUpdate.DataTransferLibrary.dll.config +0 -0
  57. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SIMULTAN.Lang.dll +0 -0
  58. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SIMULTAN.Lang.xml +0 -0
  59. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SIMULTAN.Plugins.dll +0 -0
  60. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SIMULTAN.Plugins.xml +0 -0
  61. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SIMULTAN.UI.dll +0 -0
  62. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SIMULTAN.UI.xml +0 -0
  63. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SIMULTAN.dll +0 -0
  64. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SIMULTAN.xml +0 -0
  65. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SharpDX.D3DCompiler.dll +0 -0
  66. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SharpDX.DXGI.dll +0 -0
  67. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SharpDX.Direct2D1.dll +0 -0
  68. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SharpDX.Direct3D11.dll +0 -0
  69. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SharpDX.Direct3D9.dll +0 -0
  70. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SharpDX.Mathematics.dll +0 -0
  71. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SharpDX.dll +0 -0
  72. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SitePlanner.dll +0 -0
  73. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SitePlanner.dll.config +0 -0
  74. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/SitePlanner.xml +0 -0
  75. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/Sprache.Calc.dll +0 -0
  76. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/Sprache.dll +0 -0
  77. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/System.Data.OleDb.dll +0 -0
  78. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/System.Net.Http.Formatting.dll +0 -0
  79. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/XAMLMarkupExtensions.dll +0 -0
  80. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/__init__.py +0 -0
  81. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/assimp.dll +0 -0
  82. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/defaultsettings.xml +0 -0
  83. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/resources/setup.bat +0 -0
  84. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/simultan_object.py +0 -0
  85. {pysimultan-0.4.18 → pysimultan-0.4.19}/src/PySimultan2/utils.py +0 -0
  86. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/__init__.py +0 -0
  87. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/__init__.py +0 -0
  88. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/create_component.py +0 -0
  89. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/create_component_with_taxonomy_slot.py +0 -0
  90. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/create_referenced_component.py +0 -0
  91. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/create_taxonomies.py +0 -0
  92. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/resources/__init__.py +0 -0
  93. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/resources/change_references_example.simultan +0 -0
  94. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/resources/empty_project.simultan +0 -0
  95. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/resources/empty_test_excel.xlsx +0 -0
  96. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/resources/example1.simultan +0 -0
  97. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/resources/example2.simultan +0 -0
  98. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/resources/example3.simultan +0 -0
  99. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/resources/example4_reference_list.simultan +0 -0
  100. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/resources/example_extend_1.simultan +0 -0
  101. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/resources/list_test.simultan +0 -0
  102. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/resources/template_example3.yml +0 -0
  103. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/resources/template_example4.yml +0 -0
  104. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/resources/template_example_create_typed_component.yml +0 -0
  105. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/resources/template_example_create_typed_component_with_slots.yml +0 -0
  106. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/resources/template_example_extend.yml +0 -0
  107. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/resources/template_example_update_references.yml +0 -0
  108. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/readme_examples/resources/template_reference_list.yml +0 -0
  109. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/resources/U5.simultan +0 -0
  110. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/resources/U5_1.simultan +0 -0
  111. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/resources/U5_orig.simultan +0 -0
  112. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/resources/__init__.py +0 -0
  113. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/resources/new_geometry_test.simultan +0 -0
  114. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/resources/test_file.yml +0 -0
  115. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/resources/test_file_load.simultan +0 -0
  116. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/resources/test_file_project.simultan +0 -0
  117. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/resources/test_multi_value_big_table_load.simultan +0 -0
  118. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/test_calc_static_zone_temperature.py +0 -0
  119. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/test_calculate_steady_state_temperature.py +0 -0
  120. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/test_circular_references.py +0 -0
  121. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/test_create_geometry.py +0 -0
  122. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/test_files.py +0 -0
  123. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/test_files_load.py +0 -0
  124. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/test_load_geometry.py +0 -0
  125. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/test_load_multi_values.py +0 -0
  126. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/test_new_dll.py +0 -0
  127. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/test_new_project_creation.py +0 -0
  128. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/test_numeric_map.py +0 -0
  129. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/test_pythonnet.py +0 -0
  130. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/test_register_class.py +0 -0
  131. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/test_set_attr_property.py +0 -0
  132. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/test_set_properties.py +0 -0
  133. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/test_taxonomie_maps.py +0 -0
  134. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/test_taxonomies.py +0 -0
  135. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/test_ui.py +0 -0
  136. {pysimultan-0.4.18 → pysimultan-0.4.19}/tests/ui_minimal_example.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: PySimultan
3
- Version: 0.4.18
3
+ Version: 0.4.19
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
@@ -78,3 +78,9 @@ C:\Program Files\FreeCAD
78
78
 
79
79
 
80
80
  ```
81
+
82
+
83
+ # Change Log
84
+
85
+ ## [0.4.19] - 2024-07-01
86
+ - Refactored dictionaries
@@ -49,3 +49,9 @@ C:\Program Files\FreeCAD
49
49
 
50
50
 
51
51
  ```
52
+
53
+
54
+ # Change Log
55
+
56
+ ## [0.4.19] - 2024-07-01
57
+ - Refactored dictionaries
@@ -0,0 +1 @@
1
+ version = '0.4.19'
@@ -341,6 +341,9 @@ class ComponentDictionary(SimultanObject):
341
341
  super().__init__(*args, **kwargs)
342
342
  self.component_policy = kwargs.get('component_policy', 'subcomponent') # component add policy of the content/parameter/property, 'reference' or 'subcomponent'
343
343
 
344
+ def __load_init__(self, *args, **kwargs):
345
+ self._dict = {}
346
+
344
347
  @classmethod
345
348
  def create_from_values(cls,
346
349
  values: dict[str, Any],
@@ -377,10 +380,48 @@ class ComponentDictionary(SimultanObject):
377
380
  return object.__getattribute__(self, '_dict')[key]
378
381
  else:
379
382
  # data_model = config.default_data_model
380
- obj = get_component_taxonomy_entry(self._wrapped_obj, key)
381
- if obj is not None:
382
- val = get_obj_value(obj, data_model=self._data_model, object_mapper=self._object_mapper)
383
- self._dict[key] = val
383
+ # obj = get_component_taxonomy_entry(self._wrapped_obj, key)
384
+ # if obj is not None:
385
+ # val = get_obj_value(obj, data_model=self._data_model, object_mapper=self._object_mapper)
386
+
387
+ if key in self._taxonomy_map.parameter_taxonomy_entry_dict.keys():
388
+ text_or_key = self._taxonomy_map.parameter_taxonomy_entry_dict[key]
389
+ else:
390
+ content = Content(text_or_key=f'__dict_key__{key}',
391
+ property_name=key,
392
+ type=None,
393
+ unit=None,
394
+ documentation=f'Property {key} in ComponentDictionary',
395
+ component_policy=self.component_policy)
396
+ self._taxonomy_map.add_content(content)
397
+ text_or_key = content.text_or_key
398
+
399
+ try:
400
+ components = list(self._wrapped_obj.Components.Items)
401
+ val = next((get_obj_value(x.Component,
402
+ data_model=self._data_model,
403
+ object_mapper=self._object_mapper) for x in components if
404
+ x.Slot.SlotBase.Target.Key == text_or_key), None)
405
+ if val is None:
406
+ ref_components = list(self._wrapped_obj.ReferencedComponents.Items)
407
+ val = next((get_obj_value(x.Target,
408
+ data_model=self._data_model,
409
+ object_mapper=self._object_mapper) for x in ref_components
410
+ if x.Slot.SlotBase.Target.Key == text_or_key), None)
411
+ if val is None:
412
+ parameters = list(self._wrapped_obj.Parameters.Items)
413
+ val = next((get_obj_value(x,
414
+ data_model=self._data_model,
415
+ object_mapper=self._object_mapper) for x in parameters if
416
+ x.NameTaxonomyEntry.TextOrKey == text_or_key), None)
417
+
418
+ except Exception as e:
419
+ logger.error(f'Could not get value for key {key} ({text_or_key}) in {self}:\n{e}')
420
+ raise ValueError(f'Could not get value for key {key} ({text_or_key}) in {self}:\n{e}')
421
+
422
+ self._dict[key] = get_obj_value(val,
423
+ data_model=self._data_model,
424
+ object_mapper=self._object_mapper)
384
425
  return self._dict[key]
385
426
 
386
427
  def __setitem__(self, key, value):
@@ -391,7 +432,7 @@ class ComponentDictionary(SimultanObject):
391
432
  if key in self._taxonomy_map.content_dict.keys():
392
433
  content = self._taxonomy_map.content_dict[key]
393
434
  else:
394
- content = Content(text_or_key=key,
435
+ content = Content(text_or_key=f'__dict_key__{key}',
395
436
  property_name=key,
396
437
  type=None,
397
438
  unit=None,
@@ -399,7 +440,6 @@ class ComponentDictionary(SimultanObject):
399
440
  component_policy=self.component_policy)
400
441
  self._taxonomy_map.add_content(content)
401
442
  taxonomy_entry = content.get_taxonomie_entry(self._data_model)
402
-
403
443
  component_idx, ref_component_idx, parameter_idx, ref_asset_idx = get_param_indices(self._wrapped_obj,
404
444
  taxonomy_entry)
405
445
 
@@ -425,6 +465,7 @@ class ComponentDictionary(SimultanObject):
425
465
  ref_component_idx=ref_component_idx,
426
466
  parameter_idx=parameter_idx,
427
467
  keep=[])
468
+ return
428
469
 
429
470
  if isinstance(value, (list, tuple, set, ComponentList)):
430
471
  setter_fcn = set_property_to_list
@@ -87,6 +87,7 @@ class TaxonomyMap(object):
87
87
 
88
88
  self._content = []
89
89
  self._content_dict = {}
90
+ self._parameter_taxonomy_entry_dict = {}
90
91
 
91
92
  self.taxonomy_name = kwargs.get('taxonomy_name', kwargs.get('taxonomy_key', None))
92
93
  self.taxonomy_key = kwargs.get('taxonomy_key', None)
@@ -124,6 +125,13 @@ class TaxonomyMap(object):
124
125
  self._content_dict[content.text_or_key] = content
125
126
  return self._content_dict
126
127
 
128
+ @property
129
+ def parameter_taxonomy_entry_dict(self):
130
+ if not self._parameter_taxonomy_entry_dict:
131
+ for content in self._content:
132
+ self._parameter_taxonomy_entry_dict[content.property_name] = content.text_or_key
133
+ return self._parameter_taxonomy_entry_dict
134
+
127
135
  def write(self, filename=None):
128
136
  if filename is not None:
129
137
  with open(filename, mode='w') as f:
@@ -1,6 +1,6 @@
1
- from PySimultan2.data_model import DataModel
2
- from PySimultan2.object_mapper import PythonMapper
3
- from PySimultan2.taxonomy_maps import TaxonomyMap, Content
1
+ from PySimultan2.src.PySimultan2.data_model import DataModel
2
+ from PySimultan2.src.PySimultan2.object_mapper import PythonMapper
3
+ from PySimultan2.src.PySimultan2.taxonomy_maps import TaxonomyMap, Content
4
4
 
5
5
  import resources
6
6
 
@@ -70,19 +70,76 @@ component = mapped_cls_1(name='test_component',
70
70
 
71
71
 
72
72
  def test_set_dictionary_param(component):
73
+
74
+ other_component = mapped_cls_2(name='other_component',
75
+ mapped_property=None)
76
+ other_component_2 = mapped_cls_2(name='other_component_2',
77
+ mapped_property=None)
78
+ other_component_3 = mapped_cls_2(name='other_component_3',
79
+ mapped_property=None)
80
+ other_component_4 = mapped_cls_2(name='other_component_4',
81
+ mapped_property=None)
82
+
73
83
  test_dict = {'val_a': 1,
74
84
  'val_b': 2.0,
75
- 'val_c': 'test'}
85
+ 'val_c': 'test',
86
+ 'val_d': True,
87
+ 'val_e': [other_component, other_component_2, other_component_3],
88
+ 'val_f': {'a': other_component_2, 'b': other_component_3},
89
+ 'val_g': None,
90
+ 'val_h': other_component,
91
+ }
76
92
  component.mapped_property = test_dict
77
-
78
93
  component.mapped_property['val_a'] = 222
79
94
 
95
+ component.mapped_property['val_i'] = other_component_4
96
+
80
97
  print(component.mapped_property)
81
98
 
82
99
 
100
+ def load_data_model(data_model: DataModel):
101
+ data_model = DataModel(project_path=project_path,
102
+ user_name='admin',
103
+ password='admin')
104
+ typed_data = data_model.get_typed_data(mapper=mapper,
105
+ create_all=True)
106
+
107
+ TestComponent = mapper.get_mapped_class('TestComponent')
108
+ test_component = TestComponent.cls_instances[0]
109
+
110
+ TestComponent2 = mapper.get_mapped_class('TestComponent2')
111
+ other_component = next(x for x in TestComponent2.cls_instances if x.name == 'other_component')
112
+ other_component_2 = next(x for x in TestComponent2.cls_instances if x.name == 'other_component_2')
113
+ other_component_3 = next(x for x in TestComponent2.cls_instances if x.name == 'other_component_3')
114
+ other_component_4 = next(x for x in TestComponent2.cls_instances if x.name == 'other_component_4')
115
+
116
+ assert test_component.mapped_property['val_a'] == 222
117
+ assert test_component.mapped_property['val_b'] == 2.0
118
+ assert test_component.mapped_property['val_c'] == 'test'
119
+ assert test_component.mapped_property['val_d'] is True
120
+ assert test_component.mapped_property['val_g'] is None
121
+ assert test_component.mapped_property['val_h'] == other_component
122
+ assert len(test_component.mapped_property['val_e']) == 3
123
+ assert test_component.mapped_property['val_e'][0] == other_component
124
+ assert test_component.mapped_property['val_e'][1] == other_component_2
125
+ assert test_component.mapped_property['val_e'][2] == other_component_3
126
+ assert test_component.mapped_property['val_f']['a'] == other_component_2
127
+ assert test_component.mapped_property['val_f']['b'] == other_component_3
128
+ assert test_component.mapped_property['val_i'] == other_component_4
129
+
130
+ return data_model
131
+
132
+
83
133
  if __name__ == '__main__':
84
134
  test_set_dictionary_param(component)
85
135
  data_model.save()
136
+ mapper.clear()
137
+ data_model.cleanup()
138
+ data_model = DataModel(project_path=project_path,
139
+ user_name='admin',
140
+ password='admin')
141
+ load_data_model(data_model)
142
+
86
143
 
87
144
  data_model.cleanup()
88
145
  print('Test passed')
@@ -1 +0,0 @@
1
- version = '0.4.18'
File without changes
File without changes
File without changes