Skip to content

Commit 4bc4cb8

Browse files
authored
add deser for date and time (#5822)
1 parent 80b6e71 commit 4bc4cb8

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

reflex/state.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import contextlib
88
import copy
99
import dataclasses
10+
import datetime
1011
import functools
1112
import inspect
1213
import pickle
@@ -306,6 +307,14 @@ async def _resolve_delta(delta: Delta) -> Delta:
306307
return delta
307308

308309

310+
_deserializers = {
311+
int: int,
312+
float: float,
313+
datetime.datetime: datetime.datetime.fromisoformat,
314+
datetime.date: datetime.date.fromisoformat,
315+
datetime.time: datetime.time.fromisoformat,
316+
}
317+
309318
all_base_state_classes: dict[str, None] = {}
310319

311320

@@ -1872,11 +1881,12 @@ async def _process_event(
18721881
hinted_args is tuple or hinted_args is tuple
18731882
):
18741883
payload[arg] = tuple(value)
1875-
elif isinstance(value, str) and (
1876-
hinted_args is int or hinted_args is float
1884+
elif (
1885+
isinstance(value, str)
1886+
and (deserializer := _deserializers.get(hinted_args)) is not None
18771887
):
18781888
try:
1879-
payload[arg] = hinted_args(value)
1889+
payload[arg] = deserializer(value)
18801890
except ValueError:
18811891
msg = f"Received a string value ({value}) for {arg} but expected a {hinted_args}"
18821892
raise ValueError(msg) from None

0 commit comments

Comments
 (0)