Skip to content

Commit 15b9ad8

Browse files
committed
Move Statistics.jl to weak dependency extension
- Moved Statistics from deps to weakdeps in Project.toml - Created RecursiveArrayToolsStatisticsExt extension module - Moved Statistics-dependent functions to extension - Added Statistics to test dependencies This reduces the base dependency footprint while maintaining full functionality when Statistics is loaded. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent 6d818bb commit 15b9ad8

File tree

4 files changed

+20
-11
lines changed

4 files changed

+20
-11
lines changed

Project.toml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527"
1111
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
1212
RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01"
1313
StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c"
14-
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
1514
SymbolicIndexingInterface = "2efcf032-c050-4f8e-a9bb-153293bab1f5"
1615

1716
[weakdeps]
@@ -22,6 +21,7 @@ Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7"
2221
MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca"
2322
ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267"
2423
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
24+
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
2525
StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a"
2626
Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c"
2727
Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c"
@@ -35,6 +35,7 @@ RecursiveArrayToolsMeasurementsExt = "Measurements"
3535
RecursiveArrayToolsMonteCarloMeasurementsExt = "MonteCarloMeasurements"
3636
RecursiveArrayToolsReverseDiffExt = ["ReverseDiff", "Zygote"]
3737
RecursiveArrayToolsSparseArraysExt = ["SparseArrays"]
38+
RecursiveArrayToolsStatisticsExt = "Statistics"
3839
RecursiveArrayToolsStructArraysExt = "StructArrays"
3940
RecursiveArrayToolsTablesExt = ["Tables"]
4041
RecursiveArrayToolsTrackerExt = "Tracker"
@@ -86,11 +87,12 @@ SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f"
8687
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
8788
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
8889
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
90+
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
8991
StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a"
9092
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
9193
Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c"
9294
Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
9395
Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f"
9496

9597
[targets]
96-
test = ["Aqua", "FastBroadcast", "ForwardDiff", "KernelAbstractions", "Measurements", "NLsolve", "Pkg", "Random", "SafeTestsets", "SciMLBase", "SparseArrays", "StaticArrays", "StructArrays", "Tables", "Test", "Unitful", "Zygote"]
98+
test = ["Aqua", "FastBroadcast", "ForwardDiff", "KernelAbstractions", "Measurements", "NLsolve", "Pkg", "Random", "SafeTestsets", "SciMLBase", "SparseArrays", "StaticArrays", "Statistics", "StructArrays", "Tables", "Test", "Unitful", "Zygote"]
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
module RecursiveArrayToolsStatisticsExt
2+
3+
using RecursiveArrayTools
4+
using Statistics
5+
6+
@inline Statistics.mean(VA::AbstractVectorOfArray; kwargs...) = mean(Array(VA); kwargs...)
7+
@inline function Statistics.median(VA::AbstractVectorOfArray; kwargs...)
8+
median(Array(VA); kwargs...)
9+
end
10+
@inline Statistics.std(VA::AbstractVectorOfArray; kwargs...) = std(Array(VA); kwargs...)
11+
@inline Statistics.var(VA::AbstractVectorOfArray; kwargs...) = var(Array(VA); kwargs...)
12+
@inline Statistics.cov(VA::AbstractVectorOfArray; kwargs...) = cov(Array(VA); kwargs...)
13+
@inline Statistics.cor(VA::AbstractVectorOfArray; kwargs...) = cor(Array(VA); kwargs...)
14+
15+
end

src/RecursiveArrayTools.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ $(DocStringExtensions.README)
55
module RecursiveArrayTools
66

77
using DocStringExtensions
8-
using RecipesBase, StaticArraysCore, Statistics,
8+
using RecipesBase, StaticArraysCore,
99
ArrayInterface, LinearAlgebra
1010
using SymbolicIndexingInterface
1111

src/vector_of_array.jl

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -861,14 +861,6 @@ end
861861
mapreduce(f, Base.mul_prod, VA; kwargs...)
862862
end
863863

864-
@inline Statistics.mean(VA::AbstractVectorOfArray; kwargs...) = mean(Array(VA); kwargs...)
865-
@inline function Statistics.median(VA::AbstractVectorOfArray; kwargs...)
866-
median(Array(VA); kwargs...)
867-
end
868-
@inline Statistics.std(VA::AbstractVectorOfArray; kwargs...) = std(Array(VA); kwargs...)
869-
@inline Statistics.var(VA::AbstractVectorOfArray; kwargs...) = var(Array(VA); kwargs...)
870-
@inline Statistics.cov(VA::AbstractVectorOfArray; kwargs...) = cov(Array(VA); kwargs...)
871-
@inline Statistics.cor(VA::AbstractVectorOfArray; kwargs...) = cor(Array(VA); kwargs...)
872864
@inline Base.adjoint(VA::AbstractVectorOfArray) = Adjoint(VA)
873865

874866
# linear algebra

0 commit comments

Comments
 (0)