Skip to content

Commit 09cf50d

Browse files
fix: don't collapse fresh diagrams that were never combined
A fresh dj.Diagram(schema) was incorrectly collapsing because _explicit_nodes was empty. Now we check both _explicit_nodes and _is_collapsed to determine if collapse should be applied: - Fresh diagram (_explicit_nodes empty, _is_collapsed=False): no collapse - Combined collapsed (_explicit_nodes empty, _is_collapsed=True): collapse all - Mixed combination: collapse only non-explicit nodes Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 26264d4 commit 09cf50d

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/datajoint/diagram.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,15 @@ def _apply_collapse(self, graph: nx.DiGraph) -> tuple[nx.DiGraph, dict[str, str]
386386
valid_nodes = self.nodes_to_show.intersection(set(self.nodes()))
387387
valid_explicit = self._explicit_nodes.intersection(set(self.nodes()))
388388

389+
# Determine if collapse should be applied:
390+
# - If _explicit_nodes is empty AND _is_collapsed is False, this is a fresh
391+
# diagram that was never combined with collapsed diagrams → no collapse
392+
# - If _explicit_nodes is empty AND _is_collapsed is True, this is the result
393+
# of combining only collapsed diagrams → collapse all nodes
394+
# - If _explicit_nodes equals valid_nodes, all nodes are explicit → no collapse
395+
if not valid_explicit and not self._is_collapsed:
396+
# Fresh diagram, never combined with collapsed diagrams
397+
return graph, {}
389398
if valid_explicit == valid_nodes:
390399
# All nodes are explicit (expanded) - no collapse needed
391400
return graph, {}

0 commit comments

Comments
 (0)