Add DataGraphsITensorVisualizationBaseExt#119
Merged
Conversation
Move the `visualize(::AbstractDataGraph, ...)` overload that previously lived in ITensorNetworks.jl (where it was type piracy on a DataGraphs type) into DataGraphs as a package extension keyed on ITensorVisualizationBase. The method delegates to `visualize(underlying_graph(graph), ...)`. Bumps version to 0.4.1. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #119 +/- ##
==========================================
+ Coverage 59.75% 59.89% +0.14%
==========================================
Files 9 10 +1
Lines 564 566 +2
==========================================
+ Hits 337 339 +2
Misses 227 227
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
The DataGraphsITensorVisualizationBaseExt method delegates to visualize(underlying_graph(graph)), which is typically a NamedGraph. NamedGraphs 0.11.1 (PR #166) adds the matching extension for AbstractNamedGraph, so without that floor a DataGraph wrapping a NamedGraph would silently fall back to the no-op stub instead of the labeled path. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
auto-merge was automatically disabled
May 12, 2026 23:49
Pull request was closed
mtfishman
added a commit
to ITensor/ITensorNetworks.jl
that referenced
this pull request
May 13, 2026
Replace the in-source `visualize(::AbstractITensorNetwork, ...)` method (in `src/abstractitensornetwork.jl`) and the two type-piracy methods on `AbstractNamedGraph` / `AbstractDataGraph` (in `src/visualize.jl`) with a single `ITensorNetworksITensorVisualizationBaseExt` package extension that overloads `visualize(::AbstractITensorNetwork, ...)` only. The type-piracy methods migrate upstream: - `NamedGraphs.jl` v0.11.1 (PR ITensor/NamedGraphs.jl#166) adds the `AbstractNamedGraph` overload via its own `NamedGraphsITensorVisualizationBaseExt`. - `DataGraphs.jl` v0.4.1 (PR ITensor/DataGraphs.jl#119) adds the `AbstractDataGraph` overload via `DataGraphsITensorVisualizationBaseExt`. Each method now lives in the package that owns the type, removing the piracy. The extensions are all keyed on the registered standalone `ITensorVisualizationBase` package; the methods overload `ITensorVisualizationBase.visualize`, which shares its binding with `ITensors.ITensorVisualizationCore.visualize` (the in-tree submodule) so rendering backends pick them up. Bumps `[compat]` floors to `NamedGraphs = "0.11.1"` and `DataGraphs = "0.4.1"`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
mtfishman
added a commit
to ITensor/ITensorNetworks.jl
that referenced
this pull request
May 13, 2026
## Summary - Adds `ITensorNetworksITensorVisualizationBaseExt`, a new package extension keyed on `ITensorVisualizationBase`, holding the `visualize(::AbstractITensorNetwork, ...)` overload that previously lived in `src/abstractitensornetwork.jl`. - Drops `src/visualize.jl` entirely. The two methods it held (overloads of `visualize` on `AbstractNamedGraph` and `AbstractDataGraph`, which were type piracy from here) move upstream into the packages that own those types: see [ITensor/NamedGraphs.jl#166](ITensor/NamedGraphs.jl#166) and [ITensor/DataGraphs.jl#119](ITensor/DataGraphs.jl#119). - Bumps `[compat]` floors to `NamedGraphs = "0.11.1"` and `DataGraphs = "0.4.1"` to ensure the upstream extensions are present. - The extensions are keyed on the registered standalone `ITensorVisualizationBase` package. The methods overload `ITensorVisualizationBase.visualize`, which shares a binding with `ITensors.ITensorVisualizationCore.visualize` (the in-tree submodule), so rendering backends pick them up. Adds `test/test_itensorvisualizationbase_ext.jl` covering the new method. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
mtfishman
added a commit
to ITensor/ITensorNetworks.jl
that referenced
this pull request
May 13, 2026
…21.2 (#369) ## Summary Backport of #367 onto the new `release-0.21` branch. Replaces the in-source `visualize(::AbstractITensorNetwork, ...)` method (in `src/abstractitensornetwork.jl`) and the two type-piracy methods on `AbstractNamedGraph` / `AbstractDataGraph` (in `src/visualize.jl`) with a single `ITensorNetworksITensorVisualizationBaseExt` package extension that overloads `visualize(::AbstractITensorNetwork, ...)` only. The type-piracy methods migrate upstream: - `NamedGraphs.jl` v0.11.1 ([#166](ITensor/NamedGraphs.jl#166)) adds the `AbstractNamedGraph` overload via its own `NamedGraphsITensorVisualizationBaseExt`. - `DataGraphs.jl` v0.4.1 ([#119](ITensor/DataGraphs.jl#119)) adds the `AbstractDataGraph` overload via `DataGraphsITensorVisualizationBaseExt`. ## Motivation for backporting Once NamedGraphs v0.11.1 and DataGraphs v0.4.1 register, any user on legacy ITensorNetworks v0.21.x alongside the new NamedGraphs/DataGraphs would hit method-overwrite warnings on the two type-pirated `visualize` methods. v0.22 may take a while to ship (its prerelease accumulator is still receiving changes), so we publish a v0.21.2 patch carrying the equivalent fix. ## Changes - Adds `ext/ITensorNetworksITensorVisualizationBaseExt/`. - Removes `src/visualize.jl` (and its `include` from `src/ITensorNetworks.jl`). - Removes the `visualize(::AbstractITensorNetwork, ...)` block from `src/abstractitensornetwork.jl`. - Adds `ITensorVisualizationBase` to `[weakdeps]` / `[extensions]` / `[compat]`. - Bumps `[compat]` floors: `NamedGraphs = "0.11.1"`, `DataGraphs = "0.4.1"`. - Bumps package version `0.21.1` → `0.21.2`. ## Release-branch workflow This is the first PR against the new `release-0.21` branch, modeled on Julia's `release-X.Y` convention (simplified — no `backports-release-X.Y` staging tier, since we expect only 1–2 backports before v0.22 ships). After merge, registration needs to be triggered manually via a `/register <merge-sha>` commit comment on the merge commit (the `Registrator.yml` workflow's `push` trigger only fires on `main`/`master` by default; the `issue_comment` path uses `force=true` and works regardless of branch). ## Status CI will be red until NamedGraphs v0.11.1 and DataGraphs v0.4.1 actually land in the registry. Opening the PR now mostly for tracking. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
DataGraphsITensorVisualizationBaseExt, keyed onITensorVisualizationBase, that overloadsvisualize(::AbstractDataGraph, ...)to delegate tovisualize(underlying_graph(graph), ...). This method previously lived inITensorNetworks.jl/src/visualize.jlas type piracy (DataGraphs owns the type but the method was defined elsewhere); moving it here removes the piracy onAbstractDataGraph.test_itensorvisualizationbase_ext.jlsmoke test that confirms the extension loads and the method is dispatchable.1.10to match the rest of the ITensor ecosystem.0.4.1.Companion to NamedGraphs.jl#166 (same pattern for
AbstractNamedGraph). A follow-up PR will drop the stale methods fromITensorNetworks.jl/src/visualize.jl.