DatasetInfo.read_from_directory reads the deprecated FieldDescriptor.label eagerly, warning on every open
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 82/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- python, tensorflow
Línea de trabajo
Lee tensorflow_datasets/core/dataset_info.py alrededor de las líneas 788–792 y comprueba cómo read_from_directory restaura cada campo. Reproduce el problema con el comando python -W error::DeprecationWarning del issue sobre un dataset preparado. El issue queda resuelto cuando, al restaurar los campos, ya no se lee label si is_repeated está disponible y el comando termina sin la advertencia.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Python
- Estrellas
- 4.6k
- Forks
- 1.6k
- Merge medio
- 9 h
- PR fusionados (30 d)
- 8
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de tensorflow/datasets
-
required dependency on importlib_resources missingPosiblemente ocupada @ArS377 la tomó hace 80 días. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
tensorflow/datasets#11212 · 2 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
tfds.features.Audio eagerly imports TensorFlow in _AudioDecoder.__init__, breaking TensorFlow-less usagePosiblemente ocupada @raashish1601 la tomó hace 6 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 76/100
tensorflow/datasets#11233 ·
Los mantenedores suelen responder en 1 día
-
dataset request
Dificultad 4/5 3-5 días Aptitud para principiantes 20/100
tensorflow/datasets#11228 ·
Los mantenedores suelen responder en 1 día
-
QM9 download links are brokenPosiblemente ocupada @mylonasc la tomó hace 118 días. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 55/100
tensorflow/datasets#11210 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 1/100
tensorflow/datasets#11196 ·
Los mantenedores suelen responder en 1 día
Todos los issues de tensorflow/datasets
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
huggingface/peft#3955 ·
Los mantenedores suelen responder en 1 día
-
author-page correction
Dificultad 2/5 1-3 horas Aptitud para principiantes 60/100
acl-org/acl-anthology#10313 ·
Los mantenedores suelen responder en 1 día
-
anime duplicate exception request-theme
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
LizardByte/ThemerrDB#8926 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
huggingface/transformers#49556 ·
Los mantenedores suelen responder en 1 día
-
area/security bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
mozilla-ai/otari#2245 ·
Los mantenedores suelen responder en 1 día