From defbbab5f8dd69bafd41b075a0e5955b91124e6e Mon Sep 17 00:00:00 2001 From: Matthew Fishman Date: Tue, 12 May 2026 16:43:43 -0400 Subject: [PATCH 1/4] Add DataGraphsITensorVisualizationBaseExt 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) --- Project.toml | 5 ++++- .../DataGraphsITensorVisualizationBaseExt.jl | 12 ++++++++++++ test/Project.toml | 1 + test/test_itensorvisualizationbase_ext.jl | 12 ++++++++++++ 4 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 ext/DataGraphsITensorVisualizationBaseExt/DataGraphsITensorVisualizationBaseExt.jl create mode 100644 test/test_itensorvisualizationbase_ext.jl diff --git a/Project.toml b/Project.toml index 4f4bc03..14f4964 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "DataGraphs" uuid = "b5a273c3-7e6c-41f6-98bd-8d7f1525a36a" -version = "0.4.0" +version = "0.4.1" authors = ["Matthew Fishman and contributors"] [workspace] @@ -14,14 +14,17 @@ SimpleTraits = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" [weakdeps] GraphsFlows = "06909019-6f44-4949-96fc-b9d9aaa02889" +ITensorVisualizationBase = "cd2553d2-8bef-4d93-8a38-c62f17d5ad23" [extensions] DataGraphsGraphsFlowsExt = "GraphsFlows" +DataGraphsITensorVisualizationBaseExt = "ITensorVisualizationBase" [compat] Dictionaries = "0.4" Graphs = "1" GraphsFlows = "0.1.1" +ITensorVisualizationBase = "0.1" NamedGraphs = "0.11" SimpleTraits = "0.9" julia = "1.7" diff --git a/ext/DataGraphsITensorVisualizationBaseExt/DataGraphsITensorVisualizationBaseExt.jl b/ext/DataGraphsITensorVisualizationBaseExt/DataGraphsITensorVisualizationBaseExt.jl new file mode 100644 index 0000000..c2f9cbe --- /dev/null +++ b/ext/DataGraphsITensorVisualizationBaseExt/DataGraphsITensorVisualizationBaseExt.jl @@ -0,0 +1,12 @@ +module DataGraphsITensorVisualizationBaseExt + +using DataGraphs: AbstractDataGraph, underlying_graph +using ITensorVisualizationBase: ITensorVisualizationBase + +function ITensorVisualizationBase.visualize(graph::AbstractDataGraph, args...; kwargs...) + return ITensorVisualizationBase.visualize( + underlying_graph(graph), args...; kwargs... + ) +end + +end diff --git a/test/Project.toml b/test/Project.toml index 5ebc3e8..e72cd03 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -5,6 +5,7 @@ Dictionaries = "85a47980-9c8c-11e8-2b9f-f7ca1fa99fb4" Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6" GraphsFlows = "06909019-6f44-4949-96fc-b9d9aaa02889" ITensorPkgSkeleton = "3d388ab1-018a-49f4-ae50-18094d5f71ea" +ITensorVisualizationBase = "cd2553d2-8bef-4d93-8a38-c62f17d5ad23" NamedGraphs = "678767b0-92e7-4007-89e4-4527a8725b19" SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" Suppressor = "fd094767-a336-5f1f-9728-57cf17d0bbfb" diff --git a/test/test_itensorvisualizationbase_ext.jl b/test/test_itensorvisualizationbase_ext.jl new file mode 100644 index 0000000..1741d42 --- /dev/null +++ b/test/test_itensorvisualizationbase_ext.jl @@ -0,0 +1,12 @@ +@eval module $(gensym()) +using DataGraphs: AbstractDataGraph, DataGraph +using ITensorVisualizationBase: ITensorVisualizationBase +using NamedGraphs.NamedGraphGenerators: named_grid +using Test: @test, @testset + +@testset "DataGraphsITensorVisualizationBaseExt" begin + g = DataGraph(named_grid((2, 2))) + @test hasmethod(ITensorVisualizationBase.visualize, Tuple{AbstractDataGraph}) + @test isnothing(ITensorVisualizationBase.visualize(g)) +end +end From a432fb12695052956639ec2ff9937c3f2a98548c Mon Sep 17 00:00:00 2001 From: Matthew Fishman Date: Tue, 12 May 2026 16:51:05 -0400 Subject: [PATCH 2/4] Bump NamedGraphs compat floor to 0.11.1 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) --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 14f4964..b60df24 100644 --- a/Project.toml +++ b/Project.toml @@ -25,6 +25,6 @@ Dictionaries = "0.4" Graphs = "1" GraphsFlows = "0.1.1" ITensorVisualizationBase = "0.1" -NamedGraphs = "0.11" +NamedGraphs = "0.11.1" SimpleTraits = "0.9" julia = "1.7" From 22bb8902a701ce4b6dd1bb2e21ebc5dc67de4f5a Mon Sep 17 00:00:00 2001 From: Matthew Fishman Date: Tue, 12 May 2026 17:35:37 -0400 Subject: [PATCH 3/4] Bump julia compat floor to 1.10 --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index b60df24..bb78962 100644 --- a/Project.toml +++ b/Project.toml @@ -27,4 +27,4 @@ GraphsFlows = "0.1.1" ITensorVisualizationBase = "0.1" NamedGraphs = "0.11.1" SimpleTraits = "0.9" -julia = "1.7" +julia = "1.10" From 1043c5fb057322f2d12b1ea30f5d5610fa20dc93 Mon Sep 17 00:00:00 2001 From: Matthew Fishman Date: Tue, 12 May 2026 18:01:04 -0400 Subject: [PATCH 4/4] Add Tennis.jl as downstream integration test --- .github/workflows/IntegrationTest.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/IntegrationTest.yml b/.github/workflows/IntegrationTest.yml index 54dd4b0..08ceaf4 100644 --- a/.github/workflows/IntegrationTest.yml +++ b/.github/workflows/IntegrationTest.yml @@ -27,5 +27,6 @@ jobs: pkgs: | [ "ITensorNetworks", - "ITensorNetworksNext" + "ITensorNetworksNext", + "https://github.com/ITensor/Tennis.jl" ]