Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Zarr depth limit rejects NWB chunk paths

Aperta
#1,919 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
64/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python
Ambito
cli

Direzione di ricerca

Inizia eseguendo la riproduzione numerica con dandi validate deep.zarr e traccia il punto di ingresso della validazione che segnala dandi_zarr.tree_depth_exceeded. Determina come vengono contate le directory delle coordinate dei chunk riconosciute da Zarr v3, quindi aggiungi la copertura per il percorso dell'array a cinque componenti; il lavoro è completo quando i percorsi dei chunk legittimi non attivano più l'errore di profondità, mentre la salvaguardia prevista dell'albero delle directory rimane in vigore.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

I converted an IBL session while testing hdmf-zarr's v3 migration and tried uploading it to sandbox dandiset 218696. DANDI 0.78.0 stopped at validation:

[dandi_zarr.tree_depth_exceeded] Zarr directory tree more than 7 directories deep

The processed file has 34 files over the limit, including:

processing/pose_estimation/RightCamera/PoseEstimationSeriesTubeTop/data/c/1/0

The NWB array path has five components. Zarr v3 adds c/1/0 for the chunk coordinates. With the usual v2 encoding this would end in data/1.0 and fit under the limit.

This numeric-only example reproduces it:

import numpy as np
import zarr

group = zarr.open_group("deep.zarr", mode="w", zarr_format=3)
array = group.create_array("a/b/c/d/series/data", shape=(2, 2), chunks=(1, 1), dtype="float64")
array[:] = np.arange(4).reshape(2, 2)

Run dandi validate deep.zarr (outside a dandiset it also reports DANDI.NO_DANDISET_FOUND). The IBL upload also hit the string validation error reported in #1918. This example uses only numeric data to isolate the depth error.

I found the same problem in #983 from 2022. Satra pointed out that the nested NGFF chunk paths were legitimate. John asked whether to increase or remove the limit. Satra suggested seven to cover the use cases at the time, and Yarik agreed:

https://github.com/dandi/dandi-cli/issues/983#issuecomment-1108693135

The original proposal was concerned about accidentally uploading large directory trees as thousands of assets:

https://github.com/dandi/dandi-cli/issues/852#issuecomment-995976767

Do we still need this restriction inside a recognized Zarr asset? Could we remove it or exclude chunk coordinates from the count?

Lingua principale
Python
Stelle
29
Fork
37
Merge medio
1g 10h
PR unite (30g)
17

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di dandi/dandi-cli

Tutte le issue di dandi/dandi-cli

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.