diff --git a/src/dataset.jl b/src/dataset.jl index a68da81..207e3a4 100644 --- a/src/dataset.jl +++ b/src/dataset.jl @@ -169,6 +169,10 @@ function Base.setindex!(ds::AbstractDataset,data::AbstractVariable,varname::Symb end +function Base.haskey(ds::AbstractDataset,varname::SymbolOrString) + return Symbol(varname) in Symbol.(keys(ds)) +end + """ varbyattrib(ds, attname = attval) diff --git a/test/memory_dataset.jl b/test/memory_dataset.jl index 0dec0ba..3becb7f 100644 --- a/test/memory_dataset.jl +++ b/test/memory_dataset.jl @@ -101,7 +101,6 @@ CDM.dimnames(v::MemoryVariable) = v.dimnames CDM.dataset(v::MemoryVariable) = v.parent_dataset Base.keys(md::MemoryDataset) = keys(md.variables) -Base.haskey(md::MemoryDataset,varname::SymbolOrString) = haskey(md.variables,String(varname)) CDM.variable(md::MemoryDataset,varname::SymbolOrString) = md.variables[String(varname)] CDM.dimnames(md::MemoryDataset) = keys(md.dimensions) CDM.maskingvalue(md::MemoryDataset) = md.maskingvalue diff --git a/test/test_multifile.jl b/test/test_multifile.jl index 0178c72..b4575dc 100644 --- a/test/test_multifile.jl +++ b/test/test_multifile.jl @@ -3,7 +3,19 @@ using Test import CommonDataModel as CDM using DataStructures using Dates -import CommonDataModel: AbstractDataset, AbstractVariable, Attributes, Dimensions, CatArrays, defGroup, sync, chunking, deflate, checksum +import CommonDataModel: + @CF_str, + AbstractDataset, + AbstractVariable, + Attributes, + CatArrays, + Dimensions, + checksum, + chunking, + defGroup, + deflate, + fillvalue, + sync function example_file(TDS,i,array, fname = tempname(); varname = "var") @@ -126,6 +138,8 @@ for deferopen in (false,true) local buf, ds_merged, fname_merged, var mfds = TDS(fnames, deferopen = deferopen); + + @test haskey(mfds,varname) var = variable(mfds,varname); data = var[:,:,:] @test C == var[:,:,:]