`rx.Model` event arguments emit `PydanticDeprecatedSince20` once per payload key
I maintainer di solito rispondono entro 2 giorni
Valutazione
- Difficoltà
- 1/5
- Tempo stimato
- Meno di un'ora
- Idoneità per principianti
- 88/100
Direzione di ricerca
Inizia da packages/reflex-base/src/reflex_base/event/processor/base_state_processor.py:141 e leggi _transform_event_arg, poi esegui la riproduzione nell’issue per confermare gli avvisi. Usa una sola volta le chiavi dei campi del modello quando filtri il payload. Il lavoro è terminato quando la stessa trasformazione non emette avvisi PydanticDeprecatedSince20.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Python
- Stelle
- 29k
- Fork
- 1.8k
- Merge medio
- 3g 7h
- PR unite (30g)
- 181
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- 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 reflex-dev/reflex
-
Add a `SetVar` backed by the JS `Set` objectForse già presa @Huzi-06 l’ha presa 1 giorno fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
reflex-dev/reflex#7623 · 2 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
`get_field_type` and `get_attribute_access_type` read `__fields__` and emit `PydanticDeprecatedSince20` on each field accessForse già presa @LaoChouPro l’ha presa 4 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
reflex-dev/reflex#7561 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
`reflex run --json` ignores SIGINT sent to its pid; under supervisord stopsignal=INT the app is orphaned and blocks the restartForse già presa @harsh21234i l’ha presa 8 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
reflex-dev/reflex#7509 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
reflex-dev/reflex#7260 · 2 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
reflex-dev/reflex#7148 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di reflex-dev/reflex
Issue simili
-
resource-submission validation-passed
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
hesreallyhim/awesome-claude-code#3214 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
room-commons replace accepts an empty old string and silently prepends the new text to the pageAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
doobidoo/mcp-memory-service#1650 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 82/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
ml-explore/mlx-lm#2002 ·
I maintainer di solito rispondono entro 2 giorni