DatasetInfo.read_from_directory reads the deprecated FieldDescriptor.label eagerly, warning on every open
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 82/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- python, tensorflow
Hướng nghiên cứu
Đọc tensorflow_datasets/core/dataset_info.py quanh các dòng 788–792 và kiểm tra cách read_from_directory khôi phục từng trường. Tái hiện lỗi bằng lệnh python -W error::DeprecationWarning trong issue trên một dataset đã chuẩn bị. Issue được giải quyết khi quá trình khôi phục các trường không còn đọc label nếu is_repeated có sẵn và lệnh chạy xong mà không có cảnh báo.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Python
- Star
- 4.6k
- Fork
- 1.6k
- Merge trung bình
- 9 giờ
- Pull request đã merge (30 ngày)
- 8
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của tensorflow/datasets
-
required dependency on importlib_resources missingCó thể đã có người làm @ArS377 đã nhận 81 ngày trước. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
tensorflow/datasets#11212 · 2 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
tfds.features.Audio eagerly imports TensorFlow in _AudioDecoder.__init__, breaking TensorFlow-less usageCó thể đã có người làm @raashish1601 đã nhận 7 ngày trước. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 76/100
tensorflow/datasets#11233 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
dataset request
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 20/100
tensorflow/datasets#11228 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
QM9 download links are brokenCó thể đã có người làm @mylonasc đã nhận 120 ngày trước. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 55/100
tensorflow/datasets#11210 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 1/100
tensorflow/datasets#11196 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của tensorflow/datasets
Issue tương tự
-
vis.image() reports "Unsupported number of image channels: 224" for an HxWxC imageCó thể đã có người làm @piyush182004 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
fossasia/visdom#1997 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 6 ngày
-
Byse new domainĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Gujal00/ResolveURL#1525 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Serialisation fails with pydantic 2.14: wrap serialisers pass SerializationInfo as index_keyCó thể đã có người làm @hugohills-regnosys đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
finos/rune-python-runtime#45 ·
-
[Bug]: LangGraph Store sync put bypasses namespace validationCó thể đã có người làm @ktz03 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
volcengine/OpenViking#6050 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
hummingbot/condor#283 ·
Maintainer thường phản hồi trong vòng 1 ngày