While it may be nice to easily define pipelines, I wonder if
>>or|really are pythonic in some way, so it still will be a “custom VTK stuff”. But I’m not a day to day python user, so I defer to them
I have seen the use of custom operators. Examples: pyTorch, numpy etc added the @ operator for matrix multiplication (which took me a while to figure out!), Fenics uses the << operator to output vis data. I believe what is pythonic about it is using a shorthand to perform an operation. A common way of doing this is chaining operations like
source.filtera().filterb()
which is also not original to Python and is not feasible in our situation (one would have to add > 1000 methods for each filter).
Also I’m not sure of how
execute()is different than the existingUpdate()?
We can certainly extend Update() for this. The difference is that Update() does not return the output nor does it take any input. In the execute() method, I make a shallow copy of the output and return a smart pointer to it (to handle memory management).
output_data = aReader.execute()
# vs
aReader.Update()
output_data = aReader.GetOutput()
output_data = aFilter.execute(input_data)
#vs
aFilter.SetInputData(input_data)
aFilter.Update()
output_data = aFilter.GetOutput()