Skip to content

Commit e11e6a6

Browse files
Split IteratorInterfaceExtensions into separate extension
This change creates a separate extension for IteratorInterfaceExtensions.jl functionality, providing more granular control over dependency loading. Changes: - Create RecursiveArrayToolsIteratorInterfaceExtensionsExt for isiterable() - Keep getiterator() in TablesExt since it requires Tables.jl functionality - Update Project.toml to include the new extension - Avoid method conflicts by having isiterable only in the IIE extension This allows users who only need the basic iterator interface to load just IteratorInterfaceExtensions without pulling in the full Tables.jl dependency chain. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent 757108b commit e11e6a6

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

Project.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ RecursiveArrayToolsMonteCarloMeasurementsExt = "MonteCarloMeasurements"
3737
RecursiveArrayToolsReverseDiffExt = ["ReverseDiff", "Zygote"]
3838
RecursiveArrayToolsSparseArraysExt = ["SparseArrays"]
3939
RecursiveArrayToolsStructArraysExt = "StructArrays"
40+
RecursiveArrayToolsIteratorInterfaceExtensionsExt = "IteratorInterfaceExtensions"
4041
RecursiveArrayToolsTablesExt = ["Tables", "IteratorInterfaceExtensions"]
4142
RecursiveArrayToolsTrackerExt = "Tracker"
4243
RecursiveArrayToolsZygoteExt = "Zygote"
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
module RecursiveArrayToolsIteratorInterfaceExtensionsExt
2+
3+
import RecursiveArrayTools: AbstractDiffEqArray
4+
import IteratorInterfaceExtensions
5+
6+
# Iterator interface for QueryVerse
7+
# (see also https://tables.juliadata.org/stable/#Tables.datavaluerows)
8+
IteratorInterfaceExtensions.isiterable(::AbstractDiffEqArray) = true
9+
10+
# Note: getiterator functionality requires Tables.jl and will be available
11+
# when both Tables.jl and IteratorInterfaceExtensions.jl are loaded
12+
# via the TablesExt extension.
13+
14+
end

ext/RecursiveArrayToolsTablesExt.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ end
8282

8383
# Iterator interface for QueryVerse
8484
# (see also https://tables.juliadata.org/stable/#Tables.datavaluerows)
85-
IteratorInterfaceExtensions.isiterable(::AbstractDiffEqArray) = true
85+
# Note: isiterable is defined in IteratorInterfaceExtensionsExt
8686
function IteratorInterfaceExtensions.getiterator(A::AbstractDiffEqArray)
8787
Tables.datavaluerows(Tables.rows(A))
8888
end

0 commit comments

Comments
 (0)