kz930 opened a new pull request, #7984:
URL: https://github.com/apache/texera/pull/7984
### What changes were proposed in this PR?
The Tree Plot operator's generated template no longer imports igraph. It
computes its
own top-down layout instead: depth picks the row, a leaf takes the next free
column,
and a parent sits centred over its children. Roots are the nodes that never
appear as
a child, and anything unreachable from a root is rooted where it is, so a
forest, a
cycle, a shared child and a self-loop all place every node exactly once. The
walk is
iterative, so a deep tree cannot hit the recursion limit.
igraph was used for four things: `Graph.TupleList`, `vs['name']`,
`layout('rt')` and
`get_edgelist()`. Only the layout did real work, and `EdgeSeq` was imported
but never
used. No new dependency is added.
The layout guard is kept and now reads `Tree layout failed`. It earns its
keep: a cell
like `[[1,2], 3]` parses to an unhashable node, which now renders the error
page
instead of failing the operator.
The tree keeps its shape. Spacing is uniform per leaf rather than
Reingold-Tilford's
contour packing, so an unbalanced tree draws slightly wider than before.
### Any related issues, documentation, discussions?
Closes #7969. Supersedes #7970, which declared igraph and was closed because
GPL v2 is
Category X under the ASF 3rd party license policy.
### How was this PR tested?
`TreePlotOpDescSpec` passes, including a new test that the generated code
does not name
igraph. I also dumped the generated template and ran it against a four-level
tree with
igraph made unimportable, and it rendered the plot rather than an error
page. The root
landed at 2.375 over children at 1.25 and 3.5, their children at 0.5, 2, 3
and 4, and
the deepest pair at 0 and 1. I checked a chain, a forest, a cycle, a
diamond, a
self-loop and duplicate edges separately, and a 200k-node chain lays out in
0.29s.
### Was this PR authored or co-authored using generative AI tooling?
Generated-by: Claude Code (Claude Opus 5)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]