reflex 0.7.6a0__py3-none-any.whl → 0.7.6.post1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of reflex might be problematic. Click here for more details.
- reflex/app.py +4 -0
- reflex/components/el/elements/forms.py +6 -0
- reflex/components/el/elements/forms.pyi +1132 -4
- reflex/components/recharts/__init__.py +1 -0
- reflex/components/recharts/__init__.pyi +1 -0
- reflex/components/recharts/general.py +1 -1
- reflex/components/recharts/general.pyi +1 -1
- reflex/state.py +27 -6
- reflex/utils/decorator.py +21 -0
- reflex/utils/export.py +2 -2
- reflex/utils/pyi_generator.py +13 -7
- reflex/utils/telemetry.py +82 -21
- reflex/utils/types.py +12 -0
- {reflex-0.7.6a0.dist-info → reflex-0.7.6.post1.dist-info}/METADATA +1 -1
- {reflex-0.7.6a0.dist-info → reflex-0.7.6.post1.dist-info}/RECORD +18 -18
- {reflex-0.7.6a0.dist-info → reflex-0.7.6.post1.dist-info}/WHEEL +0 -0
- {reflex-0.7.6a0.dist-info → reflex-0.7.6.post1.dist-info}/entry_points.txt +0 -0
- {reflex-0.7.6a0.dist-info → reflex-0.7.6.post1.dist-info}/licenses/LICENSE +0 -0
|
@@ -65,6 +65,7 @@ from .general import label as label
|
|
|
65
65
|
from .general import label_list as label_list
|
|
66
66
|
from .general import legend as legend
|
|
67
67
|
from .general import responsive_container as responsive_container
|
|
68
|
+
from .general import tooltip as tooltip
|
|
68
69
|
from .polar import Pie as Pie
|
|
69
70
|
from .polar import PolarAngleAxis as PolarAngleAxis
|
|
70
71
|
from .polar import PolarGrid as PolarGrid
|
|
@@ -259,7 +259,7 @@ class Cell(Recharts):
|
|
|
259
259
|
|
|
260
260
|
responsive_container = ResponsiveContainer.create
|
|
261
261
|
legend = Legend.create
|
|
262
|
-
graphing_tooltip = GraphingTooltip.create
|
|
262
|
+
graphing_tooltip = tooltip = GraphingTooltip.create
|
|
263
263
|
label = Label.create
|
|
264
264
|
label_list = LabelList.create
|
|
265
265
|
cell = Cell.create
|
|
@@ -533,7 +533,7 @@ class Cell(Recharts):
|
|
|
533
533
|
|
|
534
534
|
responsive_container = ResponsiveContainer.create
|
|
535
535
|
legend = Legend.create
|
|
536
|
-
graphing_tooltip = GraphingTooltip.create
|
|
536
|
+
graphing_tooltip = tooltip = GraphingTooltip.create
|
|
537
537
|
label = Label.create
|
|
538
538
|
label_list = LabelList.create
|
|
539
539
|
cell = Cell.create
|
reflex/state.py
CHANGED
|
@@ -1403,6 +1403,29 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow):
|
|
|
1403
1403
|
for substate in self.substates.values():
|
|
1404
1404
|
substate.reset()
|
|
1405
1405
|
|
|
1406
|
+
@classmethod
|
|
1407
|
+
@functools.lru_cache
|
|
1408
|
+
def _is_client_storage(cls, prop_name_or_field: str | ModelField) -> bool:
|
|
1409
|
+
"""Check if the var is a client storage var.
|
|
1410
|
+
|
|
1411
|
+
Args:
|
|
1412
|
+
prop_name_or_field: The name of the var or the field itself.
|
|
1413
|
+
|
|
1414
|
+
Returns:
|
|
1415
|
+
Whether the var is a client storage var.
|
|
1416
|
+
"""
|
|
1417
|
+
if isinstance(prop_name_or_field, str):
|
|
1418
|
+
field = cls.get_fields().get(prop_name_or_field)
|
|
1419
|
+
else:
|
|
1420
|
+
field = prop_name_or_field
|
|
1421
|
+
return field is not None and (
|
|
1422
|
+
isinstance(field.default, ClientStorageBase)
|
|
1423
|
+
or (
|
|
1424
|
+
isinstance(field.type_, type)
|
|
1425
|
+
and issubclass(field.type_, ClientStorageBase)
|
|
1426
|
+
)
|
|
1427
|
+
)
|
|
1428
|
+
|
|
1406
1429
|
def _reset_client_storage(self):
|
|
1407
1430
|
"""Reset client storage base vars to their default values."""
|
|
1408
1431
|
# Client-side storage is reset during hydrate so that clearing cookies
|
|
@@ -1410,10 +1433,7 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow):
|
|
|
1410
1433
|
fields = self.get_fields()
|
|
1411
1434
|
for prop_name in self.base_vars:
|
|
1412
1435
|
field = fields[prop_name]
|
|
1413
|
-
if
|
|
1414
|
-
isinstance(field.type_, type)
|
|
1415
|
-
and issubclass(field.type_, ClientStorageBase)
|
|
1416
|
-
):
|
|
1436
|
+
if self._is_client_storage(field):
|
|
1417
1437
|
setattr(self, prop_name, copy.deepcopy(field.default))
|
|
1418
1438
|
|
|
1419
1439
|
# Recursively reset the substate client storage.
|
|
@@ -2360,8 +2380,9 @@ class UpdateVarsInternalState(State):
|
|
|
2360
2380
|
for var, value in vars.items():
|
|
2361
2381
|
state_name, _, var_name = var.rpartition(".")
|
|
2362
2382
|
var_state_cls = State.get_class_substate(state_name)
|
|
2363
|
-
|
|
2364
|
-
|
|
2383
|
+
if var_state_cls._is_client_storage(var_name):
|
|
2384
|
+
var_state = await self.get_state(var_state_cls)
|
|
2385
|
+
setattr(var_state, var_name, value)
|
|
2365
2386
|
|
|
2366
2387
|
|
|
2367
2388
|
class OnLoadInternalState(State):
|
reflex/utils/decorator.py
CHANGED
|
@@ -18,6 +18,7 @@ def once(f: Callable[[], T]) -> Callable[[], T]:
|
|
|
18
18
|
unset = object()
|
|
19
19
|
value: object | T = unset
|
|
20
20
|
|
|
21
|
+
@functools.wraps(f)
|
|
21
22
|
def wrapper() -> T:
|
|
22
23
|
nonlocal value
|
|
23
24
|
value = f() if value is unset else value
|
|
@@ -26,6 +27,26 @@ def once(f: Callable[[], T]) -> Callable[[], T]:
|
|
|
26
27
|
return wrapper
|
|
27
28
|
|
|
28
29
|
|
|
30
|
+
def once_unless_none(f: Callable[[], T | None]) -> Callable[[], T | None]:
|
|
31
|
+
"""A decorator that calls the function once and caches the result unless it is None.
|
|
32
|
+
|
|
33
|
+
Args:
|
|
34
|
+
f: The function to call.
|
|
35
|
+
|
|
36
|
+
Returns:
|
|
37
|
+
A function that calls the function once and caches the result unless it is None.
|
|
38
|
+
"""
|
|
39
|
+
value: T | None = None
|
|
40
|
+
|
|
41
|
+
@functools.wraps(f)
|
|
42
|
+
def wrapper() -> T | None:
|
|
43
|
+
nonlocal value
|
|
44
|
+
value = f() if value is None else value
|
|
45
|
+
return value
|
|
46
|
+
|
|
47
|
+
return wrapper
|
|
48
|
+
|
|
49
|
+
|
|
29
50
|
P = ParamSpec("P")
|
|
30
51
|
|
|
31
52
|
|
reflex/utils/export.py
CHANGED
|
@@ -41,10 +41,10 @@ def export(
|
|
|
41
41
|
|
|
42
42
|
# Override the config url values if provided.
|
|
43
43
|
if api_url is not None:
|
|
44
|
-
config.api_url
|
|
44
|
+
config._set_persistent(api_url=str(api_url))
|
|
45
45
|
console.debug(f"overriding API URL: {config.api_url}")
|
|
46
46
|
if deploy_url is not None:
|
|
47
|
-
config.deploy_url
|
|
47
|
+
config._set_persistent(deploy_url=str(deploy_url))
|
|
48
48
|
console.debug(f"overriding deploy URL: {config.deploy_url}")
|
|
49
49
|
|
|
50
50
|
# Show system info
|
reflex/utils/pyi_generator.py
CHANGED
|
@@ -1250,12 +1250,20 @@ class PyiGenerator:
|
|
|
1250
1250
|
file_parent = file_parent.parent
|
|
1251
1251
|
top_dir = top_dir.parent
|
|
1252
1252
|
|
|
1253
|
-
|
|
1253
|
+
pyi_hashes_file = top_dir / "pyi_hashes.json"
|
|
1254
|
+
if not pyi_hashes_file.exists():
|
|
1255
|
+
while top_dir.parent and not (top_dir / "pyi_hashes.json").exists():
|
|
1256
|
+
top_dir = top_dir.parent
|
|
1257
|
+
another_pyi_hashes_file = top_dir / "pyi_hashes.json"
|
|
1258
|
+
if another_pyi_hashes_file.exists():
|
|
1259
|
+
pyi_hashes_file = another_pyi_hashes_file
|
|
1260
|
+
|
|
1261
|
+
pyi_hashes_file.write_text(
|
|
1254
1262
|
json.dumps(
|
|
1255
1263
|
dict(
|
|
1256
1264
|
zip(
|
|
1257
1265
|
[
|
|
1258
|
-
str(f.relative_to(
|
|
1266
|
+
str(f.relative_to(pyi_hashes_file.parent))
|
|
1259
1267
|
for f in file_paths
|
|
1260
1268
|
],
|
|
1261
1269
|
hashes,
|
|
@@ -1271,11 +1279,8 @@ class PyiGenerator:
|
|
|
1271
1279
|
file_paths = list(map(Path, file_paths))
|
|
1272
1280
|
pyi_hashes_parent = file_paths[0].parent
|
|
1273
1281
|
while (
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
for subfile in pyi_hashes_parent.iterdir()
|
|
1277
|
-
)
|
|
1278
|
-
and pyi_hashes_parent.parent
|
|
1282
|
+
pyi_hashes_parent.parent
|
|
1283
|
+
and not (pyi_hashes_parent / "pyi_hashes.json").exists()
|
|
1279
1284
|
):
|
|
1280
1285
|
pyi_hashes_parent = pyi_hashes_parent.parent
|
|
1281
1286
|
|
|
@@ -1288,6 +1293,7 @@ class PyiGenerator:
|
|
|
1288
1293
|
pyi_hashes[str(file_path.relative_to(pyi_hashes_parent))] = (
|
|
1289
1294
|
hashed_content
|
|
1290
1295
|
)
|
|
1296
|
+
|
|
1291
1297
|
pyi_hashes_file.write_text(
|
|
1292
1298
|
json.dumps(pyi_hashes, indent=2, sort_keys=True) + "\n"
|
|
1293
1299
|
)
|
reflex/utils/telemetry.py
CHANGED
|
@@ -9,6 +9,7 @@ import platform
|
|
|
9
9
|
import warnings
|
|
10
10
|
from contextlib import suppress
|
|
11
11
|
from datetime import datetime, timezone
|
|
12
|
+
from typing import TypedDict
|
|
12
13
|
|
|
13
14
|
import httpx
|
|
14
15
|
import psutil
|
|
@@ -16,6 +17,8 @@ import psutil
|
|
|
16
17
|
from reflex import constants
|
|
17
18
|
from reflex.config import environment
|
|
18
19
|
from reflex.utils import console
|
|
20
|
+
from reflex.utils.decorator import once_unless_none
|
|
21
|
+
from reflex.utils.exceptions import ReflexError
|
|
19
22
|
from reflex.utils.prerequisites import ensure_reflex_installation_id, get_project_hash
|
|
20
23
|
|
|
21
24
|
UTC = timezone.utc
|
|
@@ -94,15 +97,39 @@ def _raise_on_missing_project_hash() -> bool:
|
|
|
94
97
|
return not environment.REFLEX_SKIP_COMPILE.get()
|
|
95
98
|
|
|
96
99
|
|
|
97
|
-
|
|
98
|
-
"""
|
|
100
|
+
class _Properties(TypedDict):
|
|
101
|
+
"""Properties type for telemetry."""
|
|
99
102
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
+
distinct_id: int
|
|
104
|
+
distinct_app_id: int
|
|
105
|
+
user_os: str
|
|
106
|
+
user_os_detail: str
|
|
107
|
+
reflex_version: str
|
|
108
|
+
python_version: str
|
|
109
|
+
cpu_count: int
|
|
110
|
+
memory: int
|
|
111
|
+
cpu_info: dict
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
class _DefaultEvent(TypedDict):
|
|
115
|
+
"""Default event type for telemetry."""
|
|
116
|
+
|
|
117
|
+
api_key: str
|
|
118
|
+
properties: _Properties
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
class _Event(_DefaultEvent):
|
|
122
|
+
"""Event type for telemetry."""
|
|
123
|
+
|
|
124
|
+
event: str
|
|
125
|
+
timestamp: str
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
def _get_event_defaults() -> _DefaultEvent | None:
|
|
129
|
+
"""Get the default event data.
|
|
103
130
|
|
|
104
131
|
Returns:
|
|
105
|
-
The event data.
|
|
132
|
+
The default event data.
|
|
106
133
|
"""
|
|
107
134
|
from reflex.utils.prerequisites import get_cpu_info
|
|
108
135
|
|
|
@@ -113,19 +140,12 @@ def _prepare_event(event: str, **kwargs) -> dict:
|
|
|
113
140
|
console.debug(
|
|
114
141
|
f"Could not get installation_id or project_hash: {installation_id}, {project_hash}"
|
|
115
142
|
)
|
|
116
|
-
return
|
|
117
|
-
|
|
118
|
-
stamp = datetime.now(UTC).isoformat()
|
|
143
|
+
return None
|
|
119
144
|
|
|
120
145
|
cpuinfo = get_cpu_info()
|
|
121
146
|
|
|
122
|
-
additional_keys = ["template", "context", "detail", "user_uuid"]
|
|
123
|
-
additional_fields = {
|
|
124
|
-
key: value for key in additional_keys if (value := kwargs.get(key)) is not None
|
|
125
|
-
}
|
|
126
147
|
return {
|
|
127
148
|
"api_key": "phc_JoMo0fOyi0GQAooY3UyO9k0hebGkMyFJrrCw1Gt5SGb",
|
|
128
|
-
"event": event,
|
|
129
149
|
"properties": {
|
|
130
150
|
"distinct_id": installation_id,
|
|
131
151
|
"distinct_app_id": project_hash,
|
|
@@ -136,13 +156,55 @@ def _prepare_event(event: str, **kwargs) -> dict:
|
|
|
136
156
|
"cpu_count": get_cpu_count(),
|
|
137
157
|
"memory": get_memory(),
|
|
138
158
|
"cpu_info": dataclasses.asdict(cpuinfo) if cpuinfo else {},
|
|
139
|
-
**additional_fields,
|
|
140
159
|
},
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
@once_unless_none
|
|
164
|
+
def get_event_defaults() -> _DefaultEvent | None:
|
|
165
|
+
"""Get the default event data.
|
|
166
|
+
|
|
167
|
+
Returns:
|
|
168
|
+
The default event data.
|
|
169
|
+
"""
|
|
170
|
+
return _get_event_defaults()
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
def _prepare_event(event: str, **kwargs) -> _Event | None:
|
|
174
|
+
"""Prepare the event to be sent to the PostHog server.
|
|
175
|
+
|
|
176
|
+
Args:
|
|
177
|
+
event: The event name.
|
|
178
|
+
kwargs: Additional data to send with the event.
|
|
179
|
+
|
|
180
|
+
Returns:
|
|
181
|
+
The event data.
|
|
182
|
+
"""
|
|
183
|
+
event_data = get_event_defaults()
|
|
184
|
+
if not event_data:
|
|
185
|
+
return None
|
|
186
|
+
|
|
187
|
+
additional_keys = ["template", "context", "detail", "user_uuid"]
|
|
188
|
+
|
|
189
|
+
properties = event_data["properties"]
|
|
190
|
+
|
|
191
|
+
for key in additional_keys:
|
|
192
|
+
if key in properties or key not in kwargs:
|
|
193
|
+
continue
|
|
194
|
+
|
|
195
|
+
properties[key] = kwargs[key]
|
|
196
|
+
|
|
197
|
+
stamp = datetime.now(UTC).isoformat()
|
|
198
|
+
|
|
199
|
+
return {
|
|
200
|
+
"api_key": event_data["api_key"],
|
|
201
|
+
"event": event,
|
|
202
|
+
"properties": properties,
|
|
141
203
|
"timestamp": stamp,
|
|
142
204
|
}
|
|
143
205
|
|
|
144
206
|
|
|
145
|
-
def _send_event(event_data:
|
|
207
|
+
def _send_event(event_data: _Event) -> bool:
|
|
146
208
|
try:
|
|
147
209
|
httpx.post(POSTHOG_API_URL, json=event_data)
|
|
148
210
|
except Exception:
|
|
@@ -151,7 +213,7 @@ def _send_event(event_data: dict) -> bool:
|
|
|
151
213
|
return True
|
|
152
214
|
|
|
153
215
|
|
|
154
|
-
def _send(event: str, telemetry_enabled: bool | None, **kwargs):
|
|
216
|
+
def _send(event: str, telemetry_enabled: bool | None, **kwargs) -> bool:
|
|
155
217
|
from reflex.config import get_config
|
|
156
218
|
|
|
157
219
|
# Get the telemetry_enabled from the config if it is not specified.
|
|
@@ -167,6 +229,7 @@ def _send(event: str, telemetry_enabled: bool | None, **kwargs):
|
|
|
167
229
|
if not event_data:
|
|
168
230
|
return False
|
|
169
231
|
return _send_event(event_data)
|
|
232
|
+
return False
|
|
170
233
|
|
|
171
234
|
|
|
172
235
|
def send(event: str, telemetry_enabled: bool | None = None, **kwargs):
|
|
@@ -196,8 +259,6 @@ def send_error(error: Exception, context: str):
|
|
|
196
259
|
Args:
|
|
197
260
|
error: The error to send.
|
|
198
261
|
context: The context of the error (e.g. "frontend" or "backend")
|
|
199
|
-
|
|
200
|
-
Returns:
|
|
201
|
-
Whether the telemetry was sent successfully.
|
|
202
262
|
"""
|
|
203
|
-
|
|
263
|
+
if isinstance(error, ReflexError):
|
|
264
|
+
send("error", detail=type(error).__name__, context=context)
|
reflex/utils/types.py
CHANGED
|
@@ -996,6 +996,18 @@ def typehint_issubclass(
|
|
|
996
996
|
for arg in args
|
|
997
997
|
)
|
|
998
998
|
|
|
999
|
+
if is_literal(possible_subclass):
|
|
1000
|
+
args = get_args(possible_subclass)
|
|
1001
|
+
return all(
|
|
1002
|
+
_isinstance(
|
|
1003
|
+
arg,
|
|
1004
|
+
possible_superclass,
|
|
1005
|
+
treat_mutable_obj_as_immutable=treat_mutable_superclasss_as_immutable,
|
|
1006
|
+
nested=2,
|
|
1007
|
+
)
|
|
1008
|
+
for arg in args
|
|
1009
|
+
)
|
|
1010
|
+
|
|
999
1011
|
# Remove this check when Python 3.10 is the minimum supported version
|
|
1000
1012
|
if hasattr(types, "UnionType"):
|
|
1001
1013
|
provided_type_origin = (
|
|
@@ -2,7 +2,7 @@ reflex/__init__.py,sha256=viEt38jc1skwOUBwwlwPL02hcGrm9xNQzKExVftZEx4,10365
|
|
|
2
2
|
reflex/__init__.pyi,sha256=h9ltlhaz1dySsNYpUkN_VCjEzHGfb1h18ThYh15QjyU,11358
|
|
3
3
|
reflex/__main__.py,sha256=6cVrGEyT3j3tEvlEVUatpaYfbB5EF3UVY-6vc_Z7-hw,108
|
|
4
4
|
reflex/admin.py,sha256=q9F2Z4BCtdjPZDGYpk3ogFysTfDPtlR2gY6XDtVPK8U,436
|
|
5
|
-
reflex/app.py,sha256
|
|
5
|
+
reflex/app.py,sha256=-tDJFgxiZwmMTgK59pGFr6nwHQ_9BO5GpTWu8c0JMUo,69964
|
|
6
6
|
reflex/assets.py,sha256=PLTKAMYPKMZq8eWXKX8uco6NZ9IiPGWal0bOPLUmU7k,3364
|
|
7
7
|
reflex/base.py,sha256=UuWQkOgZYvJNSIkYuNpb4wp9WtIBXlfmxXARAnOXiZ4,3889
|
|
8
8
|
reflex/config.py,sha256=HowZkxtWwfYPOG_jFDgM3--5_9Ebv1Hv2AursD_1GvE,35443
|
|
@@ -12,7 +12,7 @@ reflex/page.py,sha256=qEt8n5EtawSywCzdsiaNQJWhC8ie-vg8ig0JGuVavPI,2386
|
|
|
12
12
|
reflex/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
13
|
reflex/reflex.py,sha256=tbQ8evLyoda6-Lz1bKcbj0VHWuVzAM8ApFF6POYl_aM,21576
|
|
14
14
|
reflex/route.py,sha256=nn_hJwtQdjiqH_dHXfqMGWKllnyPQZTSR-KWdHDhoOs,4210
|
|
15
|
-
reflex/state.py,sha256=
|
|
15
|
+
reflex/state.py,sha256=ZMI6S2lixIOAalkJ8a-gqkPyRKySKB50nOs9TIvvErk,142822
|
|
16
16
|
reflex/style.py,sha256=09ZKOBmBNELIB5O4rgLd511hF0EqDPHgVCTJqWiOT7o,13165
|
|
17
17
|
reflex/testing.py,sha256=lsW4I5qKrEOYVjGj-hibLi5S6w2wFMpAOMeLEPADiJA,36068
|
|
18
18
|
reflex/.templates/apps/blank/assets/favicon.ico,sha256=baxxgDAQ2V4-G5Q4S2yK5uUJTUGkv-AOWBQ0xd6myUo,4286
|
|
@@ -136,8 +136,8 @@ reflex/components/el/elements/__init__.py,sha256=Ocexkpl7YRpdpL6YPsG_QgxYWO0dx1g
|
|
|
136
136
|
reflex/components/el/elements/__init__.pyi,sha256=uuwnUtPo4hPTByt8qzbdZT-_cOSPiTTaw5BXN2H2kpM,11129
|
|
137
137
|
reflex/components/el/elements/base.py,sha256=4jnwyCQUHvWcIfwiIWVCiIC_jbwZlkAiOgx73t7tdw8,3075
|
|
138
138
|
reflex/components/el/elements/base.pyi,sha256=QQ9ZvgJEH-0QnjEY7I9Rj4O4qVPAxt3mhx0UXHqZII8,10032
|
|
139
|
-
reflex/components/el/elements/forms.py,sha256=
|
|
140
|
-
reflex/components/el/elements/forms.pyi,sha256=
|
|
139
|
+
reflex/components/el/elements/forms.py,sha256=Yr4JZ3qy-NGehP3kGnFayUNaEIg3Ly8B1AAdrrN16oo,20293
|
|
140
|
+
reflex/components/el/elements/forms.pyi,sha256=CC2bByXLm8bYj6TkSccapfgzOlyHdtin0z5lqiwD1ZE,168528
|
|
141
141
|
reflex/components/el/elements/inline.py,sha256=GxOYtkNm1OfdMeqNvrFY_AUm-SVdc4Zg4JdSf3V3S6g,4064
|
|
142
142
|
reflex/components/el/elements/inline.pyi,sha256=O9CSe9Cm-NzxLn64UtdnkosZyIgXfJcYGxLYlc-hEQA,231259
|
|
143
143
|
reflex/components/el/elements/media.py,sha256=n84bNz3KO4TkaCi7eFierpVkcDEB9uYTk5oBKl-s1GI,13064
|
|
@@ -314,14 +314,14 @@ reflex/components/react_player/react_player.py,sha256=hadeQezGV0C2FlGgK2kvx_3waO
|
|
|
314
314
|
reflex/components/react_player/react_player.pyi,sha256=VHuN1UIv66HQQ7PCg-_n4Te71goTrMQ_J-XzcYQ4D2s,5957
|
|
315
315
|
reflex/components/react_player/video.py,sha256=2V6tiwCwrzu9WPI1Wmuepk8kQ6M6K8nnMdLLjEbrxrw,186
|
|
316
316
|
reflex/components/react_player/video.pyi,sha256=G6pNIDE6KeweCBT2BoARIdoC0G8Gm2wvDnE_K5OAIRY,5925
|
|
317
|
-
reflex/components/recharts/__init__.py,sha256=
|
|
318
|
-
reflex/components/recharts/__init__.pyi,sha256
|
|
317
|
+
reflex/components/recharts/__init__.py,sha256=v_6K60Bi-tFUrGCOcAPXt7-sAREpcJRzlYPOjUYTxC8,2695
|
|
318
|
+
reflex/components/recharts/__init__.pyi,sha256=2YiybRu2AIWwPQ6upgGnb8ZPx4z-cZHgKl1vDZnliW4,5184
|
|
319
319
|
reflex/components/recharts/cartesian.py,sha256=-B1ktmunQO9fGQTu793JfO0XhEVIh5f2uswRA48RtPE,34560
|
|
320
320
|
reflex/components/recharts/cartesian.pyi,sha256=o9nGmPnw-hPqzIPSaZqq9RYrE0947XPcyqe1WBcjNv8,103769
|
|
321
321
|
reflex/components/recharts/charts.py,sha256=uKwNiBM0nMOoTsYziewIS6pYDg457s4EaN9QOADnK2s,18824
|
|
322
322
|
reflex/components/recharts/charts.pyi,sha256=PPirR85Pk8PzOMW-DB1pMZaWHowuz1PNrl1k-XvtTmI,49144
|
|
323
|
-
reflex/components/recharts/general.py,sha256=
|
|
324
|
-
reflex/components/recharts/general.pyi,sha256=
|
|
323
|
+
reflex/components/recharts/general.py,sha256=RVYO1iuuYJAgm_cqoujc2rC8uexj_mYrxEYoBBnTvlc,9032
|
|
324
|
+
reflex/components/recharts/general.pyi,sha256=NkDBNa_5clkFnSu3h-LZcUWk91wmOvCt0g6aTvz0t6s,23368
|
|
325
325
|
reflex/components/recharts/polar.py,sha256=BuR3Zhj1PuYTO0md_RrQIiNaoj0lhqG4wd818F2fGFc,15557
|
|
326
326
|
reflex/components/recharts/polar.pyi,sha256=N2kSLYpZhnnYzZdIiQxWvzpYiTyPJ50UwPpctExYQMM,27100
|
|
327
327
|
reflex/components/recharts/recharts.py,sha256=is9FG2MJ6aYsZLDe1uW4zWNRs7LNJFKVbAndYC77jqA,3176
|
|
@@ -371,10 +371,10 @@ reflex/utils/build.py,sha256=yt6obelsj1MUhTVHoaxdOH--gYtIEpekYjTN97iFrNg,9118
|
|
|
371
371
|
reflex/utils/codespaces.py,sha256=6oNokBRpH5Qj39LTS9R2hW59ZVLRwDEooeHD_85hmfw,2945
|
|
372
372
|
reflex/utils/compat.py,sha256=aSJH_M6iomgHPQ4onQ153xh1MWqPi3HSYDzE68N6gZM,2635
|
|
373
373
|
reflex/utils/console.py,sha256=97QCo1vXFM-B32zrvYH51yzDRyNPkXD5nNriaiCrlpc,9439
|
|
374
|
-
reflex/utils/decorator.py,sha256=
|
|
374
|
+
reflex/utils/decorator.py,sha256=RaqnUjPaEZSrTy9jy4AQZVG2rpOjJK8Eec0PE-9BNcA,1711
|
|
375
375
|
reflex/utils/exceptions.py,sha256=Wwu7Ji2xgq521bJKtU2NgjwhmFfnG8erirEVN2h8S-g,8884
|
|
376
376
|
reflex/utils/exec.py,sha256=cZhowK1CD8qUZEyRxhfTljOkKsZCoMXODLv621sQ3b0,19394
|
|
377
|
-
reflex/utils/export.py,sha256=
|
|
377
|
+
reflex/utils/export.py,sha256=eRAVmXyOfCjaL0g4YwWy9f48YT21tfKtd8Evt37_sRY,2567
|
|
378
378
|
reflex/utils/format.py,sha256=a8em_yzqp9pLTrPXRsdzFWSO1qL2x25BpJXOf9DV1t8,20638
|
|
379
379
|
reflex/utils/imports.py,sha256=k16vV5ANvWrKB1a5WYO7v5BVWES3RabEX8xAEnGvHhg,4162
|
|
380
380
|
reflex/utils/lazy_loader.py,sha256=pdirbNnGfB-r21zgjzHk0c6vODXqKLn9vbJiP5Yr5nQ,4138
|
|
@@ -383,12 +383,12 @@ reflex/utils/net.py,sha256=8ceAC_diguAxVOOJpzax2vb1RA2h4BxS8SJvpgWqGYI,3175
|
|
|
383
383
|
reflex/utils/path_ops.py,sha256=idGxUSJRKwYLLi7ppXkq3eV6rvAytJoO-n-FuLkwl3o,7604
|
|
384
384
|
reflex/utils/prerequisites.py,sha256=OdZlAL7EMybK1jD_q7MuBbH_o9nP9z9d12dT7skb3jk,65869
|
|
385
385
|
reflex/utils/processes.py,sha256=OpZafayCw5VhPyD1LIyin_5fu7Oy2mDCqSxAxX4sh08,16617
|
|
386
|
-
reflex/utils/pyi_generator.py,sha256=
|
|
386
|
+
reflex/utils/pyi_generator.py,sha256=SaBMcZrQ68hl77DcskNBo9FODyFQdWuixmlpS695EjE,45030
|
|
387
387
|
reflex/utils/redir.py,sha256=23OcUTsbThak5VYMQPOkSzyNsMB3VkgtF1bodSnHwbE,1533
|
|
388
388
|
reflex/utils/registry.py,sha256=ymBScatt5YiQz9tPYHCzSPs-X7z29hGuu2tlZG28YDQ,1877
|
|
389
389
|
reflex/utils/serializers.py,sha256=mk5U7U-ae4yTvifq17ejaX1qtKhg1UIJiWiXUNWjJfY,13399
|
|
390
|
-
reflex/utils/telemetry.py,sha256=
|
|
391
|
-
reflex/utils/types.py,sha256=
|
|
390
|
+
reflex/utils/telemetry.py,sha256=kZeI_RjY32MTpx12Y5hMXyd6bkli9xAQsmbbIKuf0fg,6779
|
|
391
|
+
reflex/utils/types.py,sha256=puaBT2vazRGRQluyTcZh8iZ6qLMRCuccMsKTNY0RCFg,33970
|
|
392
392
|
reflex/vars/__init__.py,sha256=2Kv6Oh9g3ISZFESjL1al8KiO7QBZUXmLKGMCBsP-DoY,1243
|
|
393
393
|
reflex/vars/base.py,sha256=bYCCkLp7aa75Wuv4M763K7Xqu2DFd_FbW11M-fw7ykE,101326
|
|
394
394
|
reflex/vars/datetime.py,sha256=fEc68T0A6XYlAJ3AGteCIb_vDqgoO1O8tpjMzqlp9sc,5104
|
|
@@ -397,8 +397,8 @@ reflex/vars/function.py,sha256=2sVnhgetPSwtor8VFtAiYJdzZ9IRNzAKdsUJG6dXQcE,14461
|
|
|
397
397
|
reflex/vars/number.py,sha256=__X8C4lwDQNy8RL9-AxVgC6MM1KF-2PClXE0aR9Ldno,27453
|
|
398
398
|
reflex/vars/object.py,sha256=-fGqHThozjxAAuQL-wTwEItPiFI-ps53P2bKoSlW_As,17081
|
|
399
399
|
reflex/vars/sequence.py,sha256=zR3Gwi0xkypThKO45KGqu_AYruY1mTK8kmHjzXcm8y8,55289
|
|
400
|
-
reflex-0.7.
|
|
401
|
-
reflex-0.7.
|
|
402
|
-
reflex-0.7.
|
|
403
|
-
reflex-0.7.
|
|
404
|
-
reflex-0.7.
|
|
400
|
+
reflex-0.7.6.post1.dist-info/METADATA,sha256=uCDgr--HfdkKe4I9xdwCOIlV1K9qVCik-NUu6KePvqg,11901
|
|
401
|
+
reflex-0.7.6.post1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
402
|
+
reflex-0.7.6.post1.dist-info/entry_points.txt,sha256=Rxt4dXc7MLBNt5CSHTehVPuSe9Xqow4HLX55nD9tQQ0,45
|
|
403
|
+
reflex-0.7.6.post1.dist-info/licenses/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
|
|
404
|
+
reflex-0.7.6.post1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|