Skip to content

Conversation

@danlooo
Copy link
Member

@danlooo danlooo commented May 21, 2025

This PR aims to Fix opening a Dataset with an YAXArray having a integer dimension of length 1. Thanks, @meggart, for the hint!

using YAXArrays
using Zarr
a = YAXArray(ones(5, 1))
ds = Dataset(layer=a)
path = tempname() * ".zarr"
savedataset(ds; path=path)
ds2 = open_dataset(path)

results in error:

ERROR: BoundsError: attempt to access 0-element Vector{Int64} at index [1]
Stacktrace:
  [1] throw_boundserror(A::Vector{Int64}, I::Tuple{Int64})
    @ Base ./essentials.jl:14
  [2] getindex
    @ ./essentials.jl:916 [inlined]
  [3] testrange(x::Vector{Int64})
    @ YAXArrays.Datasets ~/.julia/packages/YAXArrays/x5iTf/src/DatasetAPI/Datasets.jl:321
  [4] toaxis(dimname::String, g::ZarrExt.ZarrDataset, offs::Int64, len::Int64)
    @ YAXArrays.Datasets ~/.julia/packages/YAXArrays/x5iTf/src/DatasetAPI/Datasets.jl:294
  [5] (::YAXArrays.Datasets.var"#44#46"{ZarrExt.ZarrDataset})(d::Tuple{String, Int64, Int64})
    @ YAXArrays.Datasets ./none:0
  [6] iterate
    @ ./generator.jl:48 [inlined]
  [7] grow_to!(dest::Dict{String, @NamedTuple{…}}, itr::Base.Generator{Set{…}, YAXArrays.Datasets.var"#44#46"{…}}, st::Int64)
    @ Base ./abstractdict.jl:606
  [8] grow_to!(dest::Dict{Any, Any}, itr::Base.Generator{Set{Tuple{…}}, YAXArrays.Datasets.var"#44#46"{ZarrExt.ZarrDataset}})
    @ Base ./abstractdict.jl:602
  [9] dict_with_eltype
    @ ./abstractdict.jl:641 [inlined]
 [10] Dict
    @ ./dict.jl:117 [inlined]
 [11] collectdims(g::ZarrExt.ZarrDataset)
    @ YAXArrays.Datasets ~/.julia/packages/YAXArrays/x5iTf/src/DatasetAPI/Datasets.jl:269
 [12] (::YAXArrays.Datasets.var"#67#75"{Tuple{}})(g::ZarrExt.ZarrDataset)
    @ YAXArrays.Datasets ~/.julia/packages/YAXArrays/x5iTf/src/DatasetAPI/Datasets.jl:435
 [13] open_dataset_handle(f::YAXArrays.Datasets.var"#67#75"{Tuple{}}, ds::ZarrExt.ZarrDataset)
    @ YAXArrayBase ~/.julia/packages/YAXArrayBase/M48vP/src/datasets/datasetinterface.jl:23
 [14] open_dataset(g::String; skip_keys::Tuple{}, driver::Symbol)
    @ YAXArrays.Datasets ~/.julia/packages/YAXArrays/x5iTf/src/DatasetAPI/Datasets.jl:433
 [15] open_dataset(g::String)
    @ YAXArrays.Datasets ~/.julia/packages/YAXArrays/x5iTf/src/DatasetAPI/Datasets.jl:430
 [16] top-level scope
    @ REPL[7]:1
Some type information was truncated. Use `show(err)` to see complete types.

@codecov
Copy link

codecov bot commented May 21, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 68.81%. Comparing base (cc966fd) to head (87d18cb).
Report is 2 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #504      +/-   ##
==========================================
+ Coverage   68.79%   68.81%   +0.01%     
==========================================
  Files          14       14              
  Lines        2096     2097       +1     
==========================================
+ Hits         1442     1443       +1     
  Misses        654      654              
Files with missing lines Coverage Δ
src/DatasetAPI/Datasets.jl 85.76% <100.00%> (+0.02%) ⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@lazarusA lazarusA merged commit 54671c9 into JuliaDataCubes:master May 21, 2025
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants