reflex 0.7.7a1__py3-none-any.whl → 0.7.7.post1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of reflex might be problematic. Click here for more details.
- reflex/components/base/app_wrap.pyi +18 -17
- reflex/components/base/body.pyi +18 -17
- reflex/components/base/document.pyi +82 -81
- reflex/components/base/error_boundary.pyi +19 -18
- reflex/components/base/fragment.pyi +18 -17
- reflex/components/base/head.pyi +34 -33
- reflex/components/base/link.pyi +34 -33
- reflex/components/base/meta.pyi +66 -65
- reflex/components/base/script.pyi +21 -20
- reflex/components/base/strict_mode.pyi +18 -17
- reflex/components/core/auto_scroll.pyi +18 -17
- reflex/components/core/banner.pyi +98 -97
- reflex/components/core/client_side_routing.pyi +34 -33
- reflex/components/core/clipboard.pyi +19 -18
- reflex/components/core/debounce.pyi +20 -19
- reflex/components/core/html.pyi +18 -17
- reflex/components/core/sticky.pyi +66 -65
- reflex/components/core/upload.pyi +86 -85
- reflex/components/datadisplay/code.pyi +34 -33
- reflex/components/datadisplay/dataeditor.pyi +35 -68
- reflex/components/datadisplay/shiki_code_block.pyi +50 -49
- reflex/components/el/element.pyi +18 -17
- reflex/components/el/elements/base.pyi +18 -17
- reflex/components/el/elements/forms.py +8 -7
- reflex/components/el/elements/forms.pyi +290 -332
- reflex/components/el/elements/inline.pyi +450 -449
- reflex/components/el/elements/media.pyi +402 -401
- reflex/components/el/elements/metadata.pyi +98 -97
- reflex/components/el/elements/other.pyi +114 -113
- reflex/components/el/elements/scripts.pyi +50 -49
- reflex/components/el/elements/sectioning.pyi +242 -241
- reflex/components/el/elements/tables.pyi +162 -161
- reflex/components/el/elements/typography.pyi +242 -241
- reflex/components/gridjs/datatable.pyi +35 -34
- reflex/components/lucide/icon.pyi +50 -49
- reflex/components/markdown/markdown.pyi +18 -17
- reflex/components/moment/moment.pyi +19 -18
- reflex/components/next/base.pyi +18 -17
- reflex/components/next/image.pyi +20 -19
- reflex/components/next/link.pyi +18 -17
- reflex/components/next/video.pyi +18 -17
- reflex/components/plotly/plotly.pyi +326 -325
- reflex/components/radix/primitives/accordion.pyi +115 -114
- reflex/components/radix/primitives/base.pyi +34 -33
- reflex/components/radix/primitives/drawer.pyi +187 -186
- reflex/components/radix/primitives/form.pyi +168 -182
- reflex/components/radix/primitives/progress.pyi +82 -81
- reflex/components/radix/primitives/slider.pyi +84 -83
- reflex/components/radix/themes/base.pyi +130 -129
- reflex/components/radix/themes/color_mode.pyi +51 -50
- reflex/components/radix/themes/components/alert_dialog.pyi +118 -117
- reflex/components/radix/themes/components/aspect_ratio.pyi +18 -17
- reflex/components/radix/themes/components/avatar.pyi +18 -17
- reflex/components/radix/themes/components/badge.pyi +18 -17
- reflex/components/radix/themes/components/button.pyi +18 -17
- reflex/components/radix/themes/components/callout.pyi +82 -81
- reflex/components/radix/themes/components/card.pyi +18 -17
- reflex/components/radix/themes/components/checkbox.pyi +53 -52
- reflex/components/radix/themes/components/checkbox_cards.pyi +34 -33
- reflex/components/radix/themes/components/checkbox_group.pyi +34 -33
- reflex/components/radix/themes/components/context_menu.pyi +225 -224
- reflex/components/radix/themes/components/data_list.pyi +66 -65
- reflex/components/radix/themes/components/dialog.pyi +121 -120
- reflex/components/radix/themes/components/dropdown_menu.pyi +142 -141
- reflex/components/radix/themes/components/hover_card.pyi +68 -67
- reflex/components/radix/themes/components/icon_button.pyi +18 -17
- reflex/components/radix/themes/components/inset.pyi +18 -17
- reflex/components/radix/themes/components/popover.pyi +73 -72
- reflex/components/radix/themes/components/progress.pyi +18 -17
- reflex/components/radix/themes/components/radio.pyi +18 -17
- reflex/components/radix/themes/components/radio_cards.pyi +35 -34
- reflex/components/radix/themes/components/radio_group.pyi +67 -66
- reflex/components/radix/themes/components/scroll_area.pyi +18 -17
- reflex/components/radix/themes/components/segmented_control.pyi +35 -34
- reflex/components/radix/themes/components/select.pyi +155 -154
- reflex/components/radix/themes/components/separator.pyi +18 -17
- reflex/components/radix/themes/components/skeleton.pyi +18 -17
- reflex/components/radix/themes/components/slider.pyi +20 -31
- reflex/components/radix/themes/components/spinner.pyi +18 -17
- reflex/components/radix/themes/components/switch.pyi +19 -18
- reflex/components/radix/themes/components/table.pyi +114 -113
- reflex/components/radix/themes/components/tabs.pyi +84 -83
- reflex/components/radix/themes/components/text_area.pyi +21 -24
- reflex/components/radix/themes/components/text_field.pyi +56 -63
- reflex/components/radix/themes/components/tooltip.pyi +21 -20
- reflex/components/radix/themes/layout/base.pyi +18 -17
- reflex/components/radix/themes/layout/box.pyi +18 -17
- reflex/components/radix/themes/layout/center.pyi +18 -17
- reflex/components/radix/themes/layout/container.pyi +18 -17
- reflex/components/radix/themes/layout/flex.pyi +18 -17
- reflex/components/radix/themes/layout/grid.pyi +18 -17
- reflex/components/radix/themes/layout/list.pyi +82 -81
- reflex/components/radix/themes/layout/section.pyi +18 -17
- reflex/components/radix/themes/layout/spacer.pyi +18 -17
- reflex/components/radix/themes/layout/stack.pyi +50 -49
- reflex/components/radix/themes/typography/blockquote.pyi +18 -17
- reflex/components/radix/themes/typography/code.pyi +18 -17
- reflex/components/radix/themes/typography/heading.pyi +18 -17
- reflex/components/radix/themes/typography/link.pyi +18 -17
- reflex/components/radix/themes/typography/text.pyi +114 -113
- reflex/components/react_player/audio.pyi +34 -36
- reflex/components/react_player/react_player.pyi +34 -33
- reflex/components/react_player/video.pyi +34 -36
- reflex/components/recharts/cartesian.pyi +302 -301
- reflex/components/recharts/charts.pyi +177 -176
- reflex/components/recharts/general.pyi +99 -98
- reflex/components/recharts/polar.pyi +62 -61
- reflex/components/recharts/recharts.pyi +34 -33
- reflex/components/sonner/toast.pyi +19 -18
- reflex/components/suneditor/editor.pyi +27 -28
- reflex/experimental/layout.pyi +84 -83
- reflex/state.py +27 -6
- {reflex-0.7.7a1.dist-info → reflex-0.7.7.post1.dist-info}/METADATA +1 -1
- {reflex-0.7.7a1.dist-info → reflex-0.7.7.post1.dist-info}/RECORD +117 -117
- {reflex-0.7.7a1.dist-info → reflex-0.7.7.post1.dist-info}/WHEEL +0 -0
- {reflex-0.7.7a1.dist-info → reflex-0.7.7.post1.dist-info}/entry_points.txt +0 -0
- {reflex-0.7.7a1.dist-info → reflex-0.7.7.post1.dist-info}/licenses/LICENSE +0 -0
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
# This file was generated by `reflex/utils/pyi_generator.py`!
|
|
5
5
|
# ------------------------------------------------------
|
|
6
6
|
import enum
|
|
7
|
-
from
|
|
7
|
+
from collections.abc import Mapping, Sequence
|
|
8
|
+
from typing import Any, Literal, overload
|
|
8
9
|
|
|
9
10
|
from reflex.base import Base
|
|
10
11
|
from reflex.components.component import NoSSRComponent
|
|
@@ -107,7 +108,7 @@ class Editor(NoSSRComponent):
|
|
|
107
108
|
height: Var[str] | str | None = None,
|
|
108
109
|
placeholder: Var[str] | str | None = None,
|
|
109
110
|
auto_focus: Var[bool] | bool | None = None,
|
|
110
|
-
set_options:
|
|
111
|
+
set_options: Var[dict] | dict | None = None,
|
|
111
112
|
set_all_plugins: Var[bool] | bool | None = None,
|
|
112
113
|
set_contents: Var[str] | str | None = None,
|
|
113
114
|
append_contents: Var[str] | str | None = None,
|
|
@@ -126,33 +127,31 @@ class Editor(NoSSRComponent):
|
|
|
126
127
|
class_name: Any | None = None,
|
|
127
128
|
autofocus: bool | None = None,
|
|
128
129
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
129
|
-
on_blur:
|
|
130
|
-
on_change:
|
|
131
|
-
on_click:
|
|
132
|
-
on_context_menu:
|
|
133
|
-
on_copy:
|
|
134
|
-
on_cut:
|
|
135
|
-
on_double_click:
|
|
136
|
-
on_focus:
|
|
137
|
-
on_input:
|
|
138
|
-
on_load:
|
|
139
|
-
on_mount:
|
|
140
|
-
on_mouse_down:
|
|
141
|
-
on_mouse_enter:
|
|
142
|
-
on_mouse_leave:
|
|
143
|
-
on_mouse_move:
|
|
144
|
-
on_mouse_out:
|
|
145
|
-
on_mouse_over:
|
|
146
|
-
on_mouse_up:
|
|
147
|
-
on_paste:
|
|
148
|
-
|
|
149
|
-
] = None,
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
toggle_code_view: Optional[EventType[()] | EventType[bool]] = None,
|
|
153
|
-
toggle_full_screen: Optional[EventType[()] | EventType[bool]] = None,
|
|
130
|
+
on_blur: EventType[()] | EventType[str] | None = None,
|
|
131
|
+
on_change: EventType[()] | EventType[str] | None = None,
|
|
132
|
+
on_click: EventType[()] | None = None,
|
|
133
|
+
on_context_menu: EventType[()] | None = None,
|
|
134
|
+
on_copy: EventType[()] | None = None,
|
|
135
|
+
on_cut: EventType[()] | None = None,
|
|
136
|
+
on_double_click: EventType[()] | None = None,
|
|
137
|
+
on_focus: EventType[()] | None = None,
|
|
138
|
+
on_input: EventType[()] | None = None,
|
|
139
|
+
on_load: EventType[()] | EventType[bool] | None = None,
|
|
140
|
+
on_mount: EventType[()] | None = None,
|
|
141
|
+
on_mouse_down: EventType[()] | None = None,
|
|
142
|
+
on_mouse_enter: EventType[()] | None = None,
|
|
143
|
+
on_mouse_leave: EventType[()] | None = None,
|
|
144
|
+
on_mouse_move: EventType[()] | None = None,
|
|
145
|
+
on_mouse_out: EventType[()] | None = None,
|
|
146
|
+
on_mouse_over: EventType[()] | None = None,
|
|
147
|
+
on_mouse_up: EventType[()] | None = None,
|
|
148
|
+
on_paste: EventType[()] | EventType[str] | EventType[str, bool] | None = None,
|
|
149
|
+
on_scroll: EventType[()] | None = None,
|
|
150
|
+
on_unmount: EventType[()] | None = None,
|
|
151
|
+
toggle_code_view: EventType[()] | EventType[bool] | None = None,
|
|
152
|
+
toggle_full_screen: EventType[()] | EventType[bool] | None = None,
|
|
154
153
|
**props,
|
|
155
|
-
) ->
|
|
154
|
+
) -> Editor:
|
|
156
155
|
"""Create an instance of Editor. No children allowed.
|
|
157
156
|
|
|
158
157
|
Args:
|
reflex/experimental/layout.pyi
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
# ------------------- DO NOT EDIT ----------------------
|
|
4
4
|
# This file was generated by `reflex/utils/pyi_generator.py`!
|
|
5
5
|
# ------------------------------------------------------
|
|
6
|
-
from
|
|
6
|
+
from collections.abc import Mapping, Sequence
|
|
7
|
+
from typing import Any, Literal, overload
|
|
7
8
|
|
|
8
9
|
from reflex import color
|
|
9
10
|
from reflex.components.base.fragment import Fragment
|
|
@@ -209,23 +210,23 @@ class Sidebar(Box, MemoizationLeaf):
|
|
|
209
210
|
class_name: Any | None = None,
|
|
210
211
|
autofocus: bool | None = None,
|
|
211
212
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
212
|
-
on_blur:
|
|
213
|
-
on_click:
|
|
214
|
-
on_context_menu:
|
|
215
|
-
on_double_click:
|
|
216
|
-
on_focus:
|
|
217
|
-
on_mount:
|
|
218
|
-
on_mouse_down:
|
|
219
|
-
on_mouse_enter:
|
|
220
|
-
on_mouse_leave:
|
|
221
|
-
on_mouse_move:
|
|
222
|
-
on_mouse_out:
|
|
223
|
-
on_mouse_over:
|
|
224
|
-
on_mouse_up:
|
|
225
|
-
on_scroll:
|
|
226
|
-
on_unmount:
|
|
213
|
+
on_blur: EventType[()] | None = None,
|
|
214
|
+
on_click: EventType[()] | None = None,
|
|
215
|
+
on_context_menu: EventType[()] | None = None,
|
|
216
|
+
on_double_click: EventType[()] | None = None,
|
|
217
|
+
on_focus: EventType[()] | None = None,
|
|
218
|
+
on_mount: EventType[()] | None = None,
|
|
219
|
+
on_mouse_down: EventType[()] | None = None,
|
|
220
|
+
on_mouse_enter: EventType[()] | None = None,
|
|
221
|
+
on_mouse_leave: EventType[()] | None = None,
|
|
222
|
+
on_mouse_move: EventType[()] | None = None,
|
|
223
|
+
on_mouse_out: EventType[()] | None = None,
|
|
224
|
+
on_mouse_over: EventType[()] | None = None,
|
|
225
|
+
on_mouse_up: EventType[()] | None = None,
|
|
226
|
+
on_scroll: EventType[()] | None = None,
|
|
227
|
+
on_unmount: EventType[()] | None = None,
|
|
227
228
|
**props,
|
|
228
|
-
) ->
|
|
229
|
+
) -> Sidebar:
|
|
229
230
|
"""Create the sidebar component.
|
|
230
231
|
|
|
231
232
|
Args:
|
|
@@ -278,25 +279,25 @@ class DrawerSidebar(DrawerRoot):
|
|
|
278
279
|
class_name: Any | None = None,
|
|
279
280
|
autofocus: bool | None = None,
|
|
280
281
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
281
|
-
on_animation_end:
|
|
282
|
-
on_blur:
|
|
283
|
-
on_click:
|
|
284
|
-
on_context_menu:
|
|
285
|
-
on_double_click:
|
|
286
|
-
on_focus:
|
|
287
|
-
on_mount:
|
|
288
|
-
on_mouse_down:
|
|
289
|
-
on_mouse_enter:
|
|
290
|
-
on_mouse_leave:
|
|
291
|
-
on_mouse_move:
|
|
292
|
-
on_mouse_out:
|
|
293
|
-
on_mouse_over:
|
|
294
|
-
on_mouse_up:
|
|
295
|
-
on_open_change:
|
|
296
|
-
on_scroll:
|
|
297
|
-
on_unmount:
|
|
282
|
+
on_animation_end: EventType[()] | EventType[bool] | None = None,
|
|
283
|
+
on_blur: EventType[()] | None = None,
|
|
284
|
+
on_click: EventType[()] | None = None,
|
|
285
|
+
on_context_menu: EventType[()] | None = None,
|
|
286
|
+
on_double_click: EventType[()] | None = None,
|
|
287
|
+
on_focus: EventType[()] | None = None,
|
|
288
|
+
on_mount: EventType[()] | None = None,
|
|
289
|
+
on_mouse_down: EventType[()] | None = None,
|
|
290
|
+
on_mouse_enter: EventType[()] | None = None,
|
|
291
|
+
on_mouse_leave: EventType[()] | None = None,
|
|
292
|
+
on_mouse_move: EventType[()] | None = None,
|
|
293
|
+
on_mouse_out: EventType[()] | None = None,
|
|
294
|
+
on_mouse_over: EventType[()] | None = None,
|
|
295
|
+
on_mouse_up: EventType[()] | None = None,
|
|
296
|
+
on_open_change: EventType[()] | EventType[bool] | None = None,
|
|
297
|
+
on_scroll: EventType[()] | None = None,
|
|
298
|
+
on_unmount: EventType[()] | None = None,
|
|
298
299
|
**props,
|
|
299
|
-
) ->
|
|
300
|
+
) -> DrawerSidebar:
|
|
300
301
|
"""Create the sidebar component.
|
|
301
302
|
|
|
302
303
|
Args:
|
|
@@ -332,23 +333,23 @@ class SidebarTrigger(Fragment):
|
|
|
332
333
|
class_name: Any | None = None,
|
|
333
334
|
autofocus: bool | None = None,
|
|
334
335
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
335
|
-
on_blur:
|
|
336
|
-
on_click:
|
|
337
|
-
on_context_menu:
|
|
338
|
-
on_double_click:
|
|
339
|
-
on_focus:
|
|
340
|
-
on_mount:
|
|
341
|
-
on_mouse_down:
|
|
342
|
-
on_mouse_enter:
|
|
343
|
-
on_mouse_leave:
|
|
344
|
-
on_mouse_move:
|
|
345
|
-
on_mouse_out:
|
|
346
|
-
on_mouse_over:
|
|
347
|
-
on_mouse_up:
|
|
348
|
-
on_scroll:
|
|
349
|
-
on_unmount:
|
|
336
|
+
on_blur: EventType[()] | None = None,
|
|
337
|
+
on_click: EventType[()] | None = None,
|
|
338
|
+
on_context_menu: EventType[()] | None = None,
|
|
339
|
+
on_double_click: EventType[()] | None = None,
|
|
340
|
+
on_focus: EventType[()] | None = None,
|
|
341
|
+
on_mount: EventType[()] | None = None,
|
|
342
|
+
on_mouse_down: EventType[()] | None = None,
|
|
343
|
+
on_mouse_enter: EventType[()] | None = None,
|
|
344
|
+
on_mouse_leave: EventType[()] | None = None,
|
|
345
|
+
on_mouse_move: EventType[()] | None = None,
|
|
346
|
+
on_mouse_out: EventType[()] | None = None,
|
|
347
|
+
on_mouse_over: EventType[()] | None = None,
|
|
348
|
+
on_mouse_up: EventType[()] | None = None,
|
|
349
|
+
on_scroll: EventType[()] | None = None,
|
|
350
|
+
on_unmount: EventType[()] | None = None,
|
|
350
351
|
**props,
|
|
351
|
-
) ->
|
|
352
|
+
) -> SidebarTrigger:
|
|
352
353
|
"""Create the sidebar trigger component.
|
|
353
354
|
|
|
354
355
|
Args:
|
|
@@ -555,23 +556,23 @@ class Layout(Box):
|
|
|
555
556
|
class_name: Any | None = None,
|
|
556
557
|
autofocus: bool | None = None,
|
|
557
558
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
558
|
-
on_blur:
|
|
559
|
-
on_click:
|
|
560
|
-
on_context_menu:
|
|
561
|
-
on_double_click:
|
|
562
|
-
on_focus:
|
|
563
|
-
on_mount:
|
|
564
|
-
on_mouse_down:
|
|
565
|
-
on_mouse_enter:
|
|
566
|
-
on_mouse_leave:
|
|
567
|
-
on_mouse_move:
|
|
568
|
-
on_mouse_out:
|
|
569
|
-
on_mouse_over:
|
|
570
|
-
on_mouse_up:
|
|
571
|
-
on_scroll:
|
|
572
|
-
on_unmount:
|
|
559
|
+
on_blur: EventType[()] | None = None,
|
|
560
|
+
on_click: EventType[()] | None = None,
|
|
561
|
+
on_context_menu: EventType[()] | None = None,
|
|
562
|
+
on_double_click: EventType[()] | None = None,
|
|
563
|
+
on_focus: EventType[()] | None = None,
|
|
564
|
+
on_mount: EventType[()] | None = None,
|
|
565
|
+
on_mouse_down: EventType[()] | None = None,
|
|
566
|
+
on_mouse_enter: EventType[()] | None = None,
|
|
567
|
+
on_mouse_leave: EventType[()] | None = None,
|
|
568
|
+
on_mouse_move: EventType[()] | None = None,
|
|
569
|
+
on_mouse_out: EventType[()] | None = None,
|
|
570
|
+
on_mouse_over: EventType[()] | None = None,
|
|
571
|
+
on_mouse_up: EventType[()] | None = None,
|
|
572
|
+
on_scroll: EventType[()] | None = None,
|
|
573
|
+
on_unmount: EventType[()] | None = None,
|
|
573
574
|
**props,
|
|
574
|
-
) ->
|
|
575
|
+
) -> Layout:
|
|
575
576
|
"""Create the layout component.
|
|
576
577
|
|
|
577
578
|
Args:
|
|
@@ -781,23 +782,23 @@ class LayoutNamespace(ComponentNamespace):
|
|
|
781
782
|
class_name: Any | None = None,
|
|
782
783
|
autofocus: bool | None = None,
|
|
783
784
|
custom_attrs: dict[str, Var | Any] | None = None,
|
|
784
|
-
on_blur:
|
|
785
|
-
on_click:
|
|
786
|
-
on_context_menu:
|
|
787
|
-
on_double_click:
|
|
788
|
-
on_focus:
|
|
789
|
-
on_mount:
|
|
790
|
-
on_mouse_down:
|
|
791
|
-
on_mouse_enter:
|
|
792
|
-
on_mouse_leave:
|
|
793
|
-
on_mouse_move:
|
|
794
|
-
on_mouse_out:
|
|
795
|
-
on_mouse_over:
|
|
796
|
-
on_mouse_up:
|
|
797
|
-
on_scroll:
|
|
798
|
-
on_unmount:
|
|
785
|
+
on_blur: EventType[()] | None = None,
|
|
786
|
+
on_click: EventType[()] | None = None,
|
|
787
|
+
on_context_menu: EventType[()] | None = None,
|
|
788
|
+
on_double_click: EventType[()] | None = None,
|
|
789
|
+
on_focus: EventType[()] | None = None,
|
|
790
|
+
on_mount: EventType[()] | None = None,
|
|
791
|
+
on_mouse_down: EventType[()] | None = None,
|
|
792
|
+
on_mouse_enter: EventType[()] | None = None,
|
|
793
|
+
on_mouse_leave: EventType[()] | None = None,
|
|
794
|
+
on_mouse_move: EventType[()] | None = None,
|
|
795
|
+
on_mouse_out: EventType[()] | None = None,
|
|
796
|
+
on_mouse_over: EventType[()] | None = None,
|
|
797
|
+
on_mouse_up: EventType[()] | None = None,
|
|
798
|
+
on_scroll: EventType[()] | None = None,
|
|
799
|
+
on_unmount: EventType[()] | None = None,
|
|
799
800
|
**props,
|
|
800
|
-
) ->
|
|
801
|
+
) -> Layout:
|
|
801
802
|
"""Create the layout component.
|
|
802
803
|
|
|
803
804
|
Args:
|
reflex/state.py
CHANGED
|
@@ -1404,6 +1404,29 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow):
|
|
|
1404
1404
|
for substate in self.substates.values():
|
|
1405
1405
|
substate.reset()
|
|
1406
1406
|
|
|
1407
|
+
@classmethod
|
|
1408
|
+
@functools.lru_cache
|
|
1409
|
+
def _is_client_storage(cls, prop_name_or_field: str | ModelField) -> bool:
|
|
1410
|
+
"""Check if the var is a client storage var.
|
|
1411
|
+
|
|
1412
|
+
Args:
|
|
1413
|
+
prop_name_or_field: The name of the var or the field itself.
|
|
1414
|
+
|
|
1415
|
+
Returns:
|
|
1416
|
+
Whether the var is a client storage var.
|
|
1417
|
+
"""
|
|
1418
|
+
if isinstance(prop_name_or_field, str):
|
|
1419
|
+
field = cls.get_fields().get(prop_name_or_field)
|
|
1420
|
+
else:
|
|
1421
|
+
field = prop_name_or_field
|
|
1422
|
+
return field is not None and (
|
|
1423
|
+
isinstance(field.default, ClientStorageBase)
|
|
1424
|
+
or (
|
|
1425
|
+
isinstance(field.type_, type)
|
|
1426
|
+
and issubclass(field.type_, ClientStorageBase)
|
|
1427
|
+
)
|
|
1428
|
+
)
|
|
1429
|
+
|
|
1407
1430
|
def _reset_client_storage(self):
|
|
1408
1431
|
"""Reset client storage base vars to their default values."""
|
|
1409
1432
|
# Client-side storage is reset during hydrate so that clearing cookies
|
|
@@ -1411,10 +1434,7 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow):
|
|
|
1411
1434
|
fields = self.get_fields()
|
|
1412
1435
|
for prop_name in self.base_vars:
|
|
1413
1436
|
field = fields[prop_name]
|
|
1414
|
-
if
|
|
1415
|
-
isinstance(field.type_, type)
|
|
1416
|
-
and issubclass(field.type_, ClientStorageBase)
|
|
1417
|
-
):
|
|
1437
|
+
if self._is_client_storage(field):
|
|
1418
1438
|
setattr(self, prop_name, copy.deepcopy(field.default))
|
|
1419
1439
|
|
|
1420
1440
|
# Recursively reset the substate client storage.
|
|
@@ -2361,8 +2381,9 @@ class UpdateVarsInternalState(State):
|
|
|
2361
2381
|
for var, value in vars.items():
|
|
2362
2382
|
state_name, _, var_name = var.rpartition(".")
|
|
2363
2383
|
var_state_cls = State.get_class_substate(state_name)
|
|
2364
|
-
|
|
2365
|
-
|
|
2384
|
+
if var_state_cls._is_client_storage(var_name):
|
|
2385
|
+
var_state = await self.get_state(var_state_cls)
|
|
2386
|
+
setattr(var_state, var_name, value)
|
|
2366
2387
|
|
|
2367
2388
|
|
|
2368
2389
|
class OnLoadInternalState(State):
|