`rx.Model` event arguments emit `PydanticDeprecatedSince20` once per payload key
Maintainer thường phản hồi trong vòng 2 ngày
Đánh giá
- Độ khó
- 1/5
- Thời gian dự kiến
- Dưới một giờ
- Mức phù hợp với người mới
- 88/100
Hướng nghiên cứu
Bắt đầu tại packages/reflex-base/src/reflex_base/event/processor/base_state_processor.py:141 và đọc _transform_event_arg, sau đó chạy trường hợp tái hiện trong issue để xác nhận các cảnh báo. Dùng các khóa trường của model một lần khi lọc payload. Hoàn tất khi cùng phép biến đổi đó không phát ra cảnh báo PydanticDeprecatedSince20.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Describe the bug
An event handler argument can have an rx.Model type hint. When the payload is a dict, _transform_event_arg removes the keys that are not model fields. It checks each key with hinted_args.__fields__. Pydantic v2 deprecates __fields__, so each key emits one PydanticDeprecatedSince20 warning, on every event.
Code: packages/reflex-base/src/reflex_base/event/processor/base_state_processor.py:141
if key in hinted_args.__fields__
To Reproduce
import warnings
import reflex as rx
from reflex_base.event.processor.base_state_processor import _transform_event_arg
class Tbl(rx.Model, table=True):
name: str
with warnings.catch_warnings(record=True) as caught:
warnings.simplefilter("always")
_transform_event_arg({"name": "a", "extra": 1, "other": 2}, Tbl)
for w in caught:
print(w.category.__name__, w.filename.split("src/")[-1], w.lineno)
Output on main (7f89e48c3):
PydanticDeprecatedSince20 reflex_base/event/processor/base_state_processor.py 141
PydanticDeprecatedSince20 reflex_base/event/processor/base_state_processor.py 141
PydanticDeprecatedSince20 reflex_base/event/processor/base_state_processor.py 141
Expected behavior
No deprecation warning. rx.Model is a SQLModel, which is Pydantic v2, so hinted_args.model_fields gives the same keys. Read it once, not once per key.
rx.Model is deprecated, so this only matters until it is removed. The fix is one line.
Specifics
- Python 3.14.6, pydantic 2.13.5, reflex
main(7f89e48c3) - Related: #7561 and #7592 fix the same warning in
reflex_base/utils/types.py.
- Ngôn ngữ chính
- Python
- Star
- 29k
- Fork
- 1.8k
- Merge trung bình
- 3 ngày 7 giờ
- Pull request đã merge (30 ngày)
- 181
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- 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 reflex-dev/reflex
-
Add a `SetVar` backed by the JS `Set` objectCó thể đã có người làm @Huzi-06 đã nhận 1 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
reflex-dev/reflex#7623 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
`get_field_type` and `get_attribute_access_type` read `__fields__` and emit `PydanticDeprecatedSince20` on each field accessCó thể đã có người làm @LaoChouPro đã nhận 4 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
reflex-dev/reflex#7561 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
`reflex run --json` ignores SIGINT sent to its pid; under supervisord stopsignal=INT the app is orphaned and blocks the restartCó thể đã có người làm @harsh21234i đã nhận 8 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
reflex-dev/reflex#7509 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
reflex-dev/reflex#7260 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
reflex-dev/reflex#7148 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
Tất cả issue của reflex-dev/reflex
Issue tương tự
-
Validate non-divisible effective batch sizes in the Unsloth LoRA backendCó thể đã có người làm @debesh-biswas đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
-
documentation
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 82/100
topoteretes/cognee#6239 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
ranaroussi/yfinance#3009 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Test discovery aborts on GPU builds without cuStateVec: check_cuStateVec expects a failed result but set_config() now raises RuntimeErrorCó thể đã có người làm @dmeliksetian đã nhận hôm nay. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Qiskit/qiskit-aer#2495 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100