Skip to content

Commit

Permalink
generic implementation for haskeys
Browse files Browse the repository at this point in the history
  • Loading branch information
Alexander-Barth committed Feb 15, 2024
1 parent 493df94 commit 85a3747
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 2 deletions.
4 changes: 4 additions & 0 deletions src/dataset.jl
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
1 change: 0 additions & 1 deletion test/memory_dataset.jl
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
16 changes: 15 additions & 1 deletion test/test_multifile.jl
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down Expand Up @@ -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[:,:,:]
Expand Down

0 comments on commit 85a3747

Please sign in to comment.