From 43d4fbe46de00272769903a87dc3f15c2f9c5bf1 Mon Sep 17 00:00:00 2001 From: Alexander Barth Date: Tue, 5 Mar 2024 22:22:17 +0100 Subject: [PATCH] reduce ambiguities --- src/groupby.jl | 12 +++++++----- src/multifile.jl | 4 ++-- src/types.jl | 2 +- test/test_aqua.jl | 4 ++++ test/test_multifile.jl | 1 + 5 files changed, 15 insertions(+), 8 deletions(-) create mode 100644 test/test_aqua.jl diff --git a/src/groupby.jl b/src/groupby.jl index 570f606..96e0750 100644 --- a/src/groupby.jl +++ b/src/groupby.jl @@ -264,7 +264,7 @@ function Base.similar(bc::Broadcasted{GroupedVariableStyle}, ::Type{ElType}) wh return A end -function Base.broadcasted(f,A::GroupedVariable{TV,TF,TGM,TM,TG}) where {TV,TF,TGM,TM,TG} +function Base.broadcasted(f::Function,A::GroupedVariable{TV,TF,TGM,TM,TG}) where {TV,TF,TGM,TM,TG} # TODO change output TG map_fun = ∘(f,A.map_fun) @@ -425,8 +425,8 @@ The function `f` will be called as `f(x,dims=d)` where `x` array (an element of `gv`) and `d` is an integer of the dimension overwhich one need to reduce `x`. """ -Base.reduce(f,gv::GroupedVariable) = ReducedGroupedVariable(gv,f) -Base.reduce(f,gds::GroupedDataset) = ReducedGroupedDataset(gds,f) +Base.reduce(f::Function,gv::GroupedVariable) = ReducedGroupedVariable(gv,f) +Base.reduce(f::Function,gds::GroupedDataset) = ReducedGroupedDataset(gds,f) for fun in (:maximum, :mean, :median, :minimum, :std, :sum, :var) @eval $fun(gv::GroupedVariable) = reduce($fun,gv) @@ -500,8 +500,10 @@ function broadcasted_gvr!(C,f,A,B) end -Base.broadcasted(f,A,B::ReducedGroupedVariable) = broadcasted_gvr!(similar(A),f,A,B) -Base.broadcasted(f,A::ReducedGroupedVariable,B) = broadcasted_gvr!(similar(B),f,A,B) +Base.broadcasted(f::Function,A,B::ReducedGroupedVariable) = + broadcasted_gvr!(similar(A),f,A,B) +Base.broadcasted(f::Function,A::ReducedGroupedVariable,B) = + broadcasted_gvr!(similar(B),f,A,B) function Base.Array(gr::ReducedGroupedVariable) diff --git a/src/multifile.jl b/src/multifile.jl index f971ba5..393b8b1 100644 --- a/src/multifile.jl +++ b/src/multifile.jl @@ -157,8 +157,8 @@ function Base.keys(mfds::MFDataset) end end -Base.getindex(v::MFVariable,indexes::Union{Int,Colon,AbstractRange{<:Integer}}...) = getindex(v.var,indexes...) -Base.setindex!(v::MFVariable,data,indexes::Union{Int,Colon,AbstractRange{<:Integer}}...) = setindex!(v.var,data,indexes...) +Base.getindex(v::MFVariable,indexes::Union{Integer,Colon,AbstractRange{<:Integer}}...) = getindex(v.var,indexes...) +Base.setindex!(v::MFVariable,data,indexes::Union{Integer,Colon,AbstractRange{<:Integer}}...) = setindex!(v.var,data,indexes...) load!(v::MFVariable,buffer,indexes...) = CatArrays.load!(v.var,buffer,indexes...) diff --git a/src/types.jl b/src/types.jl index fe67f5b..f0be66f 100644 --- a/src/types.jl +++ b/src/types.jl @@ -188,7 +188,7 @@ struct MemoryVariable{T,N,TP,TA <: AbstractArray{T,N}} <: AbstractVariable{T,N} _attrib::OrderedDict{String,Any} end -struct MemoryDataset{TP,Tmasingvalue} <: AbstractDataset +struct MemoryDataset{TP <: Union{Nothing,AbstractDataset},Tmasingvalue} <: AbstractDataset parent_dataset::TP name::String # "/" for root group dimensions::OrderedDict{String,Int} diff --git a/test/test_aqua.jl b/test/test_aqua.jl new file mode 100644 index 0000000..e27cb56 --- /dev/null +++ b/test/test_aqua.jl @@ -0,0 +1,4 @@ +using Aqua +using CommonDataModel + +Aqua.test_ambiguities(CommonDataModel) diff --git a/test/test_multifile.jl b/test/test_multifile.jl index 5398a1b..86e7418 100644 --- a/test/test_multifile.jl +++ b/test/test_multifile.jl @@ -14,6 +14,7 @@ import CommonDataModel: checksum, chunking, dataset, + defVar, defGroup, deflate, dimnames,