This is still a behavior change. Given how we create properties, I would expect .output to call GetOutput() on the algorithm, which does not execute. This is the current behavior.
I did not think of returning a tuple of data objects. That’s doable. This currently returns the 2nd output:
select_ports(alg, 1).execute()
but if you want the other input after executing, you have to do:
alg.GetOutputDataObject(0)
Because of the way Python properties work, we cannot do:
alg.output(0)
We can implement that as a custom function if requested though.