ansys-fluent-core 0.28.2__py3-none-any.whl → 0.29.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ansys-fluent-core might be problematic. Click here for more details.

Files changed (221) hide show
  1. ansys/fluent/core/__init__.py +26 -1
  2. ansys/fluent/core/_stand_alone_datamodel_client/_datamodel_client.py +22 -0
  3. ansys/fluent/core/_version.py +24 -2
  4. ansys/fluent/core/codegen/__init__.py +22 -0
  5. ansys/fluent/core/codegen/allapigen.py +38 -5
  6. ansys/fluent/core/codegen/builtin_settingsgen.py +22 -0
  7. ansys/fluent/core/codegen/data/__init__.py +21 -0
  8. ansys/fluent/core/codegen/data/fluent_gui_help_patch.py +22 -0
  9. ansys/fluent/core/codegen/data/meshing_utilities_examples.py +22 -0
  10. ansys/fluent/core/codegen/datamodelgen.py +40 -4
  11. ansys/fluent/core/codegen/print_fluent_version.py +22 -0
  12. ansys/fluent/core/codegen/settingsgen.py +67 -4
  13. ansys/fluent/core/codegen/tuigen.py +44 -6
  14. ansys/fluent/core/codegen/walk_api.py +67 -18
  15. ansys/fluent/core/codegen/write_settings_yaml.py +22 -0
  16. ansys/fluent/core/data_model_cache.py +22 -0
  17. ansys/fluent/core/examples/__init__.py +22 -0
  18. ansys/fluent/core/examples/downloads.py +22 -0
  19. ansys/fluent/core/exceptions.py +22 -0
  20. ansys/fluent/core/file_session.py +22 -0
  21. ansys/fluent/core/filereader/__init__.py +21 -0
  22. ansys/fluent/core/filereader/case_file.py +22 -0
  23. ansys/fluent/core/filereader/casereader.py +22 -0
  24. ansys/fluent/core/filereader/data_file.py +22 -0
  25. ansys/fluent/core/filereader/lispy.py +22 -0
  26. ansys/fluent/core/fluent_connection.py +23 -1
  27. ansys/fluent/core/generated/api_tree/api_objects.json +1 -1
  28. ansys/fluent/core/generated/datamodel_252/meshing.py +32 -0
  29. ansys/fluent/core/generated/fluent_version_252.py +3 -3
  30. ansys/fluent/core/generated/solver/settings_222.py +0 -72
  31. ansys/fluent/core/generated/solver/settings_222.pyi +0 -307
  32. ansys/fluent/core/generated/solver/settings_231.py +0 -574
  33. ansys/fluent/core/generated/solver/settings_231.pyi +0 -561
  34. ansys/fluent/core/generated/solver/settings_232.py +0 -527
  35. ansys/fluent/core/generated/solver/settings_232.pyi +0 -2803
  36. ansys/fluent/core/generated/solver/settings_241.py +0 -478
  37. ansys/fluent/core/generated/solver/settings_241.pyi +0 -522
  38. ansys/fluent/core/generated/solver/settings_242.py +0 -361
  39. ansys/fluent/core/generated/solver/settings_242.pyi +0 -591
  40. ansys/fluent/core/generated/solver/settings_251.py +0 -399
  41. ansys/fluent/core/generated/solver/settings_251.pyi +0 -629
  42. ansys/fluent/core/generated/solver/settings_252.py +7794 -4185
  43. ansys/fluent/core/generated/solver/settings_252.pyi +6986 -3213
  44. ansys/fluent/core/generated/solver/tui_252.py +537 -181
  45. ansys/fluent/core/get_build_details.py +22 -0
  46. ansys/fluent/core/journaling.py +38 -0
  47. ansys/fluent/core/launcher/__init__.py +22 -0
  48. ansys/fluent/core/launcher/container_launcher.py +65 -56
  49. ansys/fluent/core/launcher/error_handler.py +30 -0
  50. ansys/fluent/core/launcher/fluent_container.py +45 -20
  51. ansys/fluent/core/launcher/launcher.py +53 -5
  52. ansys/fluent/core/launcher/launcher_utils.py +22 -0
  53. ansys/fluent/core/launcher/pim_launcher.py +120 -86
  54. ansys/fluent/core/launcher/process_launch_string.py +22 -0
  55. ansys/fluent/core/launcher/pyfluent_enums.py +22 -0
  56. ansys/fluent/core/launcher/server_info.py +45 -3
  57. ansys/fluent/core/launcher/slurm_launcher.py +25 -3
  58. ansys/fluent/core/launcher/standalone_launcher.py +68 -63
  59. ansys/fluent/core/launcher/watchdog.py +22 -0
  60. ansys/fluent/core/logging.py +24 -0
  61. ansys/fluent/core/logging_config.yaml +3 -0
  62. ansys/fluent/core/meshing/meshing_workflow.py +22 -0
  63. ansys/fluent/core/parametric.py +22 -0
  64. ansys/fluent/core/post_objects/__init__.py +21 -0
  65. ansys/fluent/core/post_objects/check_in_notebook.py +22 -0
  66. ansys/fluent/core/post_objects/meta.py +22 -0
  67. ansys/fluent/core/post_objects/post_helper.py +22 -0
  68. ansys/fluent/core/post_objects/post_object_definitions.py +22 -0
  69. ansys/fluent/core/post_objects/post_objects_container.py +22 -0
  70. ansys/fluent/core/post_objects/singleton_meta.py +22 -0
  71. ansys/fluent/core/post_objects/timing_decorator.py +22 -0
  72. ansys/fluent/core/report.py +77 -0
  73. ansys/fluent/core/rpvars.py +22 -0
  74. ansys/fluent/core/scheduler/__init__.py +22 -0
  75. ansys/fluent/core/scheduler/load_machines.py +22 -0
  76. ansys/fluent/core/scheduler/machine_list.py +22 -0
  77. ansys/fluent/core/search.py +22 -0
  78. ansys/fluent/core/services/__init__.py +22 -0
  79. ansys/fluent/core/services/api_upgrade.py +22 -0
  80. ansys/fluent/core/services/app_utilities.py +38 -0
  81. ansys/fluent/core/services/batch_ops.py +22 -0
  82. ansys/fluent/core/services/datamodel_se.py +26 -1
  83. ansys/fluent/core/services/datamodel_tui.py +22 -0
  84. ansys/fluent/core/services/deprecated_field_data.py +23 -1
  85. ansys/fluent/core/services/events.py +22 -0
  86. ansys/fluent/core/services/field_data.py +285 -2
  87. ansys/fluent/core/services/health_check.py +22 -0
  88. ansys/fluent/core/services/interceptors.py +50 -2
  89. ansys/fluent/core/services/monitor.py +22 -0
  90. ansys/fluent/core/services/reduction.py +22 -0
  91. ansys/fluent/core/services/scheme_eval.py +22 -0
  92. ansys/fluent/core/services/settings.py +22 -0
  93. ansys/fluent/core/services/solution_variables.py +22 -0
  94. ansys/fluent/core/services/streaming.py +22 -0
  95. ansys/fluent/core/services/transcript.py +22 -0
  96. ansys/fluent/core/session.py +39 -2
  97. ansys/fluent/core/session_base_meshing.py +22 -0
  98. ansys/fluent/core/session_meshing.py +22 -0
  99. ansys/fluent/core/session_meshing.pyi +22 -0
  100. ansys/fluent/core/session_pure_meshing.py +22 -0
  101. ansys/fluent/core/session_pure_meshing.pyi +22 -0
  102. ansys/fluent/core/session_shared.py +22 -0
  103. ansys/fluent/core/session_solver.py +43 -0
  104. ansys/fluent/core/session_solver.pyi +22 -0
  105. ansys/fluent/core/session_solver_aero.py +22 -0
  106. ansys/fluent/core/session_solver_icing.py +22 -0
  107. ansys/fluent/core/session_solver_lite.py +22 -0
  108. ansys/fluent/core/solver/__init__.py +22 -0
  109. ansys/fluent/core/solver/error_message.py +22 -0
  110. ansys/fluent/core/solver/flobject.py +22 -0
  111. ansys/fluent/core/solver/flunits.py +22 -0
  112. ansys/fluent/core/solver/function/__init__.py +22 -0
  113. ansys/fluent/core/solver/function/reduction.py +22 -0
  114. ansys/fluent/core/solver/settings_builtin_bases.py +22 -0
  115. ansys/fluent/core/solver/settings_builtin_data.py +22 -0
  116. ansys/fluent/core/solver/settings_external.py +22 -0
  117. ansys/fluent/core/streaming_services/__init__.py +21 -0
  118. ansys/fluent/core/streaming_services/datamodel_event_streaming.py +22 -0
  119. ansys/fluent/core/streaming_services/datamodel_streaming.py +22 -0
  120. ansys/fluent/core/streaming_services/events_streaming.py +22 -0
  121. ansys/fluent/core/streaming_services/field_data_streaming.py +22 -0
  122. ansys/fluent/core/streaming_services/monitor_streaming.py +23 -1
  123. ansys/fluent/core/streaming_services/streaming.py +22 -0
  124. ansys/fluent/core/streaming_services/transcript_streaming.py +22 -0
  125. ansys/fluent/core/systemcoupling.py +22 -0
  126. ansys/fluent/core/utils/__init__.py +22 -0
  127. ansys/fluent/core/utils/data_transfer.py +22 -0
  128. ansys/fluent/core/utils/deprecate.py +24 -1
  129. ansys/fluent/core/utils/dictionary_operations.py +22 -0
  130. ansys/fluent/core/utils/dump_session_data.py +22 -0
  131. ansys/fluent/core/utils/event_loop.py +22 -0
  132. ansys/fluent/core/utils/execution.py +22 -0
  133. ansys/fluent/core/utils/file_transfer_service.py +22 -0
  134. ansys/fluent/core/utils/fix_doc.py +22 -0
  135. ansys/fluent/core/utils/fldoc.py +22 -0
  136. ansys/fluent/core/utils/fluent_version.py +22 -0
  137. ansys/fluent/core/utils/networking.py +22 -0
  138. ansys/fluent/core/utils/setup_for_fluent.py +22 -0
  139. ansys/fluent/core/warnings.py +22 -0
  140. ansys/fluent/core/workflow.py +22 -0
  141. {ansys_fluent_core-0.28.2.dist-info → ansys_fluent_core-0.29.0.dist-info}/LICENSE +8 -8
  142. {ansys_fluent_core-0.28.2.dist-info → ansys_fluent_core-0.29.0.dist-info}/METADATA +56 -33
  143. ansys_fluent_core-0.29.0.dist-info/RECORD +219 -0
  144. {ansys_fluent_core-0.28.2.dist-info → ansys_fluent_core-0.29.0.dist-info}/WHEEL +1 -1
  145. ansys/fluent/core/docs/README.rst +0 -155
  146. ansys/fluent/tests/conftest.py +0 -415
  147. ansys/fluent/tests/fluent_fixtures.py +0 -195
  148. ansys/fluent/tests/integration/test_optislang/test_optislang_integration.py +0 -263
  149. ansys/fluent/tests/parametric/test_local_parametric_run.py +0 -36
  150. ansys/fluent/tests/parametric/test_local_parametric_setup.py +0 -34
  151. ansys/fluent/tests/parametric/test_parametric_workflow.py +0 -279
  152. ansys/fluent/tests/test_aero_session.py +0 -88
  153. ansys/fluent/tests/test_batch_ops.py +0 -39
  154. ansys/fluent/tests/test_builtin_settings.py +0 -761
  155. ansys/fluent/tests/test_cad_to_post_ftm.py +0 -525
  156. ansys/fluent/tests/test_cad_to_post_wtm.py +0 -250
  157. ansys/fluent/tests/test_casereader.py +0 -324
  158. ansys/fluent/tests/test_codegen.py +0 -783
  159. ansys/fluent/tests/test_creatable.py +0 -31
  160. ansys/fluent/tests/test_data_model_cache.py +0 -434
  161. ansys/fluent/tests/test_datamodel_api.py +0 -429
  162. ansys/fluent/tests/test_datamodel_service.py +0 -814
  163. ansys/fluent/tests/test_datareader.py +0 -103
  164. ansys/fluent/tests/test_error_handling.py +0 -24
  165. ansys/fluent/tests/test_events_manager.py +0 -214
  166. ansys/fluent/tests/test_field_data.py +0 -466
  167. ansys/fluent/tests/test_file_session.py +0 -355
  168. ansys/fluent/tests/test_file_transfer_service.py +0 -165
  169. ansys/fluent/tests/test_fix_doc.py +0 -29
  170. ansys/fluent/tests/test_flobject.py +0 -1235
  171. ansys/fluent/tests/test_fluent_fixes.py +0 -106
  172. ansys/fluent/tests/test_fluent_session.py +0 -270
  173. ansys/fluent/tests/test_fluent_version.py +0 -66
  174. ansys/fluent/tests/test_fluent_version_marker.py +0 -65
  175. ansys/fluent/tests/test_icing_session.py +0 -9
  176. ansys/fluent/tests/test_launcher.py +0 -529
  177. ansys/fluent/tests/test_launcher_remote.py +0 -272
  178. ansys/fluent/tests/test_lispy.py +0 -40
  179. ansys/fluent/tests/test_logging.py +0 -16
  180. ansys/fluent/tests/test_mapped_api.py +0 -766
  181. ansys/fluent/tests/test_meshing_utilities.py +0 -2436
  182. ansys/fluent/tests/test_meshing_workflow.py +0 -421
  183. ansys/fluent/tests/test_meshingmode/test_meshing_launch.py +0 -168
  184. ansys/fluent/tests/test_new_meshing_workflow.py +0 -1801
  185. ansys/fluent/tests/test_preferences.py +0 -89
  186. ansys/fluent/tests/test_pure_mesh_vs_mesh_workflow.py +0 -101
  187. ansys/fluent/tests/test_reduction.py +0 -484
  188. ansys/fluent/tests/test_rp_vars.py +0 -77
  189. ansys/fluent/tests/test_scheduler.py +0 -471
  190. ansys/fluent/tests/test_scheme_eval_222.py +0 -338
  191. ansys/fluent/tests/test_scheme_eval_231.py +0 -243
  192. ansys/fluent/tests/test_search.py +0 -344
  193. ansys/fluent/tests/test_session.py +0 -594
  194. ansys/fluent/tests/test_settings_api.py +0 -606
  195. ansys/fluent/tests/test_settings_reader.py +0 -85
  196. ansys/fluent/tests/test_slurm_future.py +0 -67
  197. ansys/fluent/tests/test_solution_variables.py +0 -241
  198. ansys/fluent/tests/test_solver_monitors.py +0 -83
  199. ansys/fluent/tests/test_solvermode/boundaries_periodic_expDict +0 -1712
  200. ansys/fluent/tests/test_solvermode/test_boundaries.py +0 -127
  201. ansys/fluent/tests/test_solvermode/test_calculationactivities.py +0 -20
  202. ansys/fluent/tests/test_solvermode/test_controls.py +0 -131
  203. ansys/fluent/tests/test_solvermode/test_general.py +0 -109
  204. ansys/fluent/tests/test_solvermode/test_initialization.py +0 -83
  205. ansys/fluent/tests/test_solvermode/test_materials.py +0 -40
  206. ansys/fluent/tests/test_solvermode/test_methods.py +0 -65
  207. ansys/fluent/tests/test_solvermode/test_models.py +0 -99
  208. ansys/fluent/tests/test_solvermode/test_named_expressions.py +0 -35
  209. ansys/fluent/tests/test_solvermode/test_post_vector.py +0 -22
  210. ansys/fluent/tests/test_solvermode/test_species_model.py +0 -67
  211. ansys/fluent/tests/test_streaming_services.py +0 -52
  212. ansys/fluent/tests/test_systemcoupling.py +0 -44
  213. ansys/fluent/tests/test_topy.py +0 -179
  214. ansys/fluent/tests/test_tui_api.py +0 -70
  215. ansys/fluent/tests/test_type_stub.py +0 -37
  216. ansys/fluent/tests/test_utils.py +0 -82
  217. ansys/fluent/tests/util/__init__.py +0 -36
  218. ansys/fluent/tests/util/meshing_workflow.py +0 -33
  219. ansys/fluent/tests/util/solver.py +0 -72
  220. ansys_fluent_core-0.28.2.dist-info/AUTHORS +0 -12
  221. ansys_fluent_core-0.28.2.dist-info/RECORD +0 -294
@@ -1,31 +0,0 @@
1
- import pytest
2
-
3
- from ansys.fluent.core.utils.fluent_version import FluentVersion
4
-
5
-
6
- @pytest.mark.fluent_version("latest")
7
- def test_creatable(mixing_elbow_case_data_session) -> None:
8
- solver = mixing_elbow_case_data_session
9
- fluent_version = solver.get_fluent_version()
10
- has_not = (
11
- solver.setup.boundary_conditions.velocity_inlet,
12
- solver.setup.cell_zone_conditions.fluid,
13
- )
14
- has = (
15
- solver.results.graphics.contour,
16
- solver.results.graphics.vector,
17
- )
18
-
19
- for obj in has_not:
20
- # creatability condition is dynamic since 25.1
21
- if fluent_version >= FluentVersion.v251:
22
- assert not getattr(obj, "create").is_active()
23
- else:
24
- assert not hasattr(obj, "create")
25
- assert "create" not in dir(obj)
26
-
27
- for obj in has:
28
- assert hasattr(obj, "create")
29
- assert "create" in dir(obj)
30
- if fluent_version >= FluentVersion.v251:
31
- assert getattr(obj, "create").is_active()
@@ -1,434 +0,0 @@
1
- import pytest
2
-
3
- from ansys.api.fluent.v0.variant_pb2 import Variant
4
- import ansys.fluent.core as pyfluent
5
- from ansys.fluent.core.data_model_cache import DataModelCache, NameKey
6
- from ansys.fluent.core.services.datamodel_se import _convert_value_to_variant
7
-
8
-
9
- class Fake:
10
- def __init__(self, path):
11
- if isinstance(path, str):
12
- self.path = [
13
- comp.split(":") if ":" in comp else [comp, ""]
14
- for comp in path.split("/")
15
- ]
16
- else:
17
- self.path = path
18
-
19
-
20
- def test_data_model_cache():
21
- cache = DataModelCache()
22
- cache.set_state("x", Fake([("A", ""), ("x", "")]), 42.0)
23
- assert 42.0 == cache.get_state("x", Fake([("A", ""), ("x", "")]))
24
- assert dict(x=42.0) == cache.get_state("x", Fake([("A", "")]))
25
- assert DataModelCache.Empty == cache.get_state("x", Fake([("B", "")]))
26
- assert DataModelCache.Empty == cache.get_state("y", Fake([]))
27
-
28
-
29
- @pytest.mark.parametrize(
30
- "initial_cache,rules,state,deleted_paths,final_cache",
31
- [
32
- (
33
- {"r1": {"A": {"B": "ab", "C": {}, "D:D-1": {"__iname__": "D1"}}}},
34
- "r1",
35
- None,
36
- ["X/D:D1", "A/D:Y1", "A/D:D1"],
37
- {"r1": {"A": {"B": "ab", "C": {}}}},
38
- ),
39
- ({"r1": {}}, "r1", {"A": True}, [], {"r1": {"A": True}}),
40
- ({"r1": {}}, "r1", {"A": 5}, [], {"r1": {"A": 5}}),
41
- ({"r1": {}}, "r1", {"A": 3.0}, [], {"r1": {"A": 3.0}}),
42
- ({"r1": {}}, "r1", {"A": "ab"}, [], {"r1": {"A": "ab"}}),
43
- ({"r1": {}}, "r1", {"A": [False, True]}, [], {"r1": {"A": [False, True]}}),
44
- ({"r1": {}}, "r1", {"A": [5, 10]}, [], {"r1": {"A": [5, 10]}}),
45
- ({"r1": {}}, "r1", {"A": [3.0, 6.0]}, [], {"r1": {"A": [3.0, 6.0]}}),
46
- ({"r1": {}}, "r1", {"A": ["ab", "cd"]}, [], {"r1": {"A": ["ab", "cd"]}}),
47
- ({"r1": {"A": {}}}, "r1", {"A": {"B": 5}}, [], {"r1": {"A": {"B": 5}}}),
48
- ({"r1": {"A": 5}}, "r1", {"A": {}}, [], {"r1": {"A": {}}}),
49
- ({"r1": {"A": 5}}, "r1", {"A": None}, [], {"r1": {"A": None}}),
50
- (
51
- {"r1": {"A": {}}},
52
- "r1",
53
- {"A": {"B": {"C": 5}}},
54
- [],
55
- {"r1": {"A": {"B": {"C": 5}}}},
56
- ),
57
- (
58
- {"r1": {"A": {}}},
59
- "r1",
60
- {"A": {"B:B1": {"_name_": "B-1", "C": 5.0}}},
61
- [],
62
- {"r1": {"A": {"B:B-1": {"__iname__": "B1", "_name_": "B-1", "C": 5.0}}}},
63
- ),
64
- (
65
- {"r1": {"A": {"B:B-1": {"__iname__": "B1", "_name_": "B-1", "C": 5.0}}}},
66
- "r1",
67
- {"A": {"B:B1": {"C": 7.0}}},
68
- [],
69
- {"r1": {"A": {"B:B-1": {"__iname__": "B1", "_name_": "B-1", "C": 7.0}}}},
70
- ),
71
- (
72
- {"r1": {}},
73
- "r1",
74
- {"B:B1": {"_name_": "B-1", "C": 5.0}},
75
- [],
76
- {"r1": {"B:B-1": {"__iname__": "B1", "_name_": "B-1", "C": 5.0}}},
77
- ),
78
- (
79
- {"r1": {"B:B-1": {"__iname__": "B1", "_name_": "B-1", "C": 5.0}}},
80
- "r1",
81
- {"B:B1": {"C": 7.0}},
82
- [],
83
- {"r1": {"B:B-1": {"__iname__": "B1", "_name_": "B-1", "C": 7.0}}},
84
- ),
85
- (
86
- {"r1": {}},
87
- "r1",
88
- {"A:A1": {"_name_": "A-1", "B:B1": {"_name_": "B-1", "D": 7.0}, "C": 5.0}},
89
- [],
90
- {
91
- "r1": {
92
- "A:A-1": {
93
- "__iname__": "A1",
94
- "_name_": "A-1",
95
- "B:B-1": {"__iname__": "B1", "_name_": "B-1", "D": 7.0},
96
- "C": 5.0,
97
- }
98
- }
99
- },
100
- ),
101
- (
102
- {"r1": {"B:B-1": {"__iname__": "B1", "_name_": "B-1", "C": 5.0}}},
103
- "r1",
104
- {"B:B1": {"_name_": "B-2", "C": 5.0}},
105
- ["B:B1"],
106
- {"r1": {"B:B-2": {"__iname__": "B1", "_name_": "B-2", "C": 5.0}}},
107
- ),
108
- ],
109
- )
110
- def test_update_cache_display_names_as_keys(
111
- initial_cache, rules, state, deleted_paths, final_cache
112
- ):
113
- cache = DataModelCache()
114
- cache_rules = cache.rules_str_to_cache
115
- cache_rules.clear()
116
- cache_rules.update(initial_cache)
117
- var = Variant()
118
- _convert_value_to_variant(state, var)
119
- cache.update_cache(rules, var, deleted_paths)
120
- assert cache_rules == final_cache
121
-
122
-
123
- @pytest.mark.parametrize(
124
- "initial_cache,rules,state,deleted_paths,final_cache",
125
- [
126
- (
127
- {"r1": {"A": {"B": "ab", "C": {}, "D:D1": {}}}},
128
- "r1",
129
- None,
130
- ["X/D:D1", "A/D:Y1", "A/D:D1"],
131
- {"r1": {"A": {"B": "ab", "C": {}}}},
132
- ),
133
- ({"r1": {}}, "r1", {"A": True}, [], {"r1": {"A": True}}),
134
- ({"r1": {}}, "r1", {"A": 5}, [], {"r1": {"A": 5}}),
135
- ({"r1": {}}, "r1", {"A": 3.0}, [], {"r1": {"A": 3.0}}),
136
- ({"r1": {}}, "r1", {"A": "ab"}, [], {"r1": {"A": "ab"}}),
137
- ({"r1": {}}, "r1", {"A": [False, True]}, [], {"r1": {"A": [False, True]}}),
138
- ({"r1": {}}, "r1", {"A": [5, 10]}, [], {"r1": {"A": [5, 10]}}),
139
- ({"r1": {}}, "r1", {"A": [3.0, 6.0]}, [], {"r1": {"A": [3.0, 6.0]}}),
140
- ({"r1": {}}, "r1", {"A": ["ab", "cd"]}, [], {"r1": {"A": ["ab", "cd"]}}),
141
- ({"r1": {"A": {}}}, "r1", {"A": {"B": 5}}, [], {"r1": {"A": {"B": 5}}}),
142
- (
143
- {"r1": {"A": {}}},
144
- "r1",
145
- {"A": {"B": {"C": 5}}},
146
- [],
147
- {"r1": {"A": {"B": {"C": 5}}}},
148
- ),
149
- (
150
- {"r1": {"A": {}}},
151
- "r1",
152
- {"A": {"B:B1": {"_name_": "B-1", "C": 5.0}}},
153
- [],
154
- {"r1": {"A": {"B:B1": {"_name_": "B-1", "C": 5.0}}}},
155
- ),
156
- (
157
- {"r1": {"A": {"B:B1": {"_name_": "B-1", "C": 5.0}}}},
158
- "r1",
159
- {"A": {"B:B1": {"C": 7.0}}},
160
- [],
161
- {"r1": {"A": {"B:B1": {"_name_": "B-1", "C": 7.0}}}},
162
- ),
163
- (
164
- {"r1": {}},
165
- "r1",
166
- {"B:B1": {"_name_": "B-1", "C": 5.0}},
167
- [],
168
- {"r1": {"B:B1": {"_name_": "B-1", "C": 5.0}}},
169
- ),
170
- (
171
- {"r1": {"B:B1": {"_name_": "B-1", "C": 5.0}}},
172
- "r1",
173
- {"B:B1": {"C": 7.0}},
174
- [],
175
- {"r1": {"B:B1": {"_name_": "B-1", "C": 7.0}}},
176
- ),
177
- (
178
- {"r1": {}},
179
- "r1",
180
- {"A:A1": {"_name_": "A-1", "B:B1": {"_name_": "B-1", "D": 7.0}, "C": 5.0}},
181
- [],
182
- {
183
- "r1": {
184
- "A:A1": {
185
- "_name_": "A-1",
186
- "B:B1": {"_name_": "B-1", "D": 7.0},
187
- "C": 5.0,
188
- }
189
- }
190
- },
191
- ),
192
- (
193
- {"r1": {"B:B1": {"_name_": "B-1", "C": 5.0}}},
194
- "r1",
195
- {"B:B1": {"_name_": "B-2", "C": 5.0}},
196
- ["B:B1"],
197
- {"r1": {"B:B1": {"_name_": "B-2", "C": 5.0}}},
198
- ),
199
- ],
200
- )
201
- def test_update_cache_internal_names_as_keys(
202
- initial_cache, rules, state, deleted_paths, final_cache
203
- ):
204
- cache = DataModelCache()
205
- cache.set_config("r1", "name_key", NameKey.INTERNAL)
206
- cache_rules = cache.rules_str_to_cache
207
- cache_rules.clear()
208
- cache_rules.update(initial_cache)
209
- var = Variant()
210
- _convert_value_to_variant(state, var)
211
- cache.update_cache(rules, var, deleted_paths)
212
- assert cache_rules == final_cache
213
-
214
-
215
- @pytest.mark.fluent_version(">=23.2")
216
- @pytest.mark.codegen_required
217
- def test_get_cached_values_in_command_arguments(new_meshing_session):
218
- wt = new_meshing_session.watertight()
219
- geo_import = new_meshing_session.workflow.TaskObject["Import Geometry"]
220
- geo_import.Arguments = dict(FileName="Bob")
221
- geo_import.Arguments = dict(FileName=None)
222
- assert "FileName" in wt.import_geometry.command_arguments()
223
- assert wt.import_geometry.command_arguments()["FileName"] is None
224
-
225
-
226
- @pytest.fixture
227
- def display_names_as_keys_in_cache():
228
- DataModelCache.use_display_name = True
229
- yield
230
- DataModelCache.use_display_name = False
231
-
232
-
233
- def test_display_names_as_keys(
234
- display_names_as_keys_in_cache, watertight_workflow_session
235
- ):
236
- cache = watertight_workflow_session._datamodel_service_se.cache
237
- assert "TaskObject:Import Geometry" in cache.rules_str_to_cache["workflow"]
238
- assert "TaskObject:TaskObject1" not in cache.rules_str_to_cache["workflow"]
239
-
240
-
241
- def test_internal_names_as_keys(watertight_workflow_session):
242
- cache = watertight_workflow_session._datamodel_service_se.cache
243
- assert "TaskObject:Import Geometry" not in cache.rules_str_to_cache["workflow"]
244
- assert "TaskObject:TaskObject1" in cache.rules_str_to_cache["workflow"]
245
-
246
-
247
- @pytest.mark.parametrize(
248
- "rules_cache,name_key_in_config,path,name_key,state",
249
- [
250
- ({"A": {"B": {"C": 2}}}, NameKey.INTERNAL, "A/B", NameKey.INTERNAL, {"C": 2}),
251
- (
252
- {"A": {"B:B1": {"C:C1": {"_name_": "C-1"}, "_name_": "B-1"}}},
253
- NameKey.INTERNAL,
254
- "A/B:B-1",
255
- NameKey.DISPLAY,
256
- {"C:C-1": {"_name_": "C-1"}, "_name_": "B-1"},
257
- ),
258
- (
259
- {"A": {"B:B1": {"C:C1": {"_name_": "C-1"}, "_name_": "B-1"}}},
260
- NameKey.INTERNAL,
261
- "A/B:B1",
262
- NameKey.DISPLAY,
263
- {"C:C-1": {"_name_": "C-1"}, "_name_": "B-1"},
264
- ),
265
- (
266
- {"A": {"B:B-1": {"C:C-1": {"__iname__": "C1"}, "__iname__": "B1"}}},
267
- NameKey.DISPLAY,
268
- "A/B:B1",
269
- NameKey.INTERNAL,
270
- {"C:C1": {"__iname__": "C1"}, "__iname__": "B1"},
271
- ),
272
- (
273
- {"A": {"B:B1": {"C": 2, "_name_": "B-1"}}},
274
- NameKey.INTERNAL,
275
- "A/B:B-2",
276
- NameKey.DISPLAY,
277
- DataModelCache.Empty,
278
- ),
279
- ],
280
- )
281
- def test_cache_get_state(rules_cache, name_key_in_config, path, name_key, state):
282
- cache = DataModelCache()
283
- rules = "x"
284
- cache.set_config(rules, "name_key", name_key_in_config)
285
- cache_rules = cache.rules_str_to_cache
286
- cache_rules.clear()
287
- cache_rules[rules] = rules_cache
288
- assert state == cache.get_state(rules, Fake(path), name_key)
289
-
290
-
291
- @pytest.mark.parametrize(
292
- "initial_cache,name_key_in_config,path,value,final_cache",
293
- [
294
- ({"A": 2}, NameKey.INTERNAL, "A/B", 2, {"A": {"B": 2}}),
295
- (
296
- {"A": 2},
297
- NameKey.INTERNAL,
298
- "A/B",
299
- {"C": {"D": 2}},
300
- {"A": {"B": {"C": {"D": 2}}}},
301
- ),
302
- (
303
- {"A": {"B": 2}},
304
- NameKey.INTERNAL,
305
- "A/B",
306
- {"C": {"D": 2}},
307
- {"A": {"B": {"C": {"D": 2}}}},
308
- ),
309
- (
310
- {"A": {"B": {"C": 2}}},
311
- NameKey.INTERNAL,
312
- "A/B",
313
- {"C": {"D": 2}},
314
- {"A": {"B": {"C": {"D": 2}}}},
315
- ),
316
- (
317
- {"A": {"B": {"C": {"D": 1}}}},
318
- NameKey.INTERNAL,
319
- "A/B",
320
- {"C": {"D": 2}},
321
- {"A": {"B": {"C": {"D": 2}}}},
322
- ),
323
- (
324
- {"A": {"B:B1": {"C:C1": {"_name_": "C-1"}, "_name_": "B-1"}}},
325
- NameKey.INTERNAL,
326
- "A/B:B-1",
327
- {"C:C-1": {"D": 2}},
328
- {"A": {"B:B1": {"C:C1": {"_name_": "C-1", "D": 2}, "_name_": "B-1"}}},
329
- ),
330
- (
331
- {"A": {"B:B1": {"C:C1": {"_name_": "C-1"}, "_name_": "B-1"}}},
332
- NameKey.INTERNAL,
333
- "A/B:B-1",
334
- {"C:C-1": {"D:D-1": {"__iname__": "D1"}}},
335
- {
336
- "A": {
337
- "B:B1": {
338
- "C:C1": {
339
- "_name_": "C-1",
340
- "D:D1": {"__iname__": "D1", "_name_": "D-1"},
341
- },
342
- "_name_": "B-1",
343
- }
344
- }
345
- },
346
- ),
347
- (
348
- {"A": {"B:B1": {"C:C1": {"_name_": "C-1"}, "_name_": "B-1"}}},
349
- NameKey.INTERNAL,
350
- "A/B:B1",
351
- {"C:C1": {"D:D1": {"_name_": "D-1"}}},
352
- {
353
- "A": {
354
- "B:B1": {
355
- "C:C1": {
356
- "_name_": "C-1",
357
- "D:D1": {"_name_": "D-1", "__iname__": "D1"},
358
- },
359
- "_name_": "B-1",
360
- }
361
- }
362
- },
363
- ),
364
- (
365
- {"A": {"B:B-1": {"C:C-1": {"__iname__": "C1"}, "__iname__": "B1"}}},
366
- NameKey.DISPLAY,
367
- "A/B:B1",
368
- {"C:C1": {"D": 2}},
369
- {"A": {"B:B-1": {"C:C-1": {"__iname__": "C1", "D": 2}, "__iname__": "B1"}}},
370
- ),
371
- (
372
- {"A": {"B:B-1": {"C:C-1": {"__iname__": "C1"}, "__iname__": "B1"}}},
373
- NameKey.DISPLAY,
374
- "A/B:B1",
375
- {"C:C1": {"D:D1": {"_name_": "D-1"}}},
376
- {
377
- "A": {
378
- "B:B-1": {
379
- "C:C-1": {
380
- "__iname__": "C1",
381
- "D:D-1": {"_name_": "D-1", "__iname__": "D1"},
382
- },
383
- "__iname__": "B1",
384
- }
385
- }
386
- },
387
- ),
388
- (
389
- {"A": {"B:B-1": {"C:C-1": {"__iname__": "C1"}, "__iname__": "B1"}}},
390
- NameKey.DISPLAY,
391
- "A/B:B-1",
392
- {"C:C-1": {"D:D-1": {"__iname__": "D1"}}},
393
- {
394
- "A": {
395
- "B:B-1": {
396
- "C:C-1": {
397
- "__iname__": "C1",
398
- "D:D-1": {"__iname__": "D1", "_name_": "D-1"},
399
- },
400
- "__iname__": "B1",
401
- }
402
- }
403
- },
404
- ),
405
- ],
406
- )
407
- def test_cache_set_state(
408
- initial_cache,
409
- name_key_in_config,
410
- path,
411
- value,
412
- final_cache,
413
- ):
414
- cache = DataModelCache()
415
- rules = "x"
416
- cache.set_config(rules, "name_key", name_key_in_config)
417
- cache_rules = cache.rules_str_to_cache
418
- cache_rules.clear()
419
- cache_rules[rules] = initial_cache
420
- cache.set_state(rules, Fake(path), value)
421
- assert final_cache == cache_rules[rules]
422
-
423
-
424
- @pytest.mark.fluent_version(">=23.2")
425
- def test_cache_per_session():
426
- with (
427
- pyfluent.launch_fluent(mode="meshing") as m1,
428
- pyfluent.launch_fluent(mode="meshing") as m2,
429
- ):
430
- assert m1.meshing.GlobalSettings.EnableComplexMeshing()
431
- assert m2.meshing.GlobalSettings.EnableComplexMeshing()
432
- _ = m1.watertight()
433
- assert not m1.meshing.GlobalSettings.EnableComplexMeshing()
434
- assert m2.meshing.GlobalSettings.EnableComplexMeshing()