reflex 0.7.0a3__py3-none-any.whl → 0.7.0a5__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/app.py +46 -22
- reflex/compiler/utils.py +22 -12
- reflex/components/core/sticky.py +4 -30
- reflex/components/plotly/__init__.py +29 -2
- reflex/components/plotly/plotly.py +235 -0
- reflex/components/plotly/plotly.pyi +765 -0
- reflex/event.py +7 -24
- reflex/reflex.py +14 -7
- reflex/utils/console.py +19 -0
- reflex/utils/imports.py +3 -0
- reflex/utils/path_ops.py +46 -0
- reflex/utils/prerequisites.py +20 -2
- reflex/vars/base.py +42 -0
- reflex/vars/object.py +13 -4
- {reflex-0.7.0a3.dist-info → reflex-0.7.0a5.dist-info}/METADATA +1 -1
- {reflex-0.7.0a3.dist-info → reflex-0.7.0a5.dist-info}/RECORD +19 -19
- {reflex-0.7.0a3.dist-info → reflex-0.7.0a5.dist-info}/LICENSE +0 -0
- {reflex-0.7.0a3.dist-info → reflex-0.7.0a5.dist-info}/WHEEL +0 -0
- {reflex-0.7.0a3.dist-info → reflex-0.7.0a5.dist-info}/entry_points.txt +0 -0
reflex/event.py
CHANGED
|
@@ -26,6 +26,7 @@ from typing import (
|
|
|
26
26
|
|
|
27
27
|
from typing_extensions import (
|
|
28
28
|
Protocol,
|
|
29
|
+
Self,
|
|
29
30
|
TypeAliasType,
|
|
30
31
|
TypedDict,
|
|
31
32
|
TypeVar,
|
|
@@ -110,7 +111,7 @@ class EventActionsMixin:
|
|
|
110
111
|
event_actions: Dict[str, Union[bool, int]] = dataclasses.field(default_factory=dict)
|
|
111
112
|
|
|
112
113
|
@property
|
|
113
|
-
def stop_propagation(self):
|
|
114
|
+
def stop_propagation(self) -> Self:
|
|
114
115
|
"""Stop the event from bubbling up the DOM tree.
|
|
115
116
|
|
|
116
117
|
Returns:
|
|
@@ -122,7 +123,7 @@ class EventActionsMixin:
|
|
|
122
123
|
)
|
|
123
124
|
|
|
124
125
|
@property
|
|
125
|
-
def prevent_default(self):
|
|
126
|
+
def prevent_default(self) -> Self:
|
|
126
127
|
"""Prevent the default behavior of the event.
|
|
127
128
|
|
|
128
129
|
Returns:
|
|
@@ -133,7 +134,7 @@ class EventActionsMixin:
|
|
|
133
134
|
event_actions={"preventDefault": True, **self.event_actions},
|
|
134
135
|
)
|
|
135
136
|
|
|
136
|
-
def throttle(self, limit_ms: int):
|
|
137
|
+
def throttle(self, limit_ms: int) -> Self:
|
|
137
138
|
"""Throttle the event handler.
|
|
138
139
|
|
|
139
140
|
Args:
|
|
@@ -147,7 +148,7 @@ class EventActionsMixin:
|
|
|
147
148
|
event_actions={"throttle": limit_ms, **self.event_actions},
|
|
148
149
|
)
|
|
149
150
|
|
|
150
|
-
def debounce(self, delay_ms: int):
|
|
151
|
+
def debounce(self, delay_ms: int) -> Self:
|
|
151
152
|
"""Debounce the event handler.
|
|
152
153
|
|
|
153
154
|
Args:
|
|
@@ -162,7 +163,7 @@ class EventActionsMixin:
|
|
|
162
163
|
)
|
|
163
164
|
|
|
164
165
|
@property
|
|
165
|
-
def temporal(self):
|
|
166
|
+
def temporal(self) -> Self:
|
|
166
167
|
"""Do not queue the event if the backend is down.
|
|
167
168
|
|
|
168
169
|
Returns:
|
|
@@ -1773,7 +1774,7 @@ V4 = TypeVar("V4")
|
|
|
1773
1774
|
V5 = TypeVar("V5")
|
|
1774
1775
|
|
|
1775
1776
|
|
|
1776
|
-
class EventCallback(Generic[Unpack[P]]):
|
|
1777
|
+
class EventCallback(Generic[Unpack[P]], EventActionsMixin):
|
|
1777
1778
|
"""A descriptor that wraps a function to be used as an event."""
|
|
1778
1779
|
|
|
1779
1780
|
def __init__(self, func: Callable[[Any, Unpack[P]], Any]):
|
|
@@ -1784,24 +1785,6 @@ class EventCallback(Generic[Unpack[P]]):
|
|
|
1784
1785
|
"""
|
|
1785
1786
|
self.func = func
|
|
1786
1787
|
|
|
1787
|
-
@property
|
|
1788
|
-
def prevent_default(self):
|
|
1789
|
-
"""Prevent default behavior.
|
|
1790
|
-
|
|
1791
|
-
Returns:
|
|
1792
|
-
The event callback with prevent default behavior.
|
|
1793
|
-
"""
|
|
1794
|
-
return self
|
|
1795
|
-
|
|
1796
|
-
@property
|
|
1797
|
-
def stop_propagation(self):
|
|
1798
|
-
"""Stop event propagation.
|
|
1799
|
-
|
|
1800
|
-
Returns:
|
|
1801
|
-
The event callback with stop propagation behavior.
|
|
1802
|
-
"""
|
|
1803
|
-
return self
|
|
1804
|
-
|
|
1805
1788
|
@overload
|
|
1806
1789
|
def __call__(
|
|
1807
1790
|
self: EventCallback[Unpack[Q]],
|
reflex/reflex.py
CHANGED
|
@@ -145,10 +145,7 @@ def _run(
|
|
|
145
145
|
exec.output_system_info()
|
|
146
146
|
|
|
147
147
|
# If no --frontend-only and no --backend-only, then turn on frontend and backend both
|
|
148
|
-
|
|
149
|
-
frontend = True
|
|
150
|
-
backend = True
|
|
151
|
-
|
|
148
|
+
frontend, backend = prerequisites.check_running_mode(frontend, backend)
|
|
152
149
|
if not frontend and backend:
|
|
153
150
|
_skip_compile()
|
|
154
151
|
|
|
@@ -306,10 +303,18 @@ def export(
|
|
|
306
303
|
True, "--no-zip", help="Disable zip for backend and frontend exports."
|
|
307
304
|
),
|
|
308
305
|
frontend: bool = typer.Option(
|
|
309
|
-
|
|
306
|
+
False,
|
|
307
|
+
"--frontend-only",
|
|
308
|
+
help="Export only frontend.",
|
|
309
|
+
show_default=False,
|
|
310
|
+
envvar=environment.REFLEX_FRONTEND_ONLY.name,
|
|
310
311
|
),
|
|
311
312
|
backend: bool = typer.Option(
|
|
312
|
-
|
|
313
|
+
False,
|
|
314
|
+
"--backend-only",
|
|
315
|
+
help="Export only backend.",
|
|
316
|
+
show_default=False,
|
|
317
|
+
envvar=environment.REFLEX_BACKEND_ONLY.name,
|
|
313
318
|
),
|
|
314
319
|
zip_dest_dir: str = typer.Option(
|
|
315
320
|
str(Path.cwd()),
|
|
@@ -332,7 +337,9 @@ def export(
|
|
|
332
337
|
from reflex.utils import export as export_utils
|
|
333
338
|
from reflex.utils import prerequisites
|
|
334
339
|
|
|
335
|
-
|
|
340
|
+
frontend, backend = prerequisites.check_running_mode(frontend, backend)
|
|
341
|
+
|
|
342
|
+
if prerequisites.needs_reinit(frontend=frontend or not backend):
|
|
336
343
|
_init(name=config.app_name, loglevel=loglevel)
|
|
337
344
|
|
|
338
345
|
if frontend and not config.show_built_with_reflex:
|
reflex/utils/console.py
CHANGED
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
import contextlib
|
|
5
6
|
import inspect
|
|
6
7
|
import shutil
|
|
8
|
+
import time
|
|
7
9
|
from pathlib import Path
|
|
8
10
|
from types import FrameType
|
|
9
11
|
|
|
@@ -317,3 +319,20 @@ def status(*args, **kwargs):
|
|
|
317
319
|
A new status.
|
|
318
320
|
"""
|
|
319
321
|
return _console.status(*args, **kwargs)
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
@contextlib.contextmanager
|
|
325
|
+
def timing(msg: str):
|
|
326
|
+
"""Create a context manager to time a block of code.
|
|
327
|
+
|
|
328
|
+
Args:
|
|
329
|
+
msg: The message to display.
|
|
330
|
+
|
|
331
|
+
Yields:
|
|
332
|
+
None.
|
|
333
|
+
"""
|
|
334
|
+
start = time.time()
|
|
335
|
+
try:
|
|
336
|
+
yield
|
|
337
|
+
finally:
|
|
338
|
+
debug(f"[white]\\[timing] {msg}: {time.time() - start:.2f}s[/white]")
|
reflex/utils/imports.py
CHANGED
|
@@ -109,6 +109,9 @@ class ImportVar:
|
|
|
109
109
|
# whether this import should be rendered or not
|
|
110
110
|
render: Optional[bool] = True
|
|
111
111
|
|
|
112
|
+
# The path of the package to import from.
|
|
113
|
+
package_path: str = "/"
|
|
114
|
+
|
|
112
115
|
# whether this import package should be added to transpilePackages in next.config.js
|
|
113
116
|
# https://nextjs.org/docs/app/api-reference/next-config-js/transpilePackages
|
|
114
117
|
transpile: Optional[bool] = False
|
reflex/utils/path_ops.py
CHANGED
|
@@ -245,3 +245,49 @@ def find_replace(directory: str | Path, find: str, replace: str):
|
|
|
245
245
|
text = filepath.read_text(encoding="utf-8")
|
|
246
246
|
text = re.sub(find, replace, text)
|
|
247
247
|
filepath.write_text(text, encoding="utf-8")
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
def samefile(file1: Path, file2: Path) -> bool:
|
|
251
|
+
"""Check if two files are the same.
|
|
252
|
+
|
|
253
|
+
Args:
|
|
254
|
+
file1: The first file.
|
|
255
|
+
file2: The second file.
|
|
256
|
+
|
|
257
|
+
Returns:
|
|
258
|
+
Whether the files are the same. If either file does not exist, returns False.
|
|
259
|
+
"""
|
|
260
|
+
if file1.exists() and file2.exists():
|
|
261
|
+
return file1.samefile(file2)
|
|
262
|
+
|
|
263
|
+
return False
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
def update_directory_tree(src: Path, dest: Path):
|
|
267
|
+
"""Recursively copies a directory tree from src to dest.
|
|
268
|
+
Only copies files if the destination file is missing or modified earlier than the source file.
|
|
269
|
+
|
|
270
|
+
Args:
|
|
271
|
+
src: Source directory
|
|
272
|
+
dest: Destination directory
|
|
273
|
+
|
|
274
|
+
Raises:
|
|
275
|
+
ValueError: If the source is not a directory
|
|
276
|
+
"""
|
|
277
|
+
if not src.is_dir():
|
|
278
|
+
raise ValueError(f"Source {src} is not a directory")
|
|
279
|
+
|
|
280
|
+
# Ensure the destination directory exists
|
|
281
|
+
dest.mkdir(parents=True, exist_ok=True)
|
|
282
|
+
|
|
283
|
+
for item in src.iterdir():
|
|
284
|
+
dest_item = dest / item.name
|
|
285
|
+
|
|
286
|
+
if item.is_dir():
|
|
287
|
+
# Recursively copy subdirectories
|
|
288
|
+
update_directory_tree(item, dest_item)
|
|
289
|
+
elif item.is_file() and (
|
|
290
|
+
not dest_item.exists() or item.stat().st_mtime > dest_item.stat().st_mtime
|
|
291
|
+
):
|
|
292
|
+
# Copy file if it doesn't exist in the destination or is older than the source
|
|
293
|
+
shutil.copy2(item, dest_item)
|
reflex/utils/prerequisites.py
CHANGED
|
@@ -1225,6 +1225,21 @@ def install_frontend_packages(packages: set[str], config: Config):
|
|
|
1225
1225
|
)
|
|
1226
1226
|
|
|
1227
1227
|
|
|
1228
|
+
def check_running_mode(frontend: bool, backend: bool) -> tuple[bool, bool]:
|
|
1229
|
+
"""Check if the app is running in frontend or backend mode.
|
|
1230
|
+
|
|
1231
|
+
Args:
|
|
1232
|
+
frontend: Whether to run the frontend of the app.
|
|
1233
|
+
backend: Whether to run the backend of the app.
|
|
1234
|
+
|
|
1235
|
+
Returns:
|
|
1236
|
+
The running modes.
|
|
1237
|
+
"""
|
|
1238
|
+
if not frontend and not backend:
|
|
1239
|
+
return True, True
|
|
1240
|
+
return frontend, backend
|
|
1241
|
+
|
|
1242
|
+
|
|
1228
1243
|
def needs_reinit(frontend: bool = True) -> bool:
|
|
1229
1244
|
"""Check if an app needs to be reinitialized.
|
|
1230
1245
|
|
|
@@ -1293,10 +1308,13 @@ def validate_bun():
|
|
|
1293
1308
|
"""
|
|
1294
1309
|
bun_path = path_ops.get_bun_path()
|
|
1295
1310
|
|
|
1296
|
-
if bun_path
|
|
1311
|
+
if bun_path is None:
|
|
1312
|
+
return
|
|
1313
|
+
|
|
1314
|
+
if not path_ops.samefile(bun_path, constants.Bun.DEFAULT_PATH):
|
|
1297
1315
|
console.info(f"Using custom Bun path: {bun_path}")
|
|
1298
1316
|
bun_version = get_bun_version()
|
|
1299
|
-
if
|
|
1317
|
+
if bun_version is None:
|
|
1300
1318
|
console.error(
|
|
1301
1319
|
"Failed to obtain bun version. Make sure the specified bun path in your config is correct."
|
|
1302
1320
|
)
|
reflex/vars/base.py
CHANGED
|
@@ -2238,6 +2238,27 @@ class ComputedVar(Var[RETURN_TYPE]):
|
|
|
2238
2238
|
owner: Type,
|
|
2239
2239
|
) -> ArrayVar[tuple[LIST_INSIDE, ...]]: ...
|
|
2240
2240
|
|
|
2241
|
+
@overload
|
|
2242
|
+
def __get__(
|
|
2243
|
+
self: ComputedVar[BASE_TYPE],
|
|
2244
|
+
instance: None,
|
|
2245
|
+
owner: Type,
|
|
2246
|
+
) -> ObjectVar[BASE_TYPE]: ...
|
|
2247
|
+
|
|
2248
|
+
@overload
|
|
2249
|
+
def __get__(
|
|
2250
|
+
self: ComputedVar[SQLA_TYPE],
|
|
2251
|
+
instance: None,
|
|
2252
|
+
owner: Type,
|
|
2253
|
+
) -> ObjectVar[SQLA_TYPE]: ...
|
|
2254
|
+
|
|
2255
|
+
if TYPE_CHECKING:
|
|
2256
|
+
|
|
2257
|
+
@overload
|
|
2258
|
+
def __get__(
|
|
2259
|
+
self: ComputedVar[DATACLASS_TYPE], instance: None, owner: Any
|
|
2260
|
+
) -> ObjectVar[DATACLASS_TYPE]: ...
|
|
2261
|
+
|
|
2241
2262
|
@overload
|
|
2242
2263
|
def __get__(self, instance: None, owner: Type) -> ComputedVar[RETURN_TYPE]: ...
|
|
2243
2264
|
|
|
@@ -2484,6 +2505,27 @@ class AsyncComputedVar(ComputedVar[RETURN_TYPE]):
|
|
|
2484
2505
|
owner: Type,
|
|
2485
2506
|
) -> ArrayVar[tuple[LIST_INSIDE, ...]]: ...
|
|
2486
2507
|
|
|
2508
|
+
@overload
|
|
2509
|
+
def __get__(
|
|
2510
|
+
self: AsyncComputedVar[BASE_TYPE],
|
|
2511
|
+
instance: None,
|
|
2512
|
+
owner: Type,
|
|
2513
|
+
) -> ObjectVar[BASE_TYPE]: ...
|
|
2514
|
+
|
|
2515
|
+
@overload
|
|
2516
|
+
def __get__(
|
|
2517
|
+
self: AsyncComputedVar[SQLA_TYPE],
|
|
2518
|
+
instance: None,
|
|
2519
|
+
owner: Type,
|
|
2520
|
+
) -> ObjectVar[SQLA_TYPE]: ...
|
|
2521
|
+
|
|
2522
|
+
if TYPE_CHECKING:
|
|
2523
|
+
|
|
2524
|
+
@overload
|
|
2525
|
+
def __get__(
|
|
2526
|
+
self: AsyncComputedVar[DATACLASS_TYPE], instance: None, owner: Any
|
|
2527
|
+
) -> ObjectVar[DATACLASS_TYPE]: ...
|
|
2528
|
+
|
|
2487
2529
|
@overload
|
|
2488
2530
|
def __get__(self, instance: None, owner: Type) -> AsyncComputedVar[RETURN_TYPE]: ...
|
|
2489
2531
|
|
reflex/vars/object.py
CHANGED
|
@@ -22,7 +22,12 @@ from typing_extensions import is_typeddict
|
|
|
22
22
|
|
|
23
23
|
from reflex.utils import types
|
|
24
24
|
from reflex.utils.exceptions import VarAttributeError
|
|
25
|
-
from reflex.utils.types import
|
|
25
|
+
from reflex.utils.types import (
|
|
26
|
+
GenericType,
|
|
27
|
+
get_attribute_access_type,
|
|
28
|
+
get_origin,
|
|
29
|
+
safe_issubclass,
|
|
30
|
+
)
|
|
26
31
|
|
|
27
32
|
from .base import (
|
|
28
33
|
CachedVarOperation,
|
|
@@ -187,10 +192,14 @@ class ObjectVar(Var[OBJECT_TYPE], python_types=Mapping):
|
|
|
187
192
|
Returns:
|
|
188
193
|
The item from the object.
|
|
189
194
|
"""
|
|
195
|
+
from .sequence import LiteralStringVar
|
|
196
|
+
|
|
190
197
|
if not isinstance(key, (StringVar, str, int, NumberVar)) or (
|
|
191
198
|
isinstance(key, NumberVar) and key._is_strict_float()
|
|
192
199
|
):
|
|
193
200
|
raise_unsupported_operand_types("[]", (type(self), type(key)))
|
|
201
|
+
if isinstance(key, str) and isinstance(Var.create(key), LiteralStringVar):
|
|
202
|
+
return self.__getattr__(key)
|
|
194
203
|
return ObjectItemOperation.create(self, key).guess_type()
|
|
195
204
|
|
|
196
205
|
# NoReturn is used here to catch when key value is Any
|
|
@@ -260,12 +269,12 @@ class ObjectVar(Var[OBJECT_TYPE], python_types=Mapping):
|
|
|
260
269
|
if types.is_optional(var_type):
|
|
261
270
|
var_type = get_args(var_type)[0]
|
|
262
271
|
|
|
263
|
-
fixed_type =
|
|
272
|
+
fixed_type = get_origin(var_type) or var_type
|
|
264
273
|
|
|
265
274
|
if (
|
|
266
|
-
(
|
|
275
|
+
is_typeddict(fixed_type)
|
|
276
|
+
or (isclass(fixed_type) and not safe_issubclass(fixed_type, Mapping))
|
|
267
277
|
or (fixed_type in types.UnionTypes)
|
|
268
|
-
or is_typeddict(fixed_type)
|
|
269
278
|
):
|
|
270
279
|
attribute_type = get_attribute_access_type(var_type, name)
|
|
271
280
|
if attribute_type is None:
|
|
@@ -40,7 +40,7 @@ reflex/__init__.py,sha256=vaj8MEv0GwrvMzAYQeayyMvRE4TuAD1Xx3pDpjiY3sA,10289
|
|
|
40
40
|
reflex/__init__.pyi,sha256=fOSkQZ2RHNzoLXqoVy-2gC5ys45Erxia1yPp34UFk_k,11235
|
|
41
41
|
reflex/__main__.py,sha256=6cVrGEyT3j3tEvlEVUatpaYfbB5EF3UVY-6vc_Z7-hw,108
|
|
42
42
|
reflex/admin.py,sha256=_3pkkauMiTGJJ0kwAEBnsUWAgZZ_1WNnCaaObbhpmUI,374
|
|
43
|
-
reflex/app.py,sha256=
|
|
43
|
+
reflex/app.py,sha256=Te36db1j3ocy03e1OC6De1h60vDqfHZh_wxLLFn68wk,62319
|
|
44
44
|
reflex/app_mixins/__init__.py,sha256=Oegz3-gZLP9p2OAN5ALNbsgxuNQfS6lGZgQA8cc-9mQ,137
|
|
45
45
|
reflex/app_mixins/lifespan.py,sha256=Xs5KiidoyO921oaBuEg7zaR8B1_SPYDZLouel6u9PRo,3298
|
|
46
46
|
reflex/app_mixins/middleware.py,sha256=lB8I67SEbqcJhp3aqMLZFIZekCYKeMby-Ph2sedIYJI,3349
|
|
@@ -51,7 +51,7 @@ reflex/base.py,sha256=2ft5udkFRgZpSA8WbkkCk4tUumj6YsGOUM-RDYDCa20,4236
|
|
|
51
51
|
reflex/compiler/__init__.py,sha256=r8jqmDSFf09iV2lHlNhfc9XrTLjNxfDNwPYlxS4cmHE,27
|
|
52
52
|
reflex/compiler/compiler.py,sha256=8fa-IvHJKpk3URrfEjY049Zv220o4BEZ8Kokdkd4QhY,21046
|
|
53
53
|
reflex/compiler/templates.py,sha256=XsimfIuF-aYnk7r1LfLVJWW8447Lra32cxZBrw20YnU,5900
|
|
54
|
-
reflex/compiler/utils.py,sha256=
|
|
54
|
+
reflex/compiler/utils.py,sha256=HPDt64CqgWFVUi9tTPMGfSKV0E3M6RXg1jzzRHVWViM,16295
|
|
55
55
|
reflex/components/__init__.py,sha256=zbIXThv1WPI0FdIGf9G9RAmGoCRoGy7nHcSZ8K5D5bA,624
|
|
56
56
|
reflex/components/__init__.pyi,sha256=qoj1zIWaitcZOGcJ6k7wuGJk_GAJCE9Xtx8CeRVrvoE,861
|
|
57
57
|
reflex/components/base/__init__.py,sha256=QIOxOPT87WrSE4TSHAsZ-358VzvUXAe1w8vWogQ3Uuo,730
|
|
@@ -97,7 +97,7 @@ reflex/components/core/html.pyi,sha256=Gh5bJ3x88302rvIysfsrPb-Rc4tLmlqaDpoJYa0g4
|
|
|
97
97
|
reflex/components/core/layout/__init__.py,sha256=znldZaj_NGt8qCZDG70GMwjMTskcvCf_2N_EjCAHwdc,30
|
|
98
98
|
reflex/components/core/match.py,sha256=Dp_kAwkJwT8TvBiaLK-OwQyGl24sian8k_o7bK-P-54,9281
|
|
99
99
|
reflex/components/core/responsive.py,sha256=ACZdtJ4a4F8B3dm1k8h6J2_UJx0Z5LDB7XHQ2ty4wAc,1911
|
|
100
|
-
reflex/components/core/sticky.py,sha256=
|
|
100
|
+
reflex/components/core/sticky.py,sha256=2B3TxrwG2Rtp_lv1VkMOIF2bqSiT7qYGbqbiZiMKxKY,3856
|
|
101
101
|
reflex/components/core/sticky.pyi,sha256=x2ruBp6OhVR68npFhbdtw9saH3oo6To2JvG7y8jLTY4,18947
|
|
102
102
|
reflex/components/core/upload.py,sha256=0cq0HGpSsrL1mbvG1GtUCcZUnv6QJwZH1CnexnU8Jhw,11948
|
|
103
103
|
reflex/components/core/upload.pyi,sha256=llY-VTV6qrbcN9csj2UAfEv_uHo3am_NJaXc9k--E1Q,15011
|
|
@@ -163,9 +163,9 @@ reflex/components/next/link.py,sha256=YYhkgkHGqvyf5JGv-ujatzp_nOqEUAxWY9FIWk7r39
|
|
|
163
163
|
reflex/components/next/link.pyi,sha256=E63U9yoAHdtlvucg-mX1O58j4uWpIW8433DFxFH6YBI,2423
|
|
164
164
|
reflex/components/next/video.py,sha256=GngxgHvAfGwRHkPUBNp6_GfGarP5mMN6KFA_-VizDOI,735
|
|
165
165
|
reflex/components/next/video.pyi,sha256=OqvLHkAzgF7-7lb7uaE-8Mfg60XZXdkU4jFnUMapXi4,2364
|
|
166
|
-
reflex/components/plotly/__init__.py,sha256=
|
|
167
|
-
reflex/components/plotly/plotly.py,sha256=
|
|
168
|
-
reflex/components/plotly/plotly.pyi,sha256=
|
|
166
|
+
reflex/components/plotly/__init__.py,sha256=6B_woBJhkrVA9O_AbOTbsA_SxWsqjicYHmLA9FLjGfU,650
|
|
167
|
+
reflex/components/plotly/plotly.py,sha256=bv9uvQw0EHhwcgiYHotPBWoq8FMSoCGB7TqbD3lHuMQ,15343
|
|
168
|
+
reflex/components/plotly/plotly.pyi,sha256=VGJggBUIodQTehSCNgdrkY9eDlwWZZaUXqIhEh0pQOc,47888
|
|
169
169
|
reflex/components/props.py,sha256=8F2ZNeF16BDiTh-E4F-U_vks41BMJgmkTM7xbjGvfOA,2593
|
|
170
170
|
reflex/components/radix/__init__.py,sha256=fRsLvIO3MrTtPOXtmnxYDB9phvzlcbyB_utgpafYMho,474
|
|
171
171
|
reflex/components/radix/__init__.pyi,sha256=YpWw_k35yv_Yq_0RZNCb52fJZ3dANWAnQllhVoVCWEE,3988
|
|
@@ -342,7 +342,7 @@ reflex/constants/style.py,sha256=EPgRYHhAlcrPUBc2HkDTdTj-Q0uDAXHlq8Sp6D35Zf4,475
|
|
|
342
342
|
reflex/constants/utils.py,sha256=HGOSq9c-xGbCb1xoLAGLBdc-FOE8iuBzvuU24zSfsV0,789
|
|
343
343
|
reflex/custom_components/__init__.py,sha256=R4zsvOi4dfPmHc18KEphohXnQFBPnUCb50cMR5hSLDE,36
|
|
344
344
|
reflex/custom_components/custom_components.py,sha256=alW_lKBVemMQhuGobzeycgd34mvz37kPNTytLfLplmQ,33414
|
|
345
|
-
reflex/event.py,sha256=
|
|
345
|
+
reflex/event.py,sha256=JLE5y2pGgUiVmxMReTKNSkcw6fCkONqjXuN4tM3jkts,60904
|
|
346
346
|
reflex/experimental/__init__.py,sha256=bvJ6qFeO3xT3L-8IBtk4ecoi5rda3EDvblgNP60yhEo,2206
|
|
347
347
|
reflex/experimental/client_state.py,sha256=5lmCM7fzEtJp5eegUCoygJRYXf6f1U9UiFyuWxsznbs,9906
|
|
348
348
|
reflex/experimental/hooks.py,sha256=CHYGrAE5t8riltrJmDFgJ4D2Vhmhw-y3B3MSGNlOQow,2366
|
|
@@ -360,7 +360,7 @@ reflex/middleware/hydrate_middleware.py,sha256=QJBEZI-4Jtn3345WgZDQ-twIbJzfiHKvU
|
|
|
360
360
|
reflex/middleware/middleware.py,sha256=9eASK3MrbK1AvT2Sx5GFxXNwSuNW8_LTRGvPY1JccU4,1171
|
|
361
361
|
reflex/model.py,sha256=yOLkxNOgi3GY9mT2E-6rkK-uLv8Av-kYSJ7I19y9JzE,17559
|
|
362
362
|
reflex/page.py,sha256=lbI5Sd4RzZadPV6cYBSNRDIlNlRwEnOv1snF2RGKH04,2392
|
|
363
|
-
reflex/reflex.py,sha256=
|
|
363
|
+
reflex/reflex.py,sha256=FBQYdPaONW3IhYBmNJ-3Etqf9tIV3x_qAwZ8qnvHJZo,19962
|
|
364
364
|
reflex/route.py,sha256=nn_hJwtQdjiqH_dHXfqMGWKllnyPQZTSR-KWdHDhoOs,4210
|
|
365
365
|
reflex/state.py,sha256=W6JeXxj9p5EgtpSAbnpOqTH0liOVZykzt6Nu8A10Nvw,139638
|
|
366
366
|
reflex/style.py,sha256=LXQjo6YhmdqUA59dV9OUxWuScyuYEqnE0rbWYkZ_ogI,13277
|
|
@@ -369,16 +369,16 @@ reflex/utils/__init__.py,sha256=y-AHKiRQAhk2oAkvn7W8cRVTZVK625ff8tTwvZtO7S4,24
|
|
|
369
369
|
reflex/utils/build.py,sha256=5S8zQYiSp2czardXzwY060qScxNDiYWabUzs8elQivE,8522
|
|
370
370
|
reflex/utils/codespaces.py,sha256=TzDK--pHwP4r8Nzl0iB_8r-cOFmmL6nHfZ9xRQHA-KY,2754
|
|
371
371
|
reflex/utils/compat.py,sha256=aSJH_M6iomgHPQ4onQ153xh1MWqPi3HSYDzE68N6gZM,2635
|
|
372
|
-
reflex/utils/console.py,sha256=
|
|
372
|
+
reflex/utils/console.py,sha256=jGPhAy-BBBRLEy0DRD8EoP-2ziPR4-N5CK53wUethFU,9307
|
|
373
373
|
reflex/utils/exceptions.py,sha256=qL5E6F-lKcY7FrYJwKg-LjdvuugYnjszdnbfWkLemsE,7844
|
|
374
374
|
reflex/utils/exec.py,sha256=bc966tpJ8rUh9J8vhZc3txLGp8nAdmUCn76IKLmY1hU,16066
|
|
375
375
|
reflex/utils/export.py,sha256=wsyC6Atsu8LBZlrX0PhjnisMwhFycf4a3WH8DG1dam0,2567
|
|
376
376
|
reflex/utils/format.py,sha256=j56pM45c_-nq8Fnw8Q1z20Y0wFJ32fPpCPFLgH_xCQM,19876
|
|
377
|
-
reflex/utils/imports.py,sha256=
|
|
377
|
+
reflex/utils/imports.py,sha256=8lTJ8qCJlMUlQnZssOv0l2nntuTfGfLsLqkJAS5JTbA,3974
|
|
378
378
|
reflex/utils/lazy_loader.py,sha256=-3DcwIqHNft2fb1ikgDYAMiEwNfbiWfrTBAf1gEVX2o,1367
|
|
379
379
|
reflex/utils/net.py,sha256=0Yd9OLK8R_px2sqnqrDkTky6hYHtG2pEDvvilOjDfjc,1219
|
|
380
|
-
reflex/utils/path_ops.py,sha256=
|
|
381
|
-
reflex/utils/prerequisites.py,sha256=
|
|
380
|
+
reflex/utils/path_ops.py,sha256=FjVAkILH1mN2tPeoWPNN7NTVD11DiXF4RaPGEUUNlMA,7504
|
|
381
|
+
reflex/utils/prerequisites.py,sha256=EWWnjJQQUBpJzBLeNj-ZQvQbQqveEVOCoQHlW-fvRqQ,66102
|
|
382
382
|
reflex/utils/processes.py,sha256=h_vXmQdInVCaCQ1cGgIQd4x5CbzYRSFy6n1U4iWkMy8,13729
|
|
383
383
|
reflex/utils/pyi_generator.py,sha256=6BVJ1KrLH8WvfYjBVm5-zjI6-Zdhzngp5ubkixsCIl4,41240
|
|
384
384
|
reflex/utils/redir.py,sha256=bmQGAgoNWwySeLRQTpoMpmKInwIOCW77wkXT61fwcj8,1868
|
|
@@ -387,15 +387,15 @@ reflex/utils/serializers.py,sha256=xQjEiIqZS0tjxuEjqETXikePzSAbCxC6g_JnzNYk2s4,1
|
|
|
387
387
|
reflex/utils/telemetry.py,sha256=PfbtZKtAaP_ufad5ZNqJYrtvkjDrqEFUGy9We9-B0pg,5804
|
|
388
388
|
reflex/utils/types.py,sha256=kZHLmRibRnTRex5cbjlnFqsYpi2CSbfsfOQ_vS70cxU,27124
|
|
389
389
|
reflex/vars/__init__.py,sha256=2Kv6Oh9g3ISZFESjL1al8KiO7QBZUXmLKGMCBsP-DoY,1243
|
|
390
|
-
reflex/vars/base.py,sha256=
|
|
390
|
+
reflex/vars/base.py,sha256=vsKm-UHWFf6keupqgC_x4B8QyILH1xgJwMjV4-ow9Q4,100162
|
|
391
391
|
reflex/vars/datetime.py,sha256=6j63p5uZiWLldiIl3VVh9jWghuW1_GyBevyy2b4rdr4,5803
|
|
392
392
|
reflex/vars/dep_tracking.py,sha256=kluvF4Pfbpdqf0GcpmYHjT1yP-D1erAzaSQP6qIxjB0,13846
|
|
393
393
|
reflex/vars/function.py,sha256=v2W5JHgCK9Afu2mobFeoj03G6tbih1Y-wM7LQBwA9vU,14777
|
|
394
394
|
reflex/vars/number.py,sha256=rVybcAoMOOFsWAbA_BZN3GVx9p4W_YPLHVYRCJqti04,27861
|
|
395
|
-
reflex/vars/object.py,sha256=
|
|
395
|
+
reflex/vars/object.py,sha256=jfvxtrklztDtbD2zgNVNCZZE6X6HQMB6yJHPhtb0hUo,15033
|
|
396
396
|
reflex/vars/sequence.py,sha256=GiSXbOIcoy7VSrecuBjbhg5G4QTjFV0Rcfn5T0EsecA,52032
|
|
397
|
-
reflex-0.7.
|
|
398
|
-
reflex-0.7.
|
|
399
|
-
reflex-0.7.
|
|
400
|
-
reflex-0.7.
|
|
401
|
-
reflex-0.7.
|
|
397
|
+
reflex-0.7.0a5.dist-info/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
|
|
398
|
+
reflex-0.7.0a5.dist-info/METADATA,sha256=Ug_nreTx9SHaLFb00XprWr03Lyn8fU_5TO6EGdtYIrk,12073
|
|
399
|
+
reflex-0.7.0a5.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
|
400
|
+
reflex-0.7.0a5.dist-info/entry_points.txt,sha256=H1Z5Yat_xJfy0dRT1Frk2PkO_p41Xy7fCKlj4FcdL9o,44
|
|
401
|
+
reflex-0.7.0a5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|