Refactor file format backend openers

Aperta
#376 1 commento 4 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Refactoring
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
python

Direzione di ricerca

Inizia con l’API del backend per i formati di file nella documentazione di riferimento collegata, quindi leggi #375 e kerchunk/grib2.py per confrontare la forma di restituzione proposta di VirtualZarrStore e la gestione di GRIB. Il lavoro è completato quando l’interfaccia dell’opener e le regole per gli argomenti con nome sono state decise e vengono applicate in modo coerente, incluso un approccio concordato per i file GRIB.

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

Descrizione

Problem

The API for Kerchunk's file format backend openers doesn't follow a consistent pattern.

Suggestion

Change the openers to each be a function returning a VirtualZarrStore (see #375), with standardized keyword arguments.

Advantages
  • Neater
  • Can any common standardize keyword arguments
  • Can do validation within file opening or immediately afterwards
  • Would make it more obvious how to add a new opener for a new file type
  • Could also allowing implementing a general file opener (like is done in pangeo-forge)
Implementation ideas
  • Perhaps each opener should inherit from a single abstract method?
  • Should there be some arguments that are valid for every backend (e.g. inline_threshold), and others that are specific to particular backends?
Questions

How to handle GRIB files? Combine before returning? Return as a hierarchy of multiple groups within a single store (like when opening with datatree)? Or return as list of VirtualZarrStores?

Lingua principale
Python
Stelle
367
Fork
97
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

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 fsspec/kerchunk

Tutte le issue di fsspec/kerchunk

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.