diff --git a/Project.toml b/Project.toml index b86aa38..5e4ee29 100644 --- a/Project.toml +++ b/Project.toml @@ -16,7 +16,7 @@ AxisArrays = "0.4" AxisKeys = "0.2" DimensionalData = "0.27, 0.28, 0.29, 0.30" NetCDF = "0.11, 0.12" -Zarr = "0.8, 0.9" +Zarr = "0.10" [extensions] diff --git a/ext/ZarrExt.jl b/ext/ZarrExt.jl index c8a4438..b599233 100644 --- a/ext/ZarrExt.jl +++ b/ext/ZarrExt.jl @@ -1,6 +1,6 @@ module ZarrExt using YAXArrayBase -using Zarr: ZArray, ZGroup, zgroup, zcreate, to_zarrtype, zopen, Compressor, ZipStore +using Zarr: ZArray, ZGroup, zgroup, zcreate, to_zarrtype, zopen, Compressor, ZipStore, NoCompressor, MetadataV2, MetadataV3 import DiskArrays: AbstractDiskArray, DiskArrays, Unchunked, Chunked, GridChunks using ZipArchives: ZipReader import YAXArrayBase: YAXArrayBase as YAB @@ -74,7 +74,9 @@ YAB.create_empty(::Type{ZarrDataset}, path, gatts=Dict()) = ZarrDataset(zgroup(p YAB.allow_parallel_write(::ZarrDataset) = true YAB.allow_missings(::ZarrDataset) = false YAB.to_dataset(g::ZGroup; kwargs...) = ZarrDataset(g; kwargs...) -YAB.iscompressed(a::ZArray{<:Any,<:Any,<:Compressor}) = true +YAB.iscompressed(a::ZArray) = _iscompressed(a.metadata) +_iscompressed(m::MetadataV3) = !isempty(m.codec.byte_to_byte) +_iscompressed(m::MetadataV2) = !isa(m.compressor, NoCompressor) #Add ability to read zipped zarrs