From 1d62a9d26f0634dec85a1ecf29dbee31c099671a Mon Sep 17 00:00:00 2001 From: "ANSYS\\spearson" Date: Tue, 16 Aug 2022 09:06:32 +0100 Subject: [PATCH 1/4] update dir, remove some redundant code --- src/ansys/fluent/core/meshing/workflow.py | 19 ++++++++++--------- src/ansys/fluent/core/session.py | 18 ++++++++++++++++++ tests/test_pure_mesh_vs_mesh_workflow.py | 12 ++++++++++++ tests/test_session.py | 8 ++++++++ 4 files changed, 48 insertions(+), 9 deletions(-) diff --git a/src/ansys/fluent/core/meshing/workflow.py b/src/ansys/fluent/core/meshing/workflow.py index 65a0928b793d..59ff404218e9 100644 --- a/src/ansys/fluent/core/meshing/workflow.py +++ b/src/ansys/fluent/core/meshing/workflow.py @@ -17,20 +17,11 @@ def __init__(self, task_name): class MeshingWorkflow: class Task(PyCallableStateObject): - class Args(PyCallableStateObject): - def __init__(self, task): - self._task = task - self._args = task.Arguments - - def __getattr__(self, attr): - return getattr(self._args, attr) - def __init__(self, meshing, name): self._workflow = meshing._workflow self._meshing = meshing._meshing self._task = self._workflow.TaskObject[name] self._cmd = None - self.Arguments = MeshingWorkflow.Task.Args(self) @property def CommandArguments(self): @@ -50,6 +41,11 @@ def _command(self): def __getattr__(self, attr): return getattr(self._task, attr) + def __dir__(self): + return sorted( + set(list(self.__dict__.keys()) + dir(type(self)) + dir(self._task)) + ) + def __init__(self, workflow, meshing): self._workflow = workflow self._meshing = meshing @@ -59,3 +55,8 @@ def task(self, name): def __getattr__(self, attr): return getattr(self._workflow, attr) + + def __dir__(self): + return sorted( + set(list(self.__dict__.keys()) + dir(type(self)) + dir(self._workflow)) + ) diff --git a/src/ansys/fluent/core/session.py b/src/ansys/fluent/core/session.py index 0bd7f5694ce6..db4129324141 100644 --- a/src/ansys/fluent/core/session.py +++ b/src/ansys/fluent/core/session.py @@ -136,6 +136,15 @@ def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any): def __getattr__(self, attr): return getattr(self.fluent_connection, attr) + def __dir__(self): + return sorted( + set( + list(self.__dict__.keys()) + + dir(type(self)) + + dir(self.fluent_connection) + ) + ) + class Session: """Instantiates a Fluent connection. This is a deprecated class. This has @@ -275,6 +284,15 @@ def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any): def __getattr__(self, attr): return getattr(self.fluent_connection, attr) + def __dir__(self): + return sorted( + set( + list(self.__dict__.keys()) + + dir(type(self)) + + dir(self.fluent_connection) + ) + ) + class Solver: def __init__( self, tui_service: DatamodelService_TUI, settings_service: SettingsService diff --git a/tests/test_pure_mesh_vs_mesh_workflow.py b/tests/test_pure_mesh_vs_mesh_workflow.py index af5bb0ef8254..35bd362573b5 100644 --- a/tests/test_pure_mesh_vs_mesh_workflow.py +++ b/tests/test_pure_mesh_vs_mesh_workflow.py @@ -6,6 +6,12 @@ @pytest.mark.setup def test_pure_meshing_mode(load_mixing_elbow_pure_meshing): pure_meshing_session = load_mixing_elbow_pure_meshing + # check a few dir elements + # n.b. 'field_data', 'field_info' need to + # be eliminated from meshing sessions + session_dir = dir(pure_meshing_session) + for attr in ("field_data", "field_info", "meshing", "workflow"): + assert attr in session_dir assert pure_meshing_session.workflow.TaskObject["Import Geometry"].Execute() with pytest.raises(AttributeError): pure_meshing_session.switch_to_solver() @@ -16,6 +22,12 @@ def test_pure_meshing_mode(load_mixing_elbow_pure_meshing): @pytest.mark.setup def test_meshing_mode(load_mixing_elbow_meshing): meshing_session = load_mixing_elbow_meshing + # check a few dir elements + # n.b. 'field_data', 'field_info' need to + # be eliminated from meshing sessions + session_dir = dir(meshing_session) + for attr in ("field_data", "field_info", "meshing", "workflow"): + assert attr in session_dir assert meshing_session.workflow.TaskObject["Import Geometry"].Execute() assert meshing_session.switch_to_solver() diff --git a/tests/test_session.py b/tests/test_session.py index f9f4e9d484ad..70c299393ba8 100644 --- a/tests/test_session.py +++ b/tests/test_session.py @@ -130,6 +130,10 @@ def test_create_session_from_launch_fluent_by_passing_ip_and_port( session = launch_fluent( start_instance=False, ip=ip, port=port, cleanup_on_exit=False, mode="solver" ) + # check a few dir elements + session_dir = dir(session) + for attr in ("field_data", "field_info", "setup", "solution"): + assert attr in session_dir assert session.check_health() == HealthCheckService.Status.SERVING.name server.stop(None) session.exit() @@ -149,6 +153,10 @@ def test_create_session_from_launch_fluent_by_setting_ip_and_port_env_var( monkeypatch.setenv("PYFLUENT_FLUENT_IP", ip) monkeypatch.setenv("PYFLUENT_FLUENT_PORT", str(port)) session = launch_fluent(start_instance=False, cleanup_on_exit=False, mode="solver") + # check a few dir elements + session_dir = dir(session) + for attr in ("field_data", "field_info", "meshing", "solver"): + assert attr in session_dir assert session.check_health() == HealthCheckService.Status.SERVING.name server.stop(None) session.exit() From 9b3d0913ca484bbebe80bcb2329ec6ac87e9c42a Mon Sep 17 00:00:00 2001 From: "ANSYS\\spearson" Date: Tue, 16 Aug 2022 09:35:02 +0100 Subject: [PATCH 2/4] extend testing --- tests/test_pure_mesh_vs_mesh_workflow.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tests/test_pure_mesh_vs_mesh_workflow.py b/tests/test_pure_mesh_vs_mesh_workflow.py index 35bd362573b5..2504776ce196 100644 --- a/tests/test_pure_mesh_vs_mesh_workflow.py +++ b/tests/test_pure_mesh_vs_mesh_workflow.py @@ -12,7 +12,15 @@ def test_pure_meshing_mode(load_mixing_elbow_pure_meshing): session_dir = dir(pure_meshing_session) for attr in ("field_data", "field_info", "meshing", "workflow"): assert attr in session_dir - assert pure_meshing_session.workflow.TaskObject["Import Geometry"].Execute() + workflow = pure_meshing_session.workflow + workflow_dir = dir(workflow) + for attr in ("TaskObject", "InsertNewTask", "Workflow", "setState"): + assert attr in workflow_dir + import_geometry = workflow.TaskObject["Import Geometry"] + import_geometry_dir = dir(import_geometry) + for attr in ("AddChildToTask", "Arguments", "Execute", "setState"): + assert attr in import_geometry_dir + assert import_geometry.Execute() with pytest.raises(AttributeError): pure_meshing_session.switch_to_solver() From 3509b8f894ab7bce89ccf0daf414b4e191bf1fab Mon Sep 17 00:00:00 2001 From: Sean Pearson <93727996+seanpearsonuk@users.noreply.github.com> Date: Tue, 16 Aug 2022 10:15:25 +0100 Subject: [PATCH 3/4] Update test_session.py --- tests/test_session.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_session.py b/tests/test_session.py index 70c299393ba8..249a7669d22d 100644 --- a/tests/test_session.py +++ b/tests/test_session.py @@ -155,7 +155,7 @@ def test_create_session_from_launch_fluent_by_setting_ip_and_port_env_var( session = launch_fluent(start_instance=False, cleanup_on_exit=False, mode="solver") # check a few dir elements session_dir = dir(session) - for attr in ("field_data", "field_info", "meshing", "solver"): + for attr in ("field_data", "field_info"): assert attr in session_dir assert session.check_health() == HealthCheckService.Status.SERVING.name server.stop(None) From 8a6da59f278c29fc626a1f7daf65d80a4f55e5db Mon Sep 17 00:00:00 2001 From: "ANSYS\\spearson" Date: Tue, 16 Aug 2022 12:16:57 +0100 Subject: [PATCH 4/4] add call op in wf class --- src/ansys/fluent/core/meshing/workflow.py | 3 +++ src/ansys/fluent/core/services/datamodel_se.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ansys/fluent/core/meshing/workflow.py b/src/ansys/fluent/core/meshing/workflow.py index 59ff404218e9..7094ed11996e 100644 --- a/src/ansys/fluent/core/meshing/workflow.py +++ b/src/ansys/fluent/core/meshing/workflow.py @@ -60,3 +60,6 @@ def __dir__(self): return sorted( set(list(self.__dict__.keys()) + dir(type(self)) + dir(self._workflow)) ) + + def __call__(self): + return self._workflow() diff --git a/src/ansys/fluent/core/services/datamodel_se.py b/src/ansys/fluent/core/services/datamodel_se.py index 755d6da68b79..d2dd3daddd11 100644 --- a/src/ansys/fluent/core/services/datamodel_se.py +++ b/src/ansys/fluent/core/services/datamodel_se.py @@ -583,8 +583,8 @@ def help(self) -> None: print(help_string) def _create_command_arguments(self): - # pending the proto changes pass + # pending the proto changes """ request = DataModelProtoModule.CreateCommandArgumentsRequest() request.rules = self.rules