runtimepy 5.13.0__py3-none-any.whl → 5.13.1__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.
- runtimepy/__init__.py +3 -3
- runtimepy/__main__.py +1 -1
- runtimepy/app.py +1 -1
- runtimepy/commands/all.py +1 -1
- runtimepy/data/css/main.css +1 -1
- runtimepy/entry.py +1 -1
- runtimepy/net/html/__init__.py +3 -1
- runtimepy/net/server/__init__.py +14 -4
- runtimepy/net/server/app/env/tab/html.py +1 -0
- runtimepy/net/server/app/env/widgets.py +2 -0
- runtimepy/net/server/html.py +16 -2
- runtimepy/net/server/markdown.py +16 -15
- runtimepy/net/tcp/http/__init__.py +5 -1
- runtimepy/requirements.txt +1 -1
- {runtimepy-5.13.0.dist-info → runtimepy-5.13.1.dist-info}/METADATA +6 -6
- {runtimepy-5.13.0.dist-info → runtimepy-5.13.1.dist-info}/RECORD +20 -20
- {runtimepy-5.13.0.dist-info → runtimepy-5.13.1.dist-info}/WHEEL +1 -1
- {runtimepy-5.13.0.dist-info → runtimepy-5.13.1.dist-info}/entry_points.txt +0 -0
- {runtimepy-5.13.0.dist-info → runtimepy-5.13.1.dist-info}/licenses/LICENSE +0 -0
- {runtimepy-5.13.0.dist-info → runtimepy-5.13.1.dist-info}/top_level.txt +0 -0
runtimepy/__init__.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# =====================================
|
|
2
2
|
# generator=datazen
|
|
3
|
-
# version=3.2.
|
|
4
|
-
# hash=
|
|
3
|
+
# version=3.2.3
|
|
4
|
+
# hash=25280d90363095aa6b5717f2105ff685
|
|
5
5
|
# =====================================
|
|
6
6
|
|
|
7
7
|
"""
|
|
@@ -10,7 +10,7 @@ Useful defaults and other package metadata.
|
|
|
10
10
|
|
|
11
11
|
DESCRIPTION = "A framework for implementing Python services."
|
|
12
12
|
PKG_NAME = "runtimepy"
|
|
13
|
-
VERSION = "5.13.
|
|
13
|
+
VERSION = "5.13.1"
|
|
14
14
|
|
|
15
15
|
# runtimepy-specific content.
|
|
16
16
|
METRICS_NAME = "metrics"
|
runtimepy/__main__.py
CHANGED
runtimepy/app.py
CHANGED
runtimepy/commands/all.py
CHANGED
runtimepy/data/css/main.css
CHANGED
runtimepy/entry.py
CHANGED
runtimepy/net/html/__init__.py
CHANGED
|
@@ -51,9 +51,10 @@ def create_app_shell(
|
|
|
51
51
|
# Dark/light theme switch button.
|
|
52
52
|
bootstrap_button(
|
|
53
53
|
icon_str("lightbulb"),
|
|
54
|
-
tooltip="
|
|
54
|
+
tooltip="Toggle light/dark.",
|
|
55
55
|
id="theme-button",
|
|
56
56
|
parent=button_column,
|
|
57
|
+
title="change theme button",
|
|
57
58
|
)
|
|
58
59
|
|
|
59
60
|
return container, button_column
|
|
@@ -112,6 +113,7 @@ def full_markdown_page(
|
|
|
112
113
|
icon_str("printer"),
|
|
113
114
|
tooltip="Printer-friendly view.",
|
|
114
115
|
id="print-button",
|
|
116
|
+
title="print-view button",
|
|
115
117
|
parent=div(tag="a", href="?print=true", parent=button_column),
|
|
116
118
|
)
|
|
117
119
|
|
runtimepy/net/server/__init__.py
CHANGED
|
@@ -156,7 +156,9 @@ class RuntimepyServerConnection(HttpConnection):
|
|
|
156
156
|
|
|
157
157
|
response["Content-Type"] = f"text/html; charset={DEFAULT_ENCODING}"
|
|
158
158
|
|
|
159
|
-
|
|
159
|
+
with StringIO() as stream:
|
|
160
|
+
document.render(stream)
|
|
161
|
+
return stream.getvalue().encode()
|
|
160
162
|
|
|
161
163
|
async def render_markdown_file(
|
|
162
164
|
self,
|
|
@@ -179,14 +181,14 @@ class RuntimepyServerConnection(HttpConnection):
|
|
|
179
181
|
result: HttpResult = None
|
|
180
182
|
|
|
181
183
|
# Keep track of directories encountered.
|
|
182
|
-
directories: list[Path] = []
|
|
184
|
+
directories: list[tuple[Path, Path]] = []
|
|
183
185
|
|
|
184
186
|
# Build a list of all candidate files to check.
|
|
185
187
|
candidates: list[Path] = []
|
|
186
188
|
for search in self.paths:
|
|
187
189
|
candidate = search.joinpath(path[0][1:])
|
|
188
190
|
if candidate.is_dir():
|
|
189
|
-
directories.append(candidate)
|
|
191
|
+
directories.append((candidate, search))
|
|
190
192
|
candidates.append(candidate.joinpath("index.html"))
|
|
191
193
|
else:
|
|
192
194
|
candidates.append(candidate)
|
|
@@ -206,6 +208,13 @@ class RuntimepyServerConnection(HttpConnection):
|
|
|
206
208
|
|
|
207
209
|
# Set MIME type if it can be determined.
|
|
208
210
|
if mime:
|
|
211
|
+
# webhint suggestion
|
|
212
|
+
if (
|
|
213
|
+
mime.startswith("text")
|
|
214
|
+
and DEFAULT_ENCODING not in mime
|
|
215
|
+
):
|
|
216
|
+
mime += f"; charset={DEFAULT_ENCODING}"
|
|
217
|
+
|
|
209
218
|
response["Content-Type"] = mime
|
|
210
219
|
|
|
211
220
|
# We don't handle this yet.
|
|
@@ -219,9 +228,10 @@ class RuntimepyServerConnection(HttpConnection):
|
|
|
219
228
|
|
|
220
229
|
# Handle a directory as a last resort.
|
|
221
230
|
if not result and directories:
|
|
231
|
+
candidate, search = directories[0]
|
|
222
232
|
result = self.render_markdown(
|
|
223
233
|
markdown_for_dir(
|
|
224
|
-
|
|
234
|
+
candidate, search, {"applications": self.apps.keys()}
|
|
225
235
|
),
|
|
226
236
|
response,
|
|
227
237
|
path[1],
|
|
@@ -110,6 +110,7 @@ def channel_table_header(
|
|
|
110
110
|
tooltip="Clear plotted channels.",
|
|
111
111
|
icon="x-lg",
|
|
112
112
|
id="clear-plotted-channels",
|
|
113
|
+
title="button for clearing plotted channels",
|
|
113
114
|
).add_class("pb-2")
|
|
114
115
|
|
|
115
116
|
input_box(
|
|
@@ -124,6 +125,7 @@ def channel_table_header(
|
|
|
124
125
|
icon="trash",
|
|
125
126
|
tooltip="Clear all plot points.",
|
|
126
127
|
id="clear-plotted-points",
|
|
128
|
+
title="button for clearing plot point data",
|
|
127
129
|
).add_class("pb-2")
|
|
128
130
|
|
|
129
131
|
cell = flex(tag="th", parent=ctl_row)
|
runtimepy/net/server/html.py
CHANGED
|
@@ -6,6 +6,7 @@ A module implementing HTML interfaces for web applications.
|
|
|
6
6
|
from typing import Awaitable, Callable, Optional, TextIO
|
|
7
7
|
|
|
8
8
|
# third-party
|
|
9
|
+
from svgen.element import Element
|
|
9
10
|
from svgen.element.html import Html
|
|
10
11
|
from vcorelib import DEFAULT_ENCODING
|
|
11
12
|
|
|
@@ -20,10 +21,23 @@ HtmlApp = Callable[
|
|
|
20
21
|
HtmlApps = dict[str, HtmlApp]
|
|
21
22
|
|
|
22
23
|
|
|
23
|
-
def get_html(
|
|
24
|
+
def get_html(
|
|
25
|
+
title: str = HttpConnection.identity,
|
|
26
|
+
cache_control: str = "public",
|
|
27
|
+
**kwargs,
|
|
28
|
+
) -> Html:
|
|
24
29
|
"""Get a default HTML document."""
|
|
25
30
|
|
|
26
|
-
|
|
31
|
+
elem = Html(title, **kwargs)
|
|
32
|
+
|
|
33
|
+
elem.children.append(
|
|
34
|
+
Element(
|
|
35
|
+
tag="meta",
|
|
36
|
+
attrib={"http-equiv": "Cache-Control", "content": cache_control},
|
|
37
|
+
)
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
return elem
|
|
27
41
|
|
|
28
42
|
|
|
29
43
|
async def html_handler(
|
runtimepy/net/server/markdown.py
CHANGED
|
@@ -11,14 +11,11 @@ from typing import Iterable, cast
|
|
|
11
11
|
from vcorelib.io.file_writer import IndentedFileWriter
|
|
12
12
|
from vcorelib.paths import rel
|
|
13
13
|
|
|
14
|
-
LOGO_MARKDOWN = (
|
|
15
|
-
"[](https://libre-embedded.com)"
|
|
17
|
-
)
|
|
14
|
+
LOGO_MARKDOWN = "[](/)"
|
|
18
15
|
|
|
19
16
|
|
|
20
17
|
def markdown_for_dir(
|
|
21
|
-
path: Path, extra_links: dict[str, Iterable[str]] = None
|
|
18
|
+
path: Path, base: Path, extra_links: dict[str, Iterable[str]] = None
|
|
22
19
|
) -> str:
|
|
23
20
|
"""Get markdown data for a directory."""
|
|
24
21
|
|
|
@@ -29,24 +26,28 @@ def markdown_for_dir(
|
|
|
29
26
|
|
|
30
27
|
if extra_links:
|
|
31
28
|
for category, apps in extra_links.items():
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
29
|
+
if apps:
|
|
30
|
+
writer.write(f"## {category}")
|
|
31
|
+
with writer.padding():
|
|
32
|
+
for app in apps:
|
|
33
|
+
writer.write(f"* [{app}]({app})")
|
|
34
|
+
|
|
35
|
+
curr_dir = rel(path, base=base)
|
|
36
|
+
writer.write(f"## `{curr_dir}`")
|
|
38
37
|
writer.empty()
|
|
39
38
|
|
|
40
|
-
|
|
39
|
+
# Link to go up a directory.
|
|
40
|
+
if curr_dir != Path():
|
|
41
|
+
writer.write(f"* [..](/{curr_dir.parent})")
|
|
41
42
|
|
|
42
43
|
for item in path.iterdir():
|
|
43
|
-
curr = rel(item, base=
|
|
44
|
+
curr = rel(item, base=base)
|
|
44
45
|
|
|
45
|
-
name = f"`{curr}`"
|
|
46
|
+
name = f"`{curr.name}`"
|
|
46
47
|
if item.is_dir():
|
|
47
48
|
name = f"**{name}**"
|
|
48
49
|
|
|
49
|
-
writer.write(f"* [{name}]({curr})")
|
|
50
|
+
writer.write(f"* [{name}](/{curr})")
|
|
50
51
|
|
|
51
52
|
result: str = cast(StringIO, writer.stream).getvalue()
|
|
52
53
|
|
|
@@ -126,7 +126,11 @@ class HttpConnection(_TcpConnection):
|
|
|
126
126
|
)
|
|
127
127
|
|
|
128
128
|
# Set boilerplate header data.
|
|
129
|
-
|
|
129
|
+
|
|
130
|
+
# webhint suggestions
|
|
131
|
+
# response["server"] = self.identity
|
|
132
|
+
response["server"] = PKG_NAME
|
|
133
|
+
response["X-Content-Type-Options"] = "nosniff"
|
|
130
134
|
|
|
131
135
|
return result
|
|
132
136
|
|
runtimepy/requirements.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: runtimepy
|
|
3
|
-
Version: 5.13.
|
|
3
|
+
Version: 5.13.1
|
|
4
4
|
Summary: A framework for implementing Python services.
|
|
5
5
|
Home-page: https://github.com/libre-embedded/runtimepy
|
|
6
6
|
Author: Libre Embedded
|
|
@@ -17,11 +17,11 @@ Classifier: Development Status :: 5 - Production/Stable
|
|
|
17
17
|
Requires-Python: >=3.12
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
License-File: LICENSE
|
|
20
|
-
Requires-Dist: svgen>=0.7.4
|
|
21
20
|
Requires-Dist: aiofiles
|
|
22
|
-
Requires-Dist: psutil
|
|
23
21
|
Requires-Dist: websockets
|
|
24
22
|
Requires-Dist: vcorelib>=3.5.1
|
|
23
|
+
Requires-Dist: svgen>=0.7.12
|
|
24
|
+
Requires-Dist: psutil
|
|
25
25
|
Provides-Extra: test
|
|
26
26
|
Requires-Dist: pylint; extra == "test"
|
|
27
27
|
Requires-Dist: flake8; extra == "test"
|
|
@@ -50,12 +50,12 @@ Dynamic: requires-python
|
|
|
50
50
|
<!--
|
|
51
51
|
=====================================
|
|
52
52
|
generator=datazen
|
|
53
|
-
version=3.2.
|
|
54
|
-
hash=
|
|
53
|
+
version=3.2.3
|
|
54
|
+
hash=69775d79c8c13f44e0ac000acdeb93e2
|
|
55
55
|
=====================================
|
|
56
56
|
-->
|
|
57
57
|
|
|
58
|
-
# runtimepy ([5.13.
|
|
58
|
+
# runtimepy ([5.13.1](https://pypi.org/project/runtimepy/))
|
|
59
59
|
|
|
60
60
|
[](https://pypi.org/project/runtimepy/)
|
|
61
61
|

|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
runtimepy/__init__.py,sha256=
|
|
2
|
-
runtimepy/__main__.py,sha256=
|
|
3
|
-
runtimepy/app.py,sha256=
|
|
1
|
+
runtimepy/__init__.py,sha256=VPZ8WIQEUlyrEvvx7lZX4lLKZya3zWUCRU_k28pfybs,391
|
|
2
|
+
runtimepy/__main__.py,sha256=IKioH2xOtsXwrwb9zABDQEJvuAX--Lnh84TeSz0XSs0,332
|
|
3
|
+
runtimepy/app.py,sha256=Er1ZKKrG9U0FV0gQg_GYF9xDb89HgYnVzS5SjxGa2Tg,970
|
|
4
4
|
runtimepy/dev_requirements.txt,sha256=VZhW6bJ5YbwaoN4d_XxZFuN5BbDLaG7ngKrGnugVPRw,245
|
|
5
|
-
runtimepy/entry.py,sha256=
|
|
5
|
+
runtimepy/entry.py,sha256=DGHLv_SmTMImRcWjbVa2dKiWkhvAbxZwuvtvWLbx5U4,1954
|
|
6
6
|
runtimepy/mapping.py,sha256=VQK1vzmQVvYYKI85_II37-hIEbvgL3PzNy-WI6TTo80,5091
|
|
7
7
|
runtimepy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
-
runtimepy/requirements.txt,sha256
|
|
8
|
+
runtimepy/requirements.txt,sha256=-yAmlSgsSmAprzeYuyO4l8uUxlDj_XnFA0F8yyw5dBw,125
|
|
9
9
|
runtimepy/schemas.py,sha256=zTgxPm9DHZ0R_bmmOjNQMTXdtM_Hb1bE-Fog40jDCgg,839
|
|
10
10
|
runtimepy/util.py,sha256=ZHSucNi-gbrcajoCv2dNjQs48dJPC3mTM_wZHx7AW1U,1719
|
|
11
11
|
runtimepy/channel/__init__.py,sha256=pf0RJ5g37_FVV8xoUNgzFGuIfbZEYSBA_cQlJSDTPDo,4774
|
|
@@ -29,7 +29,7 @@ runtimepy/codec/protocol/base.py,sha256=ezNX-93NBChNpMszkkcx-0X_YzdU2oOFdqAMfKaE
|
|
|
29
29
|
runtimepy/codec/protocol/json.py,sha256=qmcoCcTRS-HgVYLPBsCAPhekAgZmHX9JBfGivLl3b0Y,4349
|
|
30
30
|
runtimepy/codec/system/__init__.py,sha256=fIOUo7QhwI81YAIz9myeSo1oo94De41sK5HKJ-sAdfY,7959
|
|
31
31
|
runtimepy/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
|
-
runtimepy/commands/all.py,sha256=
|
|
32
|
+
runtimepy/commands/all.py,sha256=WfKC5W8a5RzgE24QucynDvsOEcWO1e0Akm2etx90uFQ,1619
|
|
33
33
|
runtimepy/commands/arbiter.py,sha256=CtTMRYpqCAN3vWHkkr9jqWpoF7JGNXafKIBFmkarAfc,1567
|
|
34
34
|
runtimepy/commands/common.py,sha256=NvZdeIFBHAF52c1n7vqD59DW6ywc-rG5iC5MpuhGf-c,2449
|
|
35
35
|
runtimepy/commands/mtu.py,sha256=LFFjTU4SsuV3j7Mhx_WuKa5lfdfMm70zJvDWToVrP7E,1357
|
|
@@ -53,7 +53,7 @@ runtimepy/data/server_dev.yaml,sha256=nQsPh7LuQig3pzHfdg_aD3yOUiCj1sKKfI-WwW3hXm
|
|
|
53
53
|
runtimepy/data/tftp_server.yaml,sha256=-bFOWJSagI-fEQQcT8k7eDMJVfSPm2XAxLVG3dqUTa4,204
|
|
54
54
|
runtimepy/data/css/bootstrap_extra.css,sha256=kJLOp8j-vRxnWzQOf_eOz4kL8Mbrwxuwk3YNh90HgWM,1907
|
|
55
55
|
runtimepy/data/css/font.css,sha256=Pe82E66rNi-cwlQ-_1GHAuhPGu5L4x5KqgV0dbDe51w,977
|
|
56
|
-
runtimepy/data/css/main.css,sha256=
|
|
56
|
+
runtimepy/data/css/main.css,sha256=6xYQRA6QLDC8-k_-AUT1mA9bVHGidttfmMbgwg5ck3g,708
|
|
57
57
|
runtimepy/data/js/DataConnection.js,sha256=DnX8FMehjJXqmI62UMYXSvl_XdfQMzq3XUDFbLu2GgI,98
|
|
58
58
|
runtimepy/data/js/JsonConnection.js,sha256=rclZrbmWc_zSs6I_JhOgxnVPFIyPMo5WdjAe8alyZ3o,2729
|
|
59
59
|
runtimepy/data/js/audio.js,sha256=bLkBqbeHMiGGidfL3iXjmVoF9seK-ZeZ3kwgOrcpgk4,1092
|
|
@@ -181,7 +181,7 @@ runtimepy/net/arbiter/struct/__init__.py,sha256=Vr38dp2X0PZOrAbjKsZ9xZdQ1j3z92s4
|
|
|
181
181
|
runtimepy/net/arbiter/tcp/__init__.py,sha256=djNm8il_9aLNpGsYResJlFmyIqx9XNLqVay-mYnn8vc,1530
|
|
182
182
|
runtimepy/net/arbiter/tcp/json.py,sha256=W9a_OwBPmIoB2XZf4iuAIWQhMg2qA9xejBhGBdNCPnI,742
|
|
183
183
|
runtimepy/net/factories/__init__.py,sha256=rPdBVpgzzQYF61w6efQrEre71yMPHd6kanBpMdOX-3c,4672
|
|
184
|
-
runtimepy/net/html/__init__.py,sha256=
|
|
184
|
+
runtimepy/net/html/__init__.py,sha256=mlr7J7gBr9EwwKq4iMbq3QYKxie16AQDKa92_sUB2xM,5108
|
|
185
185
|
runtimepy/net/html/arbiter.py,sha256=SkZZm-CmyCxbAcWZbvCLH-RwFUJPvrvR5yWysVVuvCM,951
|
|
186
186
|
runtimepy/net/html/bootstrap/__init__.py,sha256=F_gp2_YMTi4tKEwRIPQGwoarKWCwltd9HnvqAqCH2Hc,2429
|
|
187
187
|
runtimepy/net/html/bootstrap/elements.py,sha256=NBdjg0_1LTxoyJrNQNw-2v8AWaiW2S1poJcDo4P6GWE,5355
|
|
@@ -193,10 +193,10 @@ runtimepy/net/http/request_target.py,sha256=EE1aI5VSARw1h93jyZvP56ir5O5fjd6orYK-
|
|
|
193
193
|
runtimepy/net/http/response.py,sha256=y33KLUJNE7zx6biUMwTkUfQ1bXiKV6pjrcxuh8U3WCE,3216
|
|
194
194
|
runtimepy/net/http/state.py,sha256=qCMN8aWfCRfU9XP-cIhSOo2RqfljTjbQRCflfcy2bfY,1626
|
|
195
195
|
runtimepy/net/http/version.py,sha256=mp6rgIM7-VUVKLCA0Uw96CmBkL0ET860lDVVEewpZ7w,1098
|
|
196
|
-
runtimepy/net/server/__init__.py,sha256=
|
|
197
|
-
runtimepy/net/server/html.py,sha256=
|
|
196
|
+
runtimepy/net/server/__init__.py,sha256=FRwHGxga52NXoaKBkjfWoVpDW5hkQaQzOrx0-gCvkos,10861
|
|
197
|
+
runtimepy/net/server/html.py,sha256=Z0WwAgncx-BTdT9Nm5L6KuambJIjuyw7wVvzI4dMxTg,1514
|
|
198
198
|
runtimepy/net/server/json.py,sha256=a7vM5yfq2er4DexzFqEMnxoMGDeuywKkVH4-uNJBAik,2522
|
|
199
|
-
runtimepy/net/server/markdown.py,sha256=
|
|
199
|
+
runtimepy/net/server/markdown.py,sha256=3kLQR3fsGFU8dUiDuMbUiLv7XKx9s4zXy9SZsJDDc9Y,1507
|
|
200
200
|
runtimepy/net/server/app/__init__.py,sha256=beU67t7zoKGlO7aldjQMUwYLm9mSlc78eMQazri-otw,3012
|
|
201
201
|
runtimepy/net/server/app/base.py,sha256=46aOqZwRss_nh_WfEH1cMJ9GUVoLJjERd7cTRFu6mXE,1878
|
|
202
202
|
runtimepy/net/server/app/create.py,sha256=eRT8qxubht5A7149Xol3Z8rkdYd_pjNLqrlyMnXk-Zg,2660
|
|
@@ -210,11 +210,11 @@ runtimepy/net/server/app/tab.py,sha256=gRiaUJdB3V9hIKI5MksW7spNChfMtEMDFWCTP1ERr
|
|
|
210
210
|
runtimepy/net/server/app/env/__init__.py,sha256=_FcgefASOwifwT0m5opg8jQbpZAVoedhNxWw0v1VB1k,4147
|
|
211
211
|
runtimepy/net/server/app/env/modal.py,sha256=HTipCYgQaAUtsmlBjXKfhAM5JyhLqoIIwEwsPnKhrG8,1740
|
|
212
212
|
runtimepy/net/server/app/env/settings.py,sha256=DboR8vXrdGeB_ehP9USvnyUtzgo4JR5CyYV9AGLYHGI,1720
|
|
213
|
-
runtimepy/net/server/app/env/widgets.py,sha256=
|
|
213
|
+
runtimepy/net/server/app/env/widgets.py,sha256=XT39-9zJ-5-XhY-PWHmWAU4JMqY8I4syk1fYUYv2OzM,5413
|
|
214
214
|
runtimepy/net/server/app/env/tab/__init__.py,sha256=stTVKyHljLQWnnhxkWPwa7bLdZtjhiMFbiVFgbiYaFI,647
|
|
215
215
|
runtimepy/net/server/app/env/tab/base.py,sha256=QBTBBvsdihbzK5MqrJBf6K5N61b3i8Ms0P6Xq_h1mbs,1171
|
|
216
216
|
runtimepy/net/server/app/env/tab/controls.py,sha256=bifFMvshDNsar3UiqeXOCYi71JGFRlMnyixKXrdLAEI,4728
|
|
217
|
-
runtimepy/net/server/app/env/tab/html.py,sha256=
|
|
217
|
+
runtimepy/net/server/app/env/tab/html.py,sha256=2Vgd50FubFlm24G5mECFrTi0YWYz3KIpcEq9mKtI5dk,7197
|
|
218
218
|
runtimepy/net/server/app/env/tab/message.py,sha256=-J8wBo1KH0XoBi9VcUvl9LXZCaoFAmvFyMf_YFJVF6Q,3945
|
|
219
219
|
runtimepy/net/server/struct/__init__.py,sha256=Zy37r6RLFu-XFr9vsanSq80BJdS6Dxr7zmPzQbb7xdw,1799
|
|
220
220
|
runtimepy/net/server/websocket/__init__.py,sha256=KISuFUUQwNn6BXo8BOMuMOXyoVqE7Jw94ZQiSCQuRQE,5279
|
|
@@ -227,7 +227,7 @@ runtimepy/net/tcp/__init__.py,sha256=OOWohegpoioSTf8M7uDf-4EV1IDungz7-U19L_2yW4I
|
|
|
227
227
|
runtimepy/net/tcp/connection.py,sha256=sYWj2aDiAHQf70zfRJM24cHraFd_TuzTD4fRWeSQZXE,8811
|
|
228
228
|
runtimepy/net/tcp/create.py,sha256=zZsRs5KYpO3bNGh-DwEOEzjUDE4ixj-UBHYgZ0GvC7c,2013
|
|
229
229
|
runtimepy/net/tcp/protocol.py,sha256=vEnIX3gUX2nrw9ofT_e4KYU4VY2k4WP0WuOi4eE_OOQ,1444
|
|
230
|
-
runtimepy/net/tcp/http/__init__.py,sha256=
|
|
230
|
+
runtimepy/net/tcp/http/__init__.py,sha256=lxEQsc8Mv5Qs0F9W-t8XBb2JPQQLpMqHYJM8NMXm-Dc,6206
|
|
231
231
|
runtimepy/net/tcp/scpi/__init__.py,sha256=aWCWQfdeyfoU9bpOnOtyIQbT1swl4ergXLFn5kXAH28,2105
|
|
232
232
|
runtimepy/net/tcp/telnet/__init__.py,sha256=96eJFb301I3H2ivDtGMQtDDw09Xm5NRvM9VEC-wjt8c,4768
|
|
233
233
|
runtimepy/net/tcp/telnet/codes.py,sha256=1-yyRe-Kz_W7d6B0P3iT1AaSNR3_Twmn-MUjKCJJknY,3518
|
|
@@ -300,9 +300,9 @@ runtimepy/tui/task.py,sha256=nUZo9fuOC-k1Wpqdzkv9v1tQirCI28fZVgcC13Ijvus,1093
|
|
|
300
300
|
runtimepy/tui/channels/__init__.py,sha256=evDaiIn-YS9uGhdo8ZGtP9VK1ek6sr_P1nJ9JuSET0o,4536
|
|
301
301
|
runtimepy/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
302
302
|
runtimepy/ui/controls.py,sha256=yvT7h3thbYaitsakcIAJ90EwKzJ4b-jnc6p3UuVf_XE,1241
|
|
303
|
-
runtimepy-5.13.
|
|
304
|
-
runtimepy-5.13.
|
|
305
|
-
runtimepy-5.13.
|
|
306
|
-
runtimepy-5.13.
|
|
307
|
-
runtimepy-5.13.
|
|
308
|
-
runtimepy-5.13.
|
|
303
|
+
runtimepy-5.13.1.dist-info/licenses/LICENSE,sha256=yKBRwbO-cOPBrlpsZmJkkSa33DfY31aE8t7lZ0DwlUo,1071
|
|
304
|
+
runtimepy-5.13.1.dist-info/METADATA,sha256=5e7rbi_qozv3poWPC2SoeRRE74fdJYM0CK57kb4BBKY,9269
|
|
305
|
+
runtimepy-5.13.1.dist-info/WHEEL,sha256=GHB6lJx2juba1wDgXDNlMTyM13ckjBMKf-OnwgKOCtA,91
|
|
306
|
+
runtimepy-5.13.1.dist-info/entry_points.txt,sha256=-btVBkYv7ybcopqZ_pRky-bEzu3vhbaG3W3Z7ERBiFE,51
|
|
307
|
+
runtimepy-5.13.1.dist-info/top_level.txt,sha256=0jPmh6yqHyyJJDwEID-LpQly-9kQ3WRMjH7Lix8peLg,10
|
|
308
|
+
runtimepy-5.13.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|