Skip to content

Commit 7ba086b

Browse files
authored
Fix connecting Any as inpt (#1991)
* Fix Any flagged as ambiguous inpt in Operator._find_outputs_corresponding_pins. * Add test for reported failure * Better fix
1 parent ff8e662 commit 7ba086b

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

src/ansys/dpf/core/dpf_operator.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -829,8 +829,10 @@ def _find_outputs_corresponding_pins(self, type_names, inpt, pin, corresponding_
829829
if python_name == "B":
830830
python_name = "bool"
831831

832+
# Type match
832833
if type(inpt).__name__ == python_name:
833834
corresponding_pins.append(pin)
835+
# if the inpt has multiple potential outputs, find which ones can match
834836
elif isinstance(inpt, (_Outputs, Operator, Result)):
835837
if isinstance(inpt, Operator):
836838
output_pin_available = inpt.outputs._get_given_output([python_name])
@@ -840,12 +842,14 @@ def _find_outputs_corresponding_pins(self, type_names, inpt, pin, corresponding_
840842
output_pin_available = inpt._get_given_output([python_name])
841843
for outputpin in output_pin_available:
842844
corresponding_pins.append((pin, outputpin))
845+
# If any output type matches python_name
843846
elif isinstance(inpt, Output):
844-
for inpttype in inpt._python_expected_types:
845-
if inpttype == python_name:
846-
corresponding_pins.append(pin)
847847
if python_name == "Any":
848848
corresponding_pins.append(pin)
849+
else:
850+
for inpttype in inpt._python_expected_types:
851+
if inpttype == python_name:
852+
corresponding_pins.append(pin)
849853
elif python_name == "Any":
850854
corresponding_pins.append(pin)
851855

tests/test_operator.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1496,3 +1496,9 @@ def test_operator_id(server_type):
14961496
assert op.id not in ids
14971497

14981498
ids.add(op.id)
1499+
1500+
1501+
def test_operator_find_outputs_corresponding_pins_any(server_type):
1502+
f1 = ops.utility.forward()
1503+
f2 = ops.utility.forward()
1504+
f2.inputs.any.connect(f1.outputs.any)

0 commit comments

Comments
 (0)