Open-EO / openeo-pg-parser-python

A python parser for openEO process graphs
Apache License 2.0
1 stars 6 forks source link

graph sorting difference with previous version #32

Closed clausmichele closed 3 years ago

clausmichele commented 3 years ago

I've started only today to integrate the new parser with my back-end. I see that now, if a process graph contains a _reducedimension process and I use the sort(by='dependency') , the processes inside the _reducedimension will be listed before the actual _reducedimension, which is the opposite behavior compared to the previous version. Why this change?

claxn commented 3 years ago

That change was introduced to exactly define the order of node calls, which was actually wrong in the old version. From the theory point of view, reduce_dimension needs to be called before its callbacks as the data with a reduced dimension needs to be forwarded to a reducer operation, e.g. mean. Only in the end, the data from the lowest callback is passed backward until the reduce_dimension node. So the new "dependency" option should correctly reflect the desired behaviour.

To still preserve the old behaviour (which has definitely an advantage for back-ends, which just pass the data onto sub-process graphs/callbacks), you can write sort(by='result').