Skip to content

Commit 71f35ae

Browse files
fix: add docstring/typehints; add exception in Workflow.get_topology()
1 parent 0b7522d commit 71f35ae

File tree

7 files changed

+31
-35
lines changed

7 files changed

+31
-35
lines changed

src/ansys/dpf/core/common.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -433,7 +433,16 @@ def type_to_special_dpf_constructors():
433433
_derived_class_name_to_type = None
434434

435435

436-
def derived_class_name_to_type():
436+
def derived_class_name_to_type() -> dict[str, type]:
437+
"""
438+
Returns a mapping of derived class names to their corresponding Python classes.
439+
440+
Returns
441+
-------
442+
dict[str, type]
443+
A dictionary mapping derived class names (str) to their corresponding
444+
Python class objects.
445+
"""
437446
global _derived_class_name_to_type
438447
if _derived_class_name_to_type is None:
439448
from ansys.dpf.core.workflow_topology import WorkflowTopology

src/ansys/dpf/core/workflow.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
from typing import Union
3737

3838
from ansys import dpf
39-
from ansys.dpf.core import dpf_operator, inputs, outputs
39+
from ansys.dpf.core import dpf_operator, errors, inputs, outputs
4040
from ansys.dpf.core.check_version import (
4141
server_meet_version,
4242
version_requires,
@@ -969,7 +969,13 @@ def get_topology(self):
969969
Returns
970970
-------
971971
workflow_topology : workflow_topology.WorkflowTopology
972+
973+
Notes
974+
-----
975+
Available from 10.0 server version.
972976
"""
977+
if not self._server.meet_version("10.0"):
978+
raise errors.DpfVersionNotSupported("10.0")
973979
workflow_to_workflow_topology_op = dpf_operator.Operator(
974980
"workflow_to_workflow_topology", server=self._server
975981
)

tests/conftest.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,8 @@ def decorator(func):
391391
if version == "5.0"
392392
else not SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_6_0
393393
if version == "6.0"
394+
else not SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_10_0
395+
if version == "10.0"
394396
else True,
395397
reason=f"Requires server version greater than or equal to {version}",
396398
raises=core.errors.DpfVersionNotSupported,

tests/test_any.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
import conftest
2626
from ansys.dpf import core as dpf
27+
from conftest import raises_for_servers_version_under
2728

2829

2930
@conftest.raises_for_servers_version_under("7.0")
@@ -134,10 +135,7 @@ def test_cast_workflow_any(server_type):
134135
assert new_entity.input_names == []
135136

136137

137-
@pytest.mark.skipif(
138-
not conftest.SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_10_0,
139-
reason="any does not support operator below 8.0",
140-
)
138+
@raises_for_servers_version_under("10.0")
141139
def test_cast_operator_any(server_type):
142140
entity = dpf.Operator(server=server_type, name="U")
143141
any_dpf = dpf.Any.new_from(entity)

tests/test_operator.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_7_0,
4646
SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_8_0,
4747
)
48+
from conftest import raises_for_servers_version_under
4849

4950
# Check for ANSYS installation env var
5051
HAS_AWP_ROOT212 = os.environ.get("AWP_ROOT212", False) is not False
@@ -1427,10 +1428,7 @@ def test_operator_input_output_streams(server_in_process, simple_bar):
14271428
assert times
14281429

14291430

1430-
@pytest.mark.skipif(
1431-
not conftest.SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_10_0,
1432-
reason="Operator `workflow_to_workflow_topology` does not exist below 10.0",
1433-
)
1431+
@raises_for_servers_version_under("10.0")
14341432
def test_operator_outputs_derived_class(server_type):
14351433
workflow = dpf.core.Workflow(server=server_type)
14361434

@@ -1443,10 +1441,7 @@ def test_operator_outputs_derived_class(server_type):
14431441
assert workflow_topology
14441442

14451443

1446-
@pytest.mark.skipif(
1447-
not conftest.SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_10_0,
1448-
reason="Operator `workflow_to_workflow_topology` does not exist below 10.0",
1449-
)
1444+
@raises_for_servers_version_under("10.0")
14501445
def test_operator_get_output_derived_class(server_type):
14511446
workflow = dpf.core.Workflow(server=server_type)
14521447

tests/test_workflow.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import conftest
3232
from ansys import dpf
3333
from ansys.dpf.core import misc
34+
from conftest import raises_for_servers_version_under
3435

3536
if misc.module_exists("graphviz"):
3637
HAS_GRAPHVIZ = True
@@ -1031,10 +1032,7 @@ def test_workflow_input_output_streams(server_in_process, simple_bar):
10311032
assert times
10321033

10331034

1034-
@pytest.mark.skipif(
1035-
not conftest.SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_10_0,
1036-
reason="Operator `workflow_to_workflow_topology` does not exist below 10.0",
1037-
)
1035+
@raises_for_servers_version_under("10.0")
10381036
def test_workflow_get_output_derived_class(server_type):
10391037
workflow = dpf.core.Workflow(server=server_type)
10401038

tests/test_workflow_topology.py

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
from ansys import dpf
2626
import ansys.dpf.core.operators as op
27-
import conftest
27+
from conftest import raises_for_servers_version_under
2828

2929

3030
def workflow_forward(server_type) -> dpf.core.Workflow:
@@ -156,10 +156,7 @@ def expected_workflow_topology(workflow):
156156
return workflow_topologies[workflow.name]
157157

158158

159-
@pytest.mark.skipif(
160-
not conftest.SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_10_0,
161-
reason="Operator `workflow_to_workflow_topology` does not exist below 10.0",
162-
)
159+
@raises_for_servers_version_under("10.0")
163160
def test_instantiate_workflow_to_workflow_topology_op(server_type):
164161
workflow_to_workflow_topology_op = dpf.core.Operator(
165162
"workflow_to_workflow_topology", server=server_type
@@ -168,20 +165,14 @@ def test_instantiate_workflow_to_workflow_topology_op(server_type):
168165
assert workflow_to_workflow_topology_op
169166

170167

171-
@pytest.mark.skipif(
172-
not conftest.SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_10_0,
173-
reason="Operator `workflow_to_workflow_topology` does not exist below 10.0",
174-
)
168+
@raises_for_servers_version_under("10.0")
175169
def test_workflow_get_topology(workflow):
176170
workflow_topology = workflow.get_topology()
177171

178172
assert workflow_topology
179173

180174

181-
@pytest.mark.skipif(
182-
not conftest.SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_10_0,
183-
reason="Operator `workflow_to_workflow_topology` does not exist below 10.0",
184-
)
175+
@raises_for_servers_version_under("10.0")
185176
def test_workflow_topology_sizes(workflow, expected_workflow_topology):
186177
workflow_topology = workflow.get_topology()
187178

@@ -195,10 +186,7 @@ def test_workflow_topology_sizes(workflow, expected_workflow_topology):
195186
assert len(workflow_topology.exposed_outputs) == expected_workflow_topology["exposed_outputs"]
196187

197188

198-
@pytest.mark.skipif(
199-
not conftest.SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_10_0,
200-
reason="Operator `workflow_to_workflow_topology` does not exist below 10.0",
201-
)
189+
@raises_for_servers_version_under("10.0")
202190
def test_workflow_topology_str(workflow):
203191
workflow_topology = workflow.get_topology()
204192

0 commit comments

Comments
 (0)