runtimepy 5.6.4__py3-none-any.whl → 5.7.0__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 +2 -2
- runtimepy/data/css/bootstrap_extra.css +12 -3
- runtimepy/data/css/main.css +0 -1
- runtimepy/data/js/classes/WindowHashManager.js +29 -7
- runtimepy/net/server/app/bootstrap/elements.py +1 -1
- runtimepy/net/server/app/bootstrap/tabs.py +12 -3
- runtimepy/net/server/app/env/__init__.py +5 -1
- runtimepy/net/server/app/env/modal.py +1 -1
- runtimepy/net/server/app/env/settings.py +2 -2
- runtimepy/net/server/app/env/tab/html.py +2 -2
- runtimepy/net/server/app/placeholder.py +1 -1
- runtimepy/net/server/app/sound.py +1 -1
- runtimepy/requirements.txt +1 -1
- {runtimepy-5.6.4.dist-info → runtimepy-5.7.0.dist-info}/METADATA +5 -5
- {runtimepy-5.6.4.dist-info → runtimepy-5.7.0.dist-info}/RECORD +19 -19
- {runtimepy-5.6.4.dist-info → runtimepy-5.7.0.dist-info}/WHEEL +1 -1
- {runtimepy-5.6.4.dist-info → runtimepy-5.7.0.dist-info}/LICENSE +0 -0
- {runtimepy-5.6.4.dist-info → runtimepy-5.7.0.dist-info}/entry_points.txt +0 -0
- {runtimepy-5.6.4.dist-info → runtimepy-5.7.0.dist-info}/top_level.txt +0 -0
runtimepy/__init__.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# =====================================
|
|
2
2
|
# generator=datazen
|
|
3
3
|
# version=3.1.4
|
|
4
|
-
# hash=
|
|
4
|
+
# hash=c51f4ac6cf134b3c3fa872a096e83489
|
|
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
|
+
VERSION = "5.7.0"
|
|
14
14
|
|
|
15
15
|
# runtimepy-specific content.
|
|
16
16
|
METRICS_NAME = "metrics"
|
|
@@ -77,19 +77,17 @@ textarea.text-logs {
|
|
|
77
77
|
padding-bottom: 0 !important;
|
|
78
78
|
|
|
79
79
|
border-top: 0;
|
|
80
|
-
background-color: var(--bs-secondary-bg-subtle);
|
|
81
80
|
}
|
|
82
81
|
|
|
83
82
|
.vertical-divider {
|
|
84
83
|
flex-basis: 0.75em;
|
|
85
84
|
flex-grow: 0;
|
|
86
85
|
flex-shrink: 0;
|
|
87
|
-
background-color: var(--bs-secondary-bg-subtle);
|
|
88
86
|
}
|
|
89
87
|
|
|
90
88
|
.vertical-divider:hover {
|
|
91
89
|
cursor: col-resize;
|
|
92
|
-
background-color: var(--bs-
|
|
90
|
+
background-color: var(--bs-highlight-bg) !important;
|
|
93
91
|
}
|
|
94
92
|
|
|
95
93
|
button:hover {
|
|
@@ -99,3 +97,14 @@ button:hover {
|
|
|
99
97
|
.channel-value-input {
|
|
100
98
|
width: 6em;
|
|
101
99
|
}
|
|
100
|
+
|
|
101
|
+
/*
|
|
102
|
+
* Should probably build the bootstrap stuff from source and set custom Sass:
|
|
103
|
+
* https://getbootstrap.com/docs/5.3/customize/sass/
|
|
104
|
+
*/
|
|
105
|
+
|
|
106
|
+
:root {
|
|
107
|
+
/* Prefer 'Arial' and 'Consolas' at the highest priority. */
|
|
108
|
+
--bs-font-sans-serif: Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
109
|
+
--bs-font-monospace: Consolas, "Liberation Mono", "Courier New", monospace;
|
|
110
|
+
}
|
runtimepy/data/css/main.css
CHANGED
|
@@ -7,6 +7,7 @@ class WindowHashManager {
|
|
|
7
7
|
this.tabFilter = "";
|
|
8
8
|
this.tabsShown = true;
|
|
9
9
|
this.channelsShown = true;
|
|
10
|
+
this.lightMode = false;
|
|
10
11
|
this.plotChannels = {};
|
|
11
12
|
this.filters = {};
|
|
12
13
|
this.minTxPeriod = 0.0;
|
|
@@ -17,6 +18,15 @@ class WindowHashManager {
|
|
|
17
18
|
this.update();
|
|
18
19
|
}
|
|
19
20
|
|
|
21
|
+
lightDarkClick(event) {
|
|
22
|
+
this.lightMode = !this.lightMode;
|
|
23
|
+
|
|
24
|
+
document.getElementById("runtimepy")
|
|
25
|
+
.setAttribute("data-bs-theme", this.lightMode ? "light" : "dark");
|
|
26
|
+
|
|
27
|
+
this.update();
|
|
28
|
+
}
|
|
29
|
+
|
|
20
30
|
channelClick(event) {
|
|
21
31
|
this.channelsShown = !this.channelsShown;
|
|
22
32
|
|
|
@@ -106,6 +116,12 @@ class WindowHashManager {
|
|
|
106
116
|
channelsButton.addEventListener("click", this.channelClick.bind(this));
|
|
107
117
|
}
|
|
108
118
|
|
|
119
|
+
/* Click handler for light/dark toggle. */
|
|
120
|
+
let lightDarkButton = document.getElementById("theme-button");
|
|
121
|
+
if (lightDarkButton) {
|
|
122
|
+
lightDarkButton.addEventListener("click", this.lightDarkClick.bind(this));
|
|
123
|
+
}
|
|
124
|
+
|
|
109
125
|
/* Click handlers for new window buttons. */
|
|
110
126
|
for (const button of document.querySelectorAll(".window-button")) {
|
|
111
127
|
button.onclick = () => {
|
|
@@ -150,13 +166,6 @@ class WindowHashManager {
|
|
|
150
166
|
}
|
|
151
167
|
}
|
|
152
168
|
|
|
153
|
-
if (split.includes("hide-tabs")) {
|
|
154
|
-
tabButton.click();
|
|
155
|
-
}
|
|
156
|
-
if (split.includes("hide-channels")) {
|
|
157
|
-
channelsButton.click();
|
|
158
|
-
}
|
|
159
|
-
|
|
160
169
|
/* Check for tab filter. */
|
|
161
170
|
for (let item of split) {
|
|
162
171
|
if (item.includes("=")) {
|
|
@@ -171,6 +180,16 @@ class WindowHashManager {
|
|
|
171
180
|
}
|
|
172
181
|
}
|
|
173
182
|
}
|
|
183
|
+
|
|
184
|
+
if (split.includes("hide-tabs")) {
|
|
185
|
+
tabButton.click();
|
|
186
|
+
}
|
|
187
|
+
if (split.includes("hide-channels")) {
|
|
188
|
+
channelsButton.click();
|
|
189
|
+
}
|
|
190
|
+
if (split.includes("light-mode")) {
|
|
191
|
+
lightDarkButton.click();
|
|
192
|
+
}
|
|
174
193
|
}
|
|
175
194
|
}
|
|
176
195
|
|
|
@@ -199,6 +218,9 @@ class WindowHashManager {
|
|
|
199
218
|
if (!this.channelsShown) {
|
|
200
219
|
hash += ",hide-channels"
|
|
201
220
|
}
|
|
221
|
+
if (this.lightMode) {
|
|
222
|
+
hash += ",light-mode";
|
|
223
|
+
}
|
|
202
224
|
|
|
203
225
|
if (this.minTxPeriod != 0.0) {
|
|
204
226
|
hash += `,min-tx-period-ms=${this.minTxPeriod}`;
|
|
@@ -8,8 +8,10 @@ from svgen.element.html import div
|
|
|
8
8
|
|
|
9
9
|
# internal
|
|
10
10
|
from runtimepy import PKG_NAME
|
|
11
|
+
from runtimepy.net.server.app.bootstrap import icon_str
|
|
11
12
|
from runtimepy.net.server.app.bootstrap.elements import (
|
|
12
13
|
BOOTSTRAP_BUTTON,
|
|
14
|
+
bootstrap_button,
|
|
13
15
|
collapse_button,
|
|
14
16
|
flex,
|
|
15
17
|
toggle_button,
|
|
@@ -85,16 +87,23 @@ class TabbedContent:
|
|
|
85
87
|
|
|
86
88
|
# Create application container.
|
|
87
89
|
self.container = div(parent=parent, id=name)
|
|
88
|
-
self.container.add_class("d-flex", "align-items-start")
|
|
90
|
+
self.container.add_class("d-flex", "align-items-start", "bg-body")
|
|
89
91
|
|
|
90
92
|
# Dark theme.
|
|
91
93
|
self.container["data-bs-theme"] = "dark"
|
|
92
|
-
parent.add_class("bg-dark")
|
|
93
94
|
|
|
94
95
|
# Buttons.
|
|
95
96
|
self.button_column = div(parent=self.container)
|
|
96
97
|
self.button_column.add_class(
|
|
97
|
-
"d-flex", "flex-column", "h-100", "bg-
|
|
98
|
+
"d-flex", "flex-column", "h-100", "bg-dark-subtle"
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
# Dark/light theme switch button.
|
|
102
|
+
bootstrap_button(
|
|
103
|
+
icon_str("lightbulb"),
|
|
104
|
+
tooltip=" Toggle light/dark.",
|
|
105
|
+
id="theme-button",
|
|
106
|
+
parent=self.button_column,
|
|
98
107
|
)
|
|
99
108
|
|
|
100
109
|
# Toggle tabs button.
|
|
@@ -155,4 +155,8 @@ def channel_environments(app: AppInfo, tabs: TabbedContent) -> None:
|
|
|
155
155
|
)
|
|
156
156
|
|
|
157
157
|
# Add splash screen element.
|
|
158
|
-
div(
|
|
158
|
+
div(
|
|
159
|
+
id=f"{PKG_NAME}-splash",
|
|
160
|
+
parent=tabs.container,
|
|
161
|
+
class_str="bg-success-subtle bg-gradient",
|
|
162
|
+
)
|
|
@@ -43,7 +43,7 @@ def plot_settings(tabs: TabbedContent) -> None:
|
|
|
43
43
|
div(
|
|
44
44
|
text="0 ms ('high', run at native refresh rate)",
|
|
45
45
|
parent=container,
|
|
46
|
-
class_str="text-nowrap text-
|
|
46
|
+
class_str="text-nowrap text-body-emphasis",
|
|
47
47
|
)
|
|
48
48
|
|
|
49
49
|
slider(
|
|
@@ -53,7 +53,7 @@ def plot_settings(tabs: TabbedContent) -> None:
|
|
|
53
53
|
div(
|
|
54
54
|
text="100 ms ('low', 10 Hz)",
|
|
55
55
|
parent=container,
|
|
56
|
-
class_str="text-nowrap text-
|
|
56
|
+
class_str="text-nowrap text-body-emphasis",
|
|
57
57
|
)
|
|
58
58
|
|
|
59
59
|
div(tag="hr", parent=modal.body)
|
|
@@ -238,7 +238,7 @@ class ChannelEnvironmentTabHtml(ChannelEnvironmentTabControls):
|
|
|
238
238
|
logs = div(
|
|
239
239
|
tag="textarea",
|
|
240
240
|
parent=div(parent=vert_container, class_str="form-floating"),
|
|
241
|
-
class_str=f"form-control rounded-0 {TEXT} text-logs",
|
|
241
|
+
class_str=(f"form-control rounded-0 {TEXT} text-logs"),
|
|
242
242
|
id=self.get_id("logs"),
|
|
243
243
|
title=f"Text logs for {self.name}.",
|
|
244
244
|
)
|
|
@@ -258,7 +258,7 @@ class ChannelEnvironmentTabHtml(ChannelEnvironmentTabControls):
|
|
|
258
258
|
div(
|
|
259
259
|
id=self.get_id("divider"),
|
|
260
260
|
parent=container,
|
|
261
|
-
class_str="vertical-divider border-start",
|
|
261
|
+
class_str="vertical-divider border-start bg-dark-subtle",
|
|
262
262
|
)
|
|
263
263
|
|
|
264
264
|
self._compose_plot(container)
|
|
@@ -19,7 +19,7 @@ class DummyTab(Tab):
|
|
|
19
19
|
def compose(self, parent: Element) -> None:
|
|
20
20
|
"""Compose the tab's HTML elements."""
|
|
21
21
|
|
|
22
|
-
parent.add_class("text-
|
|
22
|
+
parent.add_class("text-body")
|
|
23
23
|
|
|
24
24
|
for idx in range(10):
|
|
25
25
|
div(parent=parent, text="Hello, world! " + str(idx))
|
|
@@ -17,7 +17,7 @@ class SoundTab(Tab):
|
|
|
17
17
|
def compose(self, parent: Element) -> None:
|
|
18
18
|
"""Compose the tab's HTML elements."""
|
|
19
19
|
|
|
20
|
-
container = div(parent=parent, class_str="text-
|
|
20
|
+
container = div(parent=parent, class_str="text-body")
|
|
21
21
|
|
|
22
22
|
div(text="Hello, world! 1", parent=container)
|
|
23
23
|
div(text="Hello, world! 2", parent=container)
|
runtimepy/requirements.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: runtimepy
|
|
3
|
-
Version: 5.
|
|
3
|
+
Version: 5.7.0
|
|
4
4
|
Summary: A framework for implementing Python services.
|
|
5
5
|
Home-page: https://github.com/vkottler/runtimepy
|
|
6
6
|
Author: Vaughn Kottler
|
|
@@ -19,9 +19,9 @@ Description-Content-Type: text/markdown
|
|
|
19
19
|
License-File: LICENSE
|
|
20
20
|
Requires-Dist: svgen >=0.6.8
|
|
21
21
|
Requires-Dist: aiofiles
|
|
22
|
-
Requires-Dist: vcorelib >=3.4.1
|
|
23
|
-
Requires-Dist: psutil
|
|
24
22
|
Requires-Dist: websockets
|
|
23
|
+
Requires-Dist: psutil
|
|
24
|
+
Requires-Dist: vcorelib >=3.4.2
|
|
25
25
|
Provides-Extra: test
|
|
26
26
|
Requires-Dist: pylint ; extra == 'test'
|
|
27
27
|
Requires-Dist: flake8 ; extra == 'test'
|
|
@@ -45,11 +45,11 @@ Requires-Dist: uvloop ; (sys_platform != "win32" and sys_platform != "cygwin") a
|
|
|
45
45
|
=====================================
|
|
46
46
|
generator=datazen
|
|
47
47
|
version=3.1.4
|
|
48
|
-
hash=
|
|
48
|
+
hash=aa59dcef7f11c767458b14ad97f9de59
|
|
49
49
|
=====================================
|
|
50
50
|
-->
|
|
51
51
|
|
|
52
|
-
# runtimepy ([5.
|
|
52
|
+
# runtimepy ([5.7.0](https://pypi.org/project/runtimepy/))
|
|
53
53
|
|
|
54
54
|
[](https://pypi.org/project/runtimepy/)
|
|
55
55
|

|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
runtimepy/__init__.py,sha256=
|
|
1
|
+
runtimepy/__init__.py,sha256=7qUy8p7EC5Gtz7wvmBh-jnZVUn-dIOF6t1tjTI1I9v8,390
|
|
2
2
|
runtimepy/__main__.py,sha256=OPAed6hggoQdw-6QAR62mqLC-rCkdDhOq0wyeS2vDRI,332
|
|
3
3
|
runtimepy/app.py,sha256=sTvatbsGZ2Hdel36Si_WUbNMtg9CzsJyExr5xjIcxDE,970
|
|
4
4
|
runtimepy/dev_requirements.txt,sha256=j0dh11ztJAzfaUL0iFheGjaZj9ppDzmTkclTT8YKO8c,230
|
|
5
5
|
runtimepy/entry.py,sha256=3672ccoslf2h8Wg5M_SuW6SoEx0oslRoi0ngZsgjNz8,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=77PnkPte9OZyyJg88wF_6su2H4XSvuN8rQH1tibLdv4,124
|
|
9
9
|
runtimepy/schemas.py,sha256=NROlzVCZGLTJ9xe7d1eNIYmjzf0AOv3qHK-f6g1jGHk,678
|
|
10
10
|
runtimepy/util.py,sha256=q1Spqt8AiG8_64COh1fU5cUKl-cZhp8BK1CHw_IOya0,399
|
|
11
11
|
runtimepy/channel/__init__.py,sha256=pf0RJ5g37_FVV8xoUNgzFGuIfbZEYSBA_cQlJSDTPDo,4774
|
|
@@ -50,8 +50,8 @@ runtimepy/data/server.yaml,sha256=wS_Ceiu2TpkfPurpqoYoPlgzc9DAWtUd24MW7t-S5rU,97
|
|
|
50
50
|
runtimepy/data/server_base.yaml,sha256=QkF1xcHyMEViUhOc5rKFbFXjbRDDDHbX5LXvSQJRS58,615
|
|
51
51
|
runtimepy/data/server_dev.yaml,sha256=nQsPh7LuQig3pzHfdg_aD3yOUiCj1sKKfI-WwW3hXmQ,523
|
|
52
52
|
runtimepy/data/tftp_server.yaml,sha256=-bFOWJSagI-fEQQcT8k7eDMJVfSPm2XAxLVG3dqUTa4,204
|
|
53
|
-
runtimepy/data/css/bootstrap_extra.css,sha256=
|
|
54
|
-
runtimepy/data/css/main.css,sha256=
|
|
53
|
+
runtimepy/data/css/bootstrap_extra.css,sha256=la8scLWyYDzAmQV5qh_44PAEX0RMnPP35Kcs9US63sU,1758
|
|
54
|
+
runtimepy/data/css/main.css,sha256=OSg5g7FYbjsHY7QNbFCTPAD1MlypeoYfaOyAfvnT2kI,680
|
|
55
55
|
runtimepy/data/js/DataConnection.js,sha256=DnX8FMehjJXqmI62UMYXSvl_XdfQMzq3XUDFbLu2GgI,98
|
|
56
56
|
runtimepy/data/js/JsonConnection.js,sha256=rclZrbmWc_zSs6I_JhOgxnVPFIyPMo5WdjAe8alyZ3o,2729
|
|
57
57
|
runtimepy/data/js/audio.js,sha256=bLkBqbeHMiGGidfL3iXjmVoF9seK-ZeZ3kwgOrcpgk4,1092
|
|
@@ -74,7 +74,7 @@ runtimepy/data/js/classes/PointManager.js,sha256=0lr2AReLdDNrY47UuOjjCRDPMiSRsOV
|
|
|
74
74
|
runtimepy/data/js/classes/TabFilter.js,sha256=FygFFmWa1IRQ0DZlrOscdrkz6W3VkG87nHSud56kCzI,1185
|
|
75
75
|
runtimepy/data/js/classes/TabInterface.js,sha256=i-dM_FpRsp_hJEh6CdtSY8hiTS6-KZx5dkOYXD_crh0,12084
|
|
76
76
|
runtimepy/data/js/classes/UnitSystem.js,sha256=ys4OMabq47k_VvJpRItm82U0IequDvx3ysRJOQzDf94,906
|
|
77
|
-
runtimepy/data/js/classes/WindowHashManager.js,sha256=
|
|
77
|
+
runtimepy/data/js/classes/WindowHashManager.js,sha256=tHGhjfPJCF253L98Dh8gKlxUDY2ct0G7RudoQXXxB-E,6860
|
|
78
78
|
runtimepy/data/js/classes/WorkerInterface.js,sha256=qARPW1CUDnHnVFVE8UjqKq74QfommCLwd6nisy-ayOw,346
|
|
79
79
|
runtimepy/data/js/tab/env.js,sha256=MB79l3XyXKELWRqHcTnwWHiwdiceLHl1N_s-mS33pyU,22
|
|
80
80
|
runtimepy/data/js/tab/sound.js,sha256=RSKp0AXM_zGOCsUvIT-BUjIzOE7Dp5NHiQG4fy7gBgY,1388
|
|
@@ -169,21 +169,21 @@ runtimepy/net/server/app/create.py,sha256=N-g3kClBsG4pKOd9tx947rOq4sfgrH_FAMVfZa
|
|
|
169
169
|
runtimepy/net/server/app/elements.py,sha256=KJt9vWqkfvniJMiLOJN467JjPPrEqJYZXmDuY1JoY1g,455
|
|
170
170
|
runtimepy/net/server/app/files.py,sha256=cIHtIKqaVvOpKL62LSVV1IRPdUyCRCg0TOX9XXmYtqk,2903
|
|
171
171
|
runtimepy/net/server/app/landing_page.py,sha256=axHGBeFpjn5PF87Yb-n73me4T9b8pQxBq4zlvX5CjmE,663
|
|
172
|
-
runtimepy/net/server/app/placeholder.py,sha256=
|
|
172
|
+
runtimepy/net/server/app/placeholder.py,sha256=BDoLtS6dSeLUKnUZe3z17pb5QuXH4C69RqoIpEc3BIY,1676
|
|
173
173
|
runtimepy/net/server/app/pyodide.py,sha256=dGJ4u78eYQLU9RQbZEWgzv-7jVIwblS6VopibG82tA4,478
|
|
174
|
-
runtimepy/net/server/app/sound.py,sha256=
|
|
174
|
+
runtimepy/net/server/app/sound.py,sha256=AeJoa6XKNH3TYvH6OuAwyfJ5CyFJJwCF0zeCMIpLZAE,843
|
|
175
175
|
runtimepy/net/server/app/tab.py,sha256=4jhw71LfA23wT9m9e5ofw-tBXYW6xky4tGwBOlGkOz8,2296
|
|
176
176
|
runtimepy/net/server/app/bootstrap/__init__.py,sha256=ONhwx68piWjsrf88FMpda84TWSPqgi-RZCBuWCci_ak,1444
|
|
177
|
-
runtimepy/net/server/app/bootstrap/elements.py,sha256=
|
|
178
|
-
runtimepy/net/server/app/bootstrap/tabs.py,sha256=
|
|
179
|
-
runtimepy/net/server/app/env/__init__.py,sha256=
|
|
180
|
-
runtimepy/net/server/app/env/modal.py,sha256=
|
|
181
|
-
runtimepy/net/server/app/env/settings.py,sha256=
|
|
177
|
+
runtimepy/net/server/app/bootstrap/elements.py,sha256=otKJGuDVNL7yKpjdIWZw2fyiHVlRRBPdgRrtRjOW2Vk,4781
|
|
178
|
+
runtimepy/net/server/app/bootstrap/tabs.py,sha256=tZHgG2NuJ0kJjNjgzCaQEwpuZywRy0bAEEtgg6aB-ns,4454
|
|
179
|
+
runtimepy/net/server/app/env/__init__.py,sha256=WGgIaB4cg4zqEc7BOCvtNEDvCYWyg48tVHtJiDdHtMA,4172
|
|
180
|
+
runtimepy/net/server/app/env/modal.py,sha256=BDnZvdzwu68ZCKISab39n8_NRWh518IyrtObovhC8SU,1752
|
|
181
|
+
runtimepy/net/server/app/env/settings.py,sha256=2dJydD7_lH8ae43d0D28BNRCbUjmmq4gc-eEAqDOCHs,1732
|
|
182
182
|
runtimepy/net/server/app/env/widgets.py,sha256=_kNvPl7MXnZOiwTjoZiU2hfuSjkLnRUrORTVDi3w7Ls,5312
|
|
183
183
|
runtimepy/net/server/app/env/tab/__init__.py,sha256=stTVKyHljLQWnnhxkWPwa7bLdZtjhiMFbiVFgbiYaFI,647
|
|
184
184
|
runtimepy/net/server/app/env/tab/base.py,sha256=hcHKG17JGkAZjl2X7jT1B72RHTeMdocTakFyNKkmWJc,1168
|
|
185
185
|
runtimepy/net/server/app/env/tab/controls.py,sha256=hsj0ErywfmOBtJLNZbMISrE2ELJEfyXvtCtpsDbXlYg,4734
|
|
186
|
-
runtimepy/net/server/app/env/tab/html.py,sha256=
|
|
186
|
+
runtimepy/net/server/app/env/tab/html.py,sha256=lF7W9zwxgQa-EPWi49lcM0gNVrlXcGjjUjdFyt_BtMQ,7099
|
|
187
187
|
runtimepy/net/server/app/env/tab/message.py,sha256=OWqBIPRt6UdBHAXk5qvFMbnWuvIRUyp34lzb3GYdthk,4070
|
|
188
188
|
runtimepy/net/server/struct/__init__.py,sha256=Zy37r6RLFu-XFr9vsanSq80BJdS6Dxr7zmPzQbb7xdw,1799
|
|
189
189
|
runtimepy/net/server/websocket/__init__.py,sha256=KISuFUUQwNn6BXo8BOMuMOXyoVqE7Jw94ZQiSCQuRQE,5279
|
|
@@ -269,9 +269,9 @@ runtimepy/tui/task.py,sha256=nUZo9fuOC-k1Wpqdzkv9v1tQirCI28fZVgcC13Ijvus,1093
|
|
|
269
269
|
runtimepy/tui/channels/__init__.py,sha256=evDaiIn-YS9uGhdo8ZGtP9VK1ek6sr_P1nJ9JuSET0o,4536
|
|
270
270
|
runtimepy/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
271
271
|
runtimepy/ui/controls.py,sha256=yvT7h3thbYaitsakcIAJ90EwKzJ4b-jnc6p3UuVf_XE,1241
|
|
272
|
-
runtimepy-5.
|
|
273
|
-
runtimepy-5.
|
|
274
|
-
runtimepy-5.
|
|
275
|
-
runtimepy-5.
|
|
276
|
-
runtimepy-5.
|
|
277
|
-
runtimepy-5.
|
|
272
|
+
runtimepy-5.7.0.dist-info/LICENSE,sha256=okYCYhGsx_BlzvFdoNVBVpw_Cfb4SOqHA_VAARml4Hc,1071
|
|
273
|
+
runtimepy-5.7.0.dist-info/METADATA,sha256=0gGgcxU2Cl_nKgBLgU8Y2RLsE39Iy3Bo_gycEbfvjgc,9308
|
|
274
|
+
runtimepy-5.7.0.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
|
|
275
|
+
runtimepy-5.7.0.dist-info/entry_points.txt,sha256=-btVBkYv7ybcopqZ_pRky-bEzu3vhbaG3W3Z7ERBiFE,51
|
|
276
|
+
runtimepy-5.7.0.dist-info/top_level.txt,sha256=0jPmh6yqHyyJJDwEID-LpQly-9kQ3WRMjH7Lix8peLg,10
|
|
277
|
+
runtimepy-5.7.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|