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

@@ -31,7 +31,7 @@ class ErrorBoundary(Component):
31
31
  on_click: Optional[EventType[[]]] = None,
32
32
  on_context_menu: Optional[EventType[[]]] = None,
33
33
  on_double_click: Optional[EventType[[]]] = None,
34
- on_error: Optional[EventType] = None,
34
+ on_error: Optional[EventType[[]]] = None,
35
35
  on_focus: Optional[EventType[[]]] = None,
36
36
  on_mount: Optional[EventType[[]]] = None,
37
37
  on_mouse_down: Optional[EventType[[]]] = None,
@@ -45,7 +45,6 @@ from reflex.event import (
45
45
  EventVar,
46
46
  call_event_fn,
47
47
  call_event_handler,
48
- empty_event,
49
48
  get_handler_args,
50
49
  )
51
50
  from reflex.style import Style, format_as_emotion
@@ -624,21 +623,21 @@ class Component(BaseComponent, ABC):
624
623
 
625
624
  """
626
625
  default_triggers = {
627
- EventTriggers.ON_FOCUS: empty_event,
628
- EventTriggers.ON_BLUR: empty_event,
629
- EventTriggers.ON_CLICK: empty_event,
630
- EventTriggers.ON_CONTEXT_MENU: empty_event,
631
- EventTriggers.ON_DOUBLE_CLICK: empty_event,
632
- EventTriggers.ON_MOUSE_DOWN: empty_event,
633
- EventTriggers.ON_MOUSE_ENTER: empty_event,
634
- EventTriggers.ON_MOUSE_LEAVE: empty_event,
635
- EventTriggers.ON_MOUSE_MOVE: empty_event,
636
- EventTriggers.ON_MOUSE_OUT: empty_event,
637
- EventTriggers.ON_MOUSE_OVER: empty_event,
638
- EventTriggers.ON_MOUSE_UP: empty_event,
639
- EventTriggers.ON_SCROLL: empty_event,
640
- EventTriggers.ON_MOUNT: empty_event,
641
- EventTriggers.ON_UNMOUNT: empty_event,
626
+ EventTriggers.ON_FOCUS: lambda: [],
627
+ EventTriggers.ON_BLUR: lambda: [],
628
+ EventTriggers.ON_CLICK: lambda: [],
629
+ EventTriggers.ON_CONTEXT_MENU: lambda: [],
630
+ EventTriggers.ON_DOUBLE_CLICK: lambda: [],
631
+ EventTriggers.ON_MOUSE_DOWN: lambda: [],
632
+ EventTriggers.ON_MOUSE_ENTER: lambda: [],
633
+ EventTriggers.ON_MOUSE_LEAVE: lambda: [],
634
+ EventTriggers.ON_MOUSE_MOVE: lambda: [],
635
+ EventTriggers.ON_MOUSE_OUT: lambda: [],
636
+ EventTriggers.ON_MOUSE_OVER: lambda: [],
637
+ EventTriggers.ON_MOUSE_UP: lambda: [],
638
+ EventTriggers.ON_SCROLL: lambda: [],
639
+ EventTriggers.ON_MOUNT: lambda: [],
640
+ EventTriggers.ON_UNMOUNT: lambda: [],
642
641
  }
643
642
 
644
643
  # Look for component specific triggers,
@@ -649,7 +648,7 @@ class Component(BaseComponent, ABC):
649
648
  annotation = field.annotation
650
649
  if (metadata := getattr(annotation, "__metadata__", None)) is not None:
651
650
  args_spec = metadata[0]
652
- default_triggers[field.name] = args_spec or (empty_event) # type: ignore
651
+ default_triggers[field.name] = args_spec or (lambda: [])
653
652
  return default_triggers
654
653
 
655
654
  def __repr__(self) -> str:
@@ -1706,7 +1705,7 @@ class CustomComponent(Component):
1706
1705
  value = self._create_event_chain(
1707
1706
  value=value,
1708
1707
  args_spec=event_triggers_in_component_declaration.get(
1709
- key, empty_event
1708
+ key, lambda: []
1710
1709
  ),
1711
1710
  )
1712
1711
  self.props[format.to_camel_case(key)] = value
@@ -139,20 +139,20 @@ class DataEditor(NoSSRComponent):
139
139
  on_cell_activated: Optional[EventType] = None,
140
140
  on_cell_clicked: Optional[EventType] = None,
141
141
  on_cell_context_menu: Optional[EventType] = None,
142
- on_cell_edited: Optional[EventType] = None,
142
+ on_cell_edited: Optional[EventType[[]]] = None,
143
143
  on_click: Optional[EventType[[]]] = None,
144
- on_column_resize: Optional[EventType] = None,
144
+ on_column_resize: Optional[EventType[[]]] = None,
145
145
  on_context_menu: Optional[EventType[[]]] = None,
146
- on_delete: Optional[EventType] = None,
146
+ on_delete: Optional[EventType[[]]] = None,
147
147
  on_double_click: Optional[EventType[[]]] = None,
148
- on_finished_editing: Optional[EventType] = None,
148
+ on_finished_editing: Optional[EventType[[]]] = None,
149
149
  on_focus: Optional[EventType[[]]] = None,
150
- on_group_header_clicked: Optional[EventType] = None,
151
- on_group_header_context_menu: Optional[EventType] = None,
152
- on_group_header_renamed: Optional[EventType] = None,
150
+ on_group_header_clicked: Optional[EventType[[]]] = None,
151
+ on_group_header_context_menu: Optional[EventType[[]]] = None,
152
+ on_group_header_renamed: Optional[EventType[[]]] = None,
153
153
  on_header_clicked: Optional[EventType] = None,
154
154
  on_header_context_menu: Optional[EventType] = None,
155
- on_header_menu_click: Optional[EventType] = None,
155
+ on_header_menu_click: Optional[EventType[[]]] = None,
156
156
  on_item_hovered: Optional[EventType] = None,
157
157
  on_mount: Optional[EventType[[]]] = None,
158
158
  on_mouse_down: Optional[EventType[[]]] = None,
@@ -58,7 +58,7 @@ class Audio(ReactPlayer):
58
58
  on_play: Optional[EventType[[]]] = None,
59
59
  on_playback_quality_change: Optional[EventType[[]]] = None,
60
60
  on_playback_rate_change: Optional[EventType[[]]] = None,
61
- on_progress: Optional[EventType] = None,
61
+ on_progress: Optional[EventType[[]]] = None,
62
62
  on_ready: Optional[EventType[[]]] = None,
63
63
  on_scroll: Optional[EventType[[]]] = None,
64
64
  on_seek: Optional[EventType] = None,
@@ -56,7 +56,7 @@ class ReactPlayer(NoSSRComponent):
56
56
  on_play: Optional[EventType[[]]] = None,
57
57
  on_playback_quality_change: Optional[EventType[[]]] = None,
58
58
  on_playback_rate_change: Optional[EventType[[]]] = None,
59
- on_progress: Optional[EventType] = None,
59
+ on_progress: Optional[EventType[[]]] = None,
60
60
  on_ready: Optional[EventType[[]]] = None,
61
61
  on_scroll: Optional[EventType[[]]] = None,
62
62
  on_seek: Optional[EventType] = None,
@@ -58,7 +58,7 @@ class Video(ReactPlayer):
58
58
  on_play: Optional[EventType[[]]] = None,
59
59
  on_playback_quality_change: Optional[EventType[[]]] = None,
60
60
  on_playback_rate_change: Optional[EventType[[]]] = None,
61
- on_progress: Optional[EventType] = None,
61
+ on_progress: Optional[EventType[[]]] = None,
62
62
  on_ready: Optional[EventType[[]]] = None,
63
63
  on_scroll: Optional[EventType[[]]] = None,
64
64
  on_seek: Optional[EventType] = None,
@@ -252,7 +252,7 @@ class Brush(Recharts):
252
252
  A dict mapping the event trigger to the var that is passed to the handler.
253
253
  """
254
254
  return {
255
- EventTriggers.ON_CHANGE: empty_event,
255
+ EventTriggers.ON_CHANGE: lambda: [],
256
256
  }
257
257
 
258
258
 
@@ -293,10 +293,10 @@ class Cartesian(Recharts):
293
293
  name: Var[Union[str, int]]
294
294
 
295
295
  # The customized event handler of animation start
296
- on_animation_start: EventHandler[empty_event]
296
+ on_animation_start: EventHandler[lambda: []]
297
297
 
298
298
  # The customized event handler of animation end
299
- on_animation_end: EventHandler[empty_event]
299
+ on_animation_end: EventHandler[lambda: []]
300
300
 
301
301
  # The customized event handler of click on the component in this group
302
302
  on_click: EventHandler[empty_event]
@@ -330,9 +330,9 @@ class RadarChart(ChartBase):
330
330
  A dict mapping the event trigger to the var that is passed to the handler.
331
331
  """
332
332
  return {
333
- EventTriggers.ON_CLICK: empty_event,
334
- EventTriggers.ON_MOUSE_ENTER: empty_event,
335
- EventTriggers.ON_MOUSE_LEAVE: empty_event,
333
+ EventTriggers.ON_CLICK: lambda: [],
334
+ EventTriggers.ON_MOUSE_ENTER: lambda: [],
335
+ EventTriggers.ON_MOUSE_LEAVE: lambda: [],
336
336
  }
337
337
 
338
338
 
@@ -419,14 +419,14 @@ class ScatterChart(ChartBase):
419
419
  A dict mapping the event trigger to the var that is passed to the handler.
420
420
  """
421
421
  return {
422
- EventTriggers.ON_CLICK: empty_event,
423
- EventTriggers.ON_MOUSE_DOWN: empty_event,
424
- EventTriggers.ON_MOUSE_UP: empty_event,
425
- EventTriggers.ON_MOUSE_MOVE: empty_event,
426
- EventTriggers.ON_MOUSE_OVER: empty_event,
427
- EventTriggers.ON_MOUSE_OUT: empty_event,
428
- EventTriggers.ON_MOUSE_ENTER: empty_event,
429
- EventTriggers.ON_MOUSE_LEAVE: empty_event,
422
+ EventTriggers.ON_CLICK: lambda: [],
423
+ EventTriggers.ON_MOUSE_DOWN: lambda: [],
424
+ EventTriggers.ON_MOUSE_UP: lambda: [],
425
+ EventTriggers.ON_MOUSE_MOVE: lambda: [],
426
+ EventTriggers.ON_MOUSE_OVER: lambda: [],
427
+ EventTriggers.ON_MOUSE_OUT: lambda: [],
428
+ EventTriggers.ON_MOUSE_ENTER: lambda: [],
429
+ EventTriggers.ON_MOUSE_LEAVE: lambda: [],
430
430
  }
431
431
 
432
432
 
@@ -103,14 +103,14 @@ class Pie(Recharts):
103
103
  A dict mapping the event trigger to the var that is passed to the handler.
104
104
  """
105
105
  return {
106
- EventTriggers.ON_ANIMATION_START: empty_event,
107
- EventTriggers.ON_ANIMATION_END: empty_event,
108
- EventTriggers.ON_CLICK: empty_event,
109
- EventTriggers.ON_MOUSE_MOVE: empty_event,
110
- EventTriggers.ON_MOUSE_OVER: empty_event,
111
- EventTriggers.ON_MOUSE_OUT: empty_event,
112
- EventTriggers.ON_MOUSE_ENTER: empty_event,
113
- EventTriggers.ON_MOUSE_LEAVE: empty_event,
106
+ EventTriggers.ON_ANIMATION_START: lambda: [],
107
+ EventTriggers.ON_ANIMATION_END: lambda: [],
108
+ EventTriggers.ON_CLICK: lambda: [],
109
+ EventTriggers.ON_MOUSE_MOVE: lambda: [],
110
+ EventTriggers.ON_MOUSE_OVER: lambda: [],
111
+ EventTriggers.ON_MOUSE_OUT: lambda: [],
112
+ EventTriggers.ON_MOUSE_ENTER: lambda: [],
113
+ EventTriggers.ON_MOUSE_LEAVE: lambda: [],
114
114
  }
115
115
 
116
116
 
@@ -167,8 +167,8 @@ class Radar(Recharts):
167
167
  A dict mapping the event trigger to the var that is passed to the handler.
168
168
  """
169
169
  return {
170
- EventTriggers.ON_ANIMATION_START: empty_event,
171
- EventTriggers.ON_ANIMATION_END: empty_event,
170
+ EventTriggers.ON_ANIMATION_START: lambda: [],
171
+ EventTriggers.ON_ANIMATION_END: lambda: [],
172
172
  }
173
173
 
174
174
 
@@ -219,14 +219,14 @@ class RadialBar(Recharts):
219
219
  A dict mapping the event trigger to the var that is passed to the handler.
220
220
  """
221
221
  return {
222
- EventTriggers.ON_CLICK: empty_event,
223
- EventTriggers.ON_MOUSE_MOVE: empty_event,
224
- EventTriggers.ON_MOUSE_OVER: empty_event,
225
- EventTriggers.ON_MOUSE_OUT: empty_event,
226
- EventTriggers.ON_MOUSE_ENTER: empty_event,
227
- EventTriggers.ON_MOUSE_LEAVE: empty_event,
228
- EventTriggers.ON_ANIMATION_START: empty_event,
229
- EventTriggers.ON_ANIMATION_END: empty_event,
222
+ EventTriggers.ON_CLICK: lambda: [],
223
+ EventTriggers.ON_MOUSE_MOVE: lambda: [],
224
+ EventTriggers.ON_MOUSE_OVER: lambda: [],
225
+ EventTriggers.ON_MOUSE_OUT: lambda: [],
226
+ EventTriggers.ON_MOUSE_ENTER: lambda: [],
227
+ EventTriggers.ON_MOUSE_LEAVE: lambda: [],
228
+ EventTriggers.ON_ANIMATION_START: lambda: [],
229
+ EventTriggers.ON_ANIMATION_END: lambda: [],
230
230
  }
231
231
 
232
232
 
@@ -392,12 +392,12 @@ class PolarRadiusAxis(Recharts):
392
392
  A dict mapping the event trigger to the var that is passed to the handler.
393
393
  """
394
394
  return {
395
- EventTriggers.ON_CLICK: empty_event,
396
- EventTriggers.ON_MOUSE_MOVE: empty_event,
397
- EventTriggers.ON_MOUSE_OVER: empty_event,
398
- EventTriggers.ON_MOUSE_OUT: empty_event,
399
- EventTriggers.ON_MOUSE_ENTER: empty_event,
400
- EventTriggers.ON_MOUSE_LEAVE: empty_event,
395
+ EventTriggers.ON_CLICK: lambda: [],
396
+ EventTriggers.ON_MOUSE_MOVE: lambda: [],
397
+ EventTriggers.ON_MOUSE_OVER: lambda: [],
398
+ EventTriggers.ON_MOUSE_OUT: lambda: [],
399
+ EventTriggers.ON_MOUSE_ENTER: lambda: [],
400
+ EventTriggers.ON_MOUSE_LEAVE: lambda: [],
401
401
  }
402
402
 
403
403
 
@@ -122,16 +122,16 @@ class Editor(NoSSRComponent):
122
122
  class_name: Optional[Any] = None,
123
123
  autofocus: Optional[bool] = None,
124
124
  custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
125
- on_blur: Optional[EventType] = None,
126
- on_change: Optional[EventType] = None,
125
+ on_blur: Optional[EventType[[]]] = None,
126
+ on_change: Optional[EventType[[]]] = None,
127
127
  on_click: Optional[EventType[[]]] = None,
128
128
  on_context_menu: Optional[EventType[[]]] = None,
129
- on_copy: Optional[EventType] = None,
130
- on_cut: Optional[EventType] = None,
129
+ on_copy: Optional[EventType[[]]] = None,
130
+ on_cut: Optional[EventType[[]]] = None,
131
131
  on_double_click: Optional[EventType[[]]] = None,
132
132
  on_focus: Optional[EventType[[]]] = None,
133
- on_input: Optional[EventType] = None,
134
- on_load: Optional[EventType] = None,
133
+ on_input: Optional[EventType[[]]] = None,
134
+ on_load: Optional[EventType[[]]] = None,
135
135
  on_mount: Optional[EventType[[]]] = None,
136
136
  on_mouse_down: Optional[EventType[[]]] = None,
137
137
  on_mouse_enter: Optional[EventType[[]]] = None,
@@ -140,12 +140,12 @@ class Editor(NoSSRComponent):
140
140
  on_mouse_out: Optional[EventType[[]]] = None,
141
141
  on_mouse_over: Optional[EventType[[]]] = None,
142
142
  on_mouse_up: Optional[EventType[[]]] = None,
143
- on_paste: Optional[EventType] = None,
144
- on_resize_editor: Optional[EventType] = None,
143
+ on_paste: Optional[EventType[[]]] = None,
144
+ on_resize_editor: Optional[EventType[[]]] = None,
145
145
  on_scroll: Optional[EventType[[]]] = None,
146
146
  on_unmount: Optional[EventType[[]]] = None,
147
- toggle_code_view: Optional[EventType] = None,
148
- toggle_full_screen: Optional[EventType] = None,
147
+ toggle_code_view: Optional[EventType[[]]] = None,
148
+ toggle_full_screen: Optional[EventType[[]]] = None,
149
149
  **props,
150
150
  ) -> "Editor":
151
151
  """Create an instance of Editor. No children allowed.
reflex/event.py CHANGED
@@ -22,7 +22,6 @@ from typing import (
22
22
  TypeVar,
23
23
  Union,
24
24
  get_type_hints,
25
- overload,
26
25
  )
27
26
 
28
27
  from typing_extensions import ParamSpec, get_args, get_origin
@@ -33,17 +32,14 @@ from reflex.utils.exceptions import EventFnArgMismatch, EventHandlerArgMismatch
33
32
  from reflex.utils.types import ArgsSpec, GenericType
34
33
  from reflex.vars import VarData
35
34
  from reflex.vars.base import (
35
+ CachedVarOperation,
36
36
  LiteralNoneVar,
37
37
  LiteralVar,
38
38
  ToOperation,
39
39
  Var,
40
+ cached_property_no_lock,
40
41
  )
41
- from reflex.vars.function import (
42
- ArgsFunctionOperation,
43
- FunctionStringVar,
44
- FunctionVar,
45
- VarOperationCall,
46
- )
42
+ from reflex.vars.function import ArgsFunctionOperation, FunctionStringVar, FunctionVar
47
43
  from reflex.vars.object import ObjectVar
48
44
 
49
45
  try:
@@ -399,6 +395,11 @@ class EventChain(EventActionsMixin):
399
395
  invocation: Optional[Var] = dataclasses.field(default=None)
400
396
 
401
397
 
398
+ # These chains can be used for their side effects when no other events are desired.
399
+ stop_propagation = EventChain(events=[], args_spec=lambda: []).stop_propagation
400
+ prevent_default = EventChain(events=[], args_spec=lambda: []).prevent_default
401
+
402
+
402
403
  @dataclasses.dataclass(
403
404
  init=True,
404
405
  frozen=True,
@@ -462,11 +463,6 @@ def empty_event() -> Tuple[()]:
462
463
  return tuple() # type: ignore
463
464
 
464
465
 
465
- # These chains can be used for their side effects when no other events are desired.
466
- stop_propagation = EventChain(events=[], args_spec=empty_event).stop_propagation
467
- prevent_default = EventChain(events=[], args_spec=empty_event).prevent_default
468
-
469
-
470
466
  T = TypeVar("T")
471
467
 
472
468
 
@@ -1045,8 +1041,7 @@ def resolve_annotation(annotations: dict[str, Any], arg_name: str):
1045
1041
  deprecation_version="0.6.3",
1046
1042
  removal_version="0.7.0",
1047
1043
  )
1048
- # Allow arbitrary attribute access two levels deep until removed.
1049
- return Dict[str, dict]
1044
+ return JavascriptInputEvent
1050
1045
  return annotation
1051
1046
 
1052
1047
 
@@ -1263,7 +1258,7 @@ class EventVar(ObjectVar):
1263
1258
  frozen=True,
1264
1259
  **{"slots": True} if sys.version_info >= (3, 10) else {},
1265
1260
  )
1266
- class LiteralEventVar(VarOperationCall, LiteralVar, EventVar):
1261
+ class LiteralEventVar(CachedVarOperation, LiteralVar, EventVar):
1267
1262
  """A literal event var."""
1268
1263
 
1269
1264
  _var_value: EventSpec = dataclasses.field(default=None) # type: ignore
@@ -1276,6 +1271,35 @@ class LiteralEventVar(VarOperationCall, LiteralVar, EventVar):
1276
1271
  """
1277
1272
  return hash((self.__class__.__name__, self._js_expr))
1278
1273
 
1274
+ @cached_property_no_lock
1275
+ def _cached_var_name(self) -> str:
1276
+ """The name of the var.
1277
+
1278
+ Returns:
1279
+ The name of the var.
1280
+ """
1281
+ return str(
1282
+ FunctionStringVar("Event").call(
1283
+ # event handler name
1284
+ ".".join(
1285
+ filter(
1286
+ None,
1287
+ format.get_event_handler_parts(self._var_value.handler),
1288
+ )
1289
+ ),
1290
+ # event handler args
1291
+ {str(name): value for name, value in self._var_value.args},
1292
+ # event actions
1293
+ self._var_value.event_actions,
1294
+ # client handler name
1295
+ *(
1296
+ [self._var_value.client_handler_name]
1297
+ if self._var_value.client_handler_name
1298
+ else []
1299
+ ),
1300
+ )
1301
+ )
1302
+
1279
1303
  @classmethod
1280
1304
  def create(
1281
1305
  cls,
@@ -1296,22 +1320,6 @@ class LiteralEventVar(VarOperationCall, LiteralVar, EventVar):
1296
1320
  _var_type=EventSpec,
1297
1321
  _var_data=_var_data,
1298
1322
  _var_value=value,
1299
- _func=FunctionStringVar("Event"),
1300
- _args=(
1301
- # event handler name
1302
- ".".join(
1303
- filter(
1304
- None,
1305
- format.get_event_handler_parts(value.handler),
1306
- )
1307
- ),
1308
- # event handler args
1309
- {str(name): value for name, value in value.args},
1310
- # event actions
1311
- value.event_actions,
1312
- # client handler name
1313
- *([value.client_handler_name] if value.client_handler_name else []),
1314
- ),
1315
1323
  )
1316
1324
 
1317
1325
 
@@ -1324,10 +1332,7 @@ class EventChainVar(FunctionVar):
1324
1332
  frozen=True,
1325
1333
  **{"slots": True} if sys.version_info >= (3, 10) else {},
1326
1334
  )
1327
- # Note: LiteralVar is second in the inheritance list allowing it act like a
1328
- # CachedVarOperation (ArgsFunctionOperation) and get the _js_expr from the
1329
- # _cached_var_name property.
1330
- class LiteralEventChainVar(ArgsFunctionOperation, LiteralVar, EventChainVar):
1335
+ class LiteralEventChainVar(CachedVarOperation, LiteralVar, EventChainVar):
1331
1336
  """A literal event chain var."""
1332
1337
 
1333
1338
  _var_value: EventChain = dataclasses.field(default=None) # type: ignore
@@ -1340,22 +1345,14 @@ class LiteralEventChainVar(ArgsFunctionOperation, LiteralVar, EventChainVar):
1340
1345
  """
1341
1346
  return hash((self.__class__.__name__, self._js_expr))
1342
1347
 
1343
- @classmethod
1344
- def create(
1345
- cls,
1346
- value: EventChain,
1347
- _var_data: VarData | None = None,
1348
- ) -> LiteralEventChainVar:
1349
- """Create a new LiteralEventChainVar instance.
1350
-
1351
- Args:
1352
- value: The value of the var.
1353
- _var_data: The data of the var.
1348
+ @cached_property_no_lock
1349
+ def _cached_var_name(self) -> str:
1350
+ """The name of the var.
1354
1351
 
1355
1352
  Returns:
1356
- The created LiteralEventChainVar instance.
1353
+ The name of the var.
1357
1354
  """
1358
- sig = inspect.signature(value.args_spec) # type: ignore
1355
+ sig = inspect.signature(self._var_value.args_spec) # type: ignore
1359
1356
  if sig.parameters:
1360
1357
  arg_def = tuple((f"_{p}" for p in sig.parameters))
1361
1358
  arg_def_expr = LiteralVar.create([Var(_js_expr=arg) for arg in arg_def])
@@ -1365,21 +1362,43 @@ class LiteralEventChainVar(ArgsFunctionOperation, LiteralVar, EventChainVar):
1365
1362
  arg_def = ("...args",)
1366
1363
  arg_def_expr = Var(_js_expr="args")
1367
1364
 
1368
- if value.invocation is None:
1365
+ if self._var_value.invocation is None:
1369
1366
  invocation = FunctionStringVar.create("addEvents")
1370
1367
  else:
1371
- invocation = value.invocation
1368
+ invocation = self._var_value.invocation
1369
+
1370
+ return str(
1371
+ ArgsFunctionOperation.create(
1372
+ arg_def,
1373
+ invocation.call(
1374
+ LiteralVar.create(
1375
+ [LiteralVar.create(event) for event in self._var_value.events]
1376
+ ),
1377
+ arg_def_expr,
1378
+ self._var_value.event_actions,
1379
+ ),
1380
+ )
1381
+ )
1372
1382
 
1383
+ @classmethod
1384
+ def create(
1385
+ cls,
1386
+ value: EventChain,
1387
+ _var_data: VarData | None = None,
1388
+ ) -> LiteralEventChainVar:
1389
+ """Create a new LiteralEventChainVar instance.
1390
+
1391
+ Args:
1392
+ value: The value of the var.
1393
+ _var_data: The data of the var.
1394
+
1395
+ Returns:
1396
+ The created LiteralEventChainVar instance.
1397
+ """
1373
1398
  return cls(
1374
1399
  _js_expr="",
1375
1400
  _var_type=EventChain,
1376
1401
  _var_data=_var_data,
1377
- _args_names=arg_def,
1378
- _return_expr=invocation.call(
1379
- LiteralVar.create([LiteralVar.create(event) for event in value.events]),
1380
- arg_def_expr,
1381
- value.event_actions,
1382
- ),
1383
1402
  _var_value=value,
1384
1403
  )
1385
1404
 
@@ -1412,17 +1431,12 @@ class ToEventChainVarOperation(ToOperation, EventChainVar):
1412
1431
 
1413
1432
  G = ParamSpec("G")
1414
1433
 
1415
- IndividualEventType = Union[EventSpec, EventHandler, Callable[G, Any], Var[Any]]
1434
+ IndividualEventType = Union[EventSpec, EventHandler, Callable[G, Any], Var]
1416
1435
 
1417
1436
  EventType = Union[IndividualEventType[G], List[IndividualEventType[G]]]
1418
1437
 
1419
1438
  P = ParamSpec("P")
1420
1439
  T = TypeVar("T")
1421
- V = TypeVar("V")
1422
- V2 = TypeVar("V2")
1423
- V3 = TypeVar("V3")
1424
- V4 = TypeVar("V4")
1425
- V5 = TypeVar("V5")
1426
1440
 
1427
1441
  if sys.version_info >= (3, 10):
1428
1442
  from typing import Concatenate
@@ -1438,55 +1452,7 @@ if sys.version_info >= (3, 10):
1438
1452
  """
1439
1453
  self.func = func
1440
1454
 
1441
- @overload
1442
- def __get__(
1443
- self: EventCallback[[V], T], instance: None, owner
1444
- ) -> Callable[[Union[Var[V], V]], EventSpec]: ...
1445
-
1446
- @overload
1447
- def __get__(
1448
- self: EventCallback[[V, V2], T], instance: None, owner
1449
- ) -> Callable[[Union[Var[V], V], Union[Var[V2], V2]], EventSpec]: ...
1450
-
1451
- @overload
1452
- def __get__(
1453
- self: EventCallback[[V, V2, V3], T], instance: None, owner
1454
- ) -> Callable[
1455
- [Union[Var[V], V], Union[Var[V2], V2], Union[Var[V3], V3]],
1456
- EventSpec,
1457
- ]: ...
1458
-
1459
- @overload
1460
- def __get__(
1461
- self: EventCallback[[V, V2, V3, V4], T], instance: None, owner
1462
- ) -> Callable[
1463
- [
1464
- Union[Var[V], V],
1465
- Union[Var[V2], V2],
1466
- Union[Var[V3], V3],
1467
- Union[Var[V4], V4],
1468
- ],
1469
- EventSpec,
1470
- ]: ...
1471
-
1472
- @overload
1473
- def __get__(
1474
- self: EventCallback[[V, V2, V3, V4, V5], T], instance: None, owner
1475
- ) -> Callable[
1476
- [
1477
- Union[Var[V], V],
1478
- Union[Var[V2], V2],
1479
- Union[Var[V3], V3],
1480
- Union[Var[V4], V4],
1481
- Union[Var[V5], V5],
1482
- ],
1483
- EventSpec,
1484
- ]: ...
1485
-
1486
- @overload
1487
- def __get__(self, instance, owner) -> Callable[P, T]: ...
1488
-
1489
- def __get__(self, instance, owner) -> Callable:
1455
+ def __get__(self, instance, owner) -> Callable[P, T]:
1490
1456
  """Get the function with the instance bound to it.
1491
1457
 
1492
1458
  Args:
reflex/state.py CHANGED
@@ -2566,11 +2566,9 @@ class StateManager(Base, ABC):
2566
2566
  The state manager (either disk, memory or redis).
2567
2567
  """
2568
2568
  config = get_config()
2569
- if prerequisites.parse_redis_url() is not None:
2570
- config.state_manager_mode = constants.StateManagerMode.REDIS
2571
- if config.state_manager_mode == constants.StateManagerMode.MEMORY:
2572
- return StateManagerMemory(state=state)
2573
2569
  if config.state_manager_mode == constants.StateManagerMode.DISK:
2570
+ return StateManagerMemory(state=state)
2571
+ if config.state_manager_mode == constants.StateManagerMode.MEMORY:
2574
2572
  return StateManagerDisk(state=state)
2575
2573
  if config.state_manager_mode == constants.StateManagerMode.REDIS:
2576
2574
  redis = prerequisites.get_redis()
reflex/style.py CHANGED
@@ -10,7 +10,6 @@ from reflex.event import EventChain, EventHandler
10
10
  from reflex.utils import format
11
11
  from reflex.utils.exceptions import ReflexError
12
12
  from reflex.utils.imports import ImportVar
13
- from reflex.utils.types import get_origin
14
13
  from reflex.vars import VarData
15
14
  from reflex.vars.base import CallableVar, LiteralVar, Var
16
15
  from reflex.vars.function import FunctionVar
@@ -197,10 +196,6 @@ def convert(
197
196
  isinstance(value, Breakpoints)
198
197
  and all(not isinstance(v, dict) for v in value.values())
199
198
  )
200
- or (
201
- isinstance(value, ObjectVar)
202
- and not issubclass(get_origin(value._var_type) or value._var_type, dict)
203
- )
204
199
  else (key,)
205
200
  )
206
201
 
@@ -429,7 +429,7 @@ def _generate_component_create_functiondef(
429
429
 
430
430
  def figure_out_return_type(annotation: Any):
431
431
  if inspect.isclass(annotation) and issubclass(annotation, inspect._empty):
432
- return ast.Name(id="Optional[EventType]")
432
+ return ast.Name(id="Optional[EventType[[]]]")
433
433
  if isinstance(annotation, str) and annotation.startswith("Tuple["):
434
434
  inside_of_tuple = annotation.removeprefix("Tuple[").removesuffix("]")
435
435
 
reflex/vars/sequence.py CHANGED
@@ -1155,7 +1155,7 @@ class ArrayVar(Var[ARRAY_VAR_TYPE]):
1155
1155
  function_var = ArgsFunctionOperation.create(tuple(), return_value)
1156
1156
  else:
1157
1157
  # generic number var
1158
- number_var = Var("").to(NumberVar, int)
1158
+ number_var = Var("").to(NumberVar)
1159
1159
 
1160
1160
  first_arg_type = self[number_var]._var_type
1161
1161
 
@@ -1167,10 +1167,7 @@ class ArrayVar(Var[ARRAY_VAR_TYPE]):
1167
1167
  _var_type=first_arg_type,
1168
1168
  ).guess_type()
1169
1169
 
1170
- function_var = ArgsFunctionOperation.create(
1171
- (arg_name,),
1172
- Var.create(fn(first_arg)),
1173
- )
1170
+ function_var = ArgsFunctionOperation.create((arg_name,), fn(first_arg))
1174
1171
 
1175
1172
  return map_array_operation(self, function_var)
1176
1173
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: reflex
3
- Version: 0.6.3
3
+ Version: 0.6.3a1
4
4
  Summary: Web apps in pure Python.
5
5
  Home-page: https://reflex.dev
6
6
  License: Apache-2.0
@@ -61,7 +61,7 @@ reflex/components/base/body.pyi,sha256=FOa5b0NkZBh8akESGbgjMroq7SX9OptdurEUIbUWm
61
61
  reflex/components/base/document.py,sha256=_Cl9iMXwXdxGMrCLAT20v35FX3MGtbqh2dfWenDtSKc,583
62
62
  reflex/components/base/document.pyi,sha256=8oLOhbSHo7uVnoRD0g-4ze-3QWe1NI6FG5vnNbUa4PM,9358
63
63
  reflex/components/base/error_boundary.py,sha256=JFOeHwdaf9ugfxvK_52Bdu1V9NY75CAueRfMnp2gCFU,2323
64
- reflex/components/base/error_boundary.pyi,sha256=J0AxxpdvGykbeu-AI7HwjdXKNTX8tutq62HvH0IHNfY,2684
64
+ reflex/components/base/error_boundary.pyi,sha256=g6vi7JYq6qEShagXwKKF_EeMHCeaTnVX2dMfnPXALvc,2688
65
65
  reflex/components/base/fragment.py,sha256=ys7wkokq-N8WBxa9fqkEaNIrBlSximyD7vqlFVe02hQ,342
66
66
  reflex/components/base/fragment.pyi,sha256=NLwU-NiIqyBjuXZZg7u-LizZRImpYrqBNq8m9MSyIb4,2236
67
67
  reflex/components/base/head.py,sha256=BGjOksNZEo_AZcYEuxNH7onsRnfyxJkJzl4cTd_EwiQ,318
@@ -72,7 +72,7 @@ reflex/components/base/meta.py,sha256=GvcBACA4Q3ptW_EXdJ6Wpolhh0x6yMW7QsCasG3keb
72
72
  reflex/components/base/meta.pyi,sha256=k1zDuRCANHHb-4u6mf2oeN10tnPy3wXdpachYuJmh98,8844
73
73
  reflex/components/base/script.py,sha256=79Ae72us8sKFQfgPuSilWvJ7ePuQ6JnbLy_cfRSL5qk,2405
74
74
  reflex/components/base/script.pyi,sha256=WUGapktdmSODItM2OfnQOox1uW6ShdZWxegs1CUFG-o,3436
75
- reflex/components/component.py,sha256=e3ThjH_H_WoYCG58-815i-QBAzvTUTumRqxDRmW4qoM,79784
75
+ reflex/components/component.py,sha256=5Glh2aUnGDiSFrkFNf8sGXQB5afv-WhcRYOdbCpuEL4,79734
76
76
  reflex/components/core/__init__.py,sha256=msAsWb_6bmZGSei4gEpyYczuJ0VNEZtg20fRtyb3wwM,1285
77
77
  reflex/components/core/__init__.pyi,sha256=hmng2kT4e3iBSSI_x9t7g2-58G6Cb4rhuwz_APJ-UZM,1994
78
78
  reflex/components/core/banner.py,sha256=aYcpFdJ0C1sarfE8DpODYdIK1OJyGPufhGWpoptc4cQ,8751
@@ -99,7 +99,7 @@ reflex/components/datadisplay/__init__.pyi,sha256=rYMwO_X4NvUex6IL2MMTnhdFRp8Lz5
99
99
  reflex/components/datadisplay/code.py,sha256=QRpfbmy0_03AONV-K-WRrRwKw_T0DYoE9hlV6TVBKx4,13831
100
100
  reflex/components/datadisplay/code.pyi,sha256=UNxWcQVf2sLLTOaMcczDQnwZi7ltXJHTQriBs_lkKOw,50250
101
101
  reflex/components/datadisplay/dataeditor.py,sha256=UHzAxsEUdbMpH9xJjaDmgLs8jA9QzalehVESlDBa_ho,12669
102
- reflex/components/datadisplay/dataeditor.pyi,sha256=_PNFjIfgEXjsMJtI4j3-CWkZRxf0XpZ9NNg3McnXK-U,10060
102
+ reflex/components/datadisplay/dataeditor.pyi,sha256=KpKGVdY4KPzMrePC02vfL3dzmzReDKXbdytoNnDCyHQ,10092
103
103
  reflex/components/datadisplay/logo.py,sha256=r5DXm6C0b87J63iE_Pac5WZBAfu6gp8_OC_W3hLsc-o,1728
104
104
  reflex/components/dynamic.py,sha256=1IevF00Ok81_f4dWDRdyicFzumJ0iKgY80yjpjEB_sw,6472
105
105
  reflex/components/el/__init__.py,sha256=nfIjf_cyieEmxptKjA6wRjoongswXv4X3n6vDmsdarI,416
@@ -289,20 +289,20 @@ reflex/components/radix/themes/typography/text.py,sha256=p0iM7LyoDBDAU3RSYCB6_yp
289
289
  reflex/components/radix/themes/typography/text.pyi,sha256=NQtuCLOJa0w2hyYff4PdNUxhC3JQqpSiL6dfTKfg0tU,51665
290
290
  reflex/components/react_player/__init__.py,sha256=W4wa5G4R_cl5tE1vfR4tY_RlvWLVsyTxzTAJ67q2gnc,144
291
291
  reflex/components/react_player/audio.py,sha256=qw_H2_W0AyMsHehA_Q9jskN4_N5TYgkzeisOxhepkPs,186
292
- reflex/components/react_player/audio.pyi,sha256=869c1s23NxdyovgPxhco5FSEHophVv0wpgHbV9buvxA,4167
292
+ reflex/components/react_player/audio.pyi,sha256=Y6KpG2QKUZn6bJwiDauK9f_AnlqzQrQlhUoiVTT9Do0,4171
293
293
  reflex/components/react_player/react_player.py,sha256=7MZGGBcHOrsSU5j2SbK91qU5yuybsY09nLBVczUVlCQ,3147
294
- reflex/components/react_player/react_player.pyi,sha256=WCaPHn6C0HJEQdOVvpTwarC1KmW3Me_m3KZH3wfAj8c,4166
294
+ reflex/components/react_player/react_player.pyi,sha256=tFBYMu9n1o_ztsMeRUJHe6yDcy5TUZthkEUG3LUh0-M,4170
295
295
  reflex/components/react_player/video.py,sha256=2V6tiwCwrzu9WPI1Wmuepk8kQ6M6K8nnMdLLjEbrxrw,186
296
- reflex/components/react_player/video.pyi,sha256=fvw4YWQIt5H3XfRyK5gvQiKRb07I1E3CU07n0hFYw_A,4167
296
+ reflex/components/react_player/video.pyi,sha256=RwbkAWZl5aQdjeuxUD3uDDYe6twAHUOPsYkxk_J_vZU,4171
297
297
  reflex/components/recharts/__init__.py,sha256=GUifJIUtG91u4K55junZ_-l5ArcRFFDIyjS4y0lyAL4,2644
298
298
  reflex/components/recharts/__init__.pyi,sha256=FUu_BmjhVTbjU92KH2NnYEFr4eeZLMkthX8iIwswDIM,5076
299
- reflex/components/recharts/cartesian.py,sha256=_ey6MttGM2hIlWYN-qMEd_ydBMDz-nKRqgh19xGnpI8,34376
299
+ reflex/components/recharts/cartesian.py,sha256=RKTVk8eClMobYo5FpVIoQra59nc9joNdpFscTjwb3bE,34373
300
300
  reflex/components/recharts/cartesian.pyi,sha256=WzuLeFS8XFCrzMmU4pDsT3lZbxeCZASFTVBvsTKpts4,102105
301
- reflex/components/recharts/charts.py,sha256=HDwixHGajY8vTinlIXLCuxNvAszN_bgBjR1GOPflYF0,18363
301
+ reflex/components/recharts/charts.py,sha256=T1G9gUWoGLfUtmHFKTMA59ickM_7X7f7Jrl5GUgcR4o,18352
302
302
  reflex/components/recharts/charts.pyi,sha256=e5BQ1mtrV3zbQRc5QjLxvVjD5R6Fco3No5YWPZY-2pc,45004
303
303
  reflex/components/recharts/general.py,sha256=KBh3X0c_-1czzPV7o-IiPNkGiL3hjpFvGhcICZcw1YI,8352
304
304
  reflex/components/recharts/general.pyi,sha256=wlZhxmCTlQF0ua-4HDiTmO5ALecOCeD2UbPHn8MLVGg,21197
305
- reflex/components/recharts/polar.py,sha256=n9IN8TdiERPCWnrcfgwDo17ykmTuuQ0AX9fgvgEklRE,15457
305
+ reflex/components/recharts/polar.py,sha256=-uxKaDbMtaHlKU2aFJUD-jg6j64TqUic7OCH_Dhk_kw,15433
306
306
  reflex/components/recharts/polar.pyi,sha256=jWMhbagrcCI_HZ1Mqs4Glr63btKvZQlz74_39XCtFws,28017
307
307
  reflex/components/recharts/recharts.py,sha256=_zRq9w1kOhF3K5Ec440Zzl4ouIbZa_6kUszVDrEUbz4,3595
308
308
  reflex/components/recharts/recharts.pyi,sha256=lnGH7dlqYelIIgvW5tG_35t8HiIynCwjj-5I7_ZNz1I,6806
@@ -311,7 +311,7 @@ reflex/components/sonner/toast.py,sha256=R0rHFMxp5-WTxnXVjxPrCInW2SfK8CozSlrIasV
311
311
  reflex/components/sonner/toast.pyi,sha256=vV7JmtBV_Aq50o8D1sWGhyzNz1uKChG3bBsN1rsiydQ,7363
312
312
  reflex/components/suneditor/__init__.py,sha256=htkPzy0O_1ro1nw8w8gFPjYhg5xywMpsUfc4Dl3OHuw,109
313
313
  reflex/components/suneditor/editor.py,sha256=Qode9LeucEZPFMClH4or64FvtO4q8z2p24P2sEY2FdM,7530
314
- reflex/components/suneditor/editor.pyi,sha256=ehTQ8v8PXNnBiU-qGr4-AHdHKgUEY5aJ8UllohKpZwU,8394
314
+ reflex/components/suneditor/editor.pyi,sha256=CsSOxUDqRAsGb8l7tonokI2Hl8INFzd_wR3ZkwSKIQ4,8434
315
315
  reflex/components/tags/__init__.py,sha256=Pc0JU-Tv_W7KCsydXgbKmu7w2VtHNkI6Cx2hTkNhW_Q,152
316
316
  reflex/components/tags/cond_tag.py,sha256=oYsiTxANrByBg7NwuXVk2yGN5n2u7FHreeG1PdmfzIo,607
317
317
  reflex/components/tags/iter_tag.py,sha256=jS-Y08cmzzb8v3cp52q5PaVmwirpg4n3Br9JWASJqow,4463
@@ -332,7 +332,7 @@ reflex/constants/state.py,sha256=H4EtcrF_hPa6IRLlIHbXd0iEyRtum_qWvA5MHXv_KD8,187
332
332
  reflex/constants/style.py,sha256=WS_STDQ0byFIotnTSio2kQR_oK3bJE7mrMSeK0W1H00,475
333
333
  reflex/custom_components/__init__.py,sha256=R4zsvOi4dfPmHc18KEphohXnQFBPnUCb50cMR5hSLDE,36
334
334
  reflex/custom_components/custom_components.py,sha256=jju21QgdM8mkpMfaboTwEPYASsvb46yvGt53seMI6pg,33000
335
- reflex/event.py,sha256=pG914eiWPz9EzH0Wh_nruk7pl2cKcDoBazeZeJBLQ0o,45771
335
+ reflex/event.py,sha256=nWXfzUjc-rRzWoGRhkuWuSUPKZfi6rgZhiuObtq2o4I,44663
336
336
  reflex/experimental/__init__.py,sha256=usDkf5yRMHKHjdRa_KfedFeD-urOMAKBuNfsghzvre4,1974
337
337
  reflex/experimental/assets.py,sha256=GZRdfIs03HXCSShyvdztu6vFsJ9Z8W4ZFCjJGZrNURY,1837
338
338
  reflex/experimental/client_state.py,sha256=dHq5Denp9vJs70j_cZws9XLeGX749GsiL7YLdbL5Ovo,7903
@@ -349,8 +349,8 @@ reflex/model.py,sha256=I102SQwtUaidue0JZLJD3QJRoTPYvqKaT7U9yKUIH9s,14176
349
349
  reflex/page.py,sha256=25dKsOqVcY1Pz05T0gjUEk8zKHcfyd1c0nYIXW7jY5A,2332
350
350
  reflex/reflex.py,sha256=qlyEkg5ZqaYpKalNf2QIsAiPBIuQCxIyPjLCSedAUpU,18793
351
351
  reflex/route.py,sha256=WZS7stKgO94nekFFYHaOqNgN3zZGpJb3YpGF4ViTHmw,4198
352
- reflex/state.py,sha256=smo6uHm03VtGaI0_9lnq8wNH-Vp8y5aSveX1LloNZE0,130860
353
- reflex/style.py,sha256=kxjfOJUiw_Y8sRbVzGTzSF-DiaNrL4hEB7T5qp33NJ0,12694
352
+ reflex/state.py,sha256=GcMWmGm5-3jqLa4qOghb0YQOqpuDfKtKbUvuHA7PrDU,130731
353
+ reflex/style.py,sha256=MxZyxvU0g6Vf_kWhsD5RFJRD6NjmJgfrlOclc53lSIw,12487
354
354
  reflex/testing.py,sha256=JR2I4adxEaGs9d4wOzmwIVrDWIrBJ0uGCIRwLrkmmSU,34785
355
355
  reflex/utils/__init__.py,sha256=y-AHKiRQAhk2oAkvn7W8cRVTZVK625ff8tTwvZtO7S4,24
356
356
  reflex/utils/build.py,sha256=llkaIPC9o-SIY83ThUMEDIDpWaCDpaUNJdog0u_5tPM,8632
@@ -367,7 +367,7 @@ reflex/utils/net.py,sha256=UFCfaOjvRDVLTeTzLKJ5iDAWtPNuhng5gOs-pIMYQek,1267
367
367
  reflex/utils/path_ops.py,sha256=dvcTeVSNoGj4u3AQjUuixNxeVcwnOK_2lbz3ugD1vUE,6151
368
368
  reflex/utils/prerequisites.py,sha256=GMGgNqRqX9OyAdMmx9NDP6cbDYJBVKia7Act03cCsrU,52792
369
369
  reflex/utils/processes.py,sha256=wBvkxHUnuo28nFNSIyx53RpiNUa08bmvWQxpx8LWQhk,13249
370
- reflex/utils/pyi_generator.py,sha256=e-oq0zJZgfXHmmxYF3uRSZQkGbKjhEyIUr6t_BldoEo,35977
370
+ reflex/utils/pyi_generator.py,sha256=n7PFG0rDtgD2ndKYNshhrdDaiwDyooFKa3THp2CXFUw,35981
371
371
  reflex/utils/redir.py,sha256=B0K9m6ejDW0ABeclBb4AsRRORvx_stCTWsrDe1YvkzY,1679
372
372
  reflex/utils/registry.py,sha256=mJ7yz1nSIHsxsRM5_n2RrXBqtUpu3HfvESglle_HR2U,1453
373
373
  reflex/utils/serializers.py,sha256=v377C_EcuAyrt6RddAijVXDnTdO0k3pLlXzQ-NfhdBg,10109
@@ -378,9 +378,9 @@ reflex/vars/base.py,sha256=GDbhigL9qELTz-6W1FN5SuPARrzIHpJNU2Hh8ErzGy8,87277
378
378
  reflex/vars/function.py,sha256=GjTGRjDhMRACSPBIGNYgQzjKI2WgfhSluAWCm1mJQnU,5478
379
379
  reflex/vars/number.py,sha256=U9n61-zBIIPUDNy_exbvXuuJraCYmD489gjeU2OwAis,28091
380
380
  reflex/vars/object.py,sha256=TzVe-EBiZYdXBBM0xTUmOs8V7nO9vBQ3hcdf6Rdidr8,15069
381
- reflex/vars/sequence.py,sha256=H2keaazgJtm6WFFDwY5gHQBNnvOPiIQXxlmcpp3-4X4,46255
382
- reflex-0.6.3.dist-info/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
383
- reflex-0.6.3.dist-info/METADATA,sha256=lEpaLg7LSOnyWx7Ydc658jSQ6TrDNOCLEc9mwj4jcQ8,12055
384
- reflex-0.6.3.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
385
- reflex-0.6.3.dist-info/entry_points.txt,sha256=H1Z5Yat_xJfy0dRT1Frk2PkO_p41Xy7fCKlj4FcdL9o,44
386
- reflex-0.6.3.dist-info/RECORD,,
381
+ reflex/vars/sequence.py,sha256=j0dsvuPKer4tKNBibQKYB_0OjvHbob7UFzHUgpGLiNo,46191
382
+ reflex-0.6.3a1.dist-info/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
383
+ reflex-0.6.3a1.dist-info/METADATA,sha256=9X_zXjlHoW66HLMQnI-w2j6a3TVtWW9g6WTOqr5tXTc,12057
384
+ reflex-0.6.3a1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
385
+ reflex-0.6.3a1.dist-info/entry_points.txt,sha256=H1Z5Yat_xJfy0dRT1Frk2PkO_p41Xy7fCKlj4FcdL9o,44
386
+ reflex-0.6.3a1.dist-info/RECORD,,