ansys-fluent-core 0.29.dev3__py3-none-any.whl → 0.30.dev0__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.
- ansys/fluent/core/__init__.py +26 -1
- ansys/fluent/core/_stand_alone_datamodel_client/_datamodel_client.py +22 -0
- ansys/fluent/core/_version.py +23 -1
- ansys/fluent/core/codegen/__init__.py +22 -0
- ansys/fluent/core/codegen/allapigen.py +38 -5
- ansys/fluent/core/codegen/builtin_settingsgen.py +22 -0
- ansys/fluent/core/codegen/data/__init__.py +21 -0
- ansys/fluent/core/codegen/data/fluent_gui_help_patch.py +22 -0
- ansys/fluent/core/codegen/data/meshing_utilities_examples.py +22 -0
- ansys/fluent/core/codegen/datamodelgen.py +40 -4
- ansys/fluent/core/codegen/print_fluent_version.py +22 -0
- ansys/fluent/core/codegen/settingsgen.py +67 -4
- ansys/fluent/core/codegen/tuigen.py +43 -5
- ansys/fluent/core/codegen/walk_api.py +22 -0
- ansys/fluent/core/codegen/write_settings_yaml.py +22 -0
- ansys/fluent/core/data_model_cache.py +22 -0
- ansys/fluent/core/examples/__init__.py +22 -0
- ansys/fluent/core/examples/downloads.py +22 -0
- ansys/fluent/core/exceptions.py +22 -0
- ansys/fluent/core/file_session.py +22 -0
- ansys/fluent/core/filereader/__init__.py +21 -0
- ansys/fluent/core/filereader/case_file.py +22 -0
- ansys/fluent/core/filereader/casereader.py +22 -0
- ansys/fluent/core/filereader/data_file.py +22 -0
- ansys/fluent/core/filereader/lispy.py +22 -0
- ansys/fluent/core/fluent_connection.py +23 -1
- ansys/fluent/core/generated/api_tree/api_objects.json +1 -1
- ansys/fluent/core/generated/datamodel_252/meshing.py +31 -0
- ansys/fluent/core/generated/fluent_version_252.py +3 -3
- ansys/fluent/core/generated/solver/settings_222.py +0 -72
- ansys/fluent/core/generated/solver/settings_222.pyi +0 -307
- ansys/fluent/core/generated/solver/settings_231.py +0 -574
- ansys/fluent/core/generated/solver/settings_231.pyi +0 -561
- ansys/fluent/core/generated/solver/settings_232.py +0 -527
- ansys/fluent/core/generated/solver/settings_232.pyi +0 -2803
- ansys/fluent/core/generated/solver/settings_241.py +0 -478
- ansys/fluent/core/generated/solver/settings_241.pyi +0 -522
- ansys/fluent/core/generated/solver/settings_242.py +0 -361
- ansys/fluent/core/generated/solver/settings_242.pyi +0 -591
- ansys/fluent/core/generated/solver/settings_251.py +0 -399
- ansys/fluent/core/generated/solver/settings_251.pyi +0 -629
- ansys/fluent/core/generated/solver/settings_252.py +7626 -4108
- ansys/fluent/core/generated/solver/settings_252.pyi +6779 -3098
- ansys/fluent/core/generated/solver/tui_252.py +489 -157
- ansys/fluent/core/get_build_details.py +22 -0
- ansys/fluent/core/journaling.py +38 -0
- ansys/fluent/core/launcher/__init__.py +22 -0
- ansys/fluent/core/launcher/container_launcher.py +63 -55
- ansys/fluent/core/launcher/error_handler.py +22 -0
- ansys/fluent/core/launcher/fluent_container.py +23 -1
- ansys/fluent/core/launcher/launcher.py +51 -3
- ansys/fluent/core/launcher/launcher_utils.py +22 -0
- ansys/fluent/core/launcher/pim_launcher.py +120 -86
- ansys/fluent/core/launcher/process_launch_string.py +22 -0
- ansys/fluent/core/launcher/pyfluent_enums.py +22 -0
- ansys/fluent/core/launcher/server_info.py +22 -0
- ansys/fluent/core/launcher/slurm_launcher.py +23 -1
- ansys/fluent/core/launcher/standalone_launcher.py +68 -63
- ansys/fluent/core/launcher/watchdog.py +22 -0
- ansys/fluent/core/logging.py +22 -0
- ansys/fluent/core/meshing/meshing_workflow.py +22 -0
- ansys/fluent/core/parametric.py +22 -0
- ansys/fluent/core/post_objects/__init__.py +21 -0
- ansys/fluent/core/post_objects/check_in_notebook.py +22 -0
- ansys/fluent/core/post_objects/meta.py +22 -0
- ansys/fluent/core/post_objects/post_helper.py +22 -0
- ansys/fluent/core/post_objects/post_object_definitions.py +22 -0
- ansys/fluent/core/post_objects/post_objects_container.py +22 -0
- ansys/fluent/core/post_objects/singleton_meta.py +22 -0
- ansys/fluent/core/post_objects/timing_decorator.py +22 -0
- ansys/fluent/core/report.py +77 -0
- ansys/fluent/core/rpvars.py +22 -0
- ansys/fluent/core/scheduler/__init__.py +22 -0
- ansys/fluent/core/scheduler/load_machines.py +22 -0
- ansys/fluent/core/scheduler/machine_list.py +22 -0
- ansys/fluent/core/search.py +22 -0
- ansys/fluent/core/services/__init__.py +22 -0
- ansys/fluent/core/services/api_upgrade.py +22 -0
- ansys/fluent/core/services/app_utilities.py +38 -0
- ansys/fluent/core/services/batch_ops.py +22 -0
- ansys/fluent/core/services/datamodel_se.py +22 -2
- ansys/fluent/core/services/datamodel_tui.py +22 -0
- ansys/fluent/core/services/deprecated_field_data.py +23 -1
- ansys/fluent/core/services/events.py +22 -0
- ansys/fluent/core/services/field_data.py +46 -15
- ansys/fluent/core/services/health_check.py +22 -0
- ansys/fluent/core/services/interceptors.py +22 -0
- ansys/fluent/core/services/monitor.py +22 -0
- ansys/fluent/core/services/reduction.py +22 -0
- ansys/fluent/core/services/scheme_eval.py +22 -0
- ansys/fluent/core/services/settings.py +22 -0
- ansys/fluent/core/services/solution_variables.py +22 -0
- ansys/fluent/core/services/streaming.py +22 -0
- ansys/fluent/core/services/transcript.py +22 -0
- ansys/fluent/core/session.py +32 -0
- ansys/fluent/core/session_base_meshing.py +22 -0
- ansys/fluent/core/session_meshing.py +22 -0
- ansys/fluent/core/session_meshing.pyi +22 -0
- ansys/fluent/core/session_pure_meshing.py +22 -0
- ansys/fluent/core/session_pure_meshing.pyi +22 -0
- ansys/fluent/core/session_shared.py +22 -0
- ansys/fluent/core/session_solver.py +22 -0
- ansys/fluent/core/session_solver.pyi +22 -0
- ansys/fluent/core/session_solver_aero.py +22 -0
- ansys/fluent/core/session_solver_icing.py +22 -0
- ansys/fluent/core/session_solver_lite.py +22 -0
- ansys/fluent/core/solver/__init__.py +22 -0
- ansys/fluent/core/solver/error_message.py +22 -0
- ansys/fluent/core/solver/flobject.py +22 -0
- ansys/fluent/core/solver/flunits.py +22 -0
- ansys/fluent/core/solver/function/__init__.py +22 -0
- ansys/fluent/core/solver/function/reduction.py +22 -0
- ansys/fluent/core/solver/settings_builtin_bases.py +22 -0
- ansys/fluent/core/solver/settings_builtin_data.py +22 -0
- ansys/fluent/core/solver/settings_external.py +22 -0
- ansys/fluent/core/streaming_services/__init__.py +21 -0
- ansys/fluent/core/streaming_services/datamodel_event_streaming.py +22 -0
- ansys/fluent/core/streaming_services/datamodel_streaming.py +22 -0
- ansys/fluent/core/streaming_services/events_streaming.py +22 -0
- ansys/fluent/core/streaming_services/field_data_streaming.py +22 -0
- ansys/fluent/core/streaming_services/monitor_streaming.py +23 -1
- ansys/fluent/core/streaming_services/streaming.py +22 -0
- ansys/fluent/core/streaming_services/transcript_streaming.py +22 -0
- ansys/fluent/core/systemcoupling.py +22 -0
- ansys/fluent/core/utils/__init__.py +22 -0
- ansys/fluent/core/utils/data_transfer.py +22 -0
- ansys/fluent/core/utils/deprecate.py +24 -1
- ansys/fluent/core/utils/dictionary_operations.py +22 -0
- ansys/fluent/core/utils/dump_session_data.py +22 -0
- ansys/fluent/core/utils/event_loop.py +22 -0
- ansys/fluent/core/utils/execution.py +22 -0
- ansys/fluent/core/utils/file_transfer_service.py +22 -0
- ansys/fluent/core/utils/fix_doc.py +22 -0
- ansys/fluent/core/utils/fldoc.py +22 -0
- ansys/fluent/core/utils/fluent_version.py +22 -0
- ansys/fluent/core/utils/networking.py +22 -0
- ansys/fluent/core/utils/setup_for_fluent.py +22 -0
- ansys/fluent/core/warnings.py +22 -0
- ansys/fluent/core/workflow.py +22 -0
- {ansys_fluent_core-0.29.dev3.dist-info → ansys_fluent_core-0.30.dev0.dist-info}/LICENSE +8 -8
- {ansys_fluent_core-0.29.dev3.dist-info → ansys_fluent_core-0.30.dev0.dist-info}/METADATA +9 -7
- ansys_fluent_core-0.30.dev0.dist-info/RECORD +219 -0
- ansys_fluent_core-0.29.dev3.dist-info/RECORD +0 -218
- {ansys_fluent_core-0.29.dev3.dist-info → ansys_fluent_core-0.30.dev0.dist-info}/WHEEL +0 -0
ansys/fluent/core/__init__.py
CHANGED
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
# Copyright (C) 2021 - 2025 ANSYS, Inc. and/or its affiliates.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
#
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
# furnished to do so, subject to the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
# copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
# SOFTWARE.
|
|
22
|
+
|
|
1
23
|
"""A package providing Fluent's Solver and Meshing capabilities in Python."""
|
|
2
24
|
|
|
3
25
|
import os
|
|
@@ -41,7 +63,7 @@ from ansys.fluent.core.warnings import ( # noqa: F401
|
|
|
41
63
|
warning,
|
|
42
64
|
)
|
|
43
65
|
|
|
44
|
-
_VERSION_INFO = "Build date:
|
|
66
|
+
_VERSION_INFO = "Build date: February 07, 2025 15:50 UTC ShaID: 9ee1aa4"
|
|
45
67
|
"""Global variable indicating the version of the PyFluent package - Empty by default"""
|
|
46
68
|
|
|
47
69
|
_THIS_DIRNAME = os.path.dirname(__file__)
|
|
@@ -140,3 +162,6 @@ LAUNCH_FLUENT_PORT = None
|
|
|
140
162
|
|
|
141
163
|
# Skip password check during rpc execution when Fluent is launched from PyFluent
|
|
142
164
|
LAUNCH_FLUENT_SKIP_PASSWORD_CHECK = False
|
|
165
|
+
|
|
166
|
+
# Set Fluent precision mode
|
|
167
|
+
FLUENT_PRECISION_MODE = None
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
# Copyright (C) 2021 - 2025 ANSYS, Inc. and/or its affiliates.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
#
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
# furnished to do so, subject to the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
# copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
# SOFTWARE.
|
|
22
|
+
|
|
1
23
|
"""Client side implementation of the stand-alone datamodel server."""
|
|
2
24
|
|
|
3
25
|
from pathlib import Path
|
ansys/fluent/core/_version.py
CHANGED
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
# Copyright (C) 2021 - 2025 ANSYS, Inc. and/or its affiliates.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
#
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
# furnished to do so, subject to the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
# copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
# SOFTWARE.
|
|
22
|
+
|
|
1
23
|
"""Version of ansys-fluent-core module.
|
|
2
24
|
|
|
3
25
|
On the ``main`` branch, use 'dev0' to denote a development version.
|
|
@@ -6,7 +28,7 @@ version_info = 0, 1, 'dev0'
|
|
|
6
28
|
"""
|
|
7
29
|
|
|
8
30
|
# major, minor, patch
|
|
9
|
-
version_info = 0,
|
|
31
|
+
version_info = 0, 30, "dev0"
|
|
10
32
|
|
|
11
33
|
# Nice string for the version
|
|
12
34
|
__version__ = ".".join(map(str, version_info))
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
# Copyright (C) 2021 - 2025 ANSYS, Inc. and/or its affiliates.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
#
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
# furnished to do so, subject to the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
# copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
# SOFTWARE.
|
|
22
|
+
|
|
1
23
|
"""This module contains the code generation logic for Fluent's Python API."""
|
|
2
24
|
|
|
3
25
|
from enum import Enum, auto
|
|
@@ -1,5 +1,28 @@
|
|
|
1
|
+
# Copyright (C) 2021 - 2025 ANSYS, Inc. and/or its affiliates.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
#
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
# furnished to do so, subject to the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
# copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
# SOFTWARE.
|
|
22
|
+
|
|
1
23
|
"""Module to generate Fluent API classes."""
|
|
2
24
|
|
|
25
|
+
import argparse
|
|
3
26
|
import os
|
|
4
27
|
from pathlib import Path
|
|
5
28
|
import pickle
|
|
@@ -18,12 +41,12 @@ def _update_first_level(d, u):
|
|
|
18
41
|
d[k].update(u.get(k, {}))
|
|
19
42
|
|
|
20
43
|
|
|
21
|
-
def generate(version: str, static_infos: dict):
|
|
44
|
+
def generate(version: str, static_infos: dict, verbose: bool = False):
|
|
22
45
|
"""Generate Fluent API classes."""
|
|
23
46
|
api_tree = {"<meshing_session>": {}, "<solver_session>": {}}
|
|
24
|
-
_update_first_level(api_tree, tuigen.generate(version, static_infos))
|
|
25
|
-
_update_first_level(api_tree, datamodelgen.generate(version, static_infos))
|
|
26
|
-
_update_first_level(api_tree, settingsgen.generate(version, static_infos))
|
|
47
|
+
_update_first_level(api_tree, tuigen.generate(version, static_infos, verbose))
|
|
48
|
+
_update_first_level(api_tree, datamodelgen.generate(version, static_infos, verbose))
|
|
49
|
+
_update_first_level(api_tree, settingsgen.generate(version, static_infos, verbose))
|
|
27
50
|
api_tree_file = get_api_tree_file_name(version)
|
|
28
51
|
Path(api_tree_file).parent.mkdir(parents=True, exist_ok=True)
|
|
29
52
|
with open(api_tree_file, "wb") as f:
|
|
@@ -33,4 +56,14 @@ def generate(version: str, static_infos: dict):
|
|
|
33
56
|
|
|
34
57
|
|
|
35
58
|
if __name__ == "__main__":
|
|
36
|
-
|
|
59
|
+
parser = argparse.ArgumentParser(
|
|
60
|
+
description="A script to write Fluent API files with an optional verbose output."
|
|
61
|
+
)
|
|
62
|
+
parser.add_argument(
|
|
63
|
+
"-v",
|
|
64
|
+
"--verbose",
|
|
65
|
+
action="store_true",
|
|
66
|
+
help="Show paths of written Fluent API files.",
|
|
67
|
+
)
|
|
68
|
+
args = parser.parse_args()
|
|
69
|
+
generate(verbose=args.verbose)
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
# Copyright (C) 2021 - 2025 ANSYS, Inc. and/or its affiliates.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
#
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
# furnished to do so, subject to the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
# copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
# SOFTWARE.
|
|
22
|
+
|
|
1
23
|
"""Generate builtin setting classes."""
|
|
2
24
|
|
|
3
25
|
from ansys.fluent.core import CODEGEN_OUTDIR, FluentVersion
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Copyright (C) 2021 - 2025 ANSYS, Inc. and/or its affiliates.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
#
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
# furnished to do so, subject to the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
# copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
# SOFTWARE.
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
# Copyright (C) 2021 - 2025 ANSYS, Inc. and/or its affiliates.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
#
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
# furnished to do so, subject to the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
# copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
# SOFTWARE.
|
|
22
|
+
|
|
1
23
|
"""Module containing the corrected Fluent GUI help strings."""
|
|
2
24
|
|
|
3
25
|
XML_HELP_PATCH = {
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
# Copyright (C) 2021 - 2025 ANSYS, Inc. and/or its affiliates.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
#
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
# furnished to do so, subject to the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
# copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
# SOFTWARE.
|
|
22
|
+
|
|
1
23
|
"""Module containing the meshing utility examples."""
|
|
2
24
|
|
|
3
25
|
meshing_utility_examples = {
|
|
@@ -1,5 +1,28 @@
|
|
|
1
|
+
# Copyright (C) 2021 - 2025 ANSYS, Inc. and/or its affiliates.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
#
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
# furnished to do so, subject to the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
# copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
# SOFTWARE.
|
|
22
|
+
|
|
1
23
|
"""Module to generate Fluent datamodel API classes."""
|
|
2
24
|
|
|
25
|
+
import argparse
|
|
3
26
|
from io import FileIO, StringIO
|
|
4
27
|
import os
|
|
5
28
|
from pathlib import Path
|
|
@@ -153,10 +176,11 @@ class DataModelStaticInfo:
|
|
|
153
176
|
class DataModelGenerator:
|
|
154
177
|
"""Provides the datamodel API class generator."""
|
|
155
178
|
|
|
156
|
-
def __init__(self, version, static_infos: dict):
|
|
179
|
+
def __init__(self, version, static_infos: dict, verbose: bool = False):
|
|
157
180
|
self.version = version
|
|
158
181
|
self._server_static_infos = static_infos
|
|
159
182
|
self._static_info: Dict[str, DataModelStaticInfo] = {}
|
|
183
|
+
self._verbose = verbose
|
|
160
184
|
if StaticInfoType.DATAMODEL_WORKFLOW in static_infos:
|
|
161
185
|
self._static_info["workflow"] = DataModelStaticInfo(
|
|
162
186
|
StaticInfoType.DATAMODEL_WORKFLOW,
|
|
@@ -402,6 +426,8 @@ class DataModelGenerator:
|
|
|
402
426
|
"""Write API classes to files."""
|
|
403
427
|
api_tree = {"<meshing_session>": {}, "<solver_session>": {}}
|
|
404
428
|
for name, info in self._static_info.items():
|
|
429
|
+
if self._verbose:
|
|
430
|
+
print(f"{str(info.file_name)}")
|
|
405
431
|
if info.static_info is None:
|
|
406
432
|
continue
|
|
407
433
|
with open(info.file_name, "w", encoding="utf8") as f:
|
|
@@ -438,9 +464,9 @@ class DataModelGenerator:
|
|
|
438
464
|
shutil.rmtree(Path(_SOLVER_DM_DOC_DIR))
|
|
439
465
|
|
|
440
466
|
|
|
441
|
-
def generate(version, static_infos: dict):
|
|
467
|
+
def generate(version, static_infos: dict, verbose: bool = False):
|
|
442
468
|
"""Generate datamodel API classes."""
|
|
443
|
-
return DataModelGenerator(version, static_infos).write_static_info()
|
|
469
|
+
return DataModelGenerator(version, static_infos, verbose).write_static_info()
|
|
444
470
|
|
|
445
471
|
|
|
446
472
|
if __name__ == "__main__":
|
|
@@ -476,4 +502,14 @@ if __name__ == "__main__":
|
|
|
476
502
|
static_infos[StaticInfoType.DATAMODEL_MESHING_UTILITIES] = (
|
|
477
503
|
meshing._datamodel_service_se.get_static_info("MeshingUtilities")
|
|
478
504
|
)
|
|
479
|
-
|
|
505
|
+
parser = argparse.ArgumentParser(
|
|
506
|
+
description="A script to write Fluent API files with an optional verbose output."
|
|
507
|
+
)
|
|
508
|
+
parser.add_argument(
|
|
509
|
+
"-v",
|
|
510
|
+
"--verbose",
|
|
511
|
+
action="store_true",
|
|
512
|
+
help="Show paths of written Fluent API files.",
|
|
513
|
+
)
|
|
514
|
+
args = parser.parse_args()
|
|
515
|
+
generate(version, static_infos, args.verbose)
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
# Copyright (C) 2021 - 2025 ANSYS, Inc. and/or its affiliates.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
#
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
# furnished to do so, subject to the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
# copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
# SOFTWARE.
|
|
22
|
+
|
|
1
23
|
"""Module to write Fluent version information."""
|
|
2
24
|
|
|
3
25
|
from ansys.fluent.core import CODEGEN_OUTDIR, FluentVersion, launch_fluent
|
|
@@ -1,5 +1,28 @@
|
|
|
1
|
+
# Copyright (C) 2021 - 2025 ANSYS, Inc. and/or its affiliates.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
#
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
# furnished to do so, subject to the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
# copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
# SOFTWARE.
|
|
22
|
+
|
|
1
23
|
"""Module to generate the classes corresponding to the Fluent settings API."""
|
|
2
24
|
|
|
25
|
+
import argparse
|
|
3
26
|
import hashlib
|
|
4
27
|
from io import StringIO
|
|
5
28
|
import keyword
|
|
@@ -58,12 +81,39 @@ def _construct_bases_stub(original_bases, child_object_name):
|
|
|
58
81
|
return bases
|
|
59
82
|
|
|
60
83
|
|
|
84
|
+
def strip_parameters(docstring: str) -> str:
|
|
85
|
+
"""
|
|
86
|
+
Strips everything from the 'Parameters' section onwards in the given docstring.
|
|
87
|
+
|
|
88
|
+
Parameters
|
|
89
|
+
----------
|
|
90
|
+
docstring: str
|
|
91
|
+
The original docstring to process.
|
|
92
|
+
|
|
93
|
+
Returns
|
|
94
|
+
-------
|
|
95
|
+
The modified docstring with the 'Parameters' section removed.
|
|
96
|
+
"""
|
|
97
|
+
lines = docstring.strip().splitlines()
|
|
98
|
+
filtered_lines = []
|
|
99
|
+
|
|
100
|
+
for line in lines:
|
|
101
|
+
if line.strip().startswith("Parameters"):
|
|
102
|
+
break
|
|
103
|
+
filtered_lines.append(line)
|
|
104
|
+
|
|
105
|
+
return "\n".join(filtered_lines).strip()
|
|
106
|
+
|
|
107
|
+
|
|
61
108
|
def _populate_data(cls, api_tree: dict, version: str) -> dict:
|
|
62
109
|
data = {}
|
|
63
110
|
data["version"] = version
|
|
64
111
|
data["name"] = cls.__name__
|
|
65
112
|
data["bases"] = [base.__name__ for base in cls.__bases__]
|
|
66
|
-
|
|
113
|
+
if "command" in cls.__doc__:
|
|
114
|
+
data["doc"] = strip_parameters(cls.__doc__)
|
|
115
|
+
else:
|
|
116
|
+
data["doc"] = fix_settings_doc(cls.__doc__)
|
|
67
117
|
data["fluent_name"] = getattr(cls, "fluent_name")
|
|
68
118
|
data["child_names"] = getattr(cls, "child_names", [])
|
|
69
119
|
command_names = getattr(cls, "command_names", [])
|
|
@@ -261,7 +311,7 @@ def _write_data(cls_name: str, python_name: str, data: dict, f: IO, f_stub: IO |
|
|
|
261
311
|
f_stub.write(s_stub.getvalue())
|
|
262
312
|
|
|
263
313
|
|
|
264
|
-
def generate(version: str, static_infos: dict) -> None:
|
|
314
|
+
def generate(version: str, static_infos: dict, verbose: bool = False) -> None:
|
|
265
315
|
"""Generate the classes corresponding to the Fluent settings API."""
|
|
266
316
|
start_time = time.time()
|
|
267
317
|
api_tree = {}
|
|
@@ -279,6 +329,9 @@ def generate(version: str, static_infos: dict) -> None:
|
|
|
279
329
|
data = _populate_data(cls, api_tree, version)
|
|
280
330
|
_NAME_BY_HASH.clear()
|
|
281
331
|
_CLASS_WRITTEN.clear()
|
|
332
|
+
if verbose:
|
|
333
|
+
print(f"{str(output_file)}")
|
|
334
|
+
print(f"{str(output_stub_file)}")
|
|
282
335
|
with open(output_file, "w") as f, open(output_stub_file, "w") as f_stub:
|
|
283
336
|
header = StringIO()
|
|
284
337
|
header.write("#\n")
|
|
@@ -302,7 +355,7 @@ def generate(version: str, static_infos: dict) -> None:
|
|
|
302
355
|
file_size = output_file.stat().st_size / 1024 / 1024
|
|
303
356
|
file_size_stub = output_stub_file.stat().st_size / 1024 / 1024
|
|
304
357
|
print(
|
|
305
|
-
f"
|
|
358
|
+
f"\nGenerated {output_file.name} and {output_stub_file.name} in {time.time() - start_time:.2f} seconds."
|
|
306
359
|
)
|
|
307
360
|
print(f"{output_file.name} size: {file_size:.2f} MB")
|
|
308
361
|
print(f"{output_stub_file.name} size: {file_size_stub:.2f} MB")
|
|
@@ -316,4 +369,14 @@ if __name__ == "__main__":
|
|
|
316
369
|
# version = "251"
|
|
317
370
|
# static_info = pickle.load(open("static_info.pkl", "rb"))
|
|
318
371
|
static_infos = {StaticInfoType.SETTINGS: static_info}
|
|
319
|
-
|
|
372
|
+
parser = argparse.ArgumentParser(
|
|
373
|
+
description="A script to write Fluent API files with an optional verbose output."
|
|
374
|
+
)
|
|
375
|
+
parser.add_argument(
|
|
376
|
+
"-v",
|
|
377
|
+
"--verbose",
|
|
378
|
+
action="store_true",
|
|
379
|
+
help="Show paths of written Fluent API files.",
|
|
380
|
+
)
|
|
381
|
+
args = parser.parse_args()
|
|
382
|
+
generate(version, static_infos, args.verbose)
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
# Copyright (C) 2021 - 2025 ANSYS, Inc. and/or its affiliates.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
#
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
# furnished to do so, subject to the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
# copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
# SOFTWARE.
|
|
22
|
+
|
|
1
23
|
"""Provide a module to generate explicit Fluent TUI menu classes.
|
|
2
24
|
|
|
3
25
|
This module starts up Fluent and calls the underlying gRPC APIs to generate the
|
|
@@ -12,6 +34,7 @@ Usage
|
|
|
12
34
|
`python codegen/tuigen.py`
|
|
13
35
|
"""
|
|
14
36
|
|
|
37
|
+
import argparse
|
|
15
38
|
import logging
|
|
16
39
|
import os
|
|
17
40
|
from pathlib import Path
|
|
@@ -176,7 +199,9 @@ class _RenameModuleUnpickler(pickle.Unpickler):
|
|
|
176
199
|
class TUIGenerator:
|
|
177
200
|
"""Generates explicit TUI menu classes."""
|
|
178
201
|
|
|
179
|
-
def __init__(
|
|
202
|
+
def __init__(
|
|
203
|
+
self, mode: str, version: str, static_infos: dict, verbose: bool = False
|
|
204
|
+
):
|
|
180
205
|
self._mode = mode
|
|
181
206
|
self._version = version
|
|
182
207
|
self._tui_file = _get_tui_filepath(mode, version)
|
|
@@ -189,6 +214,7 @@ class TUIGenerator:
|
|
|
189
214
|
shutil.rmtree(Path(self._tui_doc_dir))
|
|
190
215
|
self._main_menu = _TUIMenu([], "")
|
|
191
216
|
self._static_infos = static_infos
|
|
217
|
+
self._verbose = verbose
|
|
192
218
|
|
|
193
219
|
def _populate_menu(self, menu: _TUIMenu, info: Dict[str, Any]):
|
|
194
220
|
for child_menu_name, child_menu_info in sorted(info["menus"].items()):
|
|
@@ -260,6 +286,8 @@ class TUIGenerator:
|
|
|
260
286
|
"""Generate TUI API classes."""
|
|
261
287
|
api_tree = {}
|
|
262
288
|
Path(self._tui_file).parent.mkdir(exist_ok=True)
|
|
289
|
+
if self._verbose:
|
|
290
|
+
print(f"{str(self._tui_file)}")
|
|
263
291
|
with open(self._tui_file, "w", encoding="utf8") as self.__writer:
|
|
264
292
|
if FluentVersion(self._version) == FluentVersion.v222:
|
|
265
293
|
with open(
|
|
@@ -298,7 +326,7 @@ class TUIGenerator:
|
|
|
298
326
|
return api_tree
|
|
299
327
|
|
|
300
328
|
|
|
301
|
-
def generate(version, static_infos: dict):
|
|
329
|
+
def generate(version, static_infos: dict, verbose: bool = False):
|
|
302
330
|
"""Generate TUI API classes."""
|
|
303
331
|
api_tree = {}
|
|
304
332
|
gt_222 = FluentVersion(version) > FluentVersion.v222
|
|
@@ -312,11 +340,11 @@ def generate(version, static_infos: dict):
|
|
|
312
340
|
_populate_xml_helpstrings()
|
|
313
341
|
if not gt_222 or StaticInfoType.TUI_MESHING in static_infos:
|
|
314
342
|
api_tree["<meshing_session>"] = TUIGenerator(
|
|
315
|
-
"meshing", version, static_infos
|
|
343
|
+
"meshing", version, static_infos, verbose
|
|
316
344
|
).generate()
|
|
317
345
|
if not gt_222 or StaticInfoType.TUI_SOLVER in static_infos:
|
|
318
346
|
api_tree["<solver_session>"] = TUIGenerator(
|
|
319
|
-
"solver", version, static_infos
|
|
347
|
+
"solver", version, static_infos, verbose
|
|
320
348
|
).generate()
|
|
321
349
|
if os.getenv("PYFLUENT_HIDE_LOG_SECRETS") != "1":
|
|
322
350
|
logger.info(
|
|
@@ -340,4 +368,14 @@ if __name__ == "__main__":
|
|
|
340
368
|
static_infos[StaticInfoType.TUI_MESHING] = (
|
|
341
369
|
meshing._datamodel_service_tui.get_static_info("")
|
|
342
370
|
)
|
|
343
|
-
|
|
371
|
+
parser = argparse.ArgumentParser(
|
|
372
|
+
description="A script to write Fluent API files with an optional verbose output."
|
|
373
|
+
)
|
|
374
|
+
parser.add_argument(
|
|
375
|
+
"-v",
|
|
376
|
+
"--verbose",
|
|
377
|
+
action="store_true",
|
|
378
|
+
help="Show paths of written Fluent API files.",
|
|
379
|
+
)
|
|
380
|
+
args = parser.parse_args()
|
|
381
|
+
generate(version, static_infos, args.verbose)
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
# Copyright (C) 2021 - 2025 ANSYS, Inc. and/or its affiliates.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
#
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
# furnished to do so, subject to the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
# copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
# SOFTWARE.
|
|
22
|
+
|
|
1
23
|
"""Module containing tool for walking (generated) API class hierarchy.
|
|
2
24
|
|
|
3
25
|
Example
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
# Copyright (C) 2021 - 2025 ANSYS, Inc. and/or its affiliates.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
#
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
# furnished to do so, subject to the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
# copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
# SOFTWARE.
|
|
22
|
+
|
|
1
23
|
"""Utility to write YAML file for the current settings hierarchy.
|
|
2
24
|
|
|
3
25
|
Usage:
|