reactpy 2.0.0b2__py3-none-any.whl → 2.0.0b3__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.
- reactpy/__init__.py +3 -2
- reactpy/_console/rewrite_keys.py +2 -4
- reactpy/core/component.py +1 -1
- reactpy/core/events.py +58 -15
- reactpy/core/hooks.py +2 -2
- reactpy/core/layout.py +3 -1
- reactpy/core/vdom.py +0 -1
- reactpy/executors/asgi/__init__.py +2 -2
- reactpy/executors/asgi/pyscript.py +2 -2
- reactpy/executors/utils.py +1 -3
- reactpy/pyscript/component_template.py +3 -6
- reactpy/pyscript/layout_handler.py +1 -1
- reactpy/static/index.js +2 -2
- reactpy/static/index.js.map +11 -10
- reactpy/static/morphdom/morphdom-esm.js +5 -0
- reactpy/static/morphdom/morphdom-factory.js +5 -0
- reactpy/static/morphdom/morphdom-umd.js +5 -0
- reactpy/static/morphdom/morphdom-umd.min.js +1 -1
- reactpy/static/morphdom/morphdom.js +5 -0
- reactpy/static/pyscript/codemirror-BYspKCDy.js +2 -0
- reactpy/static/pyscript/codemirror-BYspKCDy.js.map +1 -0
- reactpy/static/pyscript/codemirror_commands-BLDaEdQ6.js +2 -0
- reactpy/static/pyscript/codemirror_commands-BLDaEdQ6.js.map +1 -0
- reactpy/static/pyscript/codemirror_lang-python-CkOVBHci.js +2 -0
- reactpy/static/pyscript/codemirror_lang-python-CkOVBHci.js.map +1 -0
- reactpy/static/pyscript/codemirror_language-DOkvasqm.js +2 -0
- reactpy/static/pyscript/codemirror_language-DOkvasqm.js.map +1 -0
- reactpy/static/pyscript/codemirror_state-BIAL8JKm.js +2 -0
- reactpy/static/pyscript/{codemirror_state-1UkzIAPK.js.map → codemirror_state-BIAL8JKm.js.map} +1 -1
- reactpy/static/pyscript/codemirror_view-Bt4sLgyA.js +2 -0
- reactpy/static/pyscript/codemirror_view-Bt4sLgyA.js.map +1 -0
- reactpy/static/pyscript/core-PTfg6inS.js +4 -0
- reactpy/static/pyscript/core-PTfg6inS.js.map +1 -0
- reactpy/static/pyscript/core.css +1 -1
- reactpy/static/pyscript/core.js +1 -1
- reactpy/static/pyscript/{deprecations-manager-B8Tz2RBD.js → deprecations-manager-DIDxhyRq.js} +2 -2
- reactpy/static/pyscript/{deprecations-manager-B8Tz2RBD.js.map → deprecations-manager-DIDxhyRq.js.map} +1 -1
- reactpy/static/pyscript/{donkey-83vCPSep.js → donkey-CLhmQOjG.js} +2 -2
- reactpy/static/pyscript/{donkey-83vCPSep.js.map → donkey-CLhmQOjG.js.map} +1 -1
- reactpy/static/pyscript/error-uzvvriog.js +2 -0
- reactpy/static/pyscript/{error-Bd5T9j4s.js.map → error-uzvvriog.js.map} +1 -1
- reactpy/static/pyscript/index-jZ1aOVVJ.js +2 -0
- reactpy/static/pyscript/index-jZ1aOVVJ.js.map +1 -0
- reactpy/static/pyscript/mpy-CnF17tqI.js +2 -0
- reactpy/static/pyscript/mpy-CnF17tqI.js.map +1 -0
- reactpy/static/pyscript/py-BZSSqcx3.js +2 -0
- reactpy/static/pyscript/{py-CdW1_TfR.js.map → py-BZSSqcx3.js.map} +1 -1
- reactpy/static/pyscript/py-editor-DZ0Dxzzk.js +2 -0
- reactpy/static/pyscript/py-editor-DZ0Dxzzk.js.map +1 -0
- reactpy/static/pyscript/py-game-bqieV522.js +2 -0
- reactpy/static/pyscript/py-game-bqieV522.js.map +1 -0
- reactpy/static/pyscript/py-terminal-DYY4WN57.js +2 -0
- reactpy/static/pyscript/{py-terminal-C3QERaDG.js.map → py-terminal-DYY4WN57.js.map} +1 -1
- reactpy/static/pyscript/service-worker.js +1 -0
- reactpy/static/pyscript/storage.js +1 -1
- reactpy/static/pyscript/storage.js.map +1 -1
- reactpy/static/pyscript/toml-BK2RWy-G.js +3 -0
- reactpy/static/pyscript/{toml-DiUM0_qs.js.map → toml-BK2RWy-G.js.map} +1 -1
- reactpy/static/pyscript/toml-Blg7Izee.js +3 -0
- reactpy/static/pyscript/toml-Blg7Izee.js.map +1 -0
- reactpy/static/pyscript/xterm-DrSYbXEP.js +2 -0
- reactpy/static/pyscript/xterm-DrSYbXEP.js.map +1 -0
- reactpy/static/pyscript/xterm-readline-CK_45Ygx.js +2 -0
- reactpy/static/pyscript/xterm-readline-CK_45Ygx.js.map +1 -0
- reactpy/static/pyscript/xterm.css +1 -1
- reactpy/static/pyscript/xterm_addon-fit--gyF3PcZ.js.map +1 -1
- reactpy/static/pyscript/xterm_addon-web-links-D95xh2la.js +2 -0
- reactpy/static/pyscript/xterm_addon-web-links-D95xh2la.js.map +1 -0
- reactpy/static/pyscript/zip-pccs084i.js +2 -0
- reactpy/static/pyscript/zip-pccs084i.js.map +1 -0
- reactpy/templatetags/__init__.py +2 -2
- reactpy/templatetags/jinja.py +1 -1
- reactpy/testing/backend.py +1 -1
- reactpy/utils.py +5 -5
- reactpy/web/__init__.py +6 -0
- reactpy/web/module.py +242 -62
- reactpy/web/utils.py +1 -1
- {reactpy-2.0.0b2.dist-info → reactpy-2.0.0b3.dist-info}/METADATA +2 -3
- reactpy-2.0.0b3.dist-info/RECORD +116 -0
- {reactpy-2.0.0b2.dist-info → reactpy-2.0.0b3.dist-info}/WHEEL +1 -1
- reactpy/static/pyscript/codemirror-DNtCVICy.js +0 -2
- reactpy/static/pyscript/codemirror-DNtCVICy.js.map +0 -1
- reactpy/static/pyscript/codemirror_commands-DvCG1qNv.js +0 -2
- reactpy/static/pyscript/codemirror_commands-DvCG1qNv.js.map +0 -1
- reactpy/static/pyscript/codemirror_lang-python-BgZ6XoEX.js +0 -2
- reactpy/static/pyscript/codemirror_lang-python-BgZ6XoEX.js.map +0 -1
- reactpy/static/pyscript/codemirror_language-ddx8nifT.js +0 -2
- reactpy/static/pyscript/codemirror_language-ddx8nifT.js.map +0 -1
- reactpy/static/pyscript/codemirror_state-1UkzIAPK.js +0 -2
- reactpy/static/pyscript/codemirror_view-C2ObO--u.js +0 -2
- reactpy/static/pyscript/codemirror_view-C2ObO--u.js.map +0 -1
- reactpy/static/pyscript/core-BsIVS0z4.js +0 -4
- reactpy/static/pyscript/core-BsIVS0z4.js.map +0 -1
- reactpy/static/pyscript/error-Bd5T9j4s.js +0 -2
- reactpy/static/pyscript/index-978lpDXp.js +0 -2
- reactpy/static/pyscript/index-978lpDXp.js.map +0 -1
- reactpy/static/pyscript/mpy-De_qSCIU.js +0 -2
- reactpy/static/pyscript/mpy-De_qSCIU.js.map +0 -1
- reactpy/static/pyscript/py-CdW1_TfR.js +0 -2
- reactpy/static/pyscript/py-editor-MNjBwLfD.js +0 -2
- reactpy/static/pyscript/py-editor-MNjBwLfD.js.map +0 -1
- reactpy/static/pyscript/py-game-Did5BuBI.js +0 -2
- reactpy/static/pyscript/py-game-Did5BuBI.js.map +0 -1
- reactpy/static/pyscript/py-terminal-C3QERaDG.js +0 -2
- reactpy/static/pyscript/toml-BLBSZ43A.js +0 -3
- reactpy/static/pyscript/toml-BLBSZ43A.js.map +0 -1
- reactpy/static/pyscript/toml-DiUM0_qs.js +0 -3
- reactpy/static/pyscript/xterm-7LwxAMsn.js +0 -2
- reactpy/static/pyscript/xterm-7LwxAMsn.js.map +0 -1
- reactpy/static/pyscript/xterm-readline-e8QPhSrm.js +0 -2
- reactpy/static/pyscript/xterm-readline-e8QPhSrm.js.map +0 -1
- reactpy/static/pyscript/xterm_addon-web-links-Cnej-nJ6.js +0 -2
- reactpy/static/pyscript/xterm_addon-web-links-Cnej-nJ6.js.map +0 -1
- reactpy/static/pyscript/zip-CFEEYRfx.js +0 -2
- reactpy/static/pyscript/zip-CFEEYRfx.js.map +0 -1
- reactpy-2.0.0b2.dist-info/RECORD +0 -115
- {reactpy-2.0.0b2.dist-info → reactpy-2.0.0b3.dist-info}/entry_points.txt +0 -0
- {reactpy-2.0.0b2.dist-info → reactpy-2.0.0b3.dist-info}/licenses/LICENSE +0 -0
reactpy/templatetags/__init__.py
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
from reactpy.templatetags.jinja import
|
|
1
|
+
from reactpy.templatetags.jinja import ReactPyJinja
|
|
2
2
|
|
|
3
|
-
__all__ = ["
|
|
3
|
+
__all__ = ["ReactPyJinja"]
|
reactpy/templatetags/jinja.py
CHANGED
|
@@ -7,7 +7,7 @@ from reactpy.executors.utils import server_side_component_html
|
|
|
7
7
|
from reactpy.pyscript.utils import pyscript_component_html, pyscript_setup_html
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
class
|
|
10
|
+
class ReactPyJinja(StandaloneTag): # type: ignore
|
|
11
11
|
safe_output = True
|
|
12
12
|
tags: ClassVar[set[str]] = {"component", "pyscript_component", "pyscript_setup"}
|
|
13
13
|
|
reactpy/testing/backend.py
CHANGED
|
@@ -119,7 +119,7 @@ class BackendFixture:
|
|
|
119
119
|
self.log_records = self._exit_stack.enter_context(capture_reactpy_logs())
|
|
120
120
|
|
|
121
121
|
# Wait for the server to start
|
|
122
|
-
self.webserver.config.
|
|
122
|
+
self.webserver.config.get_loop_factory()
|
|
123
123
|
self.webserver_task = asyncio.create_task(self.webserver.serve())
|
|
124
124
|
await asyncio.sleep(1)
|
|
125
125
|
|
reactpy/utils.py
CHANGED
|
@@ -45,6 +45,8 @@ class Ref(Generic[_RefValue]):
|
|
|
45
45
|
self.current = new
|
|
46
46
|
return old
|
|
47
47
|
|
|
48
|
+
__hash__ = None # type: ignore
|
|
49
|
+
|
|
48
50
|
def __eq__(self, other: object) -> bool:
|
|
49
51
|
try:
|
|
50
52
|
return isinstance(other, Ref) and (other.current == self.current)
|
|
@@ -111,19 +113,17 @@ def string_to_reactpy(
|
|
|
111
113
|
try:
|
|
112
114
|
root_node: etree._Element = fromstring(
|
|
113
115
|
html.strip(),
|
|
114
|
-
parser=etree.HTMLParser(
|
|
116
|
+
parser=etree.HTMLParser( # type: ignore
|
|
115
117
|
remove_comments=True,
|
|
116
118
|
remove_pis=True,
|
|
117
119
|
remove_blank_text=True,
|
|
118
120
|
recover=not strict,
|
|
119
121
|
),
|
|
120
122
|
)
|
|
121
|
-
except
|
|
122
|
-
if not strict:
|
|
123
|
-
raise e # nocov
|
|
123
|
+
except Exception as e:
|
|
124
124
|
msg = (
|
|
125
125
|
"An error has occurred while parsing the HTML.\n\n"
|
|
126
|
-
"This HTML may be malformatted, or may not
|
|
126
|
+
"This HTML may be malformatted, or may not adhere to the HTML5 spec.\n"
|
|
127
127
|
"If you believe the exception above was due to something intentional, you "
|
|
128
128
|
"can disable the strict parameter on string_to_reactpy().\n"
|
|
129
129
|
"Otherwise, repair your broken HTML and try again."
|
reactpy/web/__init__.py
CHANGED
|
@@ -3,6 +3,9 @@ from reactpy.web.module import (
|
|
|
3
3
|
module_from_file,
|
|
4
4
|
module_from_string,
|
|
5
5
|
module_from_url,
|
|
6
|
+
reactjs_component_from_file,
|
|
7
|
+
reactjs_component_from_string,
|
|
8
|
+
reactjs_component_from_url,
|
|
6
9
|
)
|
|
7
10
|
|
|
8
11
|
__all__ = [
|
|
@@ -10,4 +13,7 @@ __all__ = [
|
|
|
10
13
|
"module_from_file",
|
|
11
14
|
"module_from_string",
|
|
12
15
|
"module_from_url",
|
|
16
|
+
"reactjs_component_from_file",
|
|
17
|
+
"reactjs_component_from_string",
|
|
18
|
+
"reactjs_component_from_url",
|
|
13
19
|
]
|
reactpy/web/module.py
CHANGED
|
@@ -7,6 +7,7 @@ from dataclasses import dataclass
|
|
|
7
7
|
from pathlib import Path
|
|
8
8
|
from typing import Any, NewType, overload
|
|
9
9
|
|
|
10
|
+
from reactpy._warnings import warn
|
|
10
11
|
from reactpy.config import REACTPY_DEBUG, REACTPY_WEB_MODULES_DIR
|
|
11
12
|
from reactpy.core.vdom import Vdom
|
|
12
13
|
from reactpy.types import ImportSourceDict, VdomConstructor
|
|
@@ -27,71 +28,86 @@ URL_SOURCE = SourceType("URL")
|
|
|
27
28
|
"""A source loaded from a URL, usually a CDN"""
|
|
28
29
|
|
|
29
30
|
|
|
30
|
-
|
|
31
|
+
_URL_WEB_MODULE_CACHE: dict[str, WebModule] = {}
|
|
32
|
+
_FILE_WEB_MODULE_CACHE: dict[str, WebModule] = {}
|
|
33
|
+
_STRING_WEB_MODULE_CACHE: dict[str, WebModule] = {}
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def reactjs_component_from_url(
|
|
31
37
|
url: str,
|
|
38
|
+
import_names: str | list[str] | tuple[str, ...],
|
|
32
39
|
fallback: Any | None = None,
|
|
33
|
-
|
|
34
|
-
|
|
40
|
+
resolve_imports: bool | None = None,
|
|
41
|
+
resolve_imports_depth: int = 5,
|
|
35
42
|
unmount_before_update: bool = False,
|
|
36
|
-
|
|
37
|
-
|
|
43
|
+
allow_children: bool = True,
|
|
44
|
+
) -> VdomConstructor | list[VdomConstructor]:
|
|
45
|
+
"""Import a component from a URL.
|
|
38
46
|
|
|
39
47
|
Parameters:
|
|
40
48
|
url:
|
|
41
|
-
|
|
42
|
-
|
|
49
|
+
The URL to import the component from.
|
|
50
|
+
import_names:
|
|
51
|
+
One or more component names to import. If given as a string, a single component
|
|
52
|
+
will be returned. If a list is given, then a list of components will be
|
|
53
|
+
returned.
|
|
43
54
|
fallback:
|
|
44
55
|
What to temporarily display while the module is being loaded.
|
|
45
56
|
resolve_imports:
|
|
46
|
-
Whether to try and find all the named
|
|
47
|
-
|
|
48
|
-
How deeply to search for those
|
|
57
|
+
Whether to try and find all the named imports of this module.
|
|
58
|
+
resolve_imports_depth:
|
|
59
|
+
How deeply to search for those imports.
|
|
49
60
|
unmount_before_update:
|
|
50
61
|
Cause the component to be unmounted before each update. This option should
|
|
51
62
|
only be used if the imported package fails to re-render when props change.
|
|
52
63
|
Using this option has negative performance consequences since all DOM
|
|
53
64
|
elements must be changed on each render. See :issue:`461` for more info.
|
|
65
|
+
allow_children:
|
|
66
|
+
Whether or not these components can have children.
|
|
54
67
|
"""
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
),
|
|
69
|
-
unmount_before_update=unmount_before_update,
|
|
70
|
-
)
|
|
68
|
+
key = f"{url}{resolve_imports}{resolve_imports_depth}{unmount_before_update}"
|
|
69
|
+
if key in _URL_WEB_MODULE_CACHE:
|
|
70
|
+
module = _URL_WEB_MODULE_CACHE[key]
|
|
71
|
+
else:
|
|
72
|
+
module = _module_from_url(
|
|
73
|
+
url,
|
|
74
|
+
fallback=fallback,
|
|
75
|
+
resolve_imports=resolve_imports,
|
|
76
|
+
resolve_imports_depth=resolve_imports_depth,
|
|
77
|
+
unmount_before_update=unmount_before_update,
|
|
78
|
+
)
|
|
79
|
+
_URL_WEB_MODULE_CACHE[key] = module
|
|
80
|
+
return _vdom_from_web_module(module, import_names, fallback, allow_children)
|
|
71
81
|
|
|
72
82
|
|
|
73
|
-
def
|
|
83
|
+
def reactjs_component_from_file(
|
|
74
84
|
name: str,
|
|
75
85
|
file: str | Path,
|
|
86
|
+
import_names: str | list[str] | tuple[str, ...],
|
|
76
87
|
fallback: Any | None = None,
|
|
77
|
-
|
|
78
|
-
|
|
88
|
+
resolve_imports: bool | None = None,
|
|
89
|
+
resolve_imports_depth: int = 5,
|
|
79
90
|
unmount_before_update: bool = False,
|
|
80
91
|
symlink: bool = False,
|
|
81
|
-
|
|
82
|
-
|
|
92
|
+
allow_children: bool = True,
|
|
93
|
+
) -> VdomConstructor | list[VdomConstructor]:
|
|
94
|
+
"""Import a component from a file.
|
|
83
95
|
|
|
84
96
|
Parameters:
|
|
85
97
|
name:
|
|
86
98
|
The name of the package
|
|
87
99
|
file:
|
|
88
100
|
The file from which the content of the web module will be created.
|
|
101
|
+
import_names:
|
|
102
|
+
One or more component names to import. If given as a string, a single component
|
|
103
|
+
will be returned. If a list is given, then a list of components will be
|
|
104
|
+
returned.
|
|
89
105
|
fallback:
|
|
90
106
|
What to temporarily display while the module is being loaded.
|
|
91
107
|
resolve_imports:
|
|
92
|
-
Whether to try and find all the named
|
|
93
|
-
|
|
94
|
-
How deeply to search for those
|
|
108
|
+
Whether to try and find all the named imports of this module.
|
|
109
|
+
resolve_imports_depth:
|
|
110
|
+
How deeply to search for those imports.
|
|
95
111
|
unmount_before_update:
|
|
96
112
|
Cause the component to be unmounted before each update. This option should
|
|
97
113
|
only be used if the imported package fails to re-render when props change.
|
|
@@ -99,7 +115,177 @@ def module_from_file(
|
|
|
99
115
|
elements must be changed on each render. See :issue:`461` for more info.
|
|
100
116
|
symlink:
|
|
101
117
|
Whether the web module should be saved as a symlink to the given ``file``.
|
|
118
|
+
allow_children:
|
|
119
|
+
Whether or not these components can have children.
|
|
102
120
|
"""
|
|
121
|
+
key = f"{name}{resolve_imports}{resolve_imports_depth}{unmount_before_update}"
|
|
122
|
+
if key in _FILE_WEB_MODULE_CACHE:
|
|
123
|
+
module = _FILE_WEB_MODULE_CACHE[key]
|
|
124
|
+
else:
|
|
125
|
+
module = _module_from_file(
|
|
126
|
+
name,
|
|
127
|
+
file,
|
|
128
|
+
fallback=fallback,
|
|
129
|
+
resolve_imports=resolve_imports,
|
|
130
|
+
resolve_imports_depth=resolve_imports_depth,
|
|
131
|
+
unmount_before_update=unmount_before_update,
|
|
132
|
+
symlink=symlink,
|
|
133
|
+
)
|
|
134
|
+
_FILE_WEB_MODULE_CACHE[key] = module
|
|
135
|
+
return _vdom_from_web_module(module, import_names, fallback, allow_children)
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
def reactjs_component_from_string(
|
|
139
|
+
name: str,
|
|
140
|
+
content: str,
|
|
141
|
+
import_names: str | list[str] | tuple[str, ...],
|
|
142
|
+
fallback: Any | None = None,
|
|
143
|
+
resolve_imports: bool | None = None,
|
|
144
|
+
resolve_imports_depth: int = 5,
|
|
145
|
+
unmount_before_update: bool = False,
|
|
146
|
+
allow_children: bool = True,
|
|
147
|
+
) -> VdomConstructor | list[VdomConstructor]:
|
|
148
|
+
"""Import a component from a string.
|
|
149
|
+
|
|
150
|
+
Parameters:
|
|
151
|
+
name:
|
|
152
|
+
The name of the package
|
|
153
|
+
content:
|
|
154
|
+
The contents of the web module
|
|
155
|
+
import_names:
|
|
156
|
+
One or more component names to import. If given as a string, a single component
|
|
157
|
+
will be returned. If a list is given, then a list of components will be
|
|
158
|
+
returned.
|
|
159
|
+
fallback:
|
|
160
|
+
What to temporarily display while the module is being loaded.
|
|
161
|
+
resolve_imports:
|
|
162
|
+
Whether to try and find all the named imports of this module.
|
|
163
|
+
resolve_imports_depth:
|
|
164
|
+
How deeply to search for those imports.
|
|
165
|
+
unmount_before_update:
|
|
166
|
+
Cause the component to be unmounted before each update. This option should
|
|
167
|
+
only be used if the imported package fails to re-render when props change.
|
|
168
|
+
Using this option has negative performance consequences since all DOM
|
|
169
|
+
elements must be changed on each render. See :issue:`461` for more info.
|
|
170
|
+
allow_children:
|
|
171
|
+
Whether or not these components can have children.
|
|
172
|
+
"""
|
|
173
|
+
key = f"{name}{resolve_imports}{resolve_imports_depth}{unmount_before_update}"
|
|
174
|
+
if key in _STRING_WEB_MODULE_CACHE:
|
|
175
|
+
module = _STRING_WEB_MODULE_CACHE[key]
|
|
176
|
+
else:
|
|
177
|
+
module = _module_from_string(
|
|
178
|
+
name,
|
|
179
|
+
content,
|
|
180
|
+
fallback=fallback,
|
|
181
|
+
resolve_imports=resolve_imports,
|
|
182
|
+
resolve_imports_depth=resolve_imports_depth,
|
|
183
|
+
unmount_before_update=unmount_before_update,
|
|
184
|
+
)
|
|
185
|
+
_STRING_WEB_MODULE_CACHE[key] = module
|
|
186
|
+
return _vdom_from_web_module(module, import_names, fallback, allow_children)
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
def module_from_url(
|
|
190
|
+
url: str,
|
|
191
|
+
fallback: Any | None = None,
|
|
192
|
+
resolve_exports: bool | None = None,
|
|
193
|
+
resolve_exports_depth: int = 5,
|
|
194
|
+
unmount_before_update: bool = False,
|
|
195
|
+
) -> WebModule: # pragma: no cover
|
|
196
|
+
warn(
|
|
197
|
+
"module_from_url is deprecated, use reactjs_component_from_url instead",
|
|
198
|
+
DeprecationWarning,
|
|
199
|
+
)
|
|
200
|
+
return _module_from_url(
|
|
201
|
+
url,
|
|
202
|
+
fallback=fallback,
|
|
203
|
+
resolve_imports=resolve_exports,
|
|
204
|
+
resolve_imports_depth=resolve_exports_depth,
|
|
205
|
+
unmount_before_update=unmount_before_update,
|
|
206
|
+
)
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
def module_from_file(
|
|
210
|
+
name: str,
|
|
211
|
+
file: str | Path,
|
|
212
|
+
fallback: Any | None = None,
|
|
213
|
+
resolve_exports: bool | None = None,
|
|
214
|
+
resolve_exports_depth: int = 5,
|
|
215
|
+
unmount_before_update: bool = False,
|
|
216
|
+
symlink: bool = False,
|
|
217
|
+
) -> WebModule: # pragma: no cover
|
|
218
|
+
warn(
|
|
219
|
+
"module_from_file is deprecated, use reactjs_component_from_file instead",
|
|
220
|
+
DeprecationWarning,
|
|
221
|
+
)
|
|
222
|
+
return _module_from_file(
|
|
223
|
+
name,
|
|
224
|
+
file,
|
|
225
|
+
fallback=fallback,
|
|
226
|
+
resolve_imports=resolve_exports,
|
|
227
|
+
resolve_imports_depth=resolve_exports_depth,
|
|
228
|
+
unmount_before_update=unmount_before_update,
|
|
229
|
+
symlink=symlink,
|
|
230
|
+
)
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
def module_from_string(
|
|
234
|
+
name: str,
|
|
235
|
+
content: str,
|
|
236
|
+
fallback: Any | None = None,
|
|
237
|
+
resolve_exports: bool | None = None,
|
|
238
|
+
resolve_exports_depth: int = 5,
|
|
239
|
+
unmount_before_update: bool = False,
|
|
240
|
+
) -> WebModule: # pragma: no cover
|
|
241
|
+
warn(
|
|
242
|
+
"module_from_string is deprecated, use reactjs_component_from_string instead",
|
|
243
|
+
DeprecationWarning,
|
|
244
|
+
)
|
|
245
|
+
return _module_from_string(
|
|
246
|
+
name,
|
|
247
|
+
content,
|
|
248
|
+
fallback=fallback,
|
|
249
|
+
resolve_imports=resolve_exports,
|
|
250
|
+
resolve_imports_depth=resolve_exports_depth,
|
|
251
|
+
unmount_before_update=unmount_before_update,
|
|
252
|
+
)
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
def _module_from_url(
|
|
256
|
+
url: str,
|
|
257
|
+
fallback: Any | None = None,
|
|
258
|
+
resolve_imports: bool | None = None,
|
|
259
|
+
resolve_imports_depth: int = 5,
|
|
260
|
+
unmount_before_update: bool = False,
|
|
261
|
+
) -> WebModule:
|
|
262
|
+
return WebModule(
|
|
263
|
+
source=url,
|
|
264
|
+
source_type=URL_SOURCE,
|
|
265
|
+
default_fallback=fallback,
|
|
266
|
+
file=None,
|
|
267
|
+
export_names=(
|
|
268
|
+
resolve_module_exports_from_url(url, resolve_imports_depth)
|
|
269
|
+
if (
|
|
270
|
+
resolve_imports
|
|
271
|
+
if resolve_imports is not None
|
|
272
|
+
else REACTPY_DEBUG.current
|
|
273
|
+
)
|
|
274
|
+
else None
|
|
275
|
+
),
|
|
276
|
+
unmount_before_update=unmount_before_update,
|
|
277
|
+
)
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
def _module_from_file(
|
|
281
|
+
name: str,
|
|
282
|
+
file: str | Path,
|
|
283
|
+
fallback: Any | None = None,
|
|
284
|
+
resolve_imports: bool | None = None,
|
|
285
|
+
resolve_imports_depth: int = 5,
|
|
286
|
+
unmount_before_update: bool = False,
|
|
287
|
+
symlink: bool = False,
|
|
288
|
+
) -> WebModule:
|
|
103
289
|
name += module_name_suffix(name)
|
|
104
290
|
|
|
105
291
|
source_file = Path(file).resolve()
|
|
@@ -124,10 +310,10 @@ def module_from_file(
|
|
|
124
310
|
default_fallback=fallback,
|
|
125
311
|
file=target_file,
|
|
126
312
|
export_names=(
|
|
127
|
-
resolve_module_exports_from_file(source_file,
|
|
313
|
+
resolve_module_exports_from_file(source_file, resolve_imports_depth)
|
|
128
314
|
if (
|
|
129
|
-
|
|
130
|
-
if
|
|
315
|
+
resolve_imports
|
|
316
|
+
if resolve_imports is not None
|
|
131
317
|
else REACTPY_DEBUG.current
|
|
132
318
|
)
|
|
133
319
|
else None
|
|
@@ -152,33 +338,14 @@ def _copy_file(target: Path, source: Path, symlink: bool) -> None:
|
|
|
152
338
|
shutil.copy(source, target)
|
|
153
339
|
|
|
154
340
|
|
|
155
|
-
def
|
|
341
|
+
def _module_from_string(
|
|
156
342
|
name: str,
|
|
157
343
|
content: str,
|
|
158
344
|
fallback: Any | None = None,
|
|
159
|
-
|
|
160
|
-
|
|
345
|
+
resolve_imports: bool | None = None,
|
|
346
|
+
resolve_imports_depth: int = 5,
|
|
161
347
|
unmount_before_update: bool = False,
|
|
162
348
|
) -> WebModule:
|
|
163
|
-
"""Load a :class:`WebModule` whose ``content`` comes from a string.
|
|
164
|
-
|
|
165
|
-
Parameters:
|
|
166
|
-
name:
|
|
167
|
-
The name of the package
|
|
168
|
-
content:
|
|
169
|
-
The contents of the web module
|
|
170
|
-
fallback:
|
|
171
|
-
What to temporarily display while the module is being loaded.
|
|
172
|
-
resolve_imports:
|
|
173
|
-
Whether to try and find all the named exports of this module.
|
|
174
|
-
resolve_exports_depth:
|
|
175
|
-
How deeply to search for those exports.
|
|
176
|
-
unmount_before_update:
|
|
177
|
-
Cause the component to be unmounted before each update. This option should
|
|
178
|
-
only be used if the imported package fails to re-render when props change.
|
|
179
|
-
Using this option has negative performance consequences since all DOM
|
|
180
|
-
elements must be changed on each render. See :issue:`461` for more info.
|
|
181
|
-
"""
|
|
182
349
|
name += module_name_suffix(name)
|
|
183
350
|
|
|
184
351
|
target_file = _web_module_path(name)
|
|
@@ -199,10 +366,10 @@ def module_from_string(
|
|
|
199
366
|
default_fallback=fallback,
|
|
200
367
|
file=target_file,
|
|
201
368
|
export_names=(
|
|
202
|
-
resolve_module_exports_from_file(target_file,
|
|
369
|
+
resolve_module_exports_from_file(target_file, resolve_imports_depth)
|
|
203
370
|
if (
|
|
204
|
-
|
|
205
|
-
if
|
|
371
|
+
resolve_imports
|
|
372
|
+
if resolve_imports is not None
|
|
206
373
|
else REACTPY_DEBUG.current
|
|
207
374
|
)
|
|
208
375
|
else None
|
|
@@ -244,6 +411,19 @@ def export(
|
|
|
244
411
|
export_names: str | list[str] | tuple[str, ...],
|
|
245
412
|
fallback: Any | None = None,
|
|
246
413
|
allow_children: bool = True,
|
|
414
|
+
) -> VdomConstructor | list[VdomConstructor]: # pragma: no cover
|
|
415
|
+
warn(
|
|
416
|
+
"export is deprecated, use reactjs_component_from_* functions instead",
|
|
417
|
+
DeprecationWarning,
|
|
418
|
+
)
|
|
419
|
+
return _vdom_from_web_module(web_module, export_names, fallback, allow_children)
|
|
420
|
+
|
|
421
|
+
|
|
422
|
+
def _vdom_from_web_module(
|
|
423
|
+
web_module: WebModule,
|
|
424
|
+
export_names: str | list[str] | tuple[str, ...],
|
|
425
|
+
fallback: Any | None = None,
|
|
426
|
+
allow_children: bool = True,
|
|
247
427
|
) -> VdomConstructor | list[VdomConstructor]:
|
|
248
428
|
"""Return one or more VDOM constructors from a :class:`WebModule`
|
|
249
429
|
|
reactpy/web/utils.py
CHANGED
|
@@ -12,7 +12,7 @@ def module_name_suffix(name: str) -> str:
|
|
|
12
12
|
if name.startswith("@"):
|
|
13
13
|
name = name[1:]
|
|
14
14
|
head, _, tail = name.partition("@") # handle version identifier
|
|
15
|
-
|
|
15
|
+
_, _, tail = tail.partition("/") # get section after version
|
|
16
16
|
return PurePosixPath(tail or head).suffix or ".js"
|
|
17
17
|
|
|
18
18
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: reactpy
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.0b3
|
|
4
4
|
Summary: It's React, but in Python.
|
|
5
5
|
Project-URL: Changelog, https://reactpy.dev/docs/about/changelog.html
|
|
6
6
|
Project-URL: Documentation, https://reactpy.dev/
|
|
@@ -44,8 +44,7 @@ Requires-Dist: jinja2-simple-tags; extra == 'jinja'
|
|
|
44
44
|
Requires-Dist: jinja2>=3; extra == 'jinja'
|
|
45
45
|
Provides-Extra: testing
|
|
46
46
|
Requires-Dist: playwright; extra == 'testing'
|
|
47
|
-
|
|
48
|
-
Requires-Dist: uvicorn[standard]; extra == 'uvicorn'
|
|
47
|
+
Requires-Dist: uvicorn[standard]; extra == 'testing'
|
|
49
48
|
Description-Content-Type: text/markdown
|
|
50
49
|
|
|
51
50
|
# <img src="https://raw.githubusercontent.com/reactive-python/reactpy/main/branding/svg/reactpy-logo-square.svg" align="left" height="45"/> ReactPy
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
reactpy/__init__.py,sha256=93qIqWNkP1e7sXDZ_j0wPJSTOO_o4swmO6x81iMFjpE,1252
|
|
2
|
+
reactpy/_html.py,sha256=SNDqr_ovXYFruC7ZWYFGCCCN9S4UTYGTsLnM-8VCz0o,11368
|
|
3
|
+
reactpy/_option.py,sha256=GK3Msnaqhcgkbx-RStbiMSeC9Qocf8Y6JbdxcO6f6ZI,5088
|
|
4
|
+
reactpy/_warnings.py,sha256=DR1YGzTS8ijaH0Wqh2V3TWDeDlkBwEb9dSsEYYuW-RI,933
|
|
5
|
+
reactpy/config.py,sha256=s3iWAQu9BAxidd5enacJm0b86cBaoVs-iTtWQrYpDy4,3835
|
|
6
|
+
reactpy/logging.py,sha256=VEQWQIjgAfAKj1qdvcT9PoMiRZ5iCfd0GPkhI5vmjxA,857
|
|
7
|
+
reactpy/py.typed,sha256=8PjyZ1aVoQpRVvt71muvuq5qE-jTFZkK-GLHkhdebmc,26
|
|
8
|
+
reactpy/transforms.py,sha256=hgIiMriflwPsMZhtZkqUm5Qj_eR5hrLrp0yTJ7NnC_c,11837
|
|
9
|
+
reactpy/types.py,sha256=yVTkhWmI5_HdqdWZ3rPkf4eAEPTK5zdG4ReG_EY3OVA,32037
|
|
10
|
+
reactpy/utils.py,sha256=JSrSrA3JWJwGAK5vRx5jcgJ7kigTOJ41NjmUlNVi1ds,10891
|
|
11
|
+
reactpy/widgets.py,sha256=8gC3vlE_xDDfpgAlKVfnPXx9N8F-wdfRCismzNk2clk,3151
|
|
12
|
+
reactpy/_console/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
|
+
reactpy/_console/ast_utils.py,sha256=bBQ0hNP5-p5CbQFRK0-f-z1c1cVReNBFR0BAcN30vTg,6340
|
|
14
|
+
reactpy/_console/cli.py,sha256=r-6tOyK8nJw7RF0JLJrjdKkQIM-36ZZsuUmR5Opxo6M,346
|
|
15
|
+
reactpy/_console/rewrite_keys.py,sha256=Ydnbfxp8Sv6OnCwLCLQp6aTurAOLW9w1fOFVPWSudbc,3505
|
|
16
|
+
reactpy/_console/rewrite_props.py,sha256=JMPJQWdq837saZjccKMB4iogngoRCehwogIKmkPrr_M,4768
|
|
17
|
+
reactpy/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
18
|
+
reactpy/core/_f_back.py,sha256=hVVbAjfaGO7oTh3VGdDziThuspYftfQICtWSv_0i1yc,605
|
|
19
|
+
reactpy/core/_life_cycle_hook.py,sha256=z-kV9l6Nc8lZZyaG4t-_FXGgCxdaB6TfQo_h1ESqFL0,9583
|
|
20
|
+
reactpy/core/_thread_local.py,sha256=AW1T7z4M4DH92EyYCmfAH_gxxW51ZCqZBFfZdEO6u54,800
|
|
21
|
+
reactpy/core/component.py,sha256=1lRXyIKgpGz-Nl-Nz9dq0i972ZiYd-AuZPgoQjIOqVQ,2042
|
|
22
|
+
reactpy/core/events.py,sha256=CgN0ixRLpMsq5WmF0Ft82PbCb6yCSKLLaqeMLZdUkYY,8070
|
|
23
|
+
reactpy/core/hooks.py,sha256=y_gKX85o_0_UbWYj-P43DTKz9YBzZ49fuSwVAMmV2nw,19097
|
|
24
|
+
reactpy/core/layout.py,sha256=i-klWvbkQEan0ebgq-x8Y_T2L-ib1yiD4rxR1pV9Djw,26864
|
|
25
|
+
reactpy/core/serve.py,sha256=MYIWubmi9l8ACt-jPMpErFLO9TZTZbn8niw8WZ8wJwg,3110
|
|
26
|
+
reactpy/core/vdom.py,sha256=J7uHx35SHQakspnZkeD2Z1OvIu2yKt3yJHVBSIr1vdo,9918
|
|
27
|
+
reactpy/executors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
|
+
reactpy/executors/utils.py,sha256=ikhv0MvsOKq45Gm7auLh6PbxvUH2ZgC5HLFXI9vBcLc,2779
|
|
29
|
+
reactpy/executors/asgi/__init__.py,sha256=3a2x9izF5MmZrI70wdy3Z8CsSZhhM2_CFxoSI6B4eiI,231
|
|
30
|
+
reactpy/executors/asgi/middleware.py,sha256=ysxMMHGSpnELNvx4HLCe81H2NvvfNS99x76ph4VrTFQ,11457
|
|
31
|
+
reactpy/executors/asgi/pyscript.py,sha256=w2BwHB1eV_EguWPsriYMkPevte6vOcrgdsU8pe1Veeo,5329
|
|
32
|
+
reactpy/executors/asgi/standalone.py,sha256=gH-gYhicMxlwvPcpklKx8ZpFpp8LWYoQALNTUi-4czo,8736
|
|
33
|
+
reactpy/executors/asgi/types.py,sha256=IzWrukH7U7QCnVdpVXUcxIDh9FZzJwo9YthBrh8Rcjk,3362
|
|
34
|
+
reactpy/pyscript/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
35
|
+
reactpy/pyscript/component_template.py,sha256=jYzQ7YwfJ6RA3A1BcKs_1udUTt7dT3Qct7Bm73BsZdU,778
|
|
36
|
+
reactpy/pyscript/components.py,sha256=BJ8qx8qEUYO4Hus_QSBsMakMxkJ9BstTES2HztgVwmU,1927
|
|
37
|
+
reactpy/pyscript/layout_handler.py,sha256=aBrnBeiEMudUvRqbhW7KoJW-RkwS_wQ2KZl6m47vcNA,6289
|
|
38
|
+
reactpy/pyscript/utils.py,sha256=1gfofjejKpL5r2HCb9cHervtpjZe_aeP2feBykyJk_8,8808
|
|
39
|
+
reactpy/static/index.js,sha256=xzmpyApvtH0TYqFiRWK_jsTpFO6hbG7nQT4ns0bCnMk,32225
|
|
40
|
+
reactpy/static/index.js.map,sha256=jIrGsph86u76ILGDwH7cXVkalenV3d8QLcea5pJO7CY,104021
|
|
41
|
+
reactpy/static/pyscript-hide-debug.css,sha256=TSVmdOQVWwN-L9C0g0JmvvHoOfN4NlXvom0SXrIEmXg,33
|
|
42
|
+
reactpy/static/morphdom/morphdom-esm.js,sha256=SOgEV5tSt-D2pjMeZDbV0cLiHCT4FVKNipG8NQmE7Do,28610
|
|
43
|
+
reactpy/static/morphdom/morphdom-factory.js,sha256=iDCdYf_nbCiXC-_NKcp6nihq980NzgMZE6NX4HDgy74,26492
|
|
44
|
+
reactpy/static/morphdom/morphdom-umd.js,sha256=guJOFWL0884p3kouGnEBOxxjqpyT7joM8fRXaQihL9s,31590
|
|
45
|
+
reactpy/static/morphdom/morphdom-umd.min.js,sha256=rRqvVEHrJ5i5ndA6Qb6iZWLNY038mEXTuMX7zlYKa6w,12224
|
|
46
|
+
reactpy/static/morphdom/morphdom.js,sha256=q_fnruPPHb7gkgsN1AuHMcRm6z8dP2KXqLeNDqQabsY,28627
|
|
47
|
+
reactpy/static/pyscript/codemirror-BYspKCDy.js,sha256=0ZxmBG8rzI6o2Ges-EuvnaaosaEpuaEdKTHhxqeSofY,32085
|
|
48
|
+
reactpy/static/pyscript/codemirror-BYspKCDy.js.map,sha256=r40fSe6hMs1yGH6Fg2wlQbLK7CIM3sina2inageYNMY,139019
|
|
49
|
+
reactpy/static/pyscript/codemirror_commands-BLDaEdQ6.js,sha256=a87vV8ZV9xgTxRh1g-LzI0BWOJ0r4i92MfDEijpKebI,28770
|
|
50
|
+
reactpy/static/pyscript/codemirror_commands-BLDaEdQ6.js.map,sha256=fAwPJVfX5ZyxyoUTOApNTpep0rvh2zJQYV02_jSENkI,131480
|
|
51
|
+
reactpy/static/pyscript/codemirror_lang-python-CkOVBHci.js,sha256=vdwZ6IvuzYj7j9jFjL8-fhetlqGCNXtfWQjXbTbL3EE,70687
|
|
52
|
+
reactpy/static/pyscript/codemirror_lang-python-CkOVBHci.js.map,sha256=9Ox5qmpMOv_udOoHur5nAlLZAs5f2gbsIjAtit2ssus,188372
|
|
53
|
+
reactpy/static/pyscript/codemirror_language-DOkvasqm.js,sha256=02-Bd5bCds4PExp0Lud4FBspsBT7uF92sGci51F4cYg,65565
|
|
54
|
+
reactpy/static/pyscript/codemirror_language-DOkvasqm.js.map,sha256=1rm0Ahd6F2JVNxaIutEL0HMmhNuyz9Xtcl_BCnTjMAA,327054
|
|
55
|
+
reactpy/static/pyscript/codemirror_state-BIAL8JKm.js,sha256=lGkzLJ4LTv2VB6paBTNYSgK2A1TO4YPqG6aBa4f3MDc,48737
|
|
56
|
+
reactpy/static/pyscript/codemirror_state-BIAL8JKm.js.map,sha256=OVcm_Pe0oRYf8NvZ9D1jjgAjRfBq6EbYNcTKNuhFchs,231957
|
|
57
|
+
reactpy/static/pyscript/codemirror_view-Bt4sLgyA.js,sha256=f-uamvf8353cllO6_-vqFEuF5TB1ErYMGX1aGRCL6R4,197024
|
|
58
|
+
reactpy/static/pyscript/codemirror_view-Bt4sLgyA.js.map,sha256=a0Fvye4z0C4uyyCfJVgEvgwlj2UldF1sKfxjqgfE7Tw,792952
|
|
59
|
+
reactpy/static/pyscript/core-PTfg6inS.js,sha256=vYzwhaeMN-cPvtlJbdNCG0h7-Fk2Y6LTjaZrqWGrigY,168718
|
|
60
|
+
reactpy/static/pyscript/core-PTfg6inS.js.map,sha256=8PoWfw0MTBC5s8TM5gGGF9aA0EY2gyXicq57RyTJkl0,442263
|
|
61
|
+
reactpy/static/pyscript/core.css,sha256=_B-oSsUgzopqBRIPJhOqIMKtWjGJtWYSsNFdgtWvddw,874
|
|
62
|
+
reactpy/static/pyscript/core.js,sha256=O9_Ux5OiF5seezxL3Uc_CQ74f5-DoCF231xwSVQPrGY,260
|
|
63
|
+
reactpy/static/pyscript/core.js.map,sha256=bPWlTnjYM5VUPL0xxsF06yze-nqUhYcPJVB27Jrul64,88
|
|
64
|
+
reactpy/static/pyscript/deprecations-manager-DIDxhyRq.js,sha256=OsIMHXl_VPCa2VHgFrCi-3BKVLCKhsFVGAmqXpYRIHw,432
|
|
65
|
+
reactpy/static/pyscript/deprecations-manager-DIDxhyRq.js.map,sha256=JEO37YHWM6RKAsP4UpWzPsAUldoCRYyGBZpt50NvO4Q,1412
|
|
66
|
+
reactpy/static/pyscript/donkey-CLhmQOjG.js,sha256=kLNhL7zCpVGN1zB04ASeC8cv7KXJcfcHtj1Zpbmn_2k,2399
|
|
67
|
+
reactpy/static/pyscript/donkey-CLhmQOjG.js.map,sha256=Vg_SJfZRPlusZhOYAT10BjYbr_tfuiYUQVycwK5gzbA,8914
|
|
68
|
+
reactpy/static/pyscript/error-uzvvriog.js,sha256=uWRAZ1QoFdqwyn6YaSrm1IcoGgT6eNLc5eFJeszmdHU,734
|
|
69
|
+
reactpy/static/pyscript/error-uzvvriog.js.map,sha256=8W6vLCyRIvTUHbPVGSSo2OlnwQfpm_-o7y4mRKHi51E,2501
|
|
70
|
+
reactpy/static/pyscript/index-jZ1aOVVJ.js,sha256=U8ADmGwE04g-pePMxRGSvhiP2uJ2MxOmw-tCYsD9zJI,34792
|
|
71
|
+
reactpy/static/pyscript/index-jZ1aOVVJ.js.map,sha256=YI-P5FajSgjZA4ry7wS3Zo1rtucJoOr9NrCd3Hxr-7o,144987
|
|
72
|
+
reactpy/static/pyscript/mpy-CnF17tqI.js,sha256=zE2cj2aFd97cqRIs0HY3r58QMswso4GLnzAxaRHFEMA,2826
|
|
73
|
+
reactpy/static/pyscript/mpy-CnF17tqI.js.map,sha256=ySIB-qiLVpR8-ugbZfMtQL9wg_umvFYKOQtBLsGWo4w,13861
|
|
74
|
+
reactpy/static/pyscript/py-BZSSqcx3.js,sha256=0AEuFC6ln2HCLWX3FpjuU5Po3ThlragL3_tUktvM6Fc,2493
|
|
75
|
+
reactpy/static/pyscript/py-BZSSqcx3.js.map,sha256=2pUYVuQ2kNlkPrurIzKnZ5pYB1b3oF-kH4Zz9YcndWI,10424
|
|
76
|
+
reactpy/static/pyscript/py-editor-DZ0Dxzzk.js,sha256=Wme2c6wKcdoKMMLtLaMs5gz-ZMjwI490sByMTALlZyw,6666
|
|
77
|
+
reactpy/static/pyscript/py-editor-DZ0Dxzzk.js.map,sha256=ARwPEgIB7CKQ6p9aOrnGW_JrIf4FXUAZrCuLvQ8_WyQ,27173
|
|
78
|
+
reactpy/static/pyscript/py-game-bqieV522.js,sha256=Dofy6e4pb8_tuz8j9bVwk3Qq5owN3pv-IuOiTMqzeCg,1627
|
|
79
|
+
reactpy/static/pyscript/py-game-bqieV522.js.map,sha256=VQsOjfPlcSawpTziZ5Hpc8vX0M34s0S3IIWspSzT9tQ,6497
|
|
80
|
+
reactpy/static/pyscript/py-terminal-DYY4WN57.js,sha256=LNXc3yAzDbnbvrYGTzzr1yl1lXz0-XExFT6l7Xy53Og,755
|
|
81
|
+
reactpy/static/pyscript/py-terminal-DYY4WN57.js.map,sha256=Xm8cJyiCesId9kMRCbDHxj5HoMlpwLx46nX14BnG44w,3231
|
|
82
|
+
reactpy/static/pyscript/service-worker.js,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
83
|
+
reactpy/static/pyscript/storage.js,sha256=OHWnh-BmfSaHyhsUsOFQQkHExrWhRAoJiU-wQ3XSNLU,3995
|
|
84
|
+
reactpy/static/pyscript/storage.js.map,sha256=_voU4hlHT-yYQTQ7lWE3W932wvzZLbDBjuvzwxhe7cY,18387
|
|
85
|
+
reactpy/static/pyscript/toml-BK2RWy-G.js,sha256=hZBOEMbDag2mp1Fv-82gYZe2MV6AUjuFVGYH_it-hjs,987
|
|
86
|
+
reactpy/static/pyscript/toml-BK2RWy-G.js.map,sha256=_YXkRkepW3kbAasa2cT3IMITp_dA6jYGLm6H_YL_XAw,4984
|
|
87
|
+
reactpy/static/pyscript/toml-Blg7Izee.js,sha256=a49uDz4ULILqoyLCqQ_sG27k4gAqtDVPTjDRMSimuVA,21493
|
|
88
|
+
reactpy/static/pyscript/toml-Blg7Izee.js.map,sha256=j9AMk-MP6Nkoz-BJvdGtL8UmTNMRSx4GD8izPiVhnp8,59236
|
|
89
|
+
reactpy/static/pyscript/xterm-DrSYbXEP.js,sha256=czyQ3n4aKtiDJr-iB7Pl94D7HIzHm3A9njzKca2O-KM,290593
|
|
90
|
+
reactpy/static/pyscript/xterm-DrSYbXEP.js.map,sha256=axJBN_kd5S_fxXuu_vRHucOMrUor2T086HIRjC9OWRQ,641549
|
|
91
|
+
reactpy/static/pyscript/xterm-readline-CK_45Ygx.js,sha256=emxZyloWxSlGxglI8wDLFJ1f_3cVunUPWsNk-dXZ72Y,20962
|
|
92
|
+
reactpy/static/pyscript/xterm-readline-CK_45Ygx.js.map,sha256=_fRq7rq4hp9x0o70uQb6B_K8MQ6wZFfu7WUwMJTWadE,58306
|
|
93
|
+
reactpy/static/pyscript/xterm.css,sha256=zLRPPQkSKCR7-k6CVH62DNjiGG6vha5adwMfToJsi6I,2781
|
|
94
|
+
reactpy/static/pyscript/xterm_addon-fit--gyF3PcZ.js,sha256=kDBreljehlFf1wQoGADw4dcqyXGviO_pB7Cj0vgzivo,1387
|
|
95
|
+
reactpy/static/pyscript/xterm_addon-fit--gyF3PcZ.js.map,sha256=qEDJqBdqnLDiKMMypohuAFcXHWp7qQf1DE5s4gKptHw,3486
|
|
96
|
+
reactpy/static/pyscript/xterm_addon-web-links-D95xh2la.js,sha256=1QSOecgJTKJeB82G5Kt-lySFXP-HX-qGLBvGvaYjZw4,3008
|
|
97
|
+
reactpy/static/pyscript/xterm_addon-web-links-D95xh2la.js.map,sha256=da7uXeo4q_IsWDKr4m7Dfdq-aIBPO9ys_LUd-R-KapU,7940
|
|
98
|
+
reactpy/static/pyscript/zip-pccs084i.js,sha256=Xi7AoScnuKZgx803pBsSyfVLX6fi5-_XBU_2W-4UOrs,158922
|
|
99
|
+
reactpy/static/pyscript/zip-pccs084i.js.map,sha256=HiY9HOwFsPc-R9viM6qN0QVf1PQBEhA5Lg2-bDy2tu8,293552
|
|
100
|
+
reactpy/templatetags/__init__.py,sha256=slwD8UiXJ8WQAGxDsGy1_fpX-9mbwNAU17cTL0bktMo,80
|
|
101
|
+
reactpy/templatetags/jinja.py,sha256=YHKZhf6i6tsd0IwsS4SBb7kR9MbUjSKwuEH3xdtF6-Y,1541
|
|
102
|
+
reactpy/testing/__init__.py,sha256=f8JhesjRwOConigrCKd-XHRDAmpIA7xRU5oVIxLG4Fw,643
|
|
103
|
+
reactpy/testing/backend.py,sha256=21D8QfJYI70ezsEO4knBb8wzugUg7BvPN9fLqCoLtxw,7101
|
|
104
|
+
reactpy/testing/common.py,sha256=rPURV28pQSoMUFx46WtStTzF1e3APytOJTrov408qic,7080
|
|
105
|
+
reactpy/testing/display.py,sha256=9XbQ6qVrsbDXWIJ-LXemspGFqxmtzzIy5Ojed6J71-c,2170
|
|
106
|
+
reactpy/testing/logs.py,sha256=40MGuZIlwT6c_ziziwLCsH1Y032ROAFcLvd8g9lRvAc,5672
|
|
107
|
+
reactpy/testing/utils.py,sha256=b4s1hpLqdl_Z8G_hHAx3ELlr4x1oI9iuazOdS43wkZI,1071
|
|
108
|
+
reactpy/web/__init__.py,sha256=gJuI9-GMoMSV6KrA3idYRIWmFu6wtnwnIWU2IA8PJS0,422
|
|
109
|
+
reactpy/web/module.py,sha256=NYIeG83OBkX5SMBExA20pEN24uv9lgN356N9M_hA4F8,15906
|
|
110
|
+
reactpy/web/utils.py,sha256=gAlR_rIIB0ezPZCb8bYKd8hSPb95RTAjcQmozkUqMhY,5172
|
|
111
|
+
reactpy/web/templates/react.js,sha256=VIwJfl8S3b53PazgFdaWpgHLhTYpcmNdSQfpl9LPQdM,1950
|
|
112
|
+
reactpy-2.0.0b3.dist-info/METADATA,sha256=xEhZVXlZpt4wQWkLlLVv5iIabZZdXKoZZzL20aCX4s4,5052
|
|
113
|
+
reactpy-2.0.0b3.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
114
|
+
reactpy-2.0.0b3.dist-info/entry_points.txt,sha256=WRit3ZrLVh7iDEhUMAPE3A9bcaa7TsolCdAdkxGmv0U,61
|
|
115
|
+
reactpy-2.0.0b3.dist-info/licenses/LICENSE,sha256=-8yQb3G5cW-IBhxyIe-uoQzI9lPEu7-6Yi5wJSO1ous,1093
|
|
116
|
+
reactpy-2.0.0b3.dist-info/RECORD,,
|