reflex 0.6.0__py3-none-any.whl → 0.6.0a2__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.

@@ -8,11 +8,11 @@ version = "0.0.1"
8
8
  description = "Reflex custom component {{ module_name }}"
9
9
  readme = "README.md"
10
10
  license = { text = "Apache-2.0" }
11
- requires-python = ">=3.9"
11
+ requires-python = ">=3.8"
12
12
  authors = [{ name = "", email = "YOUREMAIL@domain.com" }]
13
13
  keywords = ["reflex","reflex-custom-components"]
14
14
 
15
- dependencies = ["reflex>={{ reflex_version }}"]
15
+ dependencies = ["reflex>=0.4.2"]
16
16
 
17
17
  classifiers = ["Development Status :: 4 - Beta"]
18
18
 
@@ -805,9 +805,7 @@ export const useEventLoop = (
805
805
  * @returns True if the value is truthy, false otherwise.
806
806
  */
807
807
  export const isTrue = (val) => {
808
- if (Array.isArray(val)) return val.length > 0;
809
- if (val === Object(val)) return Object.keys(val).length > 0;
810
- return Boolean(val);
808
+ return Array.isArray(val) ? val.length > 0 : !!val;
811
809
  };
812
810
 
813
811
  /**
@@ -15,7 +15,7 @@ if constants.CompileVars.APP != "app":
15
15
  telemetry.send("compile")
16
16
  app_module = get_app(reload=False)
17
17
  app = getattr(app_module, constants.CompileVars.APP)
18
- # For py3.9 compatibility when redis is used, we MUST add any decorator pages
18
+ # For py3.8 and py3.9 compatibility when redis is used, we MUST add any decorator pages
19
19
  # before compiling the app in a thread to avoid event loop error (REF-2172).
20
20
  app._apply_decorated_pages()
21
21
  compile_future = ThreadPoolExecutor(max_workers=1).submit(app._compile)
@@ -4,6 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  import copy
6
6
  import typing
7
+ import warnings
7
8
  from abc import ABC, abstractmethod
8
9
  from functools import lru_cache, wraps
9
10
  from hashlib import md5
@@ -169,6 +170,8 @@ ComponentStyle = Dict[
169
170
  ]
170
171
  ComponentChild = Union[types.PrimitiveType, Var, BaseComponent]
171
172
 
173
+ warnings.filterwarnings("ignore", message="fields may not start with an underscore")
174
+
172
175
 
173
176
  class Component(BaseComponent, ABC):
174
177
  """A component with style, event trigger and other props."""
@@ -448,16 +451,8 @@ class Component(BaseComponent, ABC):
448
451
  and not types._issubclass(passed_type, expected_type, value)
449
452
  ):
450
453
  value_name = value._js_expr if isinstance(value, Var) else value
451
-
452
- additional_info = (
453
- " You can call `.bool()` on the value to convert it to a boolean."
454
- if expected_type is bool and isinstance(value, Var)
455
- else ""
456
- )
457
-
458
454
  raise TypeError(
459
- f"Invalid var passed for prop {type(self).__name__}.{key}, expected type {expected_type}, got value {value_name} of type {passed_type}."
460
- + additional_info
455
+ f"Invalid var passed for prop {type(self).__name__}.{key}, expected type {expected_type}, got value {value_name} of type {passed_types or passed_type}."
461
456
  )
462
457
  # Check if the key is an event trigger.
463
458
  if key in component_specific_triggers:
@@ -65,9 +65,7 @@ def _create_package_config(module_name: str, package_name: str):
65
65
  with open(CustomComponents.PYPROJECT_TOML, "w") as f:
66
66
  f.write(
67
67
  templates.CUSTOM_COMPONENTS_PYPROJECT_TOML.render(
68
- module_name=module_name,
69
- package_name=package_name,
70
- reflex_version=constants.Reflex.VERSION,
68
+ module_name=module_name, package_name=package_name
71
69
  )
72
70
  )
73
71
 
@@ -3,7 +3,6 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import dataclasses
6
- import re
7
6
  import sys
8
7
  from typing import Any, Callable, Union
9
8
 
@@ -175,15 +174,15 @@ class ClientStateVar(Var):
175
174
  else self._setter_name
176
175
  )
177
176
  if value is not NoValue:
177
+ import re
178
+
178
179
  # This is a hack to make it work like an EventSpec taking an arg
179
180
  value_str = str(LiteralVar.create(value))
180
181
 
181
- if value_str.startswith("_"):
182
- # remove patterns of ["*"] from the value_str using regex
183
- arg = re.sub(r"\[\".*\"\]", "", value_str)
184
- setter = f"(({arg}) => {setter}({value_str}))"
185
- else:
186
- setter = f"(() => {setter}({value_str}))"
182
+ # remove patterns of ["*"] from the value_str using regex
183
+ arg = re.sub(r"\[\".*\"\]", "", value_str)
184
+
185
+ setter = f"({arg}) => {setter}({str(value)})"
187
186
  return Var(
188
187
  _js_expr=setter,
189
188
  _var_data=VarData(imports=_refs_import if self._global_ref else {}),
@@ -107,7 +107,3 @@ class EventHandlerShadowsBuiltInStateMethod(ReflexError, NameError):
107
107
 
108
108
  class GeneratedCodeHasNoFunctionDefs(ReflexError):
109
109
  """Raised when refactored code generated with flexgen has no functions defined."""
110
-
111
-
112
- class PrimitiveUnserializableToJSON(ReflexError, ValueError):
113
- """Raised when a primitive type is unserializable to JSON. Usually with NaN and Infinity."""
reflex/utils/format.py CHANGED
@@ -10,7 +10,6 @@ from typing import TYPE_CHECKING, Any, Callable, List, Optional, Union
10
10
 
11
11
  from reflex import constants
12
12
  from reflex.utils import exceptions, types
13
- from reflex.utils.console import deprecate
14
13
 
15
14
  if TYPE_CHECKING:
16
15
  from reflex.components.component import ComponentStyle
@@ -503,37 +502,6 @@ if TYPE_CHECKING:
503
502
  from reflex.vars import Var
504
503
 
505
504
 
506
- def format_event_chain(
507
- event_chain: EventChain | Var[EventChain],
508
- event_arg: Var | None = None,
509
- ) -> str:
510
- """DEPRECATED: format an event chain as a javascript invocation.
511
-
512
- Use str(rx.Var.create(event_chain)) instead.
513
-
514
- Args:
515
- event_chain: The event chain to format.
516
- event_arg: this argument is ignored.
517
-
518
- Returns:
519
- Compiled javascript code to queue the given event chain on the frontend.
520
- """
521
- deprecate(
522
- feature_name="format_event_chain",
523
- reason="Use str(rx.Var.create(event_chain)) instead",
524
- deprecation_version="0.6.0",
525
- removal_version="0.7.0",
526
- )
527
-
528
- from reflex.vars import Var
529
- from reflex.vars.function import ArgsFunctionOperation
530
-
531
- result = Var.create(event_chain)
532
- if isinstance(result, ArgsFunctionOperation):
533
- result = result._return_expr
534
- return str(result)
535
-
536
-
537
505
  def format_queue_events(
538
506
  events: (
539
507
  EventSpec
@@ -73,18 +73,6 @@ def get_web_dir() -> Path:
73
73
  return workdir
74
74
 
75
75
 
76
- def _python_version_check():
77
- """Emit deprecation warning for deprecated python versions."""
78
- # Check for end-of-life python versions.
79
- if sys.version_info < (3, 10):
80
- console.deprecate(
81
- feature_name="Support for Python 3.9 and older",
82
- reason="please upgrade to Python 3.10 or newer",
83
- deprecation_version="0.6.0",
84
- removal_version="0.7.0",
85
- )
86
-
87
-
88
76
  def check_latest_package_version(package_name: str):
89
77
  """Check if the latest version of the package is installed.
90
78
 
@@ -97,16 +85,15 @@ def check_latest_package_version(package_name: str):
97
85
  url = f"https://pypi.org/pypi/{package_name}/json"
98
86
  response = net.get(url)
99
87
  latest_version = response.json()["info"]["version"]
100
- if get_or_set_last_reflex_version_check_datetime():
101
- # Versions were already checked and saved in reflex.json, no need to warn again
102
- return
103
- if version.parse(current_version) < version.parse(latest_version):
104
- # Show a warning when the host version is older than PyPI version
88
+ if (
89
+ version.parse(current_version) < version.parse(latest_version)
90
+ and not get_or_set_last_reflex_version_check_datetime()
91
+ ):
92
+ # only show a warning when the host version is outdated and
93
+ # the last_version_check_datetime is not set in reflex.json
105
94
  console.warn(
106
95
  f"Your version ({current_version}) of {package_name} is out of date. Upgrade to {latest_version} with 'pip install {package_name} --upgrade'"
107
96
  )
108
- # Check for depreacted python versions
109
- _python_version_check()
110
97
  except Exception:
111
98
  pass
112
99
 
@@ -303,7 +290,7 @@ def get_compiled_app(reload: bool = False, export: bool = False) -> ModuleType:
303
290
  """
304
291
  app_module = get_app(reload=reload)
305
292
  app = getattr(app_module, constants.CompileVars.APP)
306
- # For py3.9 compatibility when redis is used, we MUST add any decorator pages
293
+ # For py3.8 and py3.9 compatibility when redis is used, we MUST add any decorator pages
307
294
  # before compiling the app in a thread to avoid event loop error (REF-2172).
308
295
  app._apply_decorated_pages()
309
296
  app._compile(export=export)
reflex/utils/telemetry.py CHANGED
@@ -121,7 +121,7 @@ def _prepare_event(event: str, **kwargs) -> dict:
121
121
  return {}
122
122
 
123
123
  if UTC is None:
124
- # for python 3.9 & 3.10
124
+ # for python 3.8, 3.9 & 3.10
125
125
  stamp = datetime.utcnow().isoformat()
126
126
  else:
127
127
  # for python 3.11 & 3.12
reflex/vars/base.py CHANGED
@@ -13,7 +13,6 @@ import random
13
13
  import re
14
14
  import string
15
15
  import sys
16
- import warnings
17
16
  from types import CodeType, FunctionType
18
17
  from typing import (
19
18
  TYPE_CHECKING,
@@ -73,8 +72,6 @@ if TYPE_CHECKING:
73
72
 
74
73
  VAR_TYPE = TypeVar("VAR_TYPE", covariant=True)
75
74
 
76
- warnings.filterwarnings("ignore", message="fields may not start with an underscore")
77
-
78
75
 
79
76
  @dataclasses.dataclass(
80
77
  eq=False,
@@ -119,16 +116,6 @@ class Var(Generic[VAR_TYPE]):
119
116
  """
120
117
  return self._js_expr
121
118
 
122
- @property
123
- @deprecated("Use `_js_expr` instead.")
124
- def _var_name_unwrapped(self) -> str:
125
- """The name of the var without extra curly braces.
126
-
127
- Returns:
128
- The name of the var.
129
- """
130
- return self._js_expr
131
-
132
119
  @property
133
120
  def _var_is_string(self) -> bool:
134
121
  """Whether the var is a string literal.
@@ -1042,20 +1029,6 @@ class LiteralVar(Var):
1042
1029
  if isinstance(value, EventHandler):
1043
1030
  return Var(_js_expr=".".join(filter(None, get_event_handler_parts(value))))
1044
1031
 
1045
- serialized_value = serializers.serialize(value)
1046
- if serialized_value is not None:
1047
- if isinstance(serialized_value, dict):
1048
- return LiteralObjectVar.create(
1049
- serialized_value,
1050
- _var_type=type(value),
1051
- _var_data=_var_data,
1052
- )
1053
- if isinstance(serialized_value, str):
1054
- return LiteralStringVar.create(
1055
- serialized_value, _var_type=type(value), _var_data=_var_data
1056
- )
1057
- return LiteralVar.create(serialized_value, _var_data=_var_data)
1058
-
1059
1032
  if isinstance(value, Base):
1060
1033
  # get the fields of the pydantic class
1061
1034
  fields = value.__fields__.keys()
@@ -1071,6 +1044,20 @@ class LiteralVar(Var):
1071
1044
  _var_data=_var_data,
1072
1045
  )
1073
1046
 
1047
+ serialized_value = serializers.serialize(value)
1048
+ if serialized_value is not None:
1049
+ if isinstance(serialized_value, dict):
1050
+ return LiteralObjectVar.create(
1051
+ serialized_value,
1052
+ _var_type=type(value),
1053
+ _var_data=_var_data,
1054
+ )
1055
+ if isinstance(serialized_value, str):
1056
+ return LiteralStringVar.create(
1057
+ serialized_value, _var_type=type(value), _var_data=_var_data
1058
+ )
1059
+ return LiteralVar.create(serialized_value, _var_data=_var_data)
1060
+
1074
1061
  if dataclasses.is_dataclass(value) and not isinstance(value, type):
1075
1062
  return LiteralObjectVar.create(
1076
1063
  {
@@ -1212,13 +1199,10 @@ def unionize(*args: Type) -> Type:
1212
1199
  """
1213
1200
  if not args:
1214
1201
  return Any
1215
- if len(args) == 1:
1216
- return args[0]
1217
- # We are bisecting the args list here to avoid hitting the recursion limit
1218
- # In Python versions >= 3.11, we can simply do `return Union[*args]`
1219
- midpoint = len(args) // 2
1220
- first_half, second_half = args[:midpoint], args[midpoint:]
1221
- return Union[unionize(*first_half), unionize(*second_half)]
1202
+ first, *rest = args
1203
+ if not rest:
1204
+ return first
1205
+ return Union[first, unionize(*rest)]
1222
1206
 
1223
1207
 
1224
1208
  def figure_out_type(value: Any) -> types.GenericType:
@@ -1999,23 +1983,17 @@ class CustomVarOperationReturn(Var[RETURN]):
1999
1983
  def var_operation_return(
2000
1984
  js_expression: str,
2001
1985
  var_type: Type[RETURN] | None = None,
2002
- var_data: VarData | None = None,
2003
1986
  ) -> CustomVarOperationReturn[RETURN]:
2004
1987
  """Shortcut for creating a CustomVarOperationReturn.
2005
1988
 
2006
1989
  Args:
2007
1990
  js_expression: The JavaScript expression to evaluate.
2008
1991
  var_type: The type of the var.
2009
- var_data: Additional hooks and imports associated with the Var.
2010
1992
 
2011
1993
  Returns:
2012
1994
  The CustomVarOperationReturn.
2013
1995
  """
2014
- return CustomVarOperationReturn.create(
2015
- js_expression,
2016
- var_type,
2017
- var_data,
2018
- )
1996
+ return CustomVarOperationReturn.create(js_expression, var_type)
2019
1997
 
2020
1998
 
2021
1999
  @dataclasses.dataclass(
reflex/vars/number.py CHANGED
@@ -4,7 +4,6 @@ from __future__ import annotations
4
4
 
5
5
  import dataclasses
6
6
  import json
7
- import math
8
7
  import sys
9
8
  from typing import (
10
9
  TYPE_CHECKING,
@@ -18,9 +17,7 @@ from typing import (
18
17
  overload,
19
18
  )
20
19
 
21
- from reflex.constants.base import Dirs
22
- from reflex.utils.exceptions import PrimitiveUnserializableToJSON, VarTypeError
23
- from reflex.utils.imports import ImportDict, ImportVar
20
+ from reflex.utils.exceptions import VarTypeError
24
21
 
25
22
  from .base import (
26
23
  CustomVarOperationReturn,
@@ -1041,14 +1038,7 @@ class LiteralNumberVar(LiteralVar, NumberVar):
1041
1038
 
1042
1039
  Returns:
1043
1040
  The JSON representation of the var.
1044
-
1045
- Raises:
1046
- PrimitiveUnserializableToJSON: If the var is unserializable to JSON.
1047
1041
  """
1048
- if math.isinf(self._var_value) or math.isnan(self._var_value):
1049
- raise PrimitiveUnserializableToJSON(
1050
- f"No valid JSON representation for {self}"
1051
- )
1052
1042
  return json.dumps(self._var_value)
1053
1043
 
1054
1044
  def __hash__(self) -> int:
@@ -1070,15 +1060,8 @@ class LiteralNumberVar(LiteralVar, NumberVar):
1070
1060
  Returns:
1071
1061
  The number var.
1072
1062
  """
1073
- if math.isinf(value):
1074
- js_expr = "Infinity" if value > 0 else "-Infinity"
1075
- elif math.isnan(value):
1076
- js_expr = "NaN"
1077
- else:
1078
- js_expr = str(value)
1079
-
1080
1063
  return cls(
1081
- _js_expr=js_expr,
1064
+ _js_expr=str(value),
1082
1065
  _var_type=type(value),
1083
1066
  _var_data=_var_data,
1084
1067
  _var_value=value,
@@ -1115,11 +1098,6 @@ class ToBooleanVarOperation(ToOperation, BooleanVar):
1115
1098
  _default_var_type: ClassVar[Type] = bool
1116
1099
 
1117
1100
 
1118
- _IS_TRUE_IMPORT: ImportDict = {
1119
- f"/{Dirs.STATE_PATH}": [ImportVar(tag="isTrue")],
1120
- }
1121
-
1122
-
1123
1101
  @var_operation
1124
1102
  def boolify(value: Var):
1125
1103
  """Convert the value to a boolean.
@@ -1131,9 +1109,8 @@ def boolify(value: Var):
1131
1109
  The boolean value.
1132
1110
  """
1133
1111
  return var_operation_return(
1134
- js_expression=f"isTrue({value})",
1112
+ js_expression=f"Boolean({value})",
1135
1113
  var_type=bool,
1136
- var_data=VarData(imports=_IS_TRUE_IMPORT),
1137
1114
  )
1138
1115
 
1139
1116
 
reflex/vars/sequence.py CHANGED
@@ -194,6 +194,14 @@ class StringVar(Var[str]):
194
194
  """
195
195
  return string_strip_operation(self)
196
196
 
197
+ def bool(self):
198
+ """Boolean conversion.
199
+
200
+ Returns:
201
+ The boolean value of the string.
202
+ """
203
+ return self.length() != 0
204
+
197
205
  def reversed(self) -> StringVar:
198
206
  """Reverse the string.
199
207
 
@@ -1,16 +1,17 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: reflex
3
- Version: 0.6.0
3
+ Version: 0.6.0a2
4
4
  Summary: Web apps in pure Python.
5
5
  Home-page: https://reflex.dev
6
6
  License: Apache-2.0
7
7
  Keywords: web,framework
8
8
  Author: Nikhil Rao
9
9
  Author-email: nikhil@reflex.dev
10
- Requires-Python: >=3.9,<4.0
10
+ Requires-Python: >=3.8,<4.0
11
11
  Classifier: Development Status :: 4 - Beta
12
12
  Classifier: License :: OSI Approved :: Apache Software License
13
13
  Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.8
14
15
  Classifier: Programming Language :: Python :: 3.9
15
16
  Classifier: Programming Language :: Python :: 3.10
16
17
  Classifier: Programming Language :: Python :: 3.11
@@ -87,7 +88,7 @@ See our [architecture page](https://reflex.dev/blog/2024-03-21-reflex-architectu
87
88
 
88
89
  ## ⚙️ Installation
89
90
 
90
- Open a terminal and run (Requires Python 3.9+):
91
+ Open a terminal and run (Requires Python 3.8+):
91
92
 
92
93
  ```bash
93
94
  pip install reflex
@@ -5,7 +5,7 @@ reflex/.templates/jinja/app/rxconfig.py.jinja2,sha256=Scfnv_vZXIPQcz8zNIa4FmjEym
5
5
  reflex/.templates/jinja/custom_components/README.md.jinja2,sha256=qA4XZDxOTc2gRIG7CO1VvVawOgThwZqU2RZvRTPhXwE,127
6
6
  reflex/.templates/jinja/custom_components/__init__.py.jinja2,sha256=z5n2tvoS7iNDaM6mUGKETdpGlC0oA1_rrYURu7O_xpk,32
7
7
  reflex/.templates/jinja/custom_components/demo_app.py.jinja2,sha256=ipbKtObNqQLcwbFowod_bSWW4bttW_8bNyTXl7JL1zg,826
8
- reflex/.templates/jinja/custom_components/pyproject.toml.jinja2,sha256=4Y3gCELIePaVwNcoymcjdASBDReC9iaV9Mzj29vy69g,629
8
+ reflex/.templates/jinja/custom_components/pyproject.toml.jinja2,sha256=PfE_WclDh5mknUkTh0D9uWseht38GvPpDu8-31TwkzI,614
9
9
  reflex/.templates/jinja/custom_components/src.py.jinja2,sha256=e80PwMI6NoeQtGJ0NXWhYrkqUe7jvvJTFuztYQe-R5w,2403
10
10
  reflex/.templates/jinja/web/package.json.jinja2,sha256=YU9PF8WgiQ8OPlG3oLDX31t2R0o6DFntCh698NTiDK8,548
11
11
  reflex/.templates/jinja/web/pages/_app.js.jinja2,sha256=ITqBviFgMCSisLEmXz2tptCqA0UuAmG6h6hSquGqMEo,895
@@ -33,7 +33,7 @@ reflex/.templates/web/utils/helpers/debounce.js,sha256=xGhtTRtS_xIcaeqnYVvYJNseL
33
33
  reflex/.templates/web/utils/helpers/paste.js,sha256=ef30HsR83jRzzvZnl8yV79yqFP8TC_u8SlN99cCS_OM,1799
34
34
  reflex/.templates/web/utils/helpers/range.js,sha256=FevdZzCVxjF57ullfjpcUpeOXRxh5v09YnBB0jPbrS4,1152
35
35
  reflex/.templates/web/utils/helpers/throttle.js,sha256=qxeyaEojaTeX36FPGftzVWrzDsRQU4iqg3U9RJz9Vj4,566
36
- reflex/.templates/web/utils/state.js,sha256=eEjYHBNKjWWBz7MwXN64vcCArKfWNbHBleI3LEMUIZU,26169
36
+ reflex/.templates/web/utils/state.js,sha256=G_mjYXiYhP4wnR36HnVrJXsexFJ8tiJfSUHMtdbGNYA,26088
37
37
  reflex/__init__.py,sha256=l2s3m-0wU3JR9XQsartdHAF6PGHy69bv_--AbOrsnJc,10443
38
38
  reflex/__init__.pyi,sha256=uR7TbT_Wo0jwAMf6m0wZDxi9z4Yvv6dpUBrkFRvssLY,10787
39
39
  reflex/__main__.py,sha256=6cVrGEyT3j3tEvlEVUatpaYfbB5EF3UVY-6vc_Z7-hw,108
@@ -43,7 +43,7 @@ reflex/app_mixins/__init__.py,sha256=Oegz3-gZLP9p2OAN5ALNbsgxuNQfS6lGZgQA8cc-9mQ
43
43
  reflex/app_mixins/lifespan.py,sha256=0PaavAPTYmF7JdLKGfZQu_NT7oAaxyq7-5fauLZ9e8Y,2048
44
44
  reflex/app_mixins/middleware.py,sha256=6Yby_Uw1-J0K7NgPyh-X7tGGhmezn6D7-KsfABYAVBU,3130
45
45
  reflex/app_mixins/mixin.py,sha256=wjudM02c-y1vV8aTNUUs9CsFta7pzXrvBqyEzXOW-g4,310
46
- reflex/app_module_for_backend.py,sha256=Xr_JoKeX5Ks_EefejS6lRheMaPkiOlH_Xpzx9QNgAZw,1218
46
+ reflex/app_module_for_backend.py,sha256=TOB73WSoPs-DVitLNjnCXDb5FXQFEvoIDIohDwovne4,1228
47
47
  reflex/base.py,sha256=hqdG9sRr2GNNRCg9C4pmf_BocMpsOLAY_rEKQ7KDDQQ,4334
48
48
  reflex/compiler/__init__.py,sha256=r8jqmDSFf09iV2lHlNhfc9XrTLjNxfDNwPYlxS4cmHE,27
49
49
  reflex/compiler/compiler.py,sha256=72QhapNEw8y2q2B9n4RQVLlAaX50eqZF9nVDPX8dM9k,17872
@@ -72,7 +72,7 @@ reflex/components/base/meta.py,sha256=RWITTQTA_35-FbaVGhjkAWDOmU65rzJ-WedENRJk-3
72
72
  reflex/components/base/meta.pyi,sha256=b3Cf2m1DA5NhBqra0Cpd_abSfXiuTIXH3L6hSLhhz_o,12028
73
73
  reflex/components/base/script.py,sha256=pzjfVygBenPQTu1T8j8zCZJTBywaZ4Rw-EQmTh_ZnHY,2389
74
74
  reflex/components/base/script.pyi,sha256=wBxTC2evS69oT-NQiRPVMWwxN2kuju5KPeqdfBzDV4o,4364
75
- reflex/components/component.py,sha256=Z8wQBXzEmlUT2AFX6WpOY1x2pezcfRHRBrW1UtgVjD8,78508
75
+ reflex/components/component.py,sha256=yJkxRNPfGOcDt4m2Lb_OmlCKF5ydS5UOmsJXi3X6gFs,78321
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
@@ -329,11 +329,11 @@ reflex/constants/installer.py,sha256=IOjAPppNHXjdBEGSj07cmzubcfUzEylVoFPOsHfGfBE
329
329
  reflex/constants/route.py,sha256=fu1jp9MoIriUJ8Cu4gLeinTxkyVBbRPs8Bkt35vqYOM,2144
330
330
  reflex/constants/style.py,sha256=sJ6LuPY1OWemwMXnI1Htm-pa087HWT6PWljUeyokcUI,474
331
331
  reflex/custom_components/__init__.py,sha256=R4zsvOi4dfPmHc18KEphohXnQFBPnUCb50cMR5hSLDE,36
332
- reflex/custom_components/custom_components.py,sha256=1f9FzCR4EQ5t25pFLHrItV4_TN0XUAK7L49kpRHQMRs,33141
332
+ reflex/custom_components/custom_components.py,sha256=vYBhEt0ceCTaXG_zQlD8aEUxEzyGwlc7D6RKah2Pp2A,33067
333
333
  reflex/event.py,sha256=TANj8GZYKKVQx20CAOjMQRTfGxua8xywxinpX5jurlA,31366
334
334
  reflex/experimental/__init__.py,sha256=usDkf5yRMHKHjdRa_KfedFeD-urOMAKBuNfsghzvre4,1974
335
335
  reflex/experimental/assets.py,sha256=nWj4454REHDP2gybtlhOac0Xyb0uqBMzjAFqYlaYwcE,1758
336
- reflex/experimental/client_state.py,sha256=t1oOMY1n7U3AqtsZtWfoioBThpxgyNY3i00egn9KqfA,7799
336
+ reflex/experimental/client_state.py,sha256=FHvjJmWA2uvt-169ZQiCCiIYRYcbctaQJlzGbZNChPU,7682
337
337
  reflex/experimental/hooks.py,sha256=fHYD4rX_f7T38gsFDqglD9E29FjPLf6jO1rN39DX7XM,2242
338
338
  reflex/experimental/layout.py,sha256=talXPlKuRzJFNGoyc3ATEaJg7_Z4jgTAAXiTi29STWs,7586
339
339
  reflex/experimental/layout.pyi,sha256=ziRPPYXnSf_DKNCIKHdcJVOxjqzDrjm1QwN9idrQ7eE,18075
@@ -353,30 +353,30 @@ reflex/utils/build.py,sha256=DJryIUJ_3DV2nn4pZ9SiV60lwIGYPZWgYw9prsQXrKA,8482
353
353
  reflex/utils/codespaces.py,sha256=tKmju4aGzDMPy76_eQSzJd3RYmVmiiNZy3Yc0e3zG_w,2856
354
354
  reflex/utils/compat.py,sha256=ty_8eOifMjg9oVOWGHCu5cACu9iqw5_ZEOkTRck7B94,2012
355
355
  reflex/utils/console.py,sha256=irO3qP7_9_5cxbc3hBfyawJgtgIq5s8nJQ0RgUt91fU,5477
356
- reflex/utils/exceptions.py,sha256=ZsfeEa6hbmOrpkyfBd-TdKCLpMXV72ohJPDvnCE1ElQ,3437
356
+ reflex/utils/exceptions.py,sha256=MdbQgbL7WGSfO2z3oZ2hLRLPywzJDaENnbBKd0I17O4,3276
357
357
  reflex/utils/exec.py,sha256=NDp7kNuUPeWaI8MXV6g8rXRK7PffCkl5u2t7zwJskW4,11000
358
358
  reflex/utils/export.py,sha256=3dI9QjoU0ZA_g8OSQipVLpFWQcxWa_sHkpezWemvWbo,2366
359
- reflex/utils/format.py,sha256=J_J5CRGCo5X-RIb0wzK-c3cmGuE6L7bPqqm1HqHmljc,22123
359
+ reflex/utils/format.py,sha256=57HFLyPNcMQOe-czDV6rn5MZtzliaRDYt4eyr8Oglow,21201
360
360
  reflex/utils/imports.py,sha256=DMyHT1f6VtnuKidnqCXsxNb-gVjVHTSAGwsYl-6HnmE,3623
361
361
  reflex/utils/lazy_loader.py,sha256=utVpUjKcz32GC1I7g0g7OlTyvVoZNFcuAjNtnxiSYww,1282
362
362
  reflex/utils/net.py,sha256=UFCfaOjvRDVLTeTzLKJ5iDAWtPNuhng5gOs-pIMYQek,1267
363
363
  reflex/utils/path_ops.py,sha256=0-X6FZh-ktqEj_yKtS9IcuzkOROchtZLUXoyV6toD4k,5195
364
- reflex/utils/prerequisites.py,sha256=a5cB0G2_LvHywaxXX4VxGDyIgd8CyzqcLk3-TOtSIZs,52926
364
+ reflex/utils/prerequisites.py,sha256=uMnGyGt-noYAkrahSCOzpUqe1DNbGrywzq8PcG8wtAQ,52429
365
365
  reflex/utils/processes.py,sha256=y8X5PxycEWT1ItLtpIS-rzrUvNQ9MUOkHdIg_zK9Vp0,13228
366
366
  reflex/utils/pyi_generator.py,sha256=n9GpxSOeTvIH2pJHd748TUbD0bZgoqEJCxXLD5aAjvQ,34574
367
367
  reflex/utils/redir.py,sha256=B0K9m6ejDW0ABeclBb4AsRRORvx_stCTWsrDe1YvkzY,1679
368
368
  reflex/utils/registry.py,sha256=NKtd1ewsu0_p-FoD0pmLWCEzRrm_6t4Lis8Erip3w4g,1161
369
369
  reflex/utils/serializers.py,sha256=iZPVSgkfklM_Nyfee2VWSuM7Mz1kV7MIjzNIEbnOF8k,10864
370
- reflex/utils/telemetry.py,sha256=zyy-bQjf18qQM-iTACIA9T7VBWRpm-DNES7iNJLrieo,5596
370
+ reflex/utils/telemetry.py,sha256=nzlZbHVcq7xfK9CICJrjE5kxJFx_Qwb9L6RtXamV8rY,5601
371
371
  reflex/utils/types.py,sha256=DvS1pESOEs0RTTJYs56CRrmPltmkiXcfyzCF06DGVwM,18519
372
372
  reflex/vars/__init__.py,sha256=OdCzmDFGMbCoy5VN4xQ3DaLpHck7npuLz7OUYvsN6Xw,1128
373
- reflex/vars/base.py,sha256=6JWyrDH4reUE97gHwOWGAEv1q25hLKG5eBxLqdY_i4Y,78020
373
+ reflex/vars/base.py,sha256=vF9fL5vqt1Z8tfEAXh4PiG-mKVMIzNYKRqRpmRu6TQ8,77265
374
374
  reflex/vars/function.py,sha256=GjTGRjDhMRACSPBIGNYgQzjKI2WgfhSluAWCm1mJQnU,5478
375
- reflex/vars/number.py,sha256=vEdeXTLCwWLK-FcPFH6DKpmpWyhuvDEQ64yLpipasFs,27937
375
+ reflex/vars/number.py,sha256=vjrM0iJ_wRapfzOKxwkiefNi3yPccBej07U9NhNbPT4,27171
376
376
  reflex/vars/object.py,sha256=wOq74_nDNAhqgT21HkHGfRukGdLjWoLprHjFNy1hjy8,14988
377
- reflex/vars/sequence.py,sha256=3Qz9FdtAPzEGRKq_z1jJvi8I6-vHaAmzRtZE-agkKDU,44301
378
- reflex-0.6.0.dist-info/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
379
- reflex-0.6.0.dist-info/METADATA,sha256=32vmM5LLJkfLQs7M0bQBoKcePEv071Tzl5xX255cXBM,12109
380
- reflex-0.6.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
381
- reflex-0.6.0.dist-info/entry_points.txt,sha256=H1Z5Yat_xJfy0dRT1Frk2PkO_p41Xy7fCKlj4FcdL9o,44
382
- reflex-0.6.0.dist-info/RECORD,,
377
+ reflex/vars/sequence.py,sha256=V9fVRdtgMb3ZUK3njl_baBVLzidajIH_XnvLf7QSinA,44462
378
+ reflex-0.6.0a2.dist-info/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
379
+ reflex-0.6.0a2.dist-info/METADATA,sha256=jErHmmH1QWOorj5OJ8_7K22y72AWnL5wEAot7Otu5CI,12161
380
+ reflex-0.6.0a2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
381
+ reflex-0.6.0a2.dist-info/entry_points.txt,sha256=H1Z5Yat_xJfy0dRT1Frk2PkO_p41Xy7fCKlj4FcdL9o,44
382
+ reflex-0.6.0a2.dist-info/RECORD,,