reflex 0.7.3a2__py3-none-any.whl → 0.7.4a1__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 +17 -1
- reflex/compiler/compiler.py +63 -8
- reflex/components/core/client_side_routing.py +3 -3
- reflex/components/core/cond.py +20 -12
- reflex/components/core/upload.py +1 -1
- reflex/components/dynamic.py +2 -4
- reflex/components/lucide/icon.py +20 -27
- reflex/components/plotly/plotly.py +9 -9
- reflex/components/recharts/recharts.py +2 -2
- reflex/components/sonner/toast.py +1 -1
- reflex/config.py +19 -22
- reflex/constants/__init__.py +1 -2
- reflex/constants/base.py +3 -0
- reflex/constants/installer.py +8 -105
- reflex/custom_components/custom_components.py +8 -3
- reflex/reflex.py +18 -4
- reflex/state.py +9 -1
- reflex/testing.py +7 -1
- reflex/utils/build.py +3 -4
- reflex/utils/exec.py +146 -71
- reflex/utils/path_ops.py +15 -25
- reflex/utils/prerequisites.py +133 -182
- reflex/utils/processes.py +24 -21
- reflex/utils/registry.py +5 -5
- reflex/vars/base.py +2 -3
- reflex/vars/sequence.py +84 -0
- {reflex-0.7.3a2.dist-info → reflex-0.7.4a1.dist-info}/METADATA +3 -3
- {reflex-0.7.3a2.dist-info → reflex-0.7.4a1.dist-info}/RECORD +31 -32
- reflex/app_module_for_backend.py +0 -33
- {reflex-0.7.3a2.dist-info → reflex-0.7.4a1.dist-info}/WHEEL +0 -0
- {reflex-0.7.3a2.dist-info → reflex-0.7.4a1.dist-info}/entry_points.txt +0 -0
- {reflex-0.7.3a2.dist-info → reflex-0.7.4a1.dist-info}/licenses/LICENSE +0 -0
reflex/utils/registry.py
CHANGED
|
@@ -35,11 +35,11 @@ def average_latency(registry: str, attempts: int = 3) -> int:
|
|
|
35
35
|
return sum(latency(registry) for _ in range(attempts)) // attempts
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
def
|
|
38
|
+
def _get_best_registry() -> str:
|
|
39
39
|
"""Get the best registry based on latency.
|
|
40
40
|
|
|
41
41
|
Returns:
|
|
42
|
-
|
|
42
|
+
The best registry.
|
|
43
43
|
"""
|
|
44
44
|
registries = [
|
|
45
45
|
"https://registry.npmjs.org",
|
|
@@ -49,10 +49,10 @@ def get_best_registry() -> str:
|
|
|
49
49
|
return min(registries, key=average_latency)
|
|
50
50
|
|
|
51
51
|
|
|
52
|
-
def
|
|
52
|
+
def get_npm_registry() -> str:
|
|
53
53
|
"""Get npm registry. If environment variable is set, use it first.
|
|
54
54
|
|
|
55
55
|
Returns:
|
|
56
|
-
|
|
56
|
+
The npm registry.
|
|
57
57
|
"""
|
|
58
|
-
return environment.NPM_CONFIG_REGISTRY.get() or
|
|
58
|
+
return environment.NPM_CONFIG_REGISTRY.get() or _get_best_registry()
|
reflex/vars/base.py
CHANGED
|
@@ -160,7 +160,7 @@ class VarData:
|
|
|
160
160
|
if isinstance(hooks, str):
|
|
161
161
|
hooks = [hooks]
|
|
162
162
|
if not isinstance(hooks, dict):
|
|
163
|
-
hooks =
|
|
163
|
+
hooks = dict.fromkeys(hooks or [])
|
|
164
164
|
immutable_imports: ImmutableParsedImportDict = tuple(
|
|
165
165
|
(k, tuple(v)) for k, v in parse_imports(imports or {}).items()
|
|
166
166
|
)
|
|
@@ -1791,8 +1791,7 @@ class cached_property: # noqa: N801
|
|
|
1791
1791
|
if original_del is not None:
|
|
1792
1792
|
original_del(this)
|
|
1793
1793
|
return
|
|
1794
|
-
|
|
1795
|
-
del GLOBAL_CACHE[unique_id]
|
|
1794
|
+
GLOBAL_CACHE.pop(unique_id, None)
|
|
1796
1795
|
|
|
1797
1796
|
if original_del is not None:
|
|
1798
1797
|
original_del(this)
|
reflex/vars/sequence.py
CHANGED
|
@@ -1683,6 +1683,8 @@ def _determine_value_of_array_index(
|
|
|
1683
1683
|
if t is not type(None)
|
|
1684
1684
|
]
|
|
1685
1685
|
)
|
|
1686
|
+
if origin_var_type is range:
|
|
1687
|
+
return int
|
|
1686
1688
|
if origin_var_type in [
|
|
1687
1689
|
Sequence,
|
|
1688
1690
|
Iterable,
|
|
@@ -1974,3 +1976,85 @@ class LiteralColorVar(CachedVarOperation, LiteralVar, ColorVar):
|
|
|
1974
1976
|
):
|
|
1975
1977
|
raise TypeError("Color is not a valid color.")
|
|
1976
1978
|
return f"var(--{color}-{'a' if alpha else ''}{shade})"
|
|
1979
|
+
|
|
1980
|
+
|
|
1981
|
+
class RangeVar(ArrayVar[Sequence[int]], python_types=range):
|
|
1982
|
+
"""Base class for immutable range vars."""
|
|
1983
|
+
|
|
1984
|
+
|
|
1985
|
+
@dataclasses.dataclass(
|
|
1986
|
+
eq=False,
|
|
1987
|
+
frozen=True,
|
|
1988
|
+
slots=True,
|
|
1989
|
+
)
|
|
1990
|
+
class LiteralRangeVar(CachedVarOperation, LiteralVar, RangeVar):
|
|
1991
|
+
"""Base class for immutable literal range vars."""
|
|
1992
|
+
|
|
1993
|
+
_var_value: range = dataclasses.field(default_factory=lambda: range(0))
|
|
1994
|
+
|
|
1995
|
+
@classmethod
|
|
1996
|
+
def create(
|
|
1997
|
+
cls,
|
|
1998
|
+
value: range,
|
|
1999
|
+
_var_type: Type[range] | None = None,
|
|
2000
|
+
_var_data: VarData | None = None,
|
|
2001
|
+
) -> RangeVar:
|
|
2002
|
+
"""Create a var from a string value.
|
|
2003
|
+
|
|
2004
|
+
Args:
|
|
2005
|
+
value: The value to create the var from.
|
|
2006
|
+
_var_type: The type of the var.
|
|
2007
|
+
_var_data: Additional hooks and imports associated with the Var.
|
|
2008
|
+
|
|
2009
|
+
Returns:
|
|
2010
|
+
The var.
|
|
2011
|
+
"""
|
|
2012
|
+
return cls(
|
|
2013
|
+
_js_expr="",
|
|
2014
|
+
_var_type=_var_type or range,
|
|
2015
|
+
_var_data=_var_data,
|
|
2016
|
+
_var_value=value,
|
|
2017
|
+
)
|
|
2018
|
+
|
|
2019
|
+
def __hash__(self) -> int:
|
|
2020
|
+
"""Get the hash of the var.
|
|
2021
|
+
|
|
2022
|
+
Returns:
|
|
2023
|
+
The hash of the var.
|
|
2024
|
+
"""
|
|
2025
|
+
return hash(
|
|
2026
|
+
(
|
|
2027
|
+
self.__class__.__name__,
|
|
2028
|
+
self._var_value.start,
|
|
2029
|
+
self._var_value.stop,
|
|
2030
|
+
self._var_value.step,
|
|
2031
|
+
)
|
|
2032
|
+
)
|
|
2033
|
+
|
|
2034
|
+
@cached_property_no_lock
|
|
2035
|
+
def _cached_var_name(self) -> str:
|
|
2036
|
+
"""The name of the var.
|
|
2037
|
+
|
|
2038
|
+
Returns:
|
|
2039
|
+
The name of the var.
|
|
2040
|
+
"""
|
|
2041
|
+
return f"Array.from({{ length: Math.ceil(({self._var_value.stop!s} - {self._var_value.start!s}) / {self._var_value.step!s}) }}, (_, i) => {self._var_value.start!s} + i * {self._var_value.step!s})"
|
|
2042
|
+
|
|
2043
|
+
@cached_property_no_lock
|
|
2044
|
+
def _cached_get_all_var_data(self) -> VarData | None:
|
|
2045
|
+
"""Get all the var data.
|
|
2046
|
+
|
|
2047
|
+
Returns:
|
|
2048
|
+
The var data.
|
|
2049
|
+
"""
|
|
2050
|
+
return self._var_data
|
|
2051
|
+
|
|
2052
|
+
def json(self) -> str:
|
|
2053
|
+
"""Get the JSON representation of the var.
|
|
2054
|
+
|
|
2055
|
+
Returns:
|
|
2056
|
+
The JSON representation of the var.
|
|
2057
|
+
"""
|
|
2058
|
+
return json.dumps(
|
|
2059
|
+
list(self._var_value),
|
|
2060
|
+
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: reflex
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.4a1
|
|
4
4
|
Summary: Web apps in pure Python.
|
|
5
5
|
Project-URL: homepage, https://reflex.dev
|
|
6
6
|
Project-URL: repository, https://github.com/reflex-dev/reflex
|
|
@@ -23,7 +23,7 @@ Requires-Dist: build<2.0,>=1.0.3
|
|
|
23
23
|
Requires-Dist: charset-normalizer<4.0,>=3.3.2
|
|
24
24
|
Requires-Dist: distro<2.0,>=1.8.0; platform_system == 'Linux'
|
|
25
25
|
Requires-Dist: fastapi!=0.111.0,!=0.111.1,>=0.96.0
|
|
26
|
-
Requires-Dist:
|
|
26
|
+
Requires-Dist: granian[reload]>=2.0.0
|
|
27
27
|
Requires-Dist: httpx<1.0,>=0.25.1
|
|
28
28
|
Requires-Dist: jinja2<4.0,>=3.1.2
|
|
29
29
|
Requires-Dist: lazy-loader>=0.4
|
|
@@ -44,7 +44,6 @@ Requires-Dist: tomlkit<1.0,>=0.12.4
|
|
|
44
44
|
Requires-Dist: twine<7.0,>=4.0.0
|
|
45
45
|
Requires-Dist: typer<1.0,>=0.15.1
|
|
46
46
|
Requires-Dist: typing-extensions>=4.6.0
|
|
47
|
-
Requires-Dist: uvicorn>=0.20.0
|
|
48
47
|
Requires-Dist: wheel<1.0,>=0.42.0
|
|
49
48
|
Requires-Dist: wrapt<2.0,>=1.17.0
|
|
50
49
|
Description-Content-Type: text/markdown
|
|
@@ -60,6 +59,7 @@ Description-Content-Type: text/markdown
|
|
|
60
59
|
[](https://badge.fury.io/py/reflex)
|
|
61
60
|

|
|
62
61
|
[](https://reflex.dev/docs/getting-started/introduction)
|
|
62
|
+
[](https://pepy.tech/projects/reflex)
|
|
63
63
|
[](https://discord.gg/T5WSbC2YtQ)
|
|
64
64
|
|
|
65
65
|
</div>
|
|
@@ -2,20 +2,19 @@ reflex/__init__.py,sha256=64HB9b6MKesl3Yv6aZMsozdMKKpgnxirKk-aeN45UYY,10341
|
|
|
2
2
|
reflex/__init__.pyi,sha256=j4ZkO-mKKw5dFBhJVbaOg7AlncO-JCckV2cHENPiLG0,11303
|
|
3
3
|
reflex/__main__.py,sha256=6cVrGEyT3j3tEvlEVUatpaYfbB5EF3UVY-6vc_Z7-hw,108
|
|
4
4
|
reflex/admin.py,sha256=wu_vYqB0rU2njYBJSI0XZgVEkAFVZNQNUkUUXrlFbZc,343
|
|
5
|
-
reflex/app.py,sha256=
|
|
6
|
-
reflex/app_module_for_backend.py,sha256=iuEYcJNRai59vReNUIZgixtYlFHYcYp_LNFB9DPQnKs,1134
|
|
5
|
+
reflex/app.py,sha256=JCh2PGvwfTpYSfZJeMRANGT-6NdWw718gAFWX-hOq_U,69385
|
|
7
6
|
reflex/assets.py,sha256=PLTKAMYPKMZq8eWXKX8uco6NZ9IiPGWal0bOPLUmU7k,3364
|
|
8
7
|
reflex/base.py,sha256=T1sY7SJJOpTsOveEiFxp-K39EoIQtRLgqdFZhsdM0DE,3976
|
|
9
|
-
reflex/config.py,sha256=
|
|
8
|
+
reflex/config.py,sha256=LWl45MJv-fh4fMr-cpQWffO0HgQU-UiMEeqiqJC_Gto,35100
|
|
10
9
|
reflex/event.py,sha256=EX-9X-c8gIudZjRDG8qSrVAbegcaGkYXxLLRWg-7IOA,60758
|
|
11
10
|
reflex/model.py,sha256=k6qCweATPW1YRB_qcHwa5X35btJmtIlB4zEQ63FaW3w,17527
|
|
12
11
|
reflex/page.py,sha256=qEt8n5EtawSywCzdsiaNQJWhC8ie-vg8ig0JGuVavPI,2386
|
|
13
12
|
reflex/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
|
-
reflex/reflex.py,sha256=
|
|
13
|
+
reflex/reflex.py,sha256=BM9oQ4VaobBa__BLgf38DJ2BYhTdobTRDZCpaZkOBHk,20920
|
|
15
14
|
reflex/route.py,sha256=nn_hJwtQdjiqH_dHXfqMGWKllnyPQZTSR-KWdHDhoOs,4210
|
|
16
|
-
reflex/state.py,sha256=
|
|
15
|
+
reflex/state.py,sha256=XBryDsRkXVLxYYiU_TL2B_riU7FySJsg3aU0ywUSWJs,141886
|
|
17
16
|
reflex/style.py,sha256=dilXPn8de80NzsXT53GPJrmjELC5nPYIlCgongyq1zM,13145
|
|
18
|
-
reflex/testing.py,sha256=
|
|
17
|
+
reflex/testing.py,sha256=IpjUHBNOJDAQtu6HnazfWIacEO5cIJvyHlCr6dYpr38,35585
|
|
19
18
|
reflex/.templates/apps/blank/assets/favicon.ico,sha256=baxxgDAQ2V4-G5Q4S2yK5uUJTUGkv-AOWBQ0xd6myUo,4286
|
|
20
19
|
reflex/.templates/apps/blank/code/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
20
|
reflex/.templates/apps/blank/code/blank.py,sha256=oKnsBBZM1-_RFAuwGKgfiCzgsrHlN_m_XP0-Fpnld7k,926
|
|
@@ -59,13 +58,13 @@ reflex/app_mixins/lifespan.py,sha256=fwtaa9NnyENdDa8_RUHUsT8L9qnZKxcpL-mEGLTGldo
|
|
|
59
58
|
reflex/app_mixins/middleware.py,sha256=_B33NZdbuI16IUPTENyfCmEfJ6OxFHm6rObl3JdIs-Y,3286
|
|
60
59
|
reflex/app_mixins/mixin.py,sha256=si0Pa0U1EtJc-a6iZntqU9B7_NrPILwrGFxk9mKHBCE,317
|
|
61
60
|
reflex/compiler/__init__.py,sha256=r8jqmDSFf09iV2lHlNhfc9XrTLjNxfDNwPYlxS4cmHE,27
|
|
62
|
-
reflex/compiler/compiler.py,sha256=
|
|
61
|
+
reflex/compiler/compiler.py,sha256=Dr7eitYfwfJlcun7v88E7FEELAnkbKp8ja4-r41_6co,25870
|
|
63
62
|
reflex/compiler/templates.py,sha256=NX3YUMVGGyDsy2JuDv-AmklMM0pKJHLPsIpdqamgqRQ,5854
|
|
64
63
|
reflex/compiler/utils.py,sha256=w8KcAXneXQxPOSei7BvAfA9MzR4jQWjDlxm8ahN1UM0,16083
|
|
65
64
|
reflex/components/__init__.py,sha256=zbIXThv1WPI0FdIGf9G9RAmGoCRoGy7nHcSZ8K5D5bA,624
|
|
66
65
|
reflex/components/__init__.pyi,sha256=qoj1zIWaitcZOGcJ6k7wuGJk_GAJCE9Xtx8CeRVrvoE,861
|
|
67
66
|
reflex/components/component.py,sha256=ksc0Vc3hgZkTEyDZksarETCrjA-pvDMnd7T11F01ecg,88766
|
|
68
|
-
reflex/components/dynamic.py,sha256=
|
|
67
|
+
reflex/components/dynamic.py,sha256=DdlFbtciytsEbVdFHm-obmE4FFkSR6x2DH0BzYI_4C4,7150
|
|
69
68
|
reflex/components/literals.py,sha256=hogLnwTJxFJODIvqihg-GD9kFZVsEBDoYzaRit56Nuk,501
|
|
70
69
|
reflex/components/props.py,sha256=8F2ZNeF16BDiTh-E4F-U_vks41BMJgmkTM7xbjGvfOA,2593
|
|
71
70
|
reflex/components/base/__init__.py,sha256=QIOxOPT87WrSE4TSHAsZ-358VzvUXAe1w8vWogQ3Uuo,730
|
|
@@ -98,12 +97,12 @@ reflex/components/core/auto_scroll.pyi,sha256=4oTNr6ixo5D0rzmIQVXGCEUpHSSa7KdrkW
|
|
|
98
97
|
reflex/components/core/banner.py,sha256=OB8HlnytknFQotVoBNsbCHxE6_3W96JCCtvxS6R3QKU,18473
|
|
99
98
|
reflex/components/core/banner.pyi,sha256=owB8dbiHh2YMeJsggCM5zQ3kpfIcGXoxTWQdscakpwQ,24586
|
|
100
99
|
reflex/components/core/breakpoints.py,sha256=fDtfDoZqJnAOnBvpp0640FCKbuMyC9dVoSf0-RE7n6Y,2756
|
|
101
|
-
reflex/components/core/client_side_routing.py,sha256=
|
|
100
|
+
reflex/components/core/client_side_routing.py,sha256=CgW29H4Kiy5V4AKdJlFT9gSWaFUfki3f3Prf9twbbqA,1881
|
|
102
101
|
reflex/components/core/client_side_routing.pyi,sha256=XODI3H05ccxhAo-_SvFJjKFxTAkWbRsA-wmTe9uBxRo,4182
|
|
103
102
|
reflex/components/core/clipboard.py,sha256=WH2pagKO0H5G7BaIT1kChRzrMV-aP5ENv1lIKbkRzJ8,3354
|
|
104
103
|
reflex/components/core/clipboard.pyi,sha256=PiCieOSgQWwN5M7uHl11_kSqUXBN8J3glred4TH-yiQ,3041
|
|
105
104
|
reflex/components/core/colors.py,sha256=-hzVGLEq3TiqroqzMi_YzGBCPXMvkNsen3pS_NzIQNk,590
|
|
106
|
-
reflex/components/core/cond.py,sha256=
|
|
105
|
+
reflex/components/core/cond.py,sha256=j5V-CGjoB6W_Ch0blQYzLuepjLqtX4vXb8e6qvEL_3I,5685
|
|
107
106
|
reflex/components/core/debounce.py,sha256=qZsnu-7xfxz3NJS4-UnA_2YQz2P8SznJyuwZz98nEwE,4961
|
|
108
107
|
reflex/components/core/debounce.pyi,sha256=QjyPCR1eVGxTdDFnFPD9Ir9QbJLk-2xU8f-hSMZHcfU,2883
|
|
109
108
|
reflex/components/core/foreach.py,sha256=s2wgxcgEBc_8PfTKolDjbRz1pgdKZCdq8tqk87t3QVQ,5827
|
|
@@ -113,7 +112,7 @@ reflex/components/core/match.py,sha256=M39oK1DxnfU1GW07_78mo8vYttR7PP-jH7WZY111i
|
|
|
113
112
|
reflex/components/core/responsive.py,sha256=ACZdtJ4a4F8B3dm1k8h6J2_UJx0Z5LDB7XHQ2ty4wAc,1911
|
|
114
113
|
reflex/components/core/sticky.py,sha256=2B3TxrwG2Rtp_lv1VkMOIF2bqSiT7qYGbqbiZiMKxKY,3856
|
|
115
114
|
reflex/components/core/sticky.pyi,sha256=fHmH_EwTvrVUHbq-13fT-TK0R_yUMBSc2Hp-1IowpTM,32071
|
|
116
|
-
reflex/components/core/upload.py,sha256=
|
|
115
|
+
reflex/components/core/upload.py,sha256=mBGavdmP1A-xySEsMi6Emi0mffJ1p-BQj7mscLlPBmA,11913
|
|
117
116
|
reflex/components/core/upload.pyi,sha256=ZK22Hnc4eXhOsRbrAbakrzM5oGk05DdRHWurBNI5HRM,14602
|
|
118
117
|
reflex/components/core/layout/__init__.py,sha256=znldZaj_NGt8qCZDG70GMwjMTskcvCf_2N_EjCAHwdc,30
|
|
119
118
|
reflex/components/datadisplay/__init__.py,sha256=L8pWWKNHWdUD2fbZRoEKjd_8c_hpDdGYO463hwkoIi4,438
|
|
@@ -159,7 +158,7 @@ reflex/components/gridjs/__init__.py,sha256=xJwDm1AZ70L5-t9LLqZwGUtDpijbf1KuMYDT
|
|
|
159
158
|
reflex/components/gridjs/datatable.py,sha256=Q2P2lFbPEujVa6bfetV0w4Oc81APX9YgVKGnKCvhSxY,4197
|
|
160
159
|
reflex/components/gridjs/datatable.pyi,sha256=zVZTSTTQJY5jjrCTnyah3XM6aySyhq_mbhBWnbFg6Io,4859
|
|
161
160
|
reflex/components/lucide/__init__.py,sha256=EggTK2MuQKQeOBLKW-mF0VaDK9zdWBImu1HO2dvHZbE,73
|
|
162
|
-
reflex/components/lucide/icon.py,sha256=
|
|
161
|
+
reflex/components/lucide/icon.py,sha256=lRmzrsoT2_zvC8mKAZx0b1SJW_6ebEmRjWop2ggGHwM,33600
|
|
163
162
|
reflex/components/lucide/icon.pyi,sha256=DZkrFkUSq-BT23taozAIDfPuHAF3V9AsVYwaEeOCgm0,35884
|
|
164
163
|
reflex/components/markdown/__init__.py,sha256=Dfl1At5uYoY7H4ufZU_RY2KOGQDLtj75dsZ2BTqqAns,87
|
|
165
164
|
reflex/components/markdown/markdown.py,sha256=9VoxHQNZe44pVDoT_2b897dTn7vcel7oglBF-iTu0aM,16186
|
|
@@ -177,7 +176,7 @@ reflex/components/next/link.pyi,sha256=2-IJbrQ132FlLraBxYEXaVtVZ-Mr8fHPY--veOL5A
|
|
|
177
176
|
reflex/components/next/video.py,sha256=GNCIPnT4pPPVp5W5P9CezVPksxCFO-YSlb2TJSJ1sG4,703
|
|
178
177
|
reflex/components/next/video.pyi,sha256=z7nX_P2rSBgFIAMhqOVEbExCJM8srSdEczR2QXcPTrg,2315
|
|
179
178
|
reflex/components/plotly/__init__.py,sha256=6B_woBJhkrVA9O_AbOTbsA_SxWsqjicYHmLA9FLjGfU,650
|
|
180
|
-
reflex/components/plotly/plotly.py,sha256=
|
|
179
|
+
reflex/components/plotly/plotly.py,sha256=N4aTmIfUG7UfCjH2gnSrbOTUSkQqBswbPj0nD9rwB8A,14853
|
|
181
180
|
reflex/components/plotly/plotly.pyi,sha256=Qsxuz3ltLozNpk40e8iY92X8sos4hI7NhXAVqAndzkg,46843
|
|
182
181
|
reflex/components/radix/__init__.py,sha256=fRsLvIO3MrTtPOXtmnxYDB9phvzlcbyB_utgpafYMho,474
|
|
183
182
|
reflex/components/radix/__init__.pyi,sha256=YpWw_k35yv_Yq_0RZNCb52fJZ3dANWAnQllhVoVCWEE,3988
|
|
@@ -325,10 +324,10 @@ reflex/components/recharts/general.py,sha256=ff3Y4cXV9H8XruN0eyHUDf11mV3cGXWFaVl
|
|
|
325
324
|
reflex/components/recharts/general.pyi,sha256=sRJUwnNfsQ-ASS5OE4qTknNKq5MgN1u4G3nv7K2xARg,22643
|
|
326
325
|
reflex/components/recharts/polar.py,sha256=82KtPsk0RcW1Ci7B3Uivja8gM7vJ8l_LorVKFNVeLVE,15549
|
|
327
326
|
reflex/components/recharts/polar.pyi,sha256=VkxCu6MyYxn-g-yYdfRy8LofpsmRsxa9M589U8E3Dr4,26369
|
|
328
|
-
reflex/components/recharts/recharts.py,sha256=
|
|
327
|
+
reflex/components/recharts/recharts.py,sha256=is9FG2MJ6aYsZLDe1uW4zWNRs7LNJFKVbAndYC77jqA,3176
|
|
329
328
|
reflex/components/recharts/recharts.pyi,sha256=Vr-YW67RKqg-Tzp2YBvkRS-sQc-9jA8wZr1P-Vxm7qg,6711
|
|
330
329
|
reflex/components/sonner/__init__.py,sha256=L_mdRIy7-ccRGSz5VK6J8O-c-e-D1p9xWw29_ErrvGg,68
|
|
331
|
-
reflex/components/sonner/toast.py,sha256
|
|
330
|
+
reflex/components/sonner/toast.py,sha256=hvjzVN3eclix7PJpDTVkFSD_Re8X0lCPjHh5EfRjDro,12440
|
|
332
331
|
reflex/components/sonner/toast.pyi,sha256=MDb952Jblm4HQOIEtZOCEL2UPYHAuY0xwqFBnZL2n38,7461
|
|
333
332
|
reflex/components/suneditor/__init__.py,sha256=htkPzy0O_1ro1nw8w8gFPjYhg5xywMpsUfc4Dl3OHuw,109
|
|
334
333
|
reflex/components/suneditor/editor.py,sha256=8Unbp3mv7Fxjvsxy-uvTBf6hYaCnkwkK6-exPF5ymRU,8017
|
|
@@ -339,20 +338,20 @@ reflex/components/tags/iter_tag.py,sha256=AgKtcRvuxUe8QJPU8iQp6HvOQwdENjlYFO8dYs
|
|
|
339
338
|
reflex/components/tags/match_tag.py,sha256=3lba1H5pCcKkqxEHzM6DZb5s9s0yJLN4Se3vdhzar24,580
|
|
340
339
|
reflex/components/tags/tag.py,sha256=1fopahujLVjH871UOdmau_n1kEddbQotN5MpKW_s8PU,3644
|
|
341
340
|
reflex/components/tags/tagless.py,sha256=qO7Gm4V0ITDyymHkyltfz53155ZBt-W_WIPDYy93ca0,587
|
|
342
|
-
reflex/constants/__init__.py,sha256=
|
|
343
|
-
reflex/constants/base.py,sha256=
|
|
341
|
+
reflex/constants/__init__.py,sha256=c5k9wh50zB_zDXkublXepPZsfAmnYx7ZeNSufIX5qKM,2180
|
|
342
|
+
reflex/constants/base.py,sha256=dB-gHb19wYdT_oQHxg0rxFIqM7ljtcr2BCOZDgHEawg,7937
|
|
344
343
|
reflex/constants/colors.py,sha256=cgLn8iEWtlpjQgbhhlCOGjbhfOULKnzqqzPph63SJoI,1613
|
|
345
344
|
reflex/constants/compiler.py,sha256=7EdvrKNyr-C7e2T6Xmvd5gpTo5rh4SAHZpmQFV1rrM4,5676
|
|
346
345
|
reflex/constants/config.py,sha256=4EljK_fD1Nf4-OfJ9HLYeHSW5xTfNPN6AGjzJ5ARZSY,1579
|
|
347
346
|
reflex/constants/custom_components.py,sha256=joJt4CEt1yKy7wsBH6vYo7_QRW0O_fWXrrTf0VY2q14,1317
|
|
348
347
|
reflex/constants/event.py,sha256=8PWobGXnUIbkRS73dRiroj5BJw4C3sbo5AHAhJTZFyM,2849
|
|
349
|
-
reflex/constants/installer.py,sha256=
|
|
348
|
+
reflex/constants/installer.py,sha256=Ia117STVw-ySvOK0hRFlwsI1yJ8ucWiPCh5JWuFQjXs,2518
|
|
350
349
|
reflex/constants/route.py,sha256=J4QVdeeYz9wX0lYT1sgx0m3kLSArDHzmGCDZ2sqy854,2139
|
|
351
350
|
reflex/constants/state.py,sha256=6Mfr7xVcAZOj5aSy7kp0W6r8oTs7K30URgGDAAFLfPQ,294
|
|
352
351
|
reflex/constants/style.py,sha256=EPgRYHhAlcrPUBc2HkDTdTj-Q0uDAXHlq8Sp6D35Zf4,475
|
|
353
352
|
reflex/constants/utils.py,sha256=GJhFj1uba54CDPEm70tWs8B5iS2siHgeNi--oGCjeRc,759
|
|
354
353
|
reflex/custom_components/__init__.py,sha256=R4zsvOi4dfPmHc18KEphohXnQFBPnUCb50cMR5hSLDE,36
|
|
355
|
-
reflex/custom_components/custom_components.py,sha256=
|
|
354
|
+
reflex/custom_components/custom_components.py,sha256=Ho3W97wfStsEVh6BuTEORhc3bd4UoCYzY3yB4YdVBUI,33592
|
|
356
355
|
reflex/experimental/__init__.py,sha256=bvJ6qFeO3xT3L-8IBtk4ecoi5rda3EDvblgNP60yhEo,2206
|
|
357
356
|
reflex/experimental/client_state.py,sha256=p_Toz94fNQGMbHY1WlwfQ-i_M01f1ExA9t1iokSvdLc,9880
|
|
358
357
|
reflex/experimental/hooks.py,sha256=CHYGrAE5t8riltrJmDFgJ4D2Vhmhw-y3B3MSGNlOQow,2366
|
|
@@ -369,37 +368,37 @@ reflex/middleware/__init__.py,sha256=x7xTeDuc73Hjj43k1J63naC9x8vzFxl4sq7cCFBX7sk
|
|
|
369
368
|
reflex/middleware/hydrate_middleware.py,sha256=1ch7bx2ZhojOR15b-LHD2JztrWCnpPJjTe8MWHJe-5Y,1510
|
|
370
369
|
reflex/middleware/middleware.py,sha256=p5VVoIgQ_NwOg_GOY6g0S4fmrV76_VE1zt-HiwbMw-s,1158
|
|
371
370
|
reflex/utils/__init__.py,sha256=y-AHKiRQAhk2oAkvn7W8cRVTZVK625ff8tTwvZtO7S4,24
|
|
372
|
-
reflex/utils/build.py,sha256=
|
|
371
|
+
reflex/utils/build.py,sha256=yt6obelsj1MUhTVHoaxdOH--gYtIEpekYjTN97iFrNg,9118
|
|
373
372
|
reflex/utils/codespaces.py,sha256=TzDK--pHwP4r8Nzl0iB_8r-cOFmmL6nHfZ9xRQHA-KY,2754
|
|
374
373
|
reflex/utils/compat.py,sha256=aSJH_M6iomgHPQ4onQ153xh1MWqPi3HSYDzE68N6gZM,2635
|
|
375
374
|
reflex/utils/console.py,sha256=slDTb_5QXfSvdflFiwJauc874R2zqo8BOSh37JUhYLY,9469
|
|
376
375
|
reflex/utils/decorator.py,sha256=EYdAjPdfgFjqjYSmLlc9qzOYnoihzavG5T4tgVgzsw4,1171
|
|
377
376
|
reflex/utils/exceptions.py,sha256=Wwu7Ji2xgq521bJKtU2NgjwhmFfnG8erirEVN2h8S-g,8884
|
|
378
|
-
reflex/utils/exec.py,sha256=
|
|
377
|
+
reflex/utils/exec.py,sha256=YVYsUYNKSm2uYVGRLNOhC-zQMW7NrGjLmRxmzpTnVfk,19054
|
|
379
378
|
reflex/utils/export.py,sha256=bcJA0L8lBbjij-5PU93ka2c1d_yJqrIurp5u4mN5f68,2537
|
|
380
379
|
reflex/utils/format.py,sha256=a8em_yzqp9pLTrPXRsdzFWSO1qL2x25BpJXOf9DV1t8,20638
|
|
381
380
|
reflex/utils/imports.py,sha256=-EkUt9y5U3qmImjfpsXwYh7JI9qJHd_L6X9y12EPJew,3921
|
|
382
381
|
reflex/utils/lazy_loader.py,sha256=-3DcwIqHNft2fb1ikgDYAMiEwNfbiWfrTBAf1gEVX2o,1367
|
|
383
382
|
reflex/utils/net.py,sha256=0Yd9OLK8R_px2sqnqrDkTky6hYHtG2pEDvvilOjDfjc,1219
|
|
384
|
-
reflex/utils/path_ops.py,sha256=
|
|
385
|
-
reflex/utils/prerequisites.py,sha256=
|
|
386
|
-
reflex/utils/processes.py,sha256=
|
|
383
|
+
reflex/utils/path_ops.py,sha256=idGxUSJRKwYLLi7ppXkq3eV6rvAytJoO-n-FuLkwl3o,7604
|
|
384
|
+
reflex/utils/prerequisites.py,sha256=_lgbA4udXoTPgBUYaSRW3zqyHJ3jrObgS7GXrQvgf3M,61526
|
|
385
|
+
reflex/utils/processes.py,sha256=B5F8m1smqGCvvwcGBO9poqQddfNBLy7uafO0J0PDcMo,13538
|
|
387
386
|
reflex/utils/pyi_generator.py,sha256=cKdssbtAtGj2deOSDos9OF96w10qte8JM-TlfbzSdtw,41602
|
|
388
387
|
reflex/utils/redir.py,sha256=kTqY2WSouF5_ftOe5bnvPEyU3SLpg3pcysTcxFH1UxI,1505
|
|
389
|
-
reflex/utils/registry.py,sha256=
|
|
388
|
+
reflex/utils/registry.py,sha256=6DPfYc64GodbhwdAZ113_zBsvMNdbFTIJ94qDH1N6wc,1410
|
|
390
389
|
reflex/utils/serializers.py,sha256=K8-erpNIjJNIKif0cDFExa9f5DEVuQUq0j5v5VH6aBI,13408
|
|
391
390
|
reflex/utils/telemetry.py,sha256=qwJBwjdtAV-OGKgO4h-NWhgTvfC3gbduBdn1UB8Ikes,5608
|
|
392
391
|
reflex/utils/types.py,sha256=nGX44Q_Jp33wIaxf2vxANwBWe1743V2B8RRS8H9yV4c,33449
|
|
393
392
|
reflex/vars/__init__.py,sha256=2Kv6Oh9g3ISZFESjL1al8KiO7QBZUXmLKGMCBsP-DoY,1243
|
|
394
|
-
reflex/vars/base.py,sha256=
|
|
393
|
+
reflex/vars/base.py,sha256=EjerSG-V8BwXhAcB___I0jNA_0T9t81EUxff7LpjyFg,101870
|
|
395
394
|
reflex/vars/datetime.py,sha256=WOEzQF6qjMjYvCat80XxgB_4hmVNHwIIZNMBSmfu0PM,5790
|
|
396
395
|
reflex/vars/dep_tracking.py,sha256=kluvF4Pfbpdqf0GcpmYHjT1yP-D1erAzaSQP6qIxjB0,13846
|
|
397
396
|
reflex/vars/function.py,sha256=2sVnhgetPSwtor8VFtAiYJdzZ9IRNzAKdsUJG6dXQcE,14461
|
|
398
397
|
reflex/vars/number.py,sha256=hacFEtv-63tMQN-oeVDWkrLFQL4utYG-b3ahYTb8b4M,29573
|
|
399
398
|
reflex/vars/object.py,sha256=-fGqHThozjxAAuQL-wTwEItPiFI-ps53P2bKoSlW_As,17081
|
|
400
|
-
reflex/vars/sequence.py,sha256=
|
|
401
|
-
reflex-0.7.
|
|
402
|
-
reflex-0.7.
|
|
403
|
-
reflex-0.7.
|
|
404
|
-
reflex-0.7.
|
|
405
|
-
reflex-0.7.
|
|
399
|
+
reflex/vars/sequence.py,sha256=PzFF1SC6r9iONV3t3nh5GKmToCTEm4B2GL3zGcNerl4,58099
|
|
400
|
+
reflex-0.7.4a1.dist-info/METADATA,sha256=Rl6X3yhbKBHSA5mBr88GK3STyGTmV3PSfO4RN78fcyc,12153
|
|
401
|
+
reflex-0.7.4a1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
402
|
+
reflex-0.7.4a1.dist-info/entry_points.txt,sha256=Rxt4dXc7MLBNt5CSHTehVPuSe9Xqow4HLX55nD9tQQ0,45
|
|
403
|
+
reflex-0.7.4a1.dist-info/licenses/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
|
|
404
|
+
reflex-0.7.4a1.dist-info/RECORD,,
|
reflex/app_module_for_backend.py
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"""Shims the real reflex app module for running backend server (uvicorn or gunicorn).
|
|
2
|
-
Only the app attribute is explicitly exposed.
|
|
3
|
-
"""
|
|
4
|
-
|
|
5
|
-
from concurrent.futures import ThreadPoolExecutor
|
|
6
|
-
|
|
7
|
-
from reflex import constants
|
|
8
|
-
from reflex.utils.exec import is_prod_mode
|
|
9
|
-
from reflex.utils.prerequisites import get_and_validate_app
|
|
10
|
-
|
|
11
|
-
if constants.CompileVars.APP != "app":
|
|
12
|
-
raise AssertionError("unexpected variable name for 'app'")
|
|
13
|
-
|
|
14
|
-
app, app_module = get_and_validate_app(reload=False)
|
|
15
|
-
# For py3.9 compatibility when redis is used, we MUST add any decorator pages
|
|
16
|
-
# before compiling the app in a thread to avoid event loop error (REF-2172).
|
|
17
|
-
app._apply_decorated_pages()
|
|
18
|
-
compile_future = ThreadPoolExecutor(max_workers=1).submit(app._compile)
|
|
19
|
-
compile_future.add_done_callback(
|
|
20
|
-
# Force background compile errors to print eagerly
|
|
21
|
-
lambda f: f.result()
|
|
22
|
-
)
|
|
23
|
-
# Wait for the compile to finish in prod mode to ensure all optional endpoints are mounted.
|
|
24
|
-
if is_prod_mode():
|
|
25
|
-
compile_future.result()
|
|
26
|
-
|
|
27
|
-
# ensure only "app" is exposed.
|
|
28
|
-
del app_module
|
|
29
|
-
del compile_future
|
|
30
|
-
del get_and_validate_app
|
|
31
|
-
del is_prod_mode
|
|
32
|
-
del constants
|
|
33
|
-
del ThreadPoolExecutor
|
|
File without changes
|
|
File without changes
|
|
File without changes
|