runtimepy 5.6.3__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/channel/environment/command/__init__.py +1 -1
- runtimepy/channel/environment/telemetry.py +3 -1
- runtimepy/data/css/bootstrap_extra.css +13 -3
- runtimepy/data/css/main.css +4 -1
- runtimepy/data/dummy_load.yaml +34 -1
- runtimepy/data/js/classes/WindowHashManager.js +29 -7
- runtimepy/data/md/Connection.md +3 -0
- runtimepy/data/md/PeriodicTask.md +3 -0
- runtimepy/data/md/RuntimeStruct.md +3 -0
- runtimepy/data/md/RuntimepyPeer.md +3 -0
- runtimepy/data/md/SinusoidTask.md +20 -0
- runtimepy/data/schemas/ClientConnectionConfig.yaml +1 -0
- runtimepy/data/schemas/PeerProcessConfig.yaml +1 -0
- runtimepy/data/schemas/TaskConfig.yaml +1 -0
- runtimepy/data/schemas/has_markdown.yaml +4 -0
- runtimepy/mapping.py +1 -1
- runtimepy/message/interface.py +2 -2
- runtimepy/mixins/environment.py +10 -4
- runtimepy/mixins/logging.py +54 -1
- runtimepy/net/arbiter/base.py +13 -3
- runtimepy/net/arbiter/config/__init__.py +6 -2
- runtimepy/net/arbiter/imports/__init__.py +5 -5
- runtimepy/net/arbiter/imports/util.py +3 -1
- runtimepy/net/connection.py +7 -1
- runtimepy/net/http/common.py +5 -0
- runtimepy/net/http/header.py +5 -1
- runtimepy/net/http/response.py +1 -1
- runtimepy/net/server/app/__init__.py +3 -1
- runtimepy/net/server/app/bootstrap/elements.py +38 -1
- runtimepy/net/server/app/bootstrap/tabs.py +12 -3
- runtimepy/net/server/app/env/__init__.py +74 -20
- runtimepy/net/server/app/env/modal.py +1 -1
- runtimepy/net/server/app/env/settings.py +2 -2
- runtimepy/net/server/app/env/tab/base.py +5 -1
- runtimepy/net/server/app/env/tab/html.py +8 -8
- runtimepy/net/server/app/placeholder.py +1 -1
- runtimepy/net/server/app/sound.py +1 -1
- runtimepy/net/server/struct/__init__.py +1 -2
- runtimepy/net/server/websocket/state.py +3 -1
- runtimepy/net/tcp/connection.py +14 -4
- runtimepy/net/tcp/http/__init__.py +9 -7
- runtimepy/net/udp/connection.py +11 -4
- runtimepy/net/udp/tftp/__init__.py +1 -2
- runtimepy/net/websocket/connection.py +10 -5
- runtimepy/requirements.txt +2 -1
- runtimepy/struct/__init__.py +12 -2
- runtimepy/subprocess/interface.py +17 -4
- runtimepy/subprocess/peer.py +20 -6
- runtimepy/task/basic/periodic.py +7 -1
- runtimepy/util.py +0 -81
- {runtimepy-5.6.3.dist-info → runtimepy-5.7.0.dist-info}/METADATA +8 -7
- {runtimepy-5.6.3.dist-info → runtimepy-5.7.0.dist-info}/RECORD +57 -51
- {runtimepy-5.6.3.dist-info → runtimepy-5.7.0.dist-info}/WHEEL +1 -1
- {runtimepy-5.6.3.dist-info → runtimepy-5.7.0.dist-info}/LICENSE +0 -0
- {runtimepy-5.6.3.dist-info → runtimepy-5.7.0.dist-info}/entry_points.txt +0 -0
- {runtimepy-5.6.3.dist-info → runtimepy-5.7.0.dist-info}/top_level.txt +0 -0
|
@@ -12,11 +12,12 @@ from logging import INFO, getLogger
|
|
|
12
12
|
from typing import Optional
|
|
13
13
|
|
|
14
14
|
# third-party
|
|
15
|
+
from vcorelib.io import MarkdownMixin
|
|
15
16
|
from vcorelib.io.types import JsonObject
|
|
16
17
|
from vcorelib.math import RateLimiter
|
|
17
18
|
|
|
18
19
|
# internal
|
|
19
|
-
from runtimepy import METRICS_NAME
|
|
20
|
+
from runtimepy import METRICS_NAME, PKG_NAME
|
|
20
21
|
from runtimepy.channel.environment import ChannelEnvironment
|
|
21
22
|
from runtimepy.channel.environment.base import FieldOrChannel
|
|
22
23
|
from runtimepy.channel.environment.command import register_env
|
|
@@ -34,7 +35,7 @@ PEER_SUFFIX = ".peer"
|
|
|
34
35
|
|
|
35
36
|
|
|
36
37
|
class RuntimepyPeerInterface(
|
|
37
|
-
JsonMessageInterface, AsyncCommandProcessingMixin
|
|
38
|
+
JsonMessageInterface, AsyncCommandProcessingMixin, MarkdownMixin
|
|
38
39
|
):
|
|
39
40
|
"""A class implementing an interface for messaging peer subprocesses."""
|
|
40
41
|
|
|
@@ -42,13 +43,25 @@ class RuntimepyPeerInterface(
|
|
|
42
43
|
|
|
43
44
|
struct_type: type[RuntimeStruct] = SampleStruct
|
|
44
45
|
|
|
45
|
-
|
|
46
|
+
# Unclear why this is/was necessary (mypy bug?)
|
|
47
|
+
markdown: str
|
|
48
|
+
|
|
49
|
+
def __init__(
|
|
50
|
+
self, name: str, config: JsonObject, markdown: str = None
|
|
51
|
+
) -> None:
|
|
46
52
|
"""Initialize this instance."""
|
|
47
53
|
|
|
54
|
+
self.set_markdown(markdown=markdown, package=PKG_NAME)
|
|
55
|
+
|
|
48
56
|
self.processor = MessageProcessor()
|
|
49
57
|
|
|
50
58
|
self.basename = name
|
|
51
|
-
|
|
59
|
+
|
|
60
|
+
self.struct = self.struct_type(
|
|
61
|
+
self.basename + HOST_SUFFIX,
|
|
62
|
+
config,
|
|
63
|
+
markdown=config.get("config", {}).get("markdown"), # type: ignore
|
|
64
|
+
)
|
|
52
65
|
|
|
53
66
|
self.peer: Optional[RemoteCommandProcessor] = None
|
|
54
67
|
self.peer_config: Optional[JsonMessage] = None
|
runtimepy/subprocess/peer.py
CHANGED
|
@@ -19,13 +19,13 @@ from typing import AsyncIterator, Iterator, Type, TypeVar
|
|
|
19
19
|
from vcorelib.io import ARBITER, DEFAULT_INCLUDES_KEY
|
|
20
20
|
from vcorelib.io.file_writer import IndentedFileWriter
|
|
21
21
|
from vcorelib.io.types import JsonObject
|
|
22
|
+
from vcorelib.names import import_str_and_item
|
|
22
23
|
from vcorelib.paths.context import tempfile
|
|
23
24
|
|
|
24
25
|
# internal
|
|
25
26
|
from runtimepy.subprocess import spawn_exec, spawn_shell
|
|
26
27
|
from runtimepy.subprocess.interface import RuntimepyPeerInterface
|
|
27
28
|
from runtimepy.subprocess.protocol import RuntimepySubprocessProtocol
|
|
28
|
-
from runtimepy.util import import_str_and_item
|
|
29
29
|
|
|
30
30
|
T = TypeVar("T", bound="RuntimepyPeer")
|
|
31
31
|
|
|
@@ -38,10 +38,11 @@ class RuntimepyPeer(RuntimepyPeerInterface):
|
|
|
38
38
|
protocol: RuntimepySubprocessProtocol,
|
|
39
39
|
name: str,
|
|
40
40
|
config: JsonObject,
|
|
41
|
+
markdown: str = None,
|
|
41
42
|
) -> None:
|
|
42
43
|
"""Initialize this instance."""
|
|
43
44
|
|
|
44
|
-
super().__init__(name, config)
|
|
45
|
+
super().__init__(name, config, markdown=markdown)
|
|
45
46
|
self.protocol = protocol
|
|
46
47
|
|
|
47
48
|
# Offset message identifiers.
|
|
@@ -89,14 +90,20 @@ class RuntimepyPeer(RuntimepyPeerInterface):
|
|
|
89
90
|
@classmethod
|
|
90
91
|
@asynccontextmanager
|
|
91
92
|
async def shell(
|
|
92
|
-
cls: Type[T],
|
|
93
|
+
cls: Type[T],
|
|
94
|
+
name: str,
|
|
95
|
+
config: JsonObject,
|
|
96
|
+
cmd: str,
|
|
97
|
+
markdown: str = None,
|
|
93
98
|
) -> AsyncIterator[T]:
|
|
94
99
|
"""Create an instance from a shell command."""
|
|
95
100
|
|
|
96
101
|
async with spawn_shell(
|
|
97
102
|
cmd, stdout=asyncio.Queue(), stderr=asyncio.Queue()
|
|
98
103
|
) as proto:
|
|
99
|
-
async with cls(
|
|
104
|
+
async with cls(
|
|
105
|
+
proto, name, config, markdown=markdown
|
|
106
|
+
)._context() as inst:
|
|
100
107
|
yield inst
|
|
101
108
|
|
|
102
109
|
async def main(self) -> None:
|
|
@@ -105,14 +112,21 @@ class RuntimepyPeer(RuntimepyPeerInterface):
|
|
|
105
112
|
@classmethod
|
|
106
113
|
@asynccontextmanager
|
|
107
114
|
async def exec(
|
|
108
|
-
cls: Type[T],
|
|
115
|
+
cls: Type[T],
|
|
116
|
+
name: str,
|
|
117
|
+
config: JsonObject,
|
|
118
|
+
*args,
|
|
119
|
+
markdown: str = None,
|
|
120
|
+
**kwargs,
|
|
109
121
|
) -> AsyncIterator[T]:
|
|
110
122
|
"""Create an instance from comand-line arguments."""
|
|
111
123
|
|
|
112
124
|
async with spawn_exec(
|
|
113
125
|
*args, stdout=asyncio.Queue(), stderr=asyncio.Queue(), **kwargs
|
|
114
126
|
) as proto:
|
|
115
|
-
async with cls(
|
|
127
|
+
async with cls(
|
|
128
|
+
proto, name, config, markdown=markdown
|
|
129
|
+
)._context() as inst:
|
|
116
130
|
yield inst
|
|
117
131
|
|
|
118
132
|
@classmethod
|
runtimepy/task/basic/periodic.py
CHANGED
|
@@ -13,12 +13,14 @@ from logging import getLogger as _getLogger
|
|
|
13
13
|
from typing import Optional as _Optional
|
|
14
14
|
|
|
15
15
|
# third-party
|
|
16
|
+
from vcorelib.io import MarkdownMixin
|
|
16
17
|
from vcorelib.math import DEFAULT_DEPTH as _DEFAULT_DEPTH
|
|
17
18
|
from vcorelib.math import MovingAverage as _MovingAverage
|
|
18
19
|
from vcorelib.math import RateTracker as _RateTracker
|
|
19
20
|
from vcorelib.math import rate_str as _rate_str
|
|
20
21
|
|
|
21
22
|
# internal
|
|
23
|
+
from runtimepy import PKG_NAME
|
|
22
24
|
from runtimepy.channel.environment import ChannelEnvironment
|
|
23
25
|
from runtimepy.channel.environment.command.processor import (
|
|
24
26
|
ChannelCommandProcessor,
|
|
@@ -32,7 +34,9 @@ from runtimepy.primitives import Float as _Float
|
|
|
32
34
|
from runtimepy.ui.controls import Controlslike
|
|
33
35
|
|
|
34
36
|
|
|
35
|
-
class PeriodicTask(
|
|
37
|
+
class PeriodicTask(
|
|
38
|
+
LoggerMixinLevelControl, ChannelEnvironmentMixin, MarkdownMixin, _ABC
|
|
39
|
+
):
|
|
36
40
|
"""A class implementing a simple periodic-task interface."""
|
|
37
41
|
|
|
38
42
|
auto_finalize = True
|
|
@@ -45,10 +49,12 @@ class PeriodicTask(LoggerMixinLevelControl, ChannelEnvironmentMixin, _ABC):
|
|
|
45
49
|
period_s: float = 1.0,
|
|
46
50
|
env: ChannelEnvironment = None,
|
|
47
51
|
period_controls: Controlslike = "period",
|
|
52
|
+
markdown: str = None,
|
|
48
53
|
) -> None:
|
|
49
54
|
"""Initialize this task."""
|
|
50
55
|
|
|
51
56
|
self.name = name
|
|
57
|
+
self.set_markdown(markdown=markdown, package=PKG_NAME)
|
|
52
58
|
LoggerMixinLevelControl.__init__(self, logger=_getLogger(self.name))
|
|
53
59
|
self._task: _Optional[_asyncio.Task[None]] = None
|
|
54
60
|
|
runtimepy/util.py
CHANGED
|
@@ -2,87 +2,6 @@
|
|
|
2
2
|
A module implementing package utilities.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
# built-in
|
|
6
|
-
import logging
|
|
7
|
-
import re
|
|
8
|
-
from typing import Iterable, Iterator
|
|
9
|
-
|
|
10
|
-
# third-party
|
|
11
|
-
from vcorelib.logging import DEFAULT_TIME_FORMAT
|
|
12
|
-
from vcorelib.paths.context import PossiblePath, as_path
|
|
13
|
-
|
|
14
|
-
# Continue exporting some migrated things.
|
|
15
|
-
__all__ = [
|
|
16
|
-
"ListLogger",
|
|
17
|
-
"as_path",
|
|
18
|
-
"import_str_and_item",
|
|
19
|
-
"name_search",
|
|
20
|
-
"Identifier",
|
|
21
|
-
"PossiblePath",
|
|
22
|
-
]
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
class ListLogger(logging.Handler):
|
|
26
|
-
"""An interface facilitating sending log messages to browser tabs."""
|
|
27
|
-
|
|
28
|
-
log_messages: list[logging.LogRecord]
|
|
29
|
-
|
|
30
|
-
def drain(self) -> list[logging.LogRecord]:
|
|
31
|
-
"""Drain messages."""
|
|
32
|
-
|
|
33
|
-
result = self.log_messages
|
|
34
|
-
self.log_messages = []
|
|
35
|
-
return result
|
|
36
|
-
|
|
37
|
-
def drain_str(self) -> list[str]:
|
|
38
|
-
"""Drain formatted messages."""
|
|
39
|
-
|
|
40
|
-
return [self.format(x) for x in self.drain()]
|
|
41
|
-
|
|
42
|
-
def __bool__(self) -> bool:
|
|
43
|
-
"""Evaluate this instance as boolean."""
|
|
44
|
-
return bool(self.log_messages)
|
|
45
|
-
|
|
46
|
-
def emit(self, record: logging.LogRecord) -> None:
|
|
47
|
-
"""Send the log message."""
|
|
48
|
-
|
|
49
|
-
self.log_messages.append(record)
|
|
50
|
-
|
|
51
|
-
@staticmethod
|
|
52
|
-
def create() -> "ListLogger":
|
|
53
|
-
"""Create an instance of this handler."""
|
|
54
|
-
|
|
55
|
-
logger = ListLogger()
|
|
56
|
-
logger.log_messages = []
|
|
57
|
-
logger.setFormatter(logging.Formatter(DEFAULT_TIME_FORMAT))
|
|
58
|
-
|
|
59
|
-
return logger
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
def import_str_and_item(module_path: str) -> tuple[str, str]:
|
|
63
|
-
"""
|
|
64
|
-
Treat the last entry in a '.' delimited string as the item to import from
|
|
65
|
-
the module in the string preceding it.
|
|
66
|
-
"""
|
|
67
|
-
|
|
68
|
-
parts = module_path.split(".")
|
|
69
|
-
assert len(parts) > 1, module_path
|
|
70
|
-
|
|
71
|
-
item = parts.pop()
|
|
72
|
-
return ".".join(parts), item
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
def name_search(
|
|
76
|
-
names: Iterable[str], pattern: str, exact: bool = False
|
|
77
|
-
) -> Iterator[str]:
|
|
78
|
-
"""A simple name searching method."""
|
|
79
|
-
|
|
80
|
-
compiled = re.compile(pattern)
|
|
81
|
-
for name in names:
|
|
82
|
-
if compiled.search(name) is not None:
|
|
83
|
-
if not exact or name == pattern:
|
|
84
|
-
yield name
|
|
85
|
-
|
|
86
5
|
|
|
87
6
|
class Identifier:
|
|
88
7
|
"""A simple message indentifier interface."""
|
|
@@ -1,11 +1,11 @@
|
|
|
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
|
|
7
|
-
Author-email: Vaughn Kottler <
|
|
8
|
-
Maintainer-email: Vaughn Kottler <
|
|
7
|
+
Author-email: Vaughn Kottler <vaughn@libre-embedded.com>
|
|
8
|
+
Maintainer-email: Vaughn Kottler <vaughn@libre-embedded.com>
|
|
9
9
|
Classifier: Programming Language :: Python :: 3.11
|
|
10
10
|
Classifier: Programming Language :: Python :: 3.12
|
|
11
11
|
Classifier: Operating System :: Microsoft :: Windows
|
|
@@ -17,10 +17,11 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
17
17
|
Requires-Python: >=3.11
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
License-File: LICENSE
|
|
20
|
-
Requires-Dist: websockets
|
|
21
20
|
Requires-Dist: svgen >=0.6.8
|
|
22
|
-
Requires-Dist:
|
|
21
|
+
Requires-Dist: aiofiles
|
|
22
|
+
Requires-Dist: websockets
|
|
23
23
|
Requires-Dist: psutil
|
|
24
|
+
Requires-Dist: vcorelib >=3.4.2
|
|
24
25
|
Provides-Extra: test
|
|
25
26
|
Requires-Dist: pylint ; extra == 'test'
|
|
26
27
|
Requires-Dist: flake8 ; extra == 'test'
|
|
@@ -44,11 +45,11 @@ Requires-Dist: uvloop ; (sys_platform != "win32" and sys_platform != "cygwin") a
|
|
|
44
45
|
=====================================
|
|
45
46
|
generator=datazen
|
|
46
47
|
version=3.1.4
|
|
47
|
-
hash=
|
|
48
|
+
hash=aa59dcef7f11c767458b14ad97f9de59
|
|
48
49
|
=====================================
|
|
49
50
|
-->
|
|
50
51
|
|
|
51
|
-
# runtimepy ([5.
|
|
52
|
+
# runtimepy ([5.7.0](https://pypi.org/project/runtimepy/))
|
|
52
53
|
|
|
53
54
|
[](https://pypi.org/project/runtimepy/)
|
|
54
55
|

|
|
@@ -1,13 +1,13 @@
|
|
|
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
|
-
runtimepy/mapping.py,sha256=
|
|
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
|
-
runtimepy/util.py,sha256=
|
|
10
|
+
runtimepy/util.py,sha256=q1Spqt8AiG8_64COh1fU5cUKl-cZhp8BK1CHw_IOya0,399
|
|
11
11
|
runtimepy/channel/__init__.py,sha256=pf0RJ5g37_FVV8xoUNgzFGuIfbZEYSBA_cQlJSDTPDo,4774
|
|
12
12
|
runtimepy/channel/registry.py,sha256=nk36qM_Bf6qK6AFR0plaZHR1PU7b4LZqbQ0feJqk4lc,4784
|
|
13
13
|
runtimepy/channel/environment/__init__.py,sha256=0Jj8g7Y4bdDvmWtzpegB9D4milGPhsZokoYxmps5zgU,1612
|
|
@@ -16,8 +16,8 @@ runtimepy/channel/environment/base.py,sha256=tpD_6OHJv1bpfXmfFCNckoNo8ATOOi-XX66
|
|
|
16
16
|
runtimepy/channel/environment/create.py,sha256=DHjoNmzZsARjfB_CfutXQ1PDdxPETi6yQoRMhM0FbwA,5319
|
|
17
17
|
runtimepy/channel/environment/file.py,sha256=PV05KZ3-CvftbKUM8acQmawOMeGGCcMrEESEBuymykg,6949
|
|
18
18
|
runtimepy/channel/environment/sample.py,sha256=Geinp2Q_qYkzYKpUJroepv6A4JWypUnAPl57jn_r_R4,4976
|
|
19
|
-
runtimepy/channel/environment/telemetry.py,sha256=
|
|
20
|
-
runtimepy/channel/environment/command/__init__.py,sha256=
|
|
19
|
+
runtimepy/channel/environment/telemetry.py,sha256=tw7SLfWHTwCT8hXBzsIVvj546MDsVAtiqDgLZXhCKJ4,5356
|
|
20
|
+
runtimepy/channel/environment/command/__init__.py,sha256=mymqk5roA-7evUovXlD2dmWaprSzrPb_3ae6bA9oEZ0,8162
|
|
21
21
|
runtimepy/channel/environment/command/parser.py,sha256=cMOsEsXnfFlATiWTNSxlgvc_XoICsJlcZigFJlQ47tk,1804
|
|
22
22
|
runtimepy/channel/environment/command/processor.py,sha256=NiiWRdwBHOFEisjqNOW5oawprxcpR25ONNABoZpELdg,7122
|
|
23
23
|
runtimepy/channel/environment/command/result.py,sha256=Ko5lK4d04Z266WuCi2sHQItbUHJFYv7qUdrDi-OVKOU,624
|
|
@@ -42,7 +42,7 @@ runtimepy/control/source.py,sha256=nW3Q2D-LcekII7K5XKbxXCcR-9jYQyvv0UypeNy1Dnw,1
|
|
|
42
42
|
runtimepy/control/step.py,sha256=2LdZTpMHLwHLdpPVinpC2qByTs5I5LTDt-xONn_6Fc8,5491
|
|
43
43
|
runtimepy/control/env/__init__.py,sha256=RHJqysY7Pv4VDs2SGk0X-qc5xp_SrQ_oxb5Deug8HEM,1339
|
|
44
44
|
runtimepy/data/browser.yaml,sha256=oc5KEV1C1uAJ4MkhNo4hyVVfJtZvHelRNqzNvD313Ow,79
|
|
45
|
-
runtimepy/data/dummy_load.yaml,sha256=
|
|
45
|
+
runtimepy/data/dummy_load.yaml,sha256=89BPHLaHJOgiiZSVACBA0_xmlN_N6v2fpcCauB03ZkE,1830
|
|
46
46
|
runtimepy/data/factories.yaml,sha256=Jm0QPwW2BQgnj1fIFQwygsWXzT78QJuf7auVRtRzWKQ,1847
|
|
47
47
|
runtimepy/data/favicon.ico,sha256=jgGIqM4gTrqPs3I6wajqKUH6Je885zy-jI7eU-Nl3AA,362870
|
|
48
48
|
runtimepy/data/sample_telemetry.yaml,sha256=OpdFurkvtWJGaNl9LMlU2rKo15AaVVr-U_hoZfsbp-Y,695
|
|
@@ -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,28 +74,34 @@ 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
|
|
81
81
|
runtimepy/data/js/third-party/webgl-debug.js,sha256=AtuSr5qje8a37S2ZE-ztA01QuGlGj9bGl-ntjlaqJIo,36878
|
|
82
82
|
runtimepy/data/js/unused/pyodide.js,sha256=tcfj4XcYdhJSwFdHOQYpIHu0_2fGwkpWp4ZFyIRmmrc,864
|
|
83
|
+
runtimepy/data/md/Connection.md,sha256=gh0KIQObDOYEf_DNxLcb8U3ngjTYtmsgOhvz_O7QYpY,32
|
|
84
|
+
runtimepy/data/md/PeriodicTask.md,sha256=86JR4cgUjhFU3pnUXvKIETVEtmskYtQ_Ip-v2_10G0Y,35
|
|
85
|
+
runtimepy/data/md/RuntimeStruct.md,sha256=-hci789w_x098IxoSv0-euP8GQ2B1CF-hxPuRpljEng,39
|
|
86
|
+
runtimepy/data/md/RuntimepyPeer.md,sha256=ayjL1V5KXRBEixG0vfxIajY2Dt_H5SYaZGSscXHSL4E,34
|
|
87
|
+
runtimepy/data/md/SinusoidTask.md,sha256=nTGmZXFv-r9d-ZgmmIHr6SKSp-K-nzJW-B6NKhg7FQ8,739
|
|
83
88
|
runtimepy/data/schemas/BitFields.yaml,sha256=7tSjEQNo_j458EN16AgIaC5eh0iEXCj9EbVTVc-EkB8,926
|
|
84
89
|
runtimepy/data/schemas/Channel.yaml,sha256=9OQ3mOtPOlcWugvObpWKoAdFW0WvR9mSEzfdDYNf3fc,471
|
|
85
90
|
runtimepy/data/schemas/ChannelCommand.yaml,sha256=h7-n5WjNwWgteZ8U5YpaBRncR_Uiqaa_wVfuTWQFrTY,257
|
|
86
91
|
runtimepy/data/schemas/ChannelRegistry.yaml,sha256=f51YngVC8zDM3HwRMicKBOyoqjJ9EWsx3GWD0EkHCZk,136
|
|
87
|
-
runtimepy/data/schemas/ClientConnectionConfig.yaml,sha256=
|
|
92
|
+
runtimepy/data/schemas/ClientConnectionConfig.yaml,sha256=XUWkOiCOw175harOsDRV3TXJja-EAKnipYDQFf_XC4Q,187
|
|
88
93
|
runtimepy/data/schemas/ConnectionArbiterConfig.yaml,sha256=WorY7ttxvQA78TYuFoNHw41hc9johxvgO72dusfLSqE,2133
|
|
89
94
|
runtimepy/data/schemas/EnumRegistry.yaml,sha256=BfLzEEUsHj6Fg_0JyGmgbNJ7F-auuLs5tAhJjSc86uU,145
|
|
90
95
|
runtimepy/data/schemas/FindFile.yaml,sha256=dSPCDQy4FQZLMgOjtbR0-o2sZECvN_tvGa3LXNd1-wc,934
|
|
91
|
-
runtimepy/data/schemas/PeerProcessConfig.yaml,sha256
|
|
96
|
+
runtimepy/data/schemas/PeerProcessConfig.yaml,sha256=_YhfZ2pHCSKqcZqz8-sQAVrwPzFwfb5toWN893yNqPA,157
|
|
92
97
|
runtimepy/data/schemas/RuntimeEnum.yaml,sha256=dN5bl-lOB3JON02aP1fdwAEP7BhadG1wo_oX6rn5d80,430
|
|
93
98
|
runtimepy/data/schemas/ServerConnectionConfig.yaml,sha256=IqQUQB09xte4zGmM6Qi0-LTm5McDkoi2tehYspoNUXM,100
|
|
94
99
|
runtimepy/data/schemas/StructConfig.yaml,sha256=3ifuvRIVzS4AzYu0c9k6TdmLs0PG5y8u25aRphTrxg0,73
|
|
95
|
-
runtimepy/data/schemas/TaskConfig.yaml,sha256=
|
|
100
|
+
runtimepy/data/schemas/TaskConfig.yaml,sha256=iE2RBKsn6TrK6UXFGBlWpsrUl0TeRzwlymJ06SUfNKw,227
|
|
96
101
|
runtimepy/data/schemas/channel_controls.yaml,sha256=pctqV_fVjRpiKdaPqET7yyoGVYQuUtOYc1FLQUdfVJc,546
|
|
97
102
|
runtimepy/data/schemas/has_config.yaml,sha256=SMuJ9tNWw06tsgDasz4myO9SSmMZGep9xBfJ89GJnqA,80
|
|
98
103
|
runtimepy/data/schemas/has_factory.yaml,sha256=Rsqrxv3HEBUGxPcW6CN7QczA96iBSgtm0gQNsu2P8LM,106
|
|
104
|
+
runtimepy/data/schemas/has_markdown.yaml,sha256=LbnEQRYdk5KR_GgORmIOiKjRg-HF8wjhA6Dm6pSm66I,45
|
|
99
105
|
runtimepy/data/schemas/has_name.yaml,sha256=I5YkXxQRYz-1-49CLyr_NA2zVqyRVQCAsb-icTaxF4s,59
|
|
100
106
|
runtimepy/data/schemas/has_request_flag.yaml,sha256=S8ly8g-FkrCVNEizbXPqicg_hpGvtH7WRsHZAA4uhjc,66
|
|
101
107
|
runtimepy/enum/__init__.py,sha256=WIBMOaogauR1u7mK-I4Z5BZUoWANU7alIlrz82QdCmY,5820
|
|
@@ -103,7 +109,7 @@ runtimepy/enum/registry.py,sha256=EU7oUejI60kzrhdtzgWpnFYP8h4CFLy_fxvGTwq1Uvc,26
|
|
|
103
109
|
runtimepy/enum/types.py,sha256=uQYGvaAJVm5tUdwxn_SLHkTZHJpEf7364rTSL27necA,1027
|
|
104
110
|
runtimepy/message/__init__.py,sha256=nF9yU9SV0PxZyHt12oh6o_ENR374x1Yn72UambecGlY,2668
|
|
105
111
|
runtimepy/message/handlers.py,sha256=He9NC7MCkaV2clKc8dTSZ_T8N2l3ATjaTFzBr9n1T34,3775
|
|
106
|
-
runtimepy/message/interface.py,sha256=
|
|
112
|
+
runtimepy/message/interface.py,sha256=vg25Uhp7wrDFH6v2iRKUBwnCBpjc3JAFjwdu3KArrLo,11285
|
|
107
113
|
runtimepy/message/types.py,sha256=vajDWKW32LjzsfH-eVCCxZTWVctj4_-tjanhnmCqUis,821
|
|
108
114
|
runtimepy/metrics/__init__.py,sha256=NyCcB3uJi4_tGMO-ws3CPRA2fph2t15BcW_tfeV9fmc,357
|
|
109
115
|
runtimepy/metrics/channel.py,sha256=YhALSMCPHESkYChzzE6dNAxKX-2bPqVe02E_qeyyt5E,2526
|
|
@@ -112,15 +118,15 @@ runtimepy/metrics/task.py,sha256=g6CttQ3SS217DJRBFnj-rDUq6uauZdMOcTOjHgSEfWo,191
|
|
|
112
118
|
runtimepy/mixins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
113
119
|
runtimepy/mixins/async_command.py,sha256=xZNTiRo_Kd_aJboLuFOkQyMo2Exn8ENyY483zdwrxx0,1991
|
|
114
120
|
runtimepy/mixins/enum.py,sha256=IRQR7HD8J0uoxahNqb-2LIVokFn1L2-v9I5HNFw9W3s,719
|
|
115
|
-
runtimepy/mixins/environment.py,sha256=
|
|
121
|
+
runtimepy/mixins/environment.py,sha256=9dCy7nL1bwZY1p-ez8zy9Jf_6zhljSESnK9F9wtRdl8,3955
|
|
116
122
|
runtimepy/mixins/finalize.py,sha256=pTziopAWXpyRy0I8UZZv8Q4abXvnH3RrQ_dt3Rh6xlA,1600
|
|
117
|
-
runtimepy/mixins/logging.py,sha256=
|
|
123
|
+
runtimepy/mixins/logging.py,sha256=BS1TQTNED-e1rsexhuT2kubP_44MwpiiTSqCgzw56mQ,2991
|
|
118
124
|
runtimepy/mixins/psutil.py,sha256=RlaEuyQ0-TynQxYW85vFuPiQ-29T2mIrsdaDlpSJq1s,1293
|
|
119
125
|
runtimepy/mixins/regex.py,sha256=kpCj4iL1akzt_KPPiMP-bTbuLBHOpkUrwbCTRe8HSUk,1061
|
|
120
126
|
runtimepy/mixins/trig.py,sha256=vkDd9Rh8080gvH5OHkSYmjImVgM_ZZ7RzMxsczKx5N4,2480
|
|
121
127
|
runtimepy/net/__init__.py,sha256=leveti9T8P1WAg3M5N7yT_JrUZRCXwZQ8mRsxel-KP4,830
|
|
122
128
|
runtimepy/net/backoff.py,sha256=IVloxQd-gEK62gFAlU2aOwgTEXhsNUTBfS16eiOqKG8,1080
|
|
123
|
-
runtimepy/net/connection.py,sha256=
|
|
129
|
+
runtimepy/net/connection.py,sha256=rTzF4dUcZHryx0PUOMcp0IOeQyxWYNfGvsN18kKlIEg,12861
|
|
124
130
|
runtimepy/net/manager.py,sha256=-M-ZSB9izay6HK1ytTayAYnSHYAz34dcwxaiNhC4lWg,4264
|
|
125
131
|
runtimepy/net/mixin.py,sha256=5UlFK4lRrJ2O0nEUuScGbkYd4-El-RruFt_UcQR0aic,3039
|
|
126
132
|
runtimepy/net/mtu.py,sha256=XnLXAFMsDxK1Lj5v_zgWaBrC3lNqf81DkbDc6hpMdmI,3495
|
|
@@ -128,85 +134,85 @@ runtimepy/net/ssl.py,sha256=dj9uECPKDT5k-5vlR5I3Z7Go3WWZhbaJ9nb0rC3kJvg,854
|
|
|
128
134
|
runtimepy/net/util.py,sha256=P6WnH4n8JJkEfKwepk1eP4lGPxWjqcFv0yL3N0mvtrw,5897
|
|
129
135
|
runtimepy/net/apps/__init__.py,sha256=vjo7e19QXtJwe6V6B-QGvYiJveYobnYIfpkKZrnS17w,710
|
|
130
136
|
runtimepy/net/arbiter/__init__.py,sha256=ptKF995rYKvkm4Mya92vA5QEDqcFq5NRD0IYGqZ6_do,740
|
|
131
|
-
runtimepy/net/arbiter/base.py,sha256=
|
|
137
|
+
runtimepy/net/arbiter/base.py,sha256=w5IFDRU1Zfw7sfg0eS8hj7_Ip6bHHYQ4S212Ic-Kj-c,14817
|
|
132
138
|
runtimepy/net/arbiter/info.py,sha256=zipdr928xN32Dt5Wl_FbCCAf7XOlT0GGNHiv4DoI-94,9216
|
|
133
139
|
runtimepy/net/arbiter/result.py,sha256=PHZo5qj4SI08ZeWPFk_8OZ1umI6L0dp5nJpjjS8QUpM,2871
|
|
134
140
|
runtimepy/net/arbiter/task.py,sha256=APcc5QioAG8uueIzxJU-vktIn8Ys3yJd_CFlRWb6Ieo,795
|
|
135
141
|
runtimepy/net/arbiter/udp.py,sha256=-ecHJs-utcsiTfr5wSb73hUUuYFBeRVT_D1znYp5q6A,893
|
|
136
142
|
runtimepy/net/arbiter/websocket.py,sha256=vYTDA7sXMUTTqW3i1zTWUdaxGKxfrQcQoVSYZtmCvfQ,1524
|
|
137
|
-
runtimepy/net/arbiter/config/__init__.py,sha256=
|
|
143
|
+
runtimepy/net/arbiter/config/__init__.py,sha256=uQ7EkeMBknKyZg95n_W31qypBkOxrUeYKSF8hugRXPQ,8432
|
|
138
144
|
runtimepy/net/arbiter/config/codec.py,sha256=TQj8UXEb1EvhiCqRdyq5BkeubMytEZAs9B4E5ZYsEuY,2511
|
|
139
145
|
runtimepy/net/arbiter/config/util.py,sha256=MezLSil5mEwioI5kxDOZa9y118st1_t0El8DYH6hFU8,1254
|
|
140
146
|
runtimepy/net/arbiter/factory/__init__.py,sha256=jC1szUYucH4Us3jbb0mhFgnklHlorya5DYGGw2pqfe4,334
|
|
141
147
|
runtimepy/net/arbiter/factory/connection.py,sha256=uSwnvIWGJcDd2ReK-s9lBx-NcRQ1JH_7VbwkWjE_8zA,3690
|
|
142
148
|
runtimepy/net/arbiter/factory/task.py,sha256=YLRv55dnDBqHRJIMYgO9_uHi0AW-8hwa0n3wHAKyncE,1959
|
|
143
149
|
runtimepy/net/arbiter/housekeeping/__init__.py,sha256=80vzksjCq1r9Kx25YeOKTJu2Ek98YWvEEgrsC8qzwJM,3469
|
|
144
|
-
runtimepy/net/arbiter/imports/__init__.py,sha256=
|
|
145
|
-
runtimepy/net/arbiter/imports/util.py,sha256=
|
|
150
|
+
runtimepy/net/arbiter/imports/__init__.py,sha256=W7-kkM4B_zDU42Fyh0PmZL56JslS_0_qzvpzUhN6aDU,5041
|
|
151
|
+
runtimepy/net/arbiter/imports/util.py,sha256=d4_HnWphrkiHQkyYr8YJKvSSTXoMf3Bct_7jg_CS9eA,1086
|
|
146
152
|
runtimepy/net/arbiter/struct/__init__.py,sha256=Vr38dp2X0PZOrAbjKsZ9xZdQ1j3z92s4QuvRtYYVuNI,5990
|
|
147
153
|
runtimepy/net/arbiter/tcp/__init__.py,sha256=djNm8il_9aLNpGsYResJlFmyIqx9XNLqVay-mYnn8vc,1530
|
|
148
154
|
runtimepy/net/arbiter/tcp/json.py,sha256=W9a_OwBPmIoB2XZf4iuAIWQhMg2qA9xejBhGBdNCPnI,742
|
|
149
155
|
runtimepy/net/factories/__init__.py,sha256=rPdBVpgzzQYF61w6efQrEre71yMPHd6kanBpMdOX-3c,4672
|
|
150
156
|
runtimepy/net/http/__init__.py,sha256=4TjFp_ajAVcOEvwtjlF6mG-9EbEePqFZht-QpWIKVBo,1802
|
|
151
|
-
runtimepy/net/http/common.py,sha256=
|
|
152
|
-
runtimepy/net/http/header.py,sha256=
|
|
157
|
+
runtimepy/net/http/common.py,sha256=vpoO6XwRmrZmTkCu9bkI0HnyaD8MWTpV7ADesCNrfRE,2237
|
|
158
|
+
runtimepy/net/http/header.py,sha256=AECSdvhBA9_5Pg3UdwMzsmBpcqgsiPj41xnIGPm5g5E,2296
|
|
153
159
|
runtimepy/net/http/request_target.py,sha256=EE1aI5VSARw1h93jyZvP56ir5O5fjd6orYK-1FM4JNk,1550
|
|
154
|
-
runtimepy/net/http/response.py,sha256=
|
|
160
|
+
runtimepy/net/http/response.py,sha256=Sup8W_A0ADNzR5olKrQsVNhsQXUwPOD-eJLlLOgYlAY,2316
|
|
155
161
|
runtimepy/net/http/state.py,sha256=qCMN8aWfCRfU9XP-cIhSOo2RqfljTjbQRCflfcy2bfY,1626
|
|
156
162
|
runtimepy/net/http/version.py,sha256=mp6rgIM7-VUVKLCA0Uw96CmBkL0ET860lDVVEewpZ7w,1098
|
|
157
163
|
runtimepy/net/server/__init__.py,sha256=J8gl91YltD8Wo2y_AXxaL6liLu3vomfzUz_nULa3e2Y,6707
|
|
158
164
|
runtimepy/net/server/html.py,sha256=xaTGelH4zrwndQjU24kbCj9Yqu-D17nK5682P6xa-cU,1153
|
|
159
165
|
runtimepy/net/server/json.py,sha256=RfNt7Gr4-X5DMinV1UeiWneTIJr0LO6BXo2GzE0C1PQ,2475
|
|
160
|
-
runtimepy/net/server/app/__init__.py,sha256=
|
|
166
|
+
runtimepy/net/server/app/__init__.py,sha256=9gJr7qcrJNQacAOFpZLfpnzDHzx5KXBMNxPlqQsdwB8,2790
|
|
161
167
|
runtimepy/net/server/app/base.py,sha256=1KMEWCwDf3cducIbt9geTmMwugAMKl1Io2sBr6qajo4,2082
|
|
162
168
|
runtimepy/net/server/app/create.py,sha256=N-g3kClBsG4pKOd9tx947rOq4sfgrH_FAMVfZacjhFA,2666
|
|
163
169
|
runtimepy/net/server/app/elements.py,sha256=KJt9vWqkfvniJMiLOJN467JjPPrEqJYZXmDuY1JoY1g,455
|
|
164
170
|
runtimepy/net/server/app/files.py,sha256=cIHtIKqaVvOpKL62LSVV1IRPdUyCRCg0TOX9XXmYtqk,2903
|
|
165
171
|
runtimepy/net/server/app/landing_page.py,sha256=axHGBeFpjn5PF87Yb-n73me4T9b8pQxBq4zlvX5CjmE,663
|
|
166
|
-
runtimepy/net/server/app/placeholder.py,sha256=
|
|
172
|
+
runtimepy/net/server/app/placeholder.py,sha256=BDoLtS6dSeLUKnUZe3z17pb5QuXH4C69RqoIpEc3BIY,1676
|
|
167
173
|
runtimepy/net/server/app/pyodide.py,sha256=dGJ4u78eYQLU9RQbZEWgzv-7jVIwblS6VopibG82tA4,478
|
|
168
|
-
runtimepy/net/server/app/sound.py,sha256=
|
|
174
|
+
runtimepy/net/server/app/sound.py,sha256=AeJoa6XKNH3TYvH6OuAwyfJ5CyFJJwCF0zeCMIpLZAE,843
|
|
169
175
|
runtimepy/net/server/app/tab.py,sha256=4jhw71LfA23wT9m9e5ofw-tBXYW6xky4tGwBOlGkOz8,2296
|
|
170
176
|
runtimepy/net/server/app/bootstrap/__init__.py,sha256=ONhwx68piWjsrf88FMpda84TWSPqgi-RZCBuWCci_ak,1444
|
|
171
|
-
runtimepy/net/server/app/bootstrap/elements.py,sha256=
|
|
172
|
-
runtimepy/net/server/app/bootstrap/tabs.py,sha256=
|
|
173
|
-
runtimepy/net/server/app/env/__init__.py,sha256=
|
|
174
|
-
runtimepy/net/server/app/env/modal.py,sha256=
|
|
175
|
-
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
|
|
176
182
|
runtimepy/net/server/app/env/widgets.py,sha256=_kNvPl7MXnZOiwTjoZiU2hfuSjkLnRUrORTVDi3w7Ls,5312
|
|
177
183
|
runtimepy/net/server/app/env/tab/__init__.py,sha256=stTVKyHljLQWnnhxkWPwa7bLdZtjhiMFbiVFgbiYaFI,647
|
|
178
|
-
runtimepy/net/server/app/env/tab/base.py,sha256=
|
|
184
|
+
runtimepy/net/server/app/env/tab/base.py,sha256=hcHKG17JGkAZjl2X7jT1B72RHTeMdocTakFyNKkmWJc,1168
|
|
179
185
|
runtimepy/net/server/app/env/tab/controls.py,sha256=hsj0ErywfmOBtJLNZbMISrE2ELJEfyXvtCtpsDbXlYg,4734
|
|
180
|
-
runtimepy/net/server/app/env/tab/html.py,sha256=
|
|
186
|
+
runtimepy/net/server/app/env/tab/html.py,sha256=lF7W9zwxgQa-EPWi49lcM0gNVrlXcGjjUjdFyt_BtMQ,7099
|
|
181
187
|
runtimepy/net/server/app/env/tab/message.py,sha256=OWqBIPRt6UdBHAXk5qvFMbnWuvIRUyp34lzb3GYdthk,4070
|
|
182
|
-
runtimepy/net/server/struct/__init__.py,sha256=
|
|
188
|
+
runtimepy/net/server/struct/__init__.py,sha256=Zy37r6RLFu-XFr9vsanSq80BJdS6Dxr7zmPzQbb7xdw,1799
|
|
183
189
|
runtimepy/net/server/websocket/__init__.py,sha256=KISuFUUQwNn6BXo8BOMuMOXyoVqE7Jw94ZQiSCQuRQE,5279
|
|
184
|
-
runtimepy/net/server/websocket/state.py,sha256=
|
|
190
|
+
runtimepy/net/server/websocket/state.py,sha256=4Onb3adxY9w2LoZRRBoyxSWHNcDGYAJtK7TyIFbt_ho,1792
|
|
185
191
|
runtimepy/net/stream/__init__.py,sha256=1PNossiE4S9wtPYoiHVsTeAMJFGtiak5vbsoIkVGfZs,2374
|
|
186
192
|
runtimepy/net/stream/base.py,sha256=Dg4vcR0n9y2122AyJ-9W-jkEhNla_EHO-DqJJPfGD4k,1977
|
|
187
193
|
runtimepy/net/stream/string.py,sha256=61mgserU3p6j5gAcK0oe0aKqL6vDh7NtgJvbPoiAUPM,784
|
|
188
194
|
runtimepy/net/stream/json/__init__.py,sha256=h--C_9moW92TC_e097FRRXcg8GJ6VVbMLXl1cICknys,2508
|
|
189
195
|
runtimepy/net/tcp/__init__.py,sha256=OOWohegpoioSTf8M7uDf-4EV1IDungz7-U19L_2yW4I,250
|
|
190
|
-
runtimepy/net/tcp/connection.py,sha256=
|
|
196
|
+
runtimepy/net/tcp/connection.py,sha256=0FN606SQ_wTb8hQuk17-TQ5iYTkWWcNfkDsUS3SA1fc,8743
|
|
191
197
|
runtimepy/net/tcp/create.py,sha256=zZsRs5KYpO3bNGh-DwEOEzjUDE4ixj-UBHYgZ0GvC7c,2013
|
|
192
198
|
runtimepy/net/tcp/protocol.py,sha256=vEnIX3gUX2nrw9ofT_e4KYU4VY2k4WP0WuOi4eE_OOQ,1444
|
|
193
|
-
runtimepy/net/tcp/http/__init__.py,sha256=
|
|
199
|
+
runtimepy/net/tcp/http/__init__.py,sha256=BY9ra0s7kHkoUQKIRHsnk3_WDWP7Xt-FxQ90K14nwkc,5737
|
|
194
200
|
runtimepy/net/tcp/scpi/__init__.py,sha256=aWCWQfdeyfoU9bpOnOtyIQbT1swl4ergXLFn5kXAH28,2105
|
|
195
201
|
runtimepy/net/tcp/telnet/__init__.py,sha256=96eJFb301I3H2ivDtGMQtDDw09Xm5NRvM9VEC-wjt8c,4768
|
|
196
202
|
runtimepy/net/tcp/telnet/codes.py,sha256=1-yyRe-Kz_W7d6B0P3iT1AaSNR3_Twmn-MUjKCJJknY,3518
|
|
197
203
|
runtimepy/net/tcp/telnet/np_05b.py,sha256=ikp9txHBvbRps6x7C1FsEf9i6vmUtGvei4Nukc_gypI,7887
|
|
198
204
|
runtimepy/net/udp/__init__.py,sha256=VSgle6cO2RXfwaei66wMIJ4zSB4gzpoadSSbmLfCzBw,357
|
|
199
|
-
runtimepy/net/udp/connection.py,sha256=
|
|
205
|
+
runtimepy/net/udp/connection.py,sha256=Hv963vT9tnglpZOx4KUFuoYTBPr2rltYQWDNV3mhYpE,8018
|
|
200
206
|
runtimepy/net/udp/create.py,sha256=84YDfJbNBlN0ZwbNpvh6Dl7ZPecbZfmpjMNRRWcvJDk,2005
|
|
201
207
|
runtimepy/net/udp/protocol.py,sha256=A4SRHf0CgcL2zDs1nAsGDqz0RxKBy1soS8wtNdS5S0I,1492
|
|
202
208
|
runtimepy/net/udp/queue.py,sha256=DF-YscxQcGbGCYQLz_l_BMaSRfraZOhRwieTEdXLMds,637
|
|
203
|
-
runtimepy/net/udp/tftp/__init__.py,sha256=
|
|
209
|
+
runtimepy/net/udp/tftp/__init__.py,sha256=zDVUga9ZApSnvx8UwlmVUY4SDFrAHafcD9oe5Q7fGOw,9012
|
|
204
210
|
runtimepy/net/udp/tftp/base.py,sha256=vpvjitZSD8R4Ggb21eIMNIsm54VkLBbBrTgMo65gn2o,11331
|
|
205
211
|
runtimepy/net/udp/tftp/endpoint.py,sha256=so60LdPTG66N5tdhHhiX7j_TBHvNOTi4JIgLcg2MAm0,10890
|
|
206
212
|
runtimepy/net/udp/tftp/enums.py,sha256=06juMd__pJZsyL8zO8p3hRucnOratt1qtz9zcxzMg4s,1579
|
|
207
213
|
runtimepy/net/udp/tftp/io.py,sha256=w6cnUt-T-Ma6Vg8BWoRbsNnIWUv0HTY4am6bcLWxNJs,803
|
|
208
214
|
runtimepy/net/websocket/__init__.py,sha256=YjSmoxiigmsI_hcQw6nueX7bxhrRGerEERnPvgLVEVA,313
|
|
209
|
-
runtimepy/net/websocket/connection.py,sha256=
|
|
215
|
+
runtimepy/net/websocket/connection.py,sha256=c1p6UvWraxd4hrsO5NG5_n1jcG57BoiqWiJbhGguQeU,9134
|
|
210
216
|
runtimepy/noise/__init__.py,sha256=EJM7h3t_z74wwrn6FAFQwYE2yUcOZQ1K1IQqOb8Z0AI,384
|
|
211
217
|
runtimepy/primitives/__init__.py,sha256=nwWJH1e0KN2NsVwQ3wvRtUpl9s9Ap8Q32NNZLGol0wU,2323
|
|
212
218
|
runtimepy/primitives/base.py,sha256=BaGPUTeVMnLnTPcpjqnS2lzPN74Pe5C0XaQdgrTfW7A,9185
|
|
@@ -240,10 +246,10 @@ runtimepy/registry/name.py,sha256=uhxmijwUT7x59NUYV4hJSe7VcnAbLDUSAPaKhR6K-N0,17
|
|
|
240
246
|
runtimepy/sample/__init__.py,sha256=N7P6hnCLF9NwnkZA1h3LzS2C334SAO48Fu8adHxWGLU,56
|
|
241
247
|
runtimepy/sample/peer.py,sha256=eZJ3gmvGsXoRTIyJ_OS71T5C1kjysbvd-yF5xZxedLU,1621
|
|
242
248
|
runtimepy/sample/program.py,sha256=wL61OzdUYrHw3Lwbd_eeBDARhS7kEzdifGOFgXvvnAw,2332
|
|
243
|
-
runtimepy/struct/__init__.py,sha256=
|
|
249
|
+
runtimepy/struct/__init__.py,sha256=B8sb-fEXX_rpJ8ssVuZiZPmnmxKdY1DY6I_mrGm578c,1491
|
|
244
250
|
runtimepy/subprocess/__init__.py,sha256=VAiFrYFCU5ETDVoWLOVlrrSsx2d1_atYXUfXYc_OQ9g,4059
|
|
245
|
-
runtimepy/subprocess/interface.py,sha256=
|
|
246
|
-
runtimepy/subprocess/peer.py,sha256=
|
|
251
|
+
runtimepy/subprocess/interface.py,sha256=rYvM8bgoT4DoXGhdidhfmivzrjmEoW6788DjGyAdJ7A,8032
|
|
252
|
+
runtimepy/subprocess/peer.py,sha256=oYw9a0yKAPR18Z6Qt24wYWrcX6EizeQE64htL11WVjM,7593
|
|
247
253
|
runtimepy/subprocess/program.py,sha256=UCKBvmIc4JBitWju396TA8Kxdtmko50jQ3ZPKNkBjFk,6792
|
|
248
254
|
runtimepy/subprocess/protocol.py,sha256=LYApfKZ0bXSj6gGqLdNfwsIjxWyrdVUK0Jz_qc33ik4,3074
|
|
249
255
|
runtimepy/task/__init__.py,sha256=euLIxCl1wve-4Nr2DUms8XrWT3liUV-ihQiQlZ21nqI,348
|
|
@@ -251,7 +257,7 @@ runtimepy/task/asynchronous.py,sha256=w4oEUCyj-X-zDVFmlsAtRL1gv66ahQ78QKE0GmLGT1
|
|
|
251
257
|
runtimepy/task/sample.py,sha256=_nbLj5Julwa1NJC_-WQsotI0890G-TlOWftVHEKiclY,2735
|
|
252
258
|
runtimepy/task/basic/__init__.py,sha256=NryfG-JmSyqYh-TNG4NLO6-9RJFVq5vn1Z-oV3qTVvg,243
|
|
253
259
|
runtimepy/task/basic/manager.py,sha256=2P_swKZlFfPHCmX6sMVGSYePWEZOqXp9B4YPyRYSGCo,1858
|
|
254
|
-
runtimepy/task/basic/periodic.py,sha256=
|
|
260
|
+
runtimepy/task/basic/periodic.py,sha256=6tOaWSvF5lqdNpz8Csb4a51XyvSc5yzurqkk0eW1ERQ,6823
|
|
255
261
|
runtimepy/task/trig/__init__.py,sha256=GuGNb9eLuFEnl3nAI7Mi_eS5mqJ4MOhEy2Wfv48RFic,785
|
|
256
262
|
runtimepy/telemetry/__init__.py,sha256=G_JLZsp0EZMGaxSQ12fYgbG2kN4QkvVG4lExV_TzEhM,268
|
|
257
263
|
runtimepy/telemetry/sample.py,sha256=1weoGSH-yGg-fOaLysZAsO3dSTM6yAXX3XdulAiqi3s,3216
|
|
@@ -263,9 +269,9 @@ runtimepy/tui/task.py,sha256=nUZo9fuOC-k1Wpqdzkv9v1tQirCI28fZVgcC13Ijvus,1093
|
|
|
263
269
|
runtimepy/tui/channels/__init__.py,sha256=evDaiIn-YS9uGhdo8ZGtP9VK1ek6sr_P1nJ9JuSET0o,4536
|
|
264
270
|
runtimepy/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
265
271
|
runtimepy/ui/controls.py,sha256=yvT7h3thbYaitsakcIAJ90EwKzJ4b-jnc6p3UuVf_XE,1241
|
|
266
|
-
runtimepy-5.
|
|
267
|
-
runtimepy-5.
|
|
268
|
-
runtimepy-5.
|
|
269
|
-
runtimepy-5.
|
|
270
|
-
runtimepy-5.
|
|
271
|
-
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
|