DatasetInfo.read_from_directory reads the deprecated FieldDescriptor.label eagerly, warning on every open
I maintainer di solito rispondono entro 1 giorno
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
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
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di tensorflow/datasets
-
required dependency on importlib_resources missingForse già presa @ArS377 l’ha presa 80 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
tensorflow/datasets#11212 · 2 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
tfds.features.Audio eagerly imports TensorFlow in _AudioDecoder.__init__, breaking TensorFlow-less usageForse già presa @raashish1601 l’ha presa 6 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 76/100
tensorflow/datasets#11233 ·
I maintainer di solito rispondono entro 1 giorno
-
dataset request
Difficoltà 4/5 3-5 giorni Idoneità per principianti 20/100
tensorflow/datasets#11228 ·
I maintainer di solito rispondono entro 1 giorno
-
QM9 download links are brokenForse già presa @mylonasc l’ha presa 119 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 55/100
tensorflow/datasets#11210 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 1/100
tensorflow/datasets#11196 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di tensorflow/datasets
Issue simili
-
bug difficulty:2 good first issue help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
MakazhanAlpamys/Soup#1865 ·
I maintainer di solito rispondono entro 1 giorno
-
area: agents area: docs good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
openapi/gknowledge#23 ·
-
useless-suppression reported for deprecated-* messages that should be exemptForse già presa @adityasinha-ghub l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
pylint-dev/pylint#11656 ·
I maintainer di solito rispondono entro 1 giorno
-
area:provisioning effort:S priority:P2 provider:local-libvirt risk:daytime-only status:in-progress type:bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
randomparity/kdive#3203 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
get() for StrEnumForse già presa @FeJo5952 l’ha presa oggi. Apertagood first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
collective/icalendar#1921 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno