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

DatasetInfo.read_from_directory reads the deprecated FieldDescriptor.label eagerly, warning on every open

Aperta Adatta ai principianti
#11,245 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@jabrailkhalil ci sta già lavorando.

Dal 12/10/2026.

  • #11246 di @jabrailkhalil — aperta

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
82/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
python, tensorflow
Ambito
backend, data

Direzione di ricerca

Leggi tensorflow_datasets/core/dataset_info.py intorno alle righe 788–792 e verifica come read_from_directory ripristina ogni campo. Riproduci il problema con il comando python -W error::DeprecationWarning dell’issue su un dataset preparato. L’issue è risolta quando, durante il ripristino dei campi, label non viene più letto se is_repeated è disponibile e il comando termina senza l’avviso.

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

Descrizione

DatasetInfo.read_from_directory evaluates the deprecated protobuf label fallback eagerly on every field it restores, so every open of a prepared dataset emits a protobuf DeprecationWarning (and fails under -W error), even on protobuf versions that provide is_repeated.

tensorflow_datasets/core/dataset_info.py (master, and 4.9.10, lines ~788-792):

is_repeated = getattr(
    field,
    "is_repeated",
    getattr(field, "label", None) == getattr(field, "LABEL_REPEATED", 3),
)

The third argument to getattr is evaluated before getattr runs, so field.label is read even when field.is_repeated exists. With protobuf releases that deprecate FieldDescriptor.label, this warns once per restored field:

DeprecationWarning: label() is deprecated. Use is_required() or is_repeated() instead.

Suggested fix: evaluate the fallback only when is_repeated is missing, e.g.

if hasattr(field, "is_repeated"):
  is_repeated = field.is_repeated
else:
  is_repeated = field.label == field.LABEL_REPEATED

Reproduction: with tensorflow-datasets 4.9.10 and a current protobuf, python -W error::DeprecationWarning -c "import tensorflow_datasets as tfds; tfds.builder('mnist', data_dir=<a prepared dir>).info" raises from dataset_info.py:791.

Lingua principale
Python
Stelle
4.6k
Fork
1.6k
Merge medio
9h
PR unite (30g)
8

Preparare l'ambiente

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 tensorflow/datasets

Tutte le issue di tensorflow/datasets

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.