reflex 0.8.11__py3-none-any.whl → 0.8.12a1__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.

@@ -478,8 +478,8 @@ export const queueEvents = async (
478
478
  * @param params The params object from React Router
479
479
  */
480
480
  export const processEvent = async (socket, navigate, params) => {
481
- // Only proceed if the socket is up and no event in the queue uses state, otherwise we throw the event into the void
482
- if (!socket && isStateful()) {
481
+ // Only proceed if the socket is up or no event in the queue uses state, otherwise we throw the event into the void
482
+ if (isStateful() && !(socket && socket.connected)) {
483
483
  return;
484
484
  }
485
485
 
@@ -576,11 +576,15 @@ export const connect = async (
576
576
  };
577
577
 
578
578
  // Once the socket is open, hydrate the page.
579
- socket.current.on("connect", () => {
579
+ socket.current.on("connect", async () => {
580
580
  setConnectErrors([]);
581
581
  window.addEventListener("pagehide", pagehideHandler);
582
582
  window.addEventListener("beforeunload", disconnectTrigger);
583
583
  window.addEventListener("unload", disconnectTrigger);
584
+ // Drain any initial events from the queue.
585
+ while (event_queue.length > 0 && !event_processing) {
586
+ await processEvent(socket.current, navigate, () => params.current);
587
+ }
584
588
  });
585
589
 
586
590
  socket.current.on("connect_error", (error) => {
@@ -893,7 +897,7 @@ export const useEventLoop = (
893
897
  // Main event loop.
894
898
  useEffect(() => {
895
899
  // Skip if the backend is disabled
896
- if (isBackendDisabled()) {
900
+ if (isBackendDisabled() || !socket.current || !socket.current.connected) {
897
901
  return;
898
902
  }
899
903
  (async () => {
reflex/app.py CHANGED
@@ -2189,3 +2189,10 @@ class EventNamespace(AsyncNamespace):
2189
2189
  if new_token:
2190
2190
  # Duplicate detected, emit new token to client
2191
2191
  await self.emit("new_token", new_token, to=sid)
2192
+
2193
+ # Update client state to apply new sid/token for running background tasks.
2194
+ async with self.app.modify_state(
2195
+ _substate_key(new_token or token, self.app.state_manager.state)
2196
+ ) as state:
2197
+ state.router_data[constants.RouteVar.SESSION_ID] = sid
2198
+ state.router = RouterData.from_router_data(state.router_data)
@@ -86,7 +86,7 @@ class _RenderUtils:
86
86
  children_rendered = "".join(
87
87
  [_RenderUtils.render(child) for child in component.get("children", [])]
88
88
  )
89
- return f"{component['iterable_state']}.map(({component['arg_name']},{component['arg_index']})=>({children_rendered}))"
89
+ return f"Array.prototype.map.call({component['iterable_state']} ?? [],(({component['arg_name']},{component['arg_index']})=>({children_rendered})))"
90
90
 
91
91
  @staticmethod
92
92
  def render_match_tag(component: Any) -> str:
@@ -6,7 +6,7 @@ from reflex.utils.imports import ImportVar
6
6
  from reflex.vars.base import LiteralVar, Var
7
7
  from reflex.vars.sequence import LiteralStringVar, StringVar
8
8
 
9
- LUCIDE_LIBRARY = "lucide-react@0.543.0"
9
+ LUCIDE_LIBRARY = "lucide-react@0.544.0"
10
10
 
11
11
 
12
12
  class LucideIconComponent(Component):
@@ -674,6 +674,7 @@ LUCIDE_ICON_LIST = [
674
674
  "eraser",
675
675
  "ethernet_port",
676
676
  "euro",
677
+ "ev_charger",
677
678
  "expand",
678
679
  "external_link",
679
680
  "eye_closed",
@@ -11,7 +11,7 @@ from reflex.components.core.breakpoints import Breakpoints
11
11
  from reflex.event import EventType, PointerEventInfo
12
12
  from reflex.vars.base import Var
13
13
 
14
- LUCIDE_LIBRARY = "lucide-react@0.543.0"
14
+ LUCIDE_LIBRARY = "lucide-react@0.544.0"
15
15
 
16
16
  class LucideIconComponent(Component):
17
17
  @classmethod
@@ -739,6 +739,7 @@ LUCIDE_ICON_LIST = [
739
739
  "eraser",
740
740
  "ethernet_port",
741
741
  "euro",
742
+ "ev_charger",
742
743
  "expand",
743
744
  "external_link",
744
745
  "eye_closed",
@@ -14,7 +14,7 @@ class Bun(SimpleNamespace):
14
14
  """Bun constants."""
15
15
 
16
16
  # The Bun version.
17
- VERSION = "1.2.21"
17
+ VERSION = "1.2.22"
18
18
 
19
19
  # Min Bun Version
20
20
  MIN_VERSION = "1.2.17"
@@ -75,7 +75,7 @@ fetch-retries=0
75
75
 
76
76
 
77
77
  def _determine_react_router_version() -> str:
78
- default_version = "7.8.2"
78
+ default_version = "7.9.1"
79
79
  if (version := os.getenv("REACT_ROUTER_VERSION")) and version != default_version:
80
80
  from reflex.utils import console
81
81
 
@@ -143,11 +143,11 @@ class PackageJson(SimpleNamespace):
143
143
  "postcss-import": "16.1.1",
144
144
  "@react-router/dev": _react_router_version,
145
145
  "@react-router/fs-routes": _react_router_version,
146
- "vite": "npm:rolldown-vite@7.1.8",
146
+ "vite": "npm:rolldown-vite@7.1.9",
147
147
  }
148
148
  OVERRIDES = {
149
149
  # This should always match the `react` version in DEPENDENCIES for recharts compatibility.
150
150
  "react-is": _react_version,
151
151
  "cookie": "1.0.2",
152
- "vite": "npm:rolldown-vite@7.1.8",
152
+ "vite": "npm:rolldown-vite@7.1.9",
153
153
  }
reflex/event.py CHANGED
@@ -1782,7 +1782,7 @@ def call_event_fn(
1782
1782
  from reflex.event import EventHandler, EventSpec
1783
1783
  from reflex.utils.exceptions import EventHandlerValueError
1784
1784
 
1785
- parsed_args, event_annotations = parse_args_spec(arg_spec)
1785
+ parsed_args, _ = parse_args_spec(arg_spec)
1786
1786
 
1787
1787
  parameters = inspect.signature(fn).parameters
1788
1788
 
reflex/istate/manager.py CHANGED
@@ -355,7 +355,7 @@ class StateManagerDisk(StateManager):
355
355
  token: The token to set the state for.
356
356
  state: The state to set.
357
357
  """
358
- client_token, substate = _split_substate_key(token)
358
+ client_token, _ = _split_substate_key(token)
359
359
  await self.set_state_for_substate(client_token, state)
360
360
 
361
361
  @override
@@ -370,7 +370,7 @@ class StateManagerDisk(StateManager):
370
370
  The state for the token.
371
371
  """
372
372
  # Memory state manager ignores the substate suffix and always returns the top-level state.
373
- client_token, substate = _split_substate_key(token)
373
+ client_token, _ = _split_substate_key(token)
374
374
  if client_token not in self._states_locks:
375
375
  async with self._state_manager_lock:
376
376
  if client_token not in self._states_locks:
reflex/style.py CHANGED
@@ -120,9 +120,11 @@ def convert_item(
120
120
  Raises:
121
121
  ReflexError: If an EventHandler is used as a style value
122
122
  """
123
- if isinstance(style_item, EventHandler):
123
+ from reflex.components.component import BaseComponent
124
+
125
+ if isinstance(style_item, (EventHandler, BaseComponent)):
124
126
  msg = (
125
- "EventHandlers cannot be used as style values. "
127
+ f"{type(style_item)} cannot be used as style values. "
126
128
  "Please use a Var or a literal value."
127
129
  )
128
130
  raise ReflexError(msg)
reflex/utils/console.py CHANGED
@@ -22,6 +22,7 @@ from reflex.utils.decorator import once
22
22
 
23
23
  # Console for pretty printing.
24
24
  _console = Console()
25
+ _console_stderr = Console(stderr=True)
25
26
 
26
27
  # The current log level.
27
28
  _LOG_LEVEL = LogLevel.INFO
@@ -96,6 +97,21 @@ def print(msg: str, *, dedupe: bool = False, **kwargs):
96
97
  _console.print(msg, **kwargs)
97
98
 
98
99
 
100
+ def _print_stderr(msg: str, *, dedupe: bool = False, **kwargs):
101
+ """Print a message to stderr.
102
+
103
+ Args:
104
+ msg: The message to print.
105
+ dedupe: If True, suppress multiple console logs of print message.
106
+ kwargs: Keyword arguments to pass to the print function.
107
+ """
108
+ if dedupe:
109
+ if msg in _EMITTED_PRINTS:
110
+ return
111
+ _EMITTED_PRINTS.add(msg)
112
+ _console_stderr.print(msg, **kwargs)
113
+
114
+
99
115
  @once
100
116
  def log_file_console():
101
117
  """Create a console that logs to a file.
@@ -342,7 +358,7 @@ def error(msg: str, *, dedupe: bool = False, **kwargs):
342
358
  if msg in _EMITTED_ERRORS:
343
359
  return
344
360
  _EMITTED_ERRORS.add(msg)
345
- print(f"[red]{msg}[/red]", **kwargs)
361
+ _print_stderr(f"[red]{msg}[/red]", **kwargs)
346
362
  if should_use_log_file_console():
347
363
  print_to_log_file(f"[red]{msg}[/red]", **kwargs)
348
364
 
reflex/utils/exec.py CHANGED
@@ -524,7 +524,7 @@ def run_granian_backend(host: str, port: int, loglevel: LogLevel):
524
524
  from granian.log import LogLevels
525
525
  from granian.server import Server as Granian
526
526
 
527
- from reflex.environment import _paths_from_environment
527
+ from reflex.environment import _load_dotenv_from_env
528
528
 
529
529
  granian_app = Granian(
530
530
  target=get_app_instance_from_file(),
@@ -538,10 +538,11 @@ def run_granian_backend(host: str, port: int, loglevel: LogLevel):
538
538
  reload_ignore_worker_failure=True,
539
539
  reload_ignore_patterns=HOTRELOAD_IGNORE_PATTERNS,
540
540
  reload_tick=100,
541
- env_files=_paths_from_environment() or None,
542
541
  workers_kill_timeout=2,
543
542
  )
544
543
 
544
+ granian_app.on_reload(_load_dotenv_from_env)
545
+
545
546
  granian_app.serve()
546
547
 
547
548
 
reflex/vars/base.py CHANGED
@@ -2345,7 +2345,7 @@ class ComputedVar(Var[RETURN_TYPE]):
2345
2345
  def _check_deprecated_return_type(self, instance: BaseState, value: Any) -> None:
2346
2346
  if not _isinstance(value, self._var_type, nested=1, treat_var_as_type=False):
2347
2347
  console.error(
2348
- f"Computed var '{type(instance).__name__}.{self._js_expr}' must return"
2348
+ f"Computed var '{type(instance).__name__}.{self._name}' must return"
2349
2349
  f" a value of type '{escape(str(self._var_type))}', got '{value!s}' of type {type(value)}."
2350
2350
  )
2351
2351
 
@@ -2395,7 +2395,7 @@ class ComputedVar(Var[RETURN_TYPE]):
2395
2395
  except Exception as e:
2396
2396
  console.warn(
2397
2397
  "Failed to automatically determine dependencies for computed var "
2398
- f"{objclass.__name__}.{self._js_expr}: {e}. "
2398
+ f"{objclass.__name__}.{self._name}: {e}. "
2399
2399
  "Provide static_deps and set auto_deps=False to suppress this warning."
2400
2400
  )
2401
2401
  return d
reflex/vars/object.py CHANGED
@@ -479,14 +479,9 @@ def object_keys_operation(value: ObjectVar):
479
479
  Returns:
480
480
  The keys of the object.
481
481
  """
482
- if not types.is_optional(value._var_type):
483
- return var_operation_return(
484
- js_expression=f"Object.keys({value})",
485
- var_type=list[str],
486
- )
487
482
  return var_operation_return(
488
- js_expression=f"((value) => value ?? undefined === undefined ? undefined : Object.keys(value))({value})",
489
- var_type=(list[str] | None),
483
+ js_expression=f"Object.keys({value} ?? {{}})",
484
+ var_type=list[str],
490
485
  )
491
486
 
492
487
 
@@ -500,14 +495,9 @@ def object_values_operation(value: ObjectVar):
500
495
  Returns:
501
496
  The values of the object.
502
497
  """
503
- if not types.is_optional(value._var_type):
504
- return var_operation_return(
505
- js_expression=f"Object.values({value})",
506
- var_type=list[value._value_type()],
507
- )
508
498
  return var_operation_return(
509
- js_expression=f"((value) => value ?? undefined === undefined ? undefined : Object.values(value))({value})",
510
- var_type=(list[value._value_type()] | None),
499
+ js_expression=f"Object.values({value} ?? {{}})",
500
+ var_type=list[value._value_type()],
511
501
  )
512
502
 
513
503
 
@@ -521,14 +511,9 @@ def object_entries_operation(value: ObjectVar):
521
511
  Returns:
522
512
  The entries of the object.
523
513
  """
524
- if not types.is_optional(value._var_type):
525
- return var_operation_return(
526
- js_expression=f"Object.entries({value})",
527
- var_type=list[tuple[str, value._value_type()]],
528
- )
529
514
  return var_operation_return(
530
- js_expression=f"((value) => value ?? undefined === undefined ? undefined : Object.entries(value))({value})",
531
- var_type=(list[tuple[str, value._value_type()]] | None),
515
+ js_expression=f"Object.entries({value} ?? {{}})",
516
+ var_type=list[tuple[str, value._value_type()]],
532
517
  )
533
518
 
534
519
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reflex
3
- Version: 0.8.11
3
+ Version: 0.8.12a1
4
4
  Summary: Web apps in pure Python.
5
5
  Project-URL: homepage, https://reflex.dev
6
6
  Project-URL: repository, https://github.com/reflex-dev/reflex
@@ -2,19 +2,19 @@ reflex/__init__.py,sha256=_1PVYjDeA6_JyfXvL6OuKjjO6AX2oMiNcAq8AEHf6xw,10161
2
2
  reflex/__init__.pyi,sha256=0D46kHVUJPE_kgYL-BjraERu-MXNCPsQTZQShrijmeQ,10148
3
3
  reflex/__main__.py,sha256=6cVrGEyT3j3tEvlEVUatpaYfbB5EF3UVY-6vc_Z7-hw,108
4
4
  reflex/admin.py,sha256=Nbc38y-M8iaRBvh1W6DQu_D3kEhO8JFvxrog4q2cB_E,434
5
- reflex/app.py,sha256=6twI1PM0obKXFylomi-AXqr1zdaK9aZzYH3yh6zO2M8,78122
5
+ reflex/app.py,sha256=K3HgJEVKOVEINNOGc8mIT7NIwLolnzs6aUBObm5zJ64,78485
6
6
  reflex/assets.py,sha256=l5O_mlrTprC0lF7Rc_McOe3a0OtSLnRdNl_PqCpDCBA,3431
7
7
  reflex/base.py,sha256=Oh664QL3fZEHErhUasFqP7fE4olYf1y-9Oj6uZI2FCU,1173
8
8
  reflex/config.py,sha256=LsHAtdH4nkSn3q_Ie-KNdOGdflLXrFICUQov29oFjVk,21229
9
9
  reflex/environment.py,sha256=BRIePrhFKTZajYlyl-KhjGsqR4_hc7KxfNCoape6Jjw,23590
10
- reflex/event.py,sha256=C4b_gj8FLQx5HKWp_G5nFsCO-H0z08tx_LYc-e3vwlo,76239
10
+ reflex/event.py,sha256=e2EIBmLF63KRw4GXSbuiQ6yDp1-YQHHIxJKenTra9vk,76223
11
11
  reflex/model.py,sha256=2QhU1TJlcDeRA23pv8usLjyDaA6FhbQRYdzsjOHzvUI,19665
12
12
  reflex/page.py,sha256=ssCbMVFuIy60vH-YhJUzN0OxzUwXFCCD3ej56dVjp3g,3525
13
13
  reflex/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  reflex/reflex.py,sha256=qKpWvXuA55y519MWckr6oxKSf3pCQfRCrvzsyXSuAqk,22729
15
15
  reflex/route.py,sha256=TnS4m6Hm-b3LfGFpm37iAMEd-_JISAouPW5FqUxTAfU,7858
16
16
  reflex/state.py,sha256=gqQNmLGdrG9sxivfbyE1bHrLSlYZarbQCt6PtPaWO2w,94991
17
- reflex/style.py,sha256=JxbXXA4MTnXrk0XHEoMBoNC7J-M2oL5Hl3W_QmXvmBg,13222
17
+ reflex/style.py,sha256=Jc7hZyH9CSFDbweoRCrkVtSu8tZq5aIggSoAYAh-w1M,13304
18
18
  reflex/testing.py,sha256=wLhvUdvTa6jPDkfdWLOYt69piX1KFhYxZfEjQzWfJo0,39902
19
19
  reflex/.templates/apps/blank/assets/favicon.ico,sha256=baxxgDAQ2V4-G5Q4S2yK5uUJTUGkv-AOWBQ0xd6myUo,4286
20
20
  reflex/.templates/apps/blank/code/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -30,7 +30,7 @@ reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js,sha2
30
30
  reflex/.templates/web/components/shiki/code.js,sha256=4Es1pxsr-lX4hTQ5mglrwwC6O_SI-z-O60k03z8VFzQ,1144
31
31
  reflex/.templates/web/styles/__reflex_style_reset.css,sha256=qbC6JIT643YEsvSQ0D7xBmWE5vXy94JGrKNihRuEjnA,8913
32
32
  reflex/.templates/web/utils/react-theme.js,sha256=Aa-RND3ooGCXW6Zavzitc-v0ciKlcQDTFlDtE4mPkFI,2713
33
- reflex/.templates/web/utils/state.js,sha256=sf8v15y5FXGeuQg1spDRe88pl3Kdv7n4_338tqu_xkY,31894
33
+ reflex/.templates/web/utils/state.js,sha256=Hqx-h7bGSSaaHA0z_6sEWWqv6V08LFa8nh_nPKOhEf0,32155
34
34
  reflex/.templates/web/utils/helpers/dataeditor.js,sha256=pG6MgsHuStDR7-qPipzfiK32j9bKDBa-4hZ0JSUo4JM,1623
35
35
  reflex/.templates/web/utils/helpers/debounce.js,sha256=xGhtTRtS_xIcaeqnYVvYJNseLgQVk-DW-eFiHJYO9As,528
36
36
  reflex/.templates/web/utils/helpers/paste.js,sha256=ef30HsR83jRzzvZnl8yV79yqFP8TC_u8SlN99cCS_OM,1799
@@ -43,7 +43,7 @@ reflex/app_mixins/middleware.py,sha256=BKhe0jUFO1_TylEC48LUZyaeYyPmAYW-NV4H5Rw22
43
43
  reflex/app_mixins/mixin.py,sha256=R1YncalqDrbdPZvpKVbm72ZKmQZxYAWfuFq9JknzTqQ,305
44
44
  reflex/compiler/__init__.py,sha256=r8jqmDSFf09iV2lHlNhfc9XrTLjNxfDNwPYlxS4cmHE,27
45
45
  reflex/compiler/compiler.py,sha256=rE0aMl_xwq-qvPd6fgvUV_F4qaMiNKo_82LfCKbX258,29114
46
- reflex/compiler/templates.py,sha256=k4Z-vftCk1W_dBweQtHt7UExPkS-jgaBhUtbMhzg02w,20518
46
+ reflex/compiler/templates.py,sha256=ucfkEMOGA49ceUnL1KXDP_oHKxPrELSKWtRgtXUVHjk,20547
47
47
  reflex/compiler/utils.py,sha256=RmeUoZMHdIfnqPl-p0ToPgwd0FEFO5u0Xbb-J20UYdQ,19621
48
48
  reflex/components/__init__.py,sha256=eWpgWFbSQDj2TpGp6StEbxU7roQgzY7ZM0XIcIc5RE8,588
49
49
  reflex/components/__init__.pyi,sha256=7VFHtJGIjvGtD3IiPk848IPWYSCcPRT1EyPGljLhYlU,736
@@ -139,8 +139,8 @@ reflex/components/gridjs/__init__.py,sha256=xJwDm1AZ70L5-t9LLqZwGUtDpijbf1KuMYDT
139
139
  reflex/components/gridjs/datatable.py,sha256=7JKrRw1zkpFB0_wwoaIhrVrldsm7-dyi3PASgqLq8Hc,4224
140
140
  reflex/components/gridjs/datatable.pyi,sha256=kFgv82vCgfdWZaUq4bZ73G8X3mkw6ecvSRkZ9G9-28E,5185
141
141
  reflex/components/lucide/__init__.py,sha256=EggTK2MuQKQeOBLKW-mF0VaDK9zdWBImu1HO2dvHZbE,73
142
- reflex/components/lucide/icon.py,sha256=GYF1VPrKjXU8RQxBe0CZaM209Br6uw1Z2sc79bvdj3U,35340
143
- reflex/components/lucide/icon.pyi,sha256=MjWdRIf7t5hcWoUaxor5Lzh4yuWcES75cEUjLOXvmP8,38134
142
+ reflex/components/lucide/icon.py,sha256=oyTpIx5bJ-7D3VrXMrMpZ4aIKnv1GADBM97eSROnzZU,35358
143
+ reflex/components/lucide/icon.pyi,sha256=BAVUCJYalfn0nBpwglPiJNO_EfRdzM2eWHtaBy2Fa-o,38152
144
144
  reflex/components/markdown/__init__.py,sha256=Dfl1At5uYoY7H4ufZU_RY2KOGQDLtj75dsZ2BTqqAns,87
145
145
  reflex/components/markdown/markdown.py,sha256=kzvO2VnfCbxV7AcIMBJbxLtAlQ6U5T_QB_JTh8l-HJ4,15450
146
146
  reflex/components/markdown/markdown.pyi,sha256=oOlXZItHB0TPWsFz1Qjvr3KzG8sssthBp40UO_KkRIA,4322
@@ -317,7 +317,7 @@ reflex/constants/compiler.py,sha256=1FXPYQNotaSrTwWcOspA1gCVmEdoiWkNMbbrz_qU0YU,
317
317
  reflex/constants/config.py,sha256=8OIjiBdZZJrRVHsNBheMwopE9AwBFFzau0SXqXKcrPg,1715
318
318
  reflex/constants/custom_components.py,sha256=joJt4CEt1yKy7wsBH6vYo7_QRW0O_fWXrrTf0VY2q14,1317
319
319
  reflex/constants/event.py,sha256=tgoynWQi2L0_Kqc3XhXo7XXL76A-OKhJGHRrNjm7gFw,2885
320
- reflex/constants/installer.py,sha256=VC20iXTYue0GXqwlJIAwDuFrNM-eSzhHs3CsM_KQMwA,4191
320
+ reflex/constants/installer.py,sha256=gFX2gdhtm_frfs0cHxfEqSZbeokYaeBRJhSJOrxLmto,4191
321
321
  reflex/constants/route.py,sha256=UBjqaAOxiUxlDZCSY4O2JJChKvA4MZrhUU0E5rNvKbM,2682
322
322
  reflex/constants/state.py,sha256=VrEeYxXfE9ss8RmOHIXD4T6EGsV9PDqbtMCQMmZxW3I,383
323
323
  reflex/constants/utils.py,sha256=e1ChEvbHfmE_V2UJvCSUhD_qTVAIhEGPpRJSqdSd6PA,780
@@ -329,7 +329,7 @@ reflex/experimental/hooks.py,sha256=CHYGrAE5t8riltrJmDFgJ4D2Vhmhw-y3B3MSGNlOQow,
329
329
  reflex/istate/__init__.py,sha256=afq_pCS5B_REC-Kl3Rbaa538uWi59xNz4INeuENcWnk,2039
330
330
  reflex/istate/data.py,sha256=8RydiarP7f5ET5a3dfGpuuXdYZ7KHEWS6aENVoxRxGc,7918
331
331
  reflex/istate/dynamic.py,sha256=xOQ9upZVPf6ngqcLQZ9HdAAYmoWwJ8kRFPH34Q5HTiM,91
332
- reflex/istate/manager.py,sha256=xQhvpTqnsVI5DmnZOq39IiQ-g1d-gtihQdEGKKM6-oQ,30531
332
+ reflex/istate/manager.py,sha256=WyBBhDuq3cVuno3H-axeT8sqF0EqHR3MNZJw-B76cZs,30517
333
333
  reflex/istate/proxy.py,sha256=Q8JrV1m6drVcTNJL9JuN-nKUXclazs96OHl_fhR0UBk,25928
334
334
  reflex/istate/storage.py,sha256=gCPoiZxuG-Rw0y-Pz3OC7rv4o08dQ_jK1fE2u8Jhxqg,4339
335
335
  reflex/istate/wrappers.py,sha256=p8uuioXRbR5hperwbOJHUcWdu7hukLikQdoR7qrnKsI,909
@@ -347,10 +347,10 @@ reflex/utils/__init__.py,sha256=y-AHKiRQAhk2oAkvn7W8cRVTZVK625ff8tTwvZtO7S4,24
347
347
  reflex/utils/build.py,sha256=GLT2ycqgAe1cw__MFbfdlYrkzcTnY1oJ8cAv80jEcnQ,8641
348
348
  reflex/utils/codespaces.py,sha256=kEQ-j-jclTukFpXDlYgNp95kYMGDrQmP3VNEoYGZ1u4,3052
349
349
  reflex/utils/compat.py,sha256=aSJH_M6iomgHPQ4onQ153xh1MWqPi3HSYDzE68N6gZM,2635
350
- reflex/utils/console.py,sha256=RkTNfOVozsuGmq9GFSUDzBvL80twBYLRIcOxh0zK-q0,13185
350
+ reflex/utils/console.py,sha256=W41Ogj1Jk8tEOhXXy9dy4KCLYp5rn0NZQwbBqXbkwSI,13668
351
351
  reflex/utils/decorator.py,sha256=QUZntENupeW5FA5mNRTx0I1GzGKFQXhMjVg24_IIM5o,3957
352
352
  reflex/utils/exceptions.py,sha256=Wwu7Ji2xgq521bJKtU2NgjwhmFfnG8erirEVN2h8S-g,8884
353
- reflex/utils/exec.py,sha256=o0u81B6pHv5Yt982V1vFYEJDxgM-HxmM5KRUBbTYmZI,21965
353
+ reflex/utils/exec.py,sha256=x0I45o0JTB2vj2CYi5SdnTiRXIe8uu2pXCRFqESz5Uw,21960
354
354
  reflex/utils/export.py,sha256=Z2AHuhkxGQzOi9I90BejQ4qEcD0URr2i-ZU5qTJt7eQ,2562
355
355
  reflex/utils/format.py,sha256=-EC0tfx7VCIijcuJx9l-ArRnRnPKrrrW8RgsKwXIoBc,21115
356
356
  reflex/utils/frontend_skeleton.py,sha256=8sXRmVsKUiWf6O5rA1RRR_E4YjEsqDdIQlkUByp3aOI,8774
@@ -373,16 +373,16 @@ reflex/utils/templates.py,sha256=tWo3jO6laQX8b0gUsqHkio_hUQGIvFbmXC-lxiGcdRo,142
373
373
  reflex/utils/token_manager.py,sha256=o_HGbqT9WfYRmek2iY9nem4vDZMz8Q4Dra-eW1lKmuA,6999
374
374
  reflex/utils/types.py,sha256=Xh9jXSMBgwrR-Whn_5qAnjqQWzHiIJbm1b8qwMG4QmY,38511
375
375
  reflex/vars/__init__.py,sha256=85eXMt32bFoKtMdH3KxYRMD8mtnKyYiQcThPxJLoW1k,1359
376
- reflex/vars/base.py,sha256=CJT6SVtFDcBBpOtLw6jtszgZYifqeS3UJVsZ5y-BJQQ,113350
376
+ reflex/vars/base.py,sha256=LKnjDvg7_XKzPZlDD9WfYbWzyMoSjiZ7Bdt4sICjW60,113344
377
377
  reflex/vars/datetime.py,sha256=F2Jv_bfydipFSkIQ1F6x5MnSgFEyES9Vq5RG_uGH81E,5118
378
378
  reflex/vars/dep_tracking.py,sha256=LfDGgAGlqfC0DeiVcitRBcA1uCe1C3fNRARRekLgCz4,13738
379
379
  reflex/vars/function.py,sha256=0i-VkxHkDJmZtfQUwUfaF0rlS6WM8azjwQ8k7rEOkyk,13944
380
380
  reflex/vars/number.py,sha256=tO7pnvFaBsedq1HWT4skytnSqHWMluGEhUbjAUMx8XQ,28190
381
- reflex/vars/object.py,sha256=YblDxQYMajR19a7qjavXcM7-9A6MweAH1giw5fjPci4,17349
381
+ reflex/vars/object.py,sha256=p7dyn9rD6rVJlHQ_RcDTBgsU_AlbwYklGjx1HK3XxZg,16565
382
382
  reflex/vars/sequence.py,sha256=1kBrqihspyjyQ1XDqFPC8OpVGtZs_EVkOdIKBro5ilA,55249
383
383
  scripts/hatch_build.py,sha256=-4pxcLSFmirmujGpQX9UUxjhIC03tQ_fIQwVbHu9kc0,1861
384
- reflex-0.8.11.dist-info/METADATA,sha256=GmzTfJHUNWTweW9Rn_wvSW48OaRJ92p4pRd6IpLjL6k,12334
385
- reflex-0.8.11.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
386
- reflex-0.8.11.dist-info/entry_points.txt,sha256=Rxt4dXc7MLBNt5CSHTehVPuSe9Xqow4HLX55nD9tQQ0,45
387
- reflex-0.8.11.dist-info/licenses/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
388
- reflex-0.8.11.dist-info/RECORD,,
384
+ reflex-0.8.12a1.dist-info/METADATA,sha256=1mlLvn8KLKt-7gFEixs_LGbugmbrrPoBDb_pLdG684w,12336
385
+ reflex-0.8.12a1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
386
+ reflex-0.8.12a1.dist-info/entry_points.txt,sha256=Rxt4dXc7MLBNt5CSHTehVPuSe9Xqow4HLX55nD9tQQ0,45
387
+ reflex-0.8.12a1.dist-info/licenses/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
388
+ reflex-0.8.12a1.dist-info/RECORD,,