From dc1f52cb9574016eb3e1736a4c896189d43dd7c2 Mon Sep 17 00:00:00 2001 From: Michael Nale Date: Mon, 17 Jul 2023 18:30:12 +0200 Subject: [PATCH 1/4] Update the mesh_info : making more pythonic functionnalities --- src/ansys/dpf/core/mesh_info.py | 8 ++++---- tests/test_mesh_info.py | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/ansys/dpf/core/mesh_info.py b/src/ansys/dpf/core/mesh_info.py index be060294be1..0a0616e571e 100644 --- a/src/ansys/dpf/core/mesh_info.py +++ b/src/ansys/dpf/core/mesh_info.py @@ -131,7 +131,7 @@ def set_property(self, property_name, prop): return self.generic_data_container.set_property(property_name, prop) @property - def get_number_nodes(self): + def number_nodes(self): """ Returns ------- @@ -142,7 +142,7 @@ def get_number_nodes(self): return self.generic_data_container.get_property("num_nodes") @property - def get_number_elements(self): + def number_elements(self): """ Returns ------- @@ -153,7 +153,7 @@ def get_number_elements(self): return self.generic_data_container.get_property("num_elements") @property - def get_splittable_by(self): + def splittable_by(self): """ Returns ------- @@ -164,7 +164,7 @@ def get_splittable_by(self): return self.generic_data_container.get_property("splittable_by") @property - def get_available_elem_types(self): + def available_elem_types(self): """ Returns ------- diff --git a/tests/test_mesh_info.py b/tests/test_mesh_info.py index c49301accbd..a38c34b6c22 100644 --- a/tests/test_mesh_info.py +++ b/tests/test_mesh_info.py @@ -85,11 +85,11 @@ def test_set_get_num_of(server_type): # """Number of nodes""" num_nodes = 189 mesh_info.set_number_nodes(189) - assert mesh_info.get_number_nodes == num_nodes + assert mesh_info.number_nodes == num_nodes # """ Number of elements """ num_elements = 2 mesh_info.set_number_elements(2) - assert mesh_info.get_number_elements == num_elements + assert mesh_info.number_elements == num_elements @pytest.mark.skipif( @@ -123,7 +123,7 @@ def test_set_get_splittable_by_mesh_info(server_type): expected_splittable = ["split_01", "split_02", "split_03"] splittable.append(expected_splittable, 1) mesh_info.set_splittable_by(splittable) - result_splittable = mesh_info.get_splittable_by + result_splittable = mesh_info.splittable_by assert result_splittable.data[0] == expected_splittable[0] assert result_splittable.data[1] == expected_splittable[1] assert result_splittable.data[2] == expected_splittable[2] @@ -139,7 +139,7 @@ def test_set_get_available_elem_types_mesh_info(server_type): available_results = dpf.Scoping(server=server_type) available_results._set_ids(available_results_ids) mesh_info.set_available_elem_types(available_results) - result_available = mesh_info.get_available_elem_types + result_available = mesh_info.available_elem_types for x in range(len(available_results)): assert result_available.id(x) == available_results.id(x) From e6780ab27ff2975182315774c6ea4d63e818862a Mon Sep 17 00:00:00 2001 From: Michael Nale Date: Tue, 18 Jul 2023 14:20:30 +0200 Subject: [PATCH 2/4] Unable tests for older version of gate and gatebin with no implementation of Get_PinDerivedClassName API --- src/ansys/dpf/core/operator_specification.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ansys/dpf/core/operator_specification.py b/src/ansys/dpf/core/operator_specification.py index 2f67d482a0a..acb1cd3f333 100644 --- a/src/ansys/dpf/core/operator_specification.py +++ b/src/ansys/dpf/core/operator_specification.py @@ -383,7 +383,7 @@ def _fill_pins(self, binput, to_fill): ] pin_derived_class_type_name = "" - if server_meet_version("7.0", self._server): + if server_meet_version("7.0", self._server) and hasattr(self._api, "operator_specification_get_pin_derived_class_type_name"): pin_derived_class_type_name = ( self._api.operator_specification_get_pin_derived_class_type_name( self, binput, i_pin @@ -614,7 +614,7 @@ def inputs(self) -> dict: def inputs(self, val: dict): for key, value in val.items(): list_types = integral_types.MutableListString(value.type_names) - if server_meet_version("7.0", self._server): + if server_meet_version("7.0", self._server) and hasattr(self._api, "operator_specification_set_pin_derived_class"): self._api.operator_specification_set_pin_derived_class( self, True, @@ -655,7 +655,7 @@ def outputs(self) -> dict: def outputs(self, val: dict): for key, value in val.items(): list_types = integral_types.MutableListString(value.type_names) - if server_meet_version("7.0", self._server): + if server_meet_version("7.0", self._server) and hasattr(self._api, "operator_specification_set_pin_derived_class"): self._api.operator_specification_set_pin_derived_class( self, False, From 81b1b245b4a5c8492be2152b73cf12576c0f19b8 Mon Sep 17 00:00:00 2001 From: Michael Nale Date: Tue, 18 Jul 2023 14:45:35 +0200 Subject: [PATCH 3/4] Update the PR : reformat code --- src/ansys/dpf/core/operator_specification.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/ansys/dpf/core/operator_specification.py b/src/ansys/dpf/core/operator_specification.py index acb1cd3f333..b11c64d01f5 100644 --- a/src/ansys/dpf/core/operator_specification.py +++ b/src/ansys/dpf/core/operator_specification.py @@ -383,7 +383,9 @@ def _fill_pins(self, binput, to_fill): ] pin_derived_class_type_name = "" - if server_meet_version("7.0", self._server) and hasattr(self._api, "operator_specification_get_pin_derived_class_type_name"): + if server_meet_version("7.0", self._server) and hasattr( + self._api, "operator_specification_get_pin_derived_class_type_name" + ): pin_derived_class_type_name = ( self._api.operator_specification_get_pin_derived_class_type_name( self, binput, i_pin @@ -614,7 +616,9 @@ def inputs(self) -> dict: def inputs(self, val: dict): for key, value in val.items(): list_types = integral_types.MutableListString(value.type_names) - if server_meet_version("7.0", self._server) and hasattr(self._api, "operator_specification_set_pin_derived_class"): + if server_meet_version("7.0", self._server) and hasattr( + self._api, "operator_specification_set_pin_derived_class" + ): self._api.operator_specification_set_pin_derived_class( self, True, @@ -655,7 +659,9 @@ def outputs(self) -> dict: def outputs(self, val: dict): for key, value in val.items(): list_types = integral_types.MutableListString(value.type_names) - if server_meet_version("7.0", self._server) and hasattr(self._api, "operator_specification_set_pin_derived_class"): + if server_meet_version("7.0", self._server) and hasattr( + self._api, "operator_specification_set_pin_derived_class" + ): self._api.operator_specification_set_pin_derived_class( self, False, From 55cb5ae6c77e2ed0b6bca8381ee814c2fd215279 Mon Sep 17 00:00:00 2001 From: Michael Nale Date: Tue, 18 Jul 2023 15:26:01 +0200 Subject: [PATCH 4/4] Update the PR : even more pythonic methods --- src/ansys/dpf/core/mesh_info.py | 20 ++++++++++++-------- tests/test_mesh_info.py | 8 ++++---- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/ansys/dpf/core/mesh_info.py b/src/ansys/dpf/core/mesh_info.py index 0a0616e571e..8bfb4af3928 100644 --- a/src/ansys/dpf/core/mesh_info.py +++ b/src/ansys/dpf/core/mesh_info.py @@ -174,22 +174,26 @@ def available_elem_types(self): return self.generic_data_container.get_property("avalaible_elem_type") - def set_number_nodes(self, number_of_nodes): + @number_nodes.setter + def number_nodes(self, value): """Set the number of nodes in the mesh""" - return self.generic_data_container.set_property("num_nodes", number_of_nodes) + self.generic_data_container.set_property("num_nodes", value) - def set_number_elements(self, number_of_elements): + @number_elements.setter + def number_elements(self, value): """Set the number of elements in the mesh""" - return self.generic_data_container.set_property("num_elements", number_of_elements) + self.generic_data_container.set_property("num_elements", value) - def set_splittable_by(self, split): + @splittable_by.setter + def splittable_by(self, value): """Set name of the properties according to which the mesh can be split by""" - return self.generic_data_container.set_property("splittable_by", split) + self.generic_data_container.set_property("splittable_by", value) - def set_available_elem_types(self, available_elem_types): + @available_elem_types.setter + def available_elem_types(self, value): """Set the available element types""" - return self.generic_data_container.set_property("avalaible_elem_type", available_elem_types) + self.generic_data_container.set_property("avalaible_elem_type", value) diff --git a/tests/test_mesh_info.py b/tests/test_mesh_info.py index a38c34b6c22..17175c85e3f 100644 --- a/tests/test_mesh_info.py +++ b/tests/test_mesh_info.py @@ -84,11 +84,11 @@ def test_set_get_num_of(server_type): mesh_info = dpf.MeshInfo(server=server_type) # """Number of nodes""" num_nodes = 189 - mesh_info.set_number_nodes(189) + mesh_info.number_nodes = 189 assert mesh_info.number_nodes == num_nodes # """ Number of elements """ num_elements = 2 - mesh_info.set_number_elements(2) + mesh_info.number_elements = 2 assert mesh_info.number_elements == num_elements @@ -122,7 +122,7 @@ def test_set_get_splittable_by_mesh_info(server_type): splittable = dpf.StringField(server=server_type) expected_splittable = ["split_01", "split_02", "split_03"] splittable.append(expected_splittable, 1) - mesh_info.set_splittable_by(splittable) + mesh_info.splittable_by = splittable result_splittable = mesh_info.splittable_by assert result_splittable.data[0] == expected_splittable[0] assert result_splittable.data[1] == expected_splittable[1] @@ -138,7 +138,7 @@ def test_set_get_available_elem_types_mesh_info(server_type): available_results_ids = [1, 2, 3] available_results = dpf.Scoping(server=server_type) available_results._set_ids(available_results_ids) - mesh_info.set_available_elem_types(available_results) + mesh_info.available_elem_types = available_results result_available = mesh_info.available_elem_types for x in range(len(available_results)): assert result_available.id(x) == available_results.id(x)