Open-EO / Open-EO/openeo-python-client
Eliminate wrong assumptions about "terminal" nodes
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 217
- Forks
- 56
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 2
Description
The process graph building logic in Python client quite heavily works from assumption about the equivalence
"end node" = "result node" = "save_result"
which works for most use cases, but that's not fully in line with full openEO API.
also see https://github.com/Open-EO/openeo-geopyspark-driver/issues/424#issuecomment-2199780221:
Some more insights from https://github.com/Open-EO/openeo-processes/issues/279 and https://github.com/Open-EO/openeo-api/issues/427 about different kinds of terminal nodes in the openEO API
- a process graph can have multiple "end nodes": leaf nodes that are not input to another node
- a process graph must have one "result node": node with
"result": True.
- The result node is actually just important in the the context of a "callback" (in a "parent" process like
apply,reduce_dimension, ...) to determine the value that has to be used by the parent process- The "result" property has little meaning for "top-level" graphs
- the result node does not have to be an "end node". Result nodes can be input to subsequent nodes
- a "save_result" node neither has to be "end node" or "result node" to be executed
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the process graph building logic in the Python client and compare its terminal-node handling with the openEO API distinctions described in the issue and linked discussions. Done means end nodes, result nodes, and save_result nodes are handled independently, including graphs with multiple end nodes and result nodes that feed later nodes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100