runtimepy 5.14.2__py3-none-any.whl → 5.15.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/__init__.py +1 -4
- runtimepy/channel/environment/__init__.py +93 -2
- runtimepy/channel/environment/create.py +16 -1
- runtimepy/channel/environment/sample.py +10 -2
- runtimepy/channel/registry.py +2 -3
- runtimepy/codec/protocol/base.py +34 -14
- runtimepy/codec/protocol/json.py +5 -3
- runtimepy/codec/system/__init__.py +6 -2
- runtimepy/control/source.py +1 -1
- runtimepy/data/404.md +16 -0
- runtimepy/data/base.yaml +3 -0
- runtimepy/data/css/bootstrap_extra.css +59 -44
- runtimepy/data/css/main.css +23 -4
- runtimepy/data/dummy_load.yaml +2 -2
- runtimepy/data/factories.yaml +1 -0
- runtimepy/data/js/classes/App.js +54 -2
- runtimepy/data/js/classes/ChannelTable.js +6 -8
- runtimepy/data/js/classes/Plot.js +9 -4
- runtimepy/data/js/classes/TabFilter.js +47 -9
- runtimepy/data/js/classes/TabInterface.js +106 -11
- runtimepy/data/js/classes/WindowHashManager.js +30 -15
- runtimepy/data/js/init.js +18 -1
- runtimepy/data/js/markdown_page.js +10 -0
- runtimepy/data/schemas/BitFields.yaml +9 -0
- runtimepy/data/schemas/RuntimeEnum.yaml +6 -0
- runtimepy/data/schemas/StructConfig.yaml +9 -1
- runtimepy/data/static/css/bootstrap-icons.min.css +4 -3
- runtimepy/data/static/css/bootstrap.min.css +3 -4
- runtimepy/data/static/css/fonts/bootstrap-icons.woff +0 -0
- runtimepy/data/static/css/fonts/bootstrap-icons.woff2 +0 -0
- runtimepy/data/static/js/bootstrap.bundle.min.js +5 -4
- runtimepy/data/static/js/webglplot.umd.min.js +2 -1
- runtimepy/data/static/svg/outline-dark.svg +22 -0
- runtimepy/data/static/svg/outline-light.svg +22 -0
- runtimepy/enum/__init__.py +13 -1
- runtimepy/enum/registry.py +13 -1
- runtimepy/message/__init__.py +3 -3
- runtimepy/mixins/logging.py +6 -1
- runtimepy/net/__init__.py +0 -2
- runtimepy/net/arbiter/info.py +36 -4
- runtimepy/net/arbiter/struct/__init__.py +3 -2
- runtimepy/net/connection.py +4 -5
- runtimepy/net/html/__init__.py +29 -11
- runtimepy/net/html/bootstrap/__init__.py +2 -2
- runtimepy/net/html/bootstrap/elements.py +44 -24
- runtimepy/net/html/bootstrap/tabs.py +18 -11
- runtimepy/net/http/__init__.py +3 -3
- runtimepy/net/http/request_target.py +3 -3
- runtimepy/net/mixin.py +4 -2
- runtimepy/net/server/__init__.py +16 -9
- runtimepy/net/server/app/__init__.py +1 -0
- runtimepy/net/server/app/create.py +3 -3
- runtimepy/net/server/app/env/__init__.py +28 -4
- runtimepy/net/server/app/env/settings.py +4 -7
- runtimepy/net/server/app/env/tab/controls.py +141 -27
- runtimepy/net/server/app/env/tab/html.py +68 -26
- runtimepy/net/server/app/env/widgets.py +115 -61
- runtimepy/net/server/app/landing_page.py +1 -1
- runtimepy/net/server/html.py +2 -2
- runtimepy/net/server/json.py +1 -1
- runtimepy/net/server/markdown.py +18 -12
- runtimepy/net/server/mux.py +29 -0
- runtimepy/net/stream/__init__.py +6 -5
- runtimepy/net/stream/base.py +4 -2
- runtimepy/net/tcp/connection.py +5 -3
- runtimepy/net/tcp/http/__init__.py +10 -9
- runtimepy/net/tcp/protocol.py +2 -2
- runtimepy/net/tcp/scpi/__init__.py +5 -2
- runtimepy/net/tcp/telnet/__init__.py +2 -1
- runtimepy/net/udp/connection.py +10 -6
- runtimepy/net/udp/protocol.py +5 -6
- runtimepy/net/udp/queue.py +5 -2
- runtimepy/net/udp/tftp/base.py +2 -1
- runtimepy/net/websocket/connection.py +50 -8
- runtimepy/primitives/array/__init__.py +7 -5
- runtimepy/primitives/base.py +3 -2
- runtimepy/primitives/field/__init__.py +35 -2
- runtimepy/primitives/field/fields.py +11 -2
- runtimepy/primitives/field/manager/base.py +19 -2
- runtimepy/primitives/serializable/base.py +5 -2
- runtimepy/primitives/serializable/fixed.py +5 -2
- runtimepy/primitives/serializable/prefixed.py +4 -1
- runtimepy/primitives/types/base.py +4 -1
- runtimepy/primitives/types/bounds.py +10 -4
- runtimepy/registry/__init__.py +20 -0
- runtimepy/registry/name.py +6 -0
- runtimepy/requirements.txt +2 -2
- runtimepy/ui/controls.py +20 -1
- {runtimepy-5.14.2.dist-info → runtimepy-5.15.0.dist-info}/METADATA +6 -6
- {runtimepy-5.14.2.dist-info → runtimepy-5.15.0.dist-info}/RECORD +95 -92
- {runtimepy-5.14.2.dist-info → runtimepy-5.15.0.dist-info}/WHEEL +1 -1
- runtimepy/data/404.html +0 -7
- {runtimepy-5.14.2.dist-info → runtimepy-5.15.0.dist-info}/entry_points.txt +0 -0
- {runtimepy-5.14.2.dist-info → runtimepy-5.15.0.dist-info}/licenses/LICENSE +0 -0
- {runtimepy-5.14.2.dist-info → runtimepy-5.15.0.dist-info}/top_level.txt +0 -0
runtimepy/requirements.txt
CHANGED
runtimepy/ui/controls.py
CHANGED
|
@@ -7,8 +7,11 @@ import math
|
|
|
7
7
|
from typing import Optional
|
|
8
8
|
|
|
9
9
|
# internal
|
|
10
|
-
from runtimepy.
|
|
10
|
+
from runtimepy.primitives.types.bounds import IntegerBounds
|
|
11
11
|
|
|
12
|
+
Literal = int | float | bool
|
|
13
|
+
Default = Optional[Literal]
|
|
14
|
+
Controls = dict[str, Literal | dict[str, Literal]]
|
|
12
15
|
DEFAULT_STEPS = 64.0
|
|
13
16
|
|
|
14
17
|
|
|
@@ -30,6 +33,22 @@ def make_slider(
|
|
|
30
33
|
return result
|
|
31
34
|
|
|
32
35
|
|
|
36
|
+
def bit_slider(width: int, signed: bool) -> Controls:
|
|
37
|
+
"""Make a slider for an unsigned integer width."""
|
|
38
|
+
bounds = IntegerBounds.create_bit(width, signed)
|
|
39
|
+
return make_slider(bounds.min, bounds.max, 2**width - 1)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def signed_slider(width: int) -> Controls:
|
|
43
|
+
"""Make a slider for an unsigned integer width."""
|
|
44
|
+
return bit_slider(width, True)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def unsigned_slider(width: int) -> Controls:
|
|
48
|
+
"""Make a slider for an unsigned integer width."""
|
|
49
|
+
return bit_slider(width, False)
|
|
50
|
+
|
|
51
|
+
|
|
33
52
|
CANONICAL: dict[str, Controls] = {
|
|
34
53
|
"phase": make_slider(-math.pi, math.pi, 90, default=0.0),
|
|
35
54
|
"amplitude": make_slider(0.0, 2.0, 100.0, default=1.0),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: runtimepy
|
|
3
|
-
Version: 5.
|
|
3
|
+
Version: 5.15.0
|
|
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: aiofiles
|
|
21
|
-
Requires-Dist: svgen>=0.7.12
|
|
22
|
-
Requires-Dist: vcorelib>=3.6.0
|
|
23
20
|
Requires-Dist: websockets
|
|
24
21
|
Requires-Dist: psutil
|
|
22
|
+
Requires-Dist: svgen>=0.8.0
|
|
23
|
+
Requires-Dist: aiofiles
|
|
24
|
+
Requires-Dist: vcorelib>=3.6.2
|
|
25
25
|
Provides-Extra: test
|
|
26
26
|
Requires-Dist: pylint; extra == "test"
|
|
27
27
|
Requires-Dist: flake8; extra == "test"
|
|
@@ -51,11 +51,11 @@ Dynamic: requires-python
|
|
|
51
51
|
=====================================
|
|
52
52
|
generator=datazen
|
|
53
53
|
version=3.2.3
|
|
54
|
-
hash=
|
|
54
|
+
hash=db8f45762873863c99d4d7d8f996d2fb
|
|
55
55
|
=====================================
|
|
56
56
|
-->
|
|
57
57
|
|
|
58
|
-
# runtimepy ([5.
|
|
58
|
+
# runtimepy ([5.15.0](https://pypi.org/project/runtimepy/))
|
|
59
59
|
|
|
60
60
|
[](https://pypi.org/project/runtimepy/)
|
|
61
61
|

|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
runtimepy/__init__.py,sha256=
|
|
1
|
+
runtimepy/__init__.py,sha256=b_ptd8WNjZK1zK_FHN2DmLkBIzyqoGLd67n3xangX6g,391
|
|
2
2
|
runtimepy/__main__.py,sha256=IKioH2xOtsXwrwb9zABDQEJvuAX--Lnh84TeSz0XSs0,332
|
|
3
3
|
runtimepy/app.py,sha256=Er1ZKKrG9U0FV0gQg_GYF9xDb89HgYnVzS5SjxGa2Tg,970
|
|
4
4
|
runtimepy/dev_requirements.txt,sha256=VZhW6bJ5YbwaoN4d_XxZFuN5BbDLaG7ngKrGnugVPRw,245
|
|
5
5
|
runtimepy/entry.py,sha256=fy9irGEgyFAsu868bOymHX8I3CkkrMNThUWAm-4chiM,1930
|
|
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=vhbL-1vCt_sD7ZrLXZT-TX5WMQVC0hJMb_KMyUjDc9E,124
|
|
9
9
|
runtimepy/schemas.py,sha256=zTgxPm9DHZ0R_bmmOjNQMTXdtM_Hb1bE-Fog40jDCgg,839
|
|
10
10
|
runtimepy/util.py,sha256=ZHSucNi-gbrcajoCv2dNjQs48dJPC3mTM_wZHx7AW1U,1719
|
|
11
|
-
runtimepy/channel/__init__.py,sha256=
|
|
12
|
-
runtimepy/channel/registry.py,sha256=
|
|
13
|
-
runtimepy/channel/environment/__init__.py,sha256=
|
|
11
|
+
runtimepy/channel/__init__.py,sha256=bI1mfHmjUGrYcwePip2ddbMaGSkyQXQVfESL5dqXRdU,4716
|
|
12
|
+
runtimepy/channel/registry.py,sha256=AiRhSSnNbWCxwC-m8vP2fRaN1cfm5JjvlphQzkETf9w,4742
|
|
13
|
+
runtimepy/channel/environment/__init__.py,sha256=Mmq4S4NCX9pKSH7XEmD04zm0YcRhrTc8mGb25dTULgw,5333
|
|
14
14
|
runtimepy/channel/environment/array.py,sha256=f9cWaYsRXUw8qE629h6jQxbYKDpOwC2GLBo4QaMa1JM,3748
|
|
15
15
|
runtimepy/channel/environment/base.py,sha256=uCQKCH6wNrKqYSX2PMDAbIFoCZh68Xt-Cr_daGG7eeI,14356
|
|
16
|
-
runtimepy/channel/environment/create.py,sha256=
|
|
16
|
+
runtimepy/channel/environment/create.py,sha256=UVO_R5rM6xLjpAh3j3wwix-0V3uJMAno2tbBIV4boo8,5868
|
|
17
17
|
runtimepy/channel/environment/file.py,sha256=PV05KZ3-CvftbKUM8acQmawOMeGGCcMrEESEBuymykg,6949
|
|
18
|
-
runtimepy/channel/environment/sample.py,sha256=
|
|
18
|
+
runtimepy/channel/environment/sample.py,sha256=6926v0ZssvfeWX_C8MSbUfYjE4sr3jt0CLVSJ_2Cl3U,5316
|
|
19
19
|
runtimepy/channel/environment/telemetry.py,sha256=3A7Xcp-4eHJWz_oR1SnI6rsl4o8wiSUaiMHrnK1IaQ8,5338
|
|
20
20
|
runtimepy/channel/environment/command/__init__.py,sha256=mymqk5roA-7evUovXlD2dmWaprSzrPb_3ae6bA9oEZ0,8162
|
|
21
21
|
runtimepy/channel/environment/command/parser.py,sha256=cMOsEsXnfFlATiWTNSxlgvc_XoICsJlcZigFJlQ47tk,1804
|
|
@@ -25,10 +25,10 @@ runtimepy/channel/event/__init__.py,sha256=9LCSNa1Iiwr6Q6JkwQGELDQ7rWfU_xjAMh6qM
|
|
|
25
25
|
runtimepy/channel/event/header.py,sha256=eDRZgzzM5HZQ8QtV4DjyAsrAhEZyM7IfwqK6WB5ACEw,868
|
|
26
26
|
runtimepy/codec/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
27
|
runtimepy/codec/protocol/__init__.py,sha256=0mdPIb5mpkqofClqW23kslsgc3V_aSKJ1RmjEHmKfeI,1673
|
|
28
|
-
runtimepy/codec/protocol/base.py,sha256=
|
|
29
|
-
runtimepy/codec/protocol/json.py,sha256=
|
|
28
|
+
runtimepy/codec/protocol/base.py,sha256=kxnFcS-6P75jyK4Vs2H9dIls_PCVnvrbiM9zU6EBroE,12532
|
|
29
|
+
runtimepy/codec/protocol/json.py,sha256=utBq0kBHJifTklHvSGWNxR6jXb_F3Lzp_qU1Fshsfks,4530
|
|
30
30
|
runtimepy/codec/protocol/receiver.py,sha256=RGfpTNiFB_ZtDXtnMYSQ6oO3HiIJKcwCSwoIgvtMsbY,4085
|
|
31
|
-
runtimepy/codec/system/__init__.py,sha256=
|
|
31
|
+
runtimepy/codec/system/__init__.py,sha256=CAdHddEvqbh-Uy-l_9yc0O5VAfuqYvElnuQ4qRG8Y-A,8101
|
|
32
32
|
runtimepy/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
33
|
runtimepy/commands/all.py,sha256=eAn52vuAgOh0jr93LROfbTjSPuJILGFRCPB9UeS3Q1c,1537
|
|
34
34
|
runtimepy/commands/arbiter.py,sha256=9xcKnI1Sogmmv8J6FnjuY3zIEgSacmD7pZgAStuWTcc,1616
|
|
@@ -39,47 +39,47 @@ runtimepy/commands/task.py,sha256=6xRVlRwpEZVhrcY18sQcfdWEOxeQZLeOF-6UrUURtO4,14
|
|
|
39
39
|
runtimepy/commands/tftp.py,sha256=gxkPryKB0ZEZeOPosHM-GSoWIItpWZBu5S6tW42bfK8,2410
|
|
40
40
|
runtimepy/commands/tui.py,sha256=9hWA3_YATibUUDTVQr7UnKzPTDVJ7WxWKTYYQpLoyrE,1869
|
|
41
41
|
runtimepy/control/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
|
-
runtimepy/control/source.py,sha256=
|
|
42
|
+
runtimepy/control/source.py,sha256=2snCxm8N4rWBkEFsE0dKSqdf4vXP9AkctN6zN8h3i8M,1729
|
|
43
43
|
runtimepy/control/step.py,sha256=2LdZTpMHLwHLdpPVinpC2qByTs5I5LTDt-xONn_6Fc8,5491
|
|
44
44
|
runtimepy/control/env/__init__.py,sha256=RHJqysY7Pv4VDs2SGk0X-qc5xp_SrQ_oxb5Deug8HEM,1339
|
|
45
|
-
runtimepy/data/404.
|
|
46
|
-
runtimepy/data/base.yaml,sha256=
|
|
45
|
+
runtimepy/data/404.md,sha256=_yzjvp2GeMc5OBvZX2zDbX-Ns6T7HCO9esRbS5PmkXU,397
|
|
46
|
+
runtimepy/data/base.yaml,sha256=PEsvcMV1qFb1Gr6Cx2SgmR6ScfPyuu3yTdnvSBTVSdA,453
|
|
47
47
|
runtimepy/data/browser.yaml,sha256=oc5KEV1C1uAJ4MkhNo4hyVVfJtZvHelRNqzNvD313Ow,79
|
|
48
|
-
runtimepy/data/dummy_load.yaml,sha256=
|
|
49
|
-
runtimepy/data/factories.yaml,sha256=
|
|
48
|
+
runtimepy/data/dummy_load.yaml,sha256=BVzCn7CmvcSNcDNWWYoAdil3-YQMdxuwTOCh2dpRR5s,2001
|
|
49
|
+
runtimepy/data/factories.yaml,sha256=CdpnjK2glj8HewI2tFSNvCSUdcNPeVD_tFbGy2QBSQg,1952
|
|
50
50
|
runtimepy/data/favicon.ico,sha256=boxAGaHbUjMFrOO2TZpsO0nIRC-LUgwHVQYOiG1YQnM,362870
|
|
51
51
|
runtimepy/data/sample_telemetry.yaml,sha256=OpdFurkvtWJGaNl9LMlU2rKo15AaVVr-U_hoZfsbp-Y,695
|
|
52
52
|
runtimepy/data/server.yaml,sha256=wS_Ceiu2TpkfPurpqoYoPlgzc9DAWtUd24MW7t-S5rU,97
|
|
53
53
|
runtimepy/data/server_base.yaml,sha256=Fiqz9C_ikxtYYFO8q17XzgaY5b3H9RuyqJr-QoTk-qg,524
|
|
54
54
|
runtimepy/data/server_dev.yaml,sha256=nQsPh7LuQig3pzHfdg_aD3yOUiCj1sKKfI-WwW3hXmQ,523
|
|
55
55
|
runtimepy/data/tftp_server.yaml,sha256=-bFOWJSagI-fEQQcT8k7eDMJVfSPm2XAxLVG3dqUTa4,204
|
|
56
|
-
runtimepy/data/css/bootstrap_extra.css,sha256=
|
|
56
|
+
runtimepy/data/css/bootstrap_extra.css,sha256=hQV_f0DXboYPlsuI7PahFT11g5xjVw6nqp1DACOKWns,2934
|
|
57
57
|
runtimepy/data/css/font.css,sha256=Pe82E66rNi-cwlQ-_1GHAuhPGu5L4x5KqgV0dbDe51w,977
|
|
58
|
-
runtimepy/data/css/main.css,sha256=
|
|
58
|
+
runtimepy/data/css/main.css,sha256=SuSNaXXd3iT53bbp7bsCxPJGZtkC0cNZeCeEpvjIEhU,1215
|
|
59
59
|
runtimepy/data/js/DataConnection.js,sha256=DnX8FMehjJXqmI62UMYXSvl_XdfQMzq3XUDFbLu2GgI,98
|
|
60
60
|
runtimepy/data/js/JsonConnection.js,sha256=rclZrbmWc_zSs6I_JhOgxnVPFIyPMo5WdjAe8alyZ3o,2729
|
|
61
61
|
runtimepy/data/js/audio.js,sha256=bLkBqbeHMiGGidfL3iXjmVoF9seK-ZeZ3kwgOrcpgk4,1092
|
|
62
62
|
runtimepy/data/js/events.js,sha256=rgz3Q_8J6sfU_7Sa7fG1mZD0pQ4S3vwN2mqcvQfePkM,554
|
|
63
|
-
runtimepy/data/js/init.js,sha256=
|
|
63
|
+
runtimepy/data/js/init.js,sha256=6RhwGRl_DBjMpztms2JOQiQlvdizcLeaiETNEh31KyU,1992
|
|
64
64
|
runtimepy/data/js/main.js,sha256=nYIQ6O76EWqlzwX7oEwPXqC-LCUFCZYDADK9QbYRDKk,404
|
|
65
|
-
runtimepy/data/js/markdown_page.js,sha256=
|
|
65
|
+
runtimepy/data/js/markdown_page.js,sha256=R7Z2CwCk0dXED_4lwvDMXRNNB9ki9RvfwEKLPSwNWec,982
|
|
66
66
|
runtimepy/data/js/util.js,sha256=Xc8pHUiFDBDvIqTamWrCYUOpF7iR9VNvPDCSCQAfLDA,1424
|
|
67
67
|
runtimepy/data/js/worker.js,sha256=V9deGAynjvUr1D-WGi3wUW8rxoaNLvBvayMoLFZk3w0,2444
|
|
68
|
-
runtimepy/data/js/classes/App.js,sha256=
|
|
69
|
-
runtimepy/data/js/classes/ChannelTable.js,sha256=
|
|
68
|
+
runtimepy/data/js/classes/App.js,sha256=t3XVC7zSi8L_sMJ4KP-lyWyuD4cysCKkptN-lgjewN8,5159
|
|
69
|
+
runtimepy/data/js/classes/ChannelTable.js,sha256=v6CqDdJrxhbDZcp9c1k7a9cy1uIHfb_LsTmCfY8lvPM,2593
|
|
70
70
|
runtimepy/data/js/classes/DataConnection.js,sha256=DnX8FMehjJXqmI62UMYXSvl_XdfQMzq3XUDFbLu2GgI,98
|
|
71
71
|
runtimepy/data/js/classes/JsonConnection.js,sha256=vgQ3bGvVU5dNXn_uwvH7HjOQm0PwUSx0239Vfi7h1vE,2858
|
|
72
72
|
runtimepy/data/js/classes/OverlayManager.js,sha256=-eH8NtJi8doBUB2Czqand4cWuQlddo1p1wVUfjVx9w0,3362
|
|
73
|
-
runtimepy/data/js/classes/Plot.js,sha256=
|
|
73
|
+
runtimepy/data/js/classes/Plot.js,sha256=HzFS_w97KSRpJ_UElIGJGNYnSSdOJ2Ihhbx-00xvT64,2113
|
|
74
74
|
runtimepy/data/js/classes/PlotDrawer.js,sha256=Wkjoh3oNux8NsVDXUHy1nKOxmtGwbLNKXG9zowi4QUk,5017
|
|
75
75
|
runtimepy/data/js/classes/PlotManager.js,sha256=hFDSeTFd7UKjDkZRlh7rQhSbdIbbPA_6cTCR4D-Bgnc,4928
|
|
76
76
|
runtimepy/data/js/classes/PlotModalManager.js,sha256=lEbACLC5VzV-aSAb7G-WacmLLf_IRx7-pNJs9lL8bvY,928
|
|
77
77
|
runtimepy/data/js/classes/PointBuffer.js,sha256=iVtq_q5gBaV9IVX55pHVjQdMJ4phJ6QTdAiM7EZrLRA,5061
|
|
78
78
|
runtimepy/data/js/classes/PointManager.js,sha256=0lr2AReLdDNrY47UuOjjCRDPMiSRsOVggFHDPf8V-6Y,460
|
|
79
|
-
runtimepy/data/js/classes/TabFilter.js,sha256=
|
|
80
|
-
runtimepy/data/js/classes/TabInterface.js,sha256=
|
|
79
|
+
runtimepy/data/js/classes/TabFilter.js,sha256=xajU1ZzVI0jFGhaHkKFX4-d2n2KlxiTC4it3N53-KxM,2115
|
|
80
|
+
runtimepy/data/js/classes/TabInterface.js,sha256=xBBPX9UqMXvo6yguaJ5p3-Za1lLj3FAMLQk5rx4azZ8,14864
|
|
81
81
|
runtimepy/data/js/classes/UnitSystem.js,sha256=ys4OMabq47k_VvJpRItm82U0IequDvx3ysRJOQzDf94,906
|
|
82
|
-
runtimepy/data/js/classes/WindowHashManager.js,sha256=
|
|
82
|
+
runtimepy/data/js/classes/WindowHashManager.js,sha256=aR8zs1gUq9vkStLjyQj4rssx4dujLdDcoWNs91ViV44,7461
|
|
83
83
|
runtimepy/data/js/classes/WorkerInterface.js,sha256=qARPW1CUDnHnVFVE8UjqKq74QfommCLwd6nisy-ayOw,346
|
|
84
84
|
runtimepy/data/js/tab/env.js,sha256=MB79l3XyXKELWRqHcTnwWHiwdiceLHl1N_s-mS33pyU,22
|
|
85
85
|
runtimepy/data/js/tab/sound.js,sha256=RSKp0AXM_zGOCsUvIT-BUjIzOE7Dp5NHiQG4fy7gBgY,1388
|
|
@@ -90,7 +90,7 @@ runtimepy/data/md/PeriodicTask.md,sha256=yzKxrBAvzJwS4-ZUUlrH3J_LEHDfnkDR3ClhYFX
|
|
|
90
90
|
runtimepy/data/md/RuntimeStruct.md,sha256=Mu6fYUk2GYfGYQPFUZkXvTYkj2WSR0T_gKJXh0vRT-w,126
|
|
91
91
|
runtimepy/data/md/RuntimepyPeer.md,sha256=ayjL1V5KXRBEixG0vfxIajY2Dt_H5SYaZGSscXHSL4E,34
|
|
92
92
|
runtimepy/data/md/SinusoidTask.md,sha256=nTGmZXFv-r9d-ZgmmIHr6SKSp-K-nzJW-B6NKhg7FQ8,739
|
|
93
|
-
runtimepy/data/schemas/BitFields.yaml,sha256=
|
|
93
|
+
runtimepy/data/schemas/BitFields.yaml,sha256=iE_3y30CgcpxvzwoC96BDhwbu2PZC-Lqu5C7XUeZ1go,1086
|
|
94
94
|
runtimepy/data/schemas/Channel.yaml,sha256=9OQ3mOtPOlcWugvObpWKoAdFW0WvR9mSEzfdDYNf3fc,471
|
|
95
95
|
runtimepy/data/schemas/ChannelCommand.yaml,sha256=h7-n5WjNwWgteZ8U5YpaBRncR_Uiqaa_wVfuTWQFrTY,257
|
|
96
96
|
runtimepy/data/schemas/ChannelRegistry.yaml,sha256=f51YngVC8zDM3HwRMicKBOyoqjJ9EWsx3GWD0EkHCZk,136
|
|
@@ -99,9 +99,9 @@ runtimepy/data/schemas/ConnectionArbiterConfig.yaml,sha256=WorY7ttxvQA78TYuFoNHw
|
|
|
99
99
|
runtimepy/data/schemas/EnumRegistry.yaml,sha256=BfLzEEUsHj6Fg_0JyGmgbNJ7F-auuLs5tAhJjSc86uU,145
|
|
100
100
|
runtimepy/data/schemas/FindFile.yaml,sha256=dSPCDQy4FQZLMgOjtbR0-o2sZECvN_tvGa3LXNd1-wc,934
|
|
101
101
|
runtimepy/data/schemas/PeerProcessConfig.yaml,sha256=RNVGG1NV9-Goa7aLE0ah7QNwKOTEoJj6EZDXTW-TALM,190
|
|
102
|
-
runtimepy/data/schemas/RuntimeEnum.yaml,sha256=
|
|
102
|
+
runtimepy/data/schemas/RuntimeEnum.yaml,sha256=P3SqlxJ7d_tbZlHZBZy2cCcnOASP8APwYKzAwITd7Kg,518
|
|
103
103
|
runtimepy/data/schemas/ServerConnectionConfig.yaml,sha256=IqQUQB09xte4zGmM6Qi0-LTm5McDkoi2tehYspoNUXM,100
|
|
104
|
-
runtimepy/data/schemas/StructConfig.yaml,sha256=
|
|
104
|
+
runtimepy/data/schemas/StructConfig.yaml,sha256=KXcHMYsM5JgsIlHhfXW8tLx5GuekS6m5jsgPCm-_tZ4,175
|
|
105
105
|
runtimepy/data/schemas/TaskConfig.yaml,sha256=upEfToPllsqEcDoJf9D3rbvXk08nc0slmlUSMyCOYcQ,247
|
|
106
106
|
runtimepy/data/schemas/channel_controls.yaml,sha256=pctqV_fVjRpiKdaPqET7yyoGVYQuUtOYc1FLQUdfVJc,546
|
|
107
107
|
runtimepy/data/schemas/has_config.yaml,sha256=SMuJ9tNWw06tsgDasz4myO9SSmMZGep9xBfJ89GJnqA,80
|
|
@@ -109,12 +109,12 @@ runtimepy/data/schemas/has_factory.yaml,sha256=Rsqrxv3HEBUGxPcW6CN7QczA96iBSgtm0
|
|
|
109
109
|
runtimepy/data/schemas/has_markdown.yaml,sha256=LbnEQRYdk5KR_GgORmIOiKjRg-HF8wjhA6Dm6pSm66I,45
|
|
110
110
|
runtimepy/data/schemas/has_name.yaml,sha256=I5YkXxQRYz-1-49CLyr_NA2zVqyRVQCAsb-icTaxF4s,59
|
|
111
111
|
runtimepy/data/schemas/has_request_flag.yaml,sha256=S8ly8g-FkrCVNEizbXPqicg_hpGvtH7WRsHZAA4uhjc,66
|
|
112
|
-
runtimepy/data/static/css/bootstrap-icons.min.css,sha256=
|
|
113
|
-
runtimepy/data/static/css/bootstrap.min.css,sha256=
|
|
114
|
-
runtimepy/data/static/css/fonts/bootstrap-icons.woff,sha256=
|
|
115
|
-
runtimepy/data/static/css/fonts/bootstrap-icons.woff2,sha256=
|
|
116
|
-
runtimepy/data/static/js/bootstrap.bundle.min.js,sha256=
|
|
117
|
-
runtimepy/data/static/js/webglplot.umd.min.js,sha256=
|
|
112
|
+
runtimepy/data/static/css/bootstrap-icons.min.css,sha256=YWcTOU0uDzjc0ziOtRfrECKA-JAeU4SYUgIHmPwkqSk,87029
|
|
113
|
+
runtimepy/data/static/css/bootstrap.min.css,sha256=x7AwauKmt5DrGTlkPvW6439HiL-5Pjd1doeExMdCx3M,231973
|
|
114
|
+
runtimepy/data/static/css/fonts/bootstrap-icons.woff,sha256=9VUTt7WRy4SjuH_w406iTUgx1v7cIuVLkRymS1tUShU,180288
|
|
115
|
+
runtimepy/data/static/css/fonts/bootstrap-icons.woff2,sha256=bHVxA2ShylYEJncW9tKJl7JjGf2weM8R4LQqtm_y6mE,134044
|
|
116
|
+
runtimepy/data/static/js/bootstrap.bundle.min.js,sha256=OkQS-zjT3lXs3cjNMNQzk7C00p5lo02sP89V_4ah8Fg,80737
|
|
117
|
+
runtimepy/data/static/js/webglplot.umd.min.js,sha256=lkdF3_R9IgBmRitm8ja0WVoUHt8_CcWozGAzGoTCmFQ,10755
|
|
118
118
|
runtimepy/data/static/png/chip-circle-bootstrap/1024x1024.png,sha256=zdMu3zKfi48pTrz3YOm0qZ1CIH5S3J2DvRdAwCMjI_E,46645
|
|
119
119
|
runtimepy/data/static/png/chip-circle-bootstrap/128x128.png,sha256=bRq27gggpN7B6p7PyGyNOemt1c-T4m6h6TotUtZ_FlE,4937
|
|
120
120
|
runtimepy/data/static/png/chip-circle-bootstrap/16x16.png,sha256=MbOq2JqEflTHIAf8jLxDkeF1DXHb1ioKYjDSnzKMs9c,661
|
|
@@ -125,6 +125,8 @@ runtimepy/data/static/png/chip-circle-bootstrap/32x32.png,sha256=QyCcPzmrgo1oU5O
|
|
|
125
125
|
runtimepy/data/static/png/chip-circle-bootstrap/512x512.png,sha256=m6THSc68Y-RCxTXZ8PQd9quoKm65lE5uvH1BOb98xgg,21858
|
|
126
126
|
runtimepy/data/static/png/chip-circle-bootstrap/64x64.png,sha256=Hef55zUatdD27jU4EUbnbgcxge-pHNNJs-_HVpt1oMw,2622
|
|
127
127
|
runtimepy/data/static/svg/chip-circle-bootstrap.svg,sha256=uwo45eymlKmV3AOQ217Etarjb0UBzJJNFLa8JgQx86Y,3124
|
|
128
|
+
runtimepy/data/static/svg/outline-dark.svg,sha256=TIWpJVoDBhydwSCo-MINWP1b8ohqXmhR_OPP3og1DF4,5490
|
|
129
|
+
runtimepy/data/static/svg/outline-light.svg,sha256=n1BnY2VcIoFReVj6czO3WcZ0SdKviFKyfUFcJcLIojA,5490
|
|
128
130
|
runtimepy/data/static/woff2/CascadiaCode-Bold.woff2,sha256=vnrwH_YbbVnq0_aedSECg-eieky43TOK3MxtCWIc_Ug,154520
|
|
129
131
|
runtimepy/data/static/woff2/CascadiaCode-BoldItalic.woff2,sha256=OOWBMRXRJJKxEfEIlKKnT-tFqoZKqGw5hMa69t-gp1c,113236
|
|
130
132
|
runtimepy/data/static/woff2/CascadiaCode-Italic.woff2,sha256=RbBc8ehMSl_ixGWnEe7zn841xDsyxdDJTo3rkYY-bf8,111628
|
|
@@ -134,10 +136,10 @@ runtimepy/data/static/woff2/CascadiaMono-BoldItalic.woff2,sha256=CwE1OsdCYTPqdWx
|
|
|
134
136
|
runtimepy/data/static/woff2/CascadiaMono-Italic.woff2,sha256=S31PimDgq0GV7XMRV-YXeBA9gC54Wz9ukdAzw1nrc8g,104768
|
|
135
137
|
runtimepy/data/static/woff2/CascadiaMono-Regular.woff2,sha256=hHPAFO0U10TCKBw-UofHN2BLjax9qNClzN9oWGKkQx0,143936
|
|
136
138
|
runtimepy/data/static/woff2/README.md,sha256=flHwSRmDxd6OnWhzxmnXzwio1Mong5tB4d8VgieWCOs,289
|
|
137
|
-
runtimepy/enum/__init__.py,sha256=
|
|
138
|
-
runtimepy/enum/registry.py,sha256=
|
|
139
|
+
runtimepy/enum/__init__.py,sha256=m44Mvgwrtm1iOoM16Q_TJIr84Zndqb0l0m6S1C4kEAg,6186
|
|
140
|
+
runtimepy/enum/registry.py,sha256=Pu-q4s_Mt1EWqizhc4Qzx5a9dMEI2Zgb3_ZwQH1HW9A,3270
|
|
139
141
|
runtimepy/enum/types.py,sha256=uQYGvaAJVm5tUdwxn_SLHkTZHJpEf7364rTSL27necA,1027
|
|
140
|
-
runtimepy/message/__init__.py,sha256=
|
|
142
|
+
runtimepy/message/__init__.py,sha256=HtEvU2P6r3_4Z6SpL7LUqLeobIYLkJVgeQZiNb3E3D4,3039
|
|
141
143
|
runtimepy/message/handlers.py,sha256=He9NC7MCkaV2clKc8dTSZ_T8N2l3ATjaTFzBr9n1T34,3775
|
|
142
144
|
runtimepy/message/interface.py,sha256=vg25Uhp7wrDFH6v2iRKUBwnCBpjc3JAFjwdu3KArrLo,11285
|
|
143
145
|
runtimepy/message/types.py,sha256=vajDWKW32LjzsfH-eVCCxZTWVctj4_-tjanhnmCqUis,821
|
|
@@ -150,22 +152,22 @@ runtimepy/mixins/async_command.py,sha256=xZNTiRo_Kd_aJboLuFOkQyMo2Exn8ENyY483zdw
|
|
|
150
152
|
runtimepy/mixins/enum.py,sha256=IRQR7HD8J0uoxahNqb-2LIVokFn1L2-v9I5HNFw9W3s,719
|
|
151
153
|
runtimepy/mixins/environment.py,sha256=9dCy7nL1bwZY1p-ez8zy9Jf_6zhljSESnK9F9wtRdl8,3955
|
|
152
154
|
runtimepy/mixins/finalize.py,sha256=pTziopAWXpyRy0I8UZZv8Q4abXvnH3RrQ_dt3Rh6xlA,1600
|
|
153
|
-
runtimepy/mixins/logging.py,sha256=
|
|
155
|
+
runtimepy/mixins/logging.py,sha256=il6w0hkJSCiMyN-V6cblefvaiEOid6SOnpcFtk80NwU,3869
|
|
154
156
|
runtimepy/mixins/psutil.py,sha256=RlaEuyQ0-TynQxYW85vFuPiQ-29T2mIrsdaDlpSJq1s,1293
|
|
155
157
|
runtimepy/mixins/regex.py,sha256=kpCj4iL1akzt_KPPiMP-bTbuLBHOpkUrwbCTRe8HSUk,1061
|
|
156
158
|
runtimepy/mixins/trig.py,sha256=vkDd9Rh8080gvH5OHkSYmjImVgM_ZZ7RzMxsczKx5N4,2480
|
|
157
|
-
runtimepy/net/__init__.py,sha256=
|
|
159
|
+
runtimepy/net/__init__.py,sha256=HQaWGxnEH49JSPX2Q_N5QNSV0Wd_x0zZQJa1SV1EC_M,790
|
|
158
160
|
runtimepy/net/backoff.py,sha256=IVloxQd-gEK62gFAlU2aOwgTEXhsNUTBfS16eiOqKG8,1080
|
|
159
|
-
runtimepy/net/connection.py,sha256=
|
|
161
|
+
runtimepy/net/connection.py,sha256=5rjdfqq58DU5XW5eaZgkO8vIjENYiNLtzE7iV1uWvxk,12878
|
|
160
162
|
runtimepy/net/manager.py,sha256=-M-ZSB9izay6HK1ytTayAYnSHYAz34dcwxaiNhC4lWg,4264
|
|
161
|
-
runtimepy/net/mixin.py,sha256=
|
|
163
|
+
runtimepy/net/mixin.py,sha256=0NTKeuaoUNm7--GzA7rxU3gb1rrGGhu1vNj6mek4dDA,3022
|
|
162
164
|
runtimepy/net/mtu.py,sha256=XnLXAFMsDxK1Lj5v_zgWaBrC3lNqf81DkbDc6hpMdmI,3495
|
|
163
165
|
runtimepy/net/ssl.py,sha256=dj9uECPKDT5k-5vlR5I3Z7Go3WWZhbaJ9nb0rC3kJvg,854
|
|
164
166
|
runtimepy/net/util.py,sha256=XTQQ-Ql_ImhVd1_O8nSeDX9MY8xJwRBggvliSLCrsc8,5913
|
|
165
167
|
runtimepy/net/apps/__init__.py,sha256=vjo7e19QXtJwe6V6B-QGvYiJveYobnYIfpkKZrnS17w,710
|
|
166
168
|
runtimepy/net/arbiter/__init__.py,sha256=ptKF995rYKvkm4Mya92vA5QEDqcFq5NRD0IYGqZ6_do,740
|
|
167
169
|
runtimepy/net/arbiter/base.py,sha256=q9mQ3vjVjlzjGrDcTq8gengsEV2AnCUx8IK_40h6uxg,15011
|
|
168
|
-
runtimepy/net/arbiter/info.py,sha256=
|
|
170
|
+
runtimepy/net/arbiter/info.py,sha256=QcBB1LQELXPs-Ud-GVq3aDBL4mpSMDcjjLtuKgojiU8,10962
|
|
169
171
|
runtimepy/net/arbiter/result.py,sha256=PHZo5qj4SI08ZeWPFk_8OZ1umI6L0dp5nJpjjS8QUpM,2871
|
|
170
172
|
runtimepy/net/arbiter/task.py,sha256=APcc5QioAG8uueIzxJU-vktIn8Ys3yJd_CFlRWb6Ieo,795
|
|
171
173
|
runtimepy/net/arbiter/udp.py,sha256=-ecHJs-utcsiTfr5wSb73hUUuYFBeRVT_D1znYp5q6A,893
|
|
@@ -179,76 +181,77 @@ runtimepy/net/arbiter/factory/task.py,sha256=YLRv55dnDBqHRJIMYgO9_uHi0AW-8hwa0n3
|
|
|
179
181
|
runtimepy/net/arbiter/housekeeping/__init__.py,sha256=-6P2x_qSWp1juml0wKZGJ343c-atrbp8YkDRWn162UA,3622
|
|
180
182
|
runtimepy/net/arbiter/imports/__init__.py,sha256=W7-kkM4B_zDU42Fyh0PmZL56JslS_0_qzvpzUhN6aDU,5041
|
|
181
183
|
runtimepy/net/arbiter/imports/util.py,sha256=d4_HnWphrkiHQkyYr8YJKvSSTXoMf3Bct_7jg_CS9eA,1086
|
|
182
|
-
runtimepy/net/arbiter/struct/__init__.py,sha256=
|
|
184
|
+
runtimepy/net/arbiter/struct/__init__.py,sha256=HaLykBdZkaJI5HdXBKcc_YsWmbKVtuZnEDkQJKh8NYQ,6044
|
|
183
185
|
runtimepy/net/arbiter/tcp/__init__.py,sha256=djNm8il_9aLNpGsYResJlFmyIqx9XNLqVay-mYnn8vc,1530
|
|
184
186
|
runtimepy/net/arbiter/tcp/json.py,sha256=W9a_OwBPmIoB2XZf4iuAIWQhMg2qA9xejBhGBdNCPnI,742
|
|
185
187
|
runtimepy/net/factories/__init__.py,sha256=rPdBVpgzzQYF61w6efQrEre71yMPHd6kanBpMdOX-3c,4672
|
|
186
|
-
runtimepy/net/html/__init__.py,sha256=
|
|
188
|
+
runtimepy/net/html/__init__.py,sha256=8EuXyA4MODbIH5AG05pMhYUqjU-dw6qO6oQi9rckyuk,5666
|
|
187
189
|
runtimepy/net/html/arbiter.py,sha256=SkZZm-CmyCxbAcWZbvCLH-RwFUJPvrvR5yWysVVuvCM,951
|
|
188
|
-
runtimepy/net/html/bootstrap/__init__.py,sha256=
|
|
189
|
-
runtimepy/net/html/bootstrap/elements.py,sha256=
|
|
190
|
-
runtimepy/net/html/bootstrap/tabs.py,sha256=
|
|
191
|
-
runtimepy/net/http/__init__.py,sha256=
|
|
190
|
+
runtimepy/net/html/bootstrap/__init__.py,sha256=tiFtVPz2TZStwBqST4G8xc7woSc68rRJy1tx3n1GaJw,2429
|
|
191
|
+
runtimepy/net/html/bootstrap/elements.py,sha256=PsVDdExIZqPyTEowe-ViBzAWDxBNh9YbjTwHG7uZjWc,5832
|
|
192
|
+
runtimepy/net/html/bootstrap/tabs.py,sha256=Qtwcojlz5eCjkvFtM7qzrOc4TpLwoAxDAsFiSFEAmWA,4049
|
|
193
|
+
runtimepy/net/http/__init__.py,sha256=cMKNPyYZpdT03OR-HNfwzZbaKGchzlGIrK712daRK40,1829
|
|
192
194
|
runtimepy/net/http/common.py,sha256=vpoO6XwRmrZmTkCu9bkI0HnyaD8MWTpV7ADesCNrfRE,2237
|
|
193
195
|
runtimepy/net/http/header.py,sha256=AECSdvhBA9_5Pg3UdwMzsmBpcqgsiPj41xnIGPm5g5E,2296
|
|
194
|
-
runtimepy/net/http/request_target.py,sha256=
|
|
196
|
+
runtimepy/net/http/request_target.py,sha256=EfcOozUeXqOuQaMXH9cErfJqUkG0A5v9HEK4tCorSf4,1543
|
|
195
197
|
runtimepy/net/http/response.py,sha256=fD0R_BUgmNwdwKQtXvYfTYM7DyJlwsGmlNVi5HkCOhU,3409
|
|
196
198
|
runtimepy/net/http/state.py,sha256=qCMN8aWfCRfU9XP-cIhSOo2RqfljTjbQRCflfcy2bfY,1626
|
|
197
199
|
runtimepy/net/http/version.py,sha256=mp6rgIM7-VUVKLCA0Uw96CmBkL0ET860lDVVEewpZ7w,1098
|
|
198
|
-
runtimepy/net/server/__init__.py,sha256=
|
|
199
|
-
runtimepy/net/server/html.py,sha256=
|
|
200
|
-
runtimepy/net/server/json.py,sha256=
|
|
201
|
-
runtimepy/net/server/markdown.py,sha256=
|
|
202
|
-
runtimepy/net/server/
|
|
200
|
+
runtimepy/net/server/__init__.py,sha256=5KalIcOWv8lYm8747pq2rzGwpLz713XdHuQIKbWJsXc,11649
|
|
201
|
+
runtimepy/net/server/html.py,sha256=OB2K37kA7MHtcKqp0pZE1q_XgiyvfooigzS0-OQFCCM,1900
|
|
202
|
+
runtimepy/net/server/json.py,sha256=AaMPw-G-7xX67mf1LvQAipNdwrnmbLDunVlkWf6iOz0,2526
|
|
203
|
+
runtimepy/net/server/markdown.py,sha256=AvwWQg7DgMSroOxNN0KEKwpPoLueNvv2GSBdPzQbMvI,1734
|
|
204
|
+
runtimepy/net/server/mux.py,sha256=ejET7NpJzzJjkVwR8laSuZYR79DOT3XazmAIm6rENSE,598
|
|
205
|
+
runtimepy/net/server/app/__init__.py,sha256=0eCcqYvmby_wQTGqAiGbGM5LCxKM2qpjuIT0gLHsoDU,3157
|
|
203
206
|
runtimepy/net/server/app/base.py,sha256=46aOqZwRss_nh_WfEH1cMJ9GUVoLJjERd7cTRFu6mXE,1878
|
|
204
|
-
runtimepy/net/server/app/create.py,sha256=
|
|
207
|
+
runtimepy/net/server/app/create.py,sha256=1Z6YUUBempk8lCIuZG_RE0qlHau-E152_Utf4z6bz_k,2672
|
|
205
208
|
runtimepy/net/server/app/elements.py,sha256=KJt9vWqkfvniJMiLOJN467JjPPrEqJYZXmDuY1JoY1g,455
|
|
206
209
|
runtimepy/net/server/app/files.py,sha256=9EiGA5aYczJN6BJifAIZ8e3wBbIGCekVLCu0D54ZAFc,968
|
|
207
|
-
runtimepy/net/server/app/landing_page.py,sha256=
|
|
210
|
+
runtimepy/net/server/app/landing_page.py,sha256=9TXpL0ITYWCxw9Potq71ZOwLlIlMegcK6WHyD5INgWY,874
|
|
208
211
|
runtimepy/net/server/app/placeholder.py,sha256=OuiMNvLEK0pI2N3oIqvPRaperoJkDg-fBds9HHfuosg,1664
|
|
209
212
|
runtimepy/net/server/app/pyodide.py,sha256=dGJ4u78eYQLU9RQbZEWgzv-7jVIwblS6VopibG82tA4,478
|
|
210
213
|
runtimepy/net/server/app/sound.py,sha256=qG2k00nWRPAmI5_4L_LMs10nsCTBKaAzIp80embgua8,837
|
|
211
214
|
runtimepy/net/server/app/tab.py,sha256=gRiaUJdB3V9hIKI5MksW7spNChfMtEMDFWCTP1ERrZ4,2272
|
|
212
|
-
runtimepy/net/server/app/env/__init__.py,sha256=
|
|
215
|
+
runtimepy/net/server/app/env/__init__.py,sha256=IYk_DuedEQRp1rzKCi1FT4xks_RI-XGTsWh5zJtZkYc,4771
|
|
213
216
|
runtimepy/net/server/app/env/modal.py,sha256=HTipCYgQaAUtsmlBjXKfhAM5JyhLqoIIwEwsPnKhrG8,1740
|
|
214
|
-
runtimepy/net/server/app/env/settings.py,sha256=
|
|
215
|
-
runtimepy/net/server/app/env/widgets.py,sha256=
|
|
217
|
+
runtimepy/net/server/app/env/settings.py,sha256=m87hHAapuNq0xKzDNSNTwG8D2Cb3QFSVrziszf8iVHs,1631
|
|
218
|
+
runtimepy/net/server/app/env/widgets.py,sha256=sDfJYBVIXZuly4Rvch597Y-LTT6t3obxc60oejqGv7g,7104
|
|
216
219
|
runtimepy/net/server/app/env/tab/__init__.py,sha256=stTVKyHljLQWnnhxkWPwa7bLdZtjhiMFbiVFgbiYaFI,647
|
|
217
220
|
runtimepy/net/server/app/env/tab/base.py,sha256=QBTBBvsdihbzK5MqrJBf6K5N61b3i8Ms0P6Xq_h1mbs,1171
|
|
218
|
-
runtimepy/net/server/app/env/tab/controls.py,sha256=
|
|
219
|
-
runtimepy/net/server/app/env/tab/html.py,sha256=
|
|
221
|
+
runtimepy/net/server/app/env/tab/controls.py,sha256=11TidvphKyvLCgdW8Sjiyd6BpX4-ybGZPEhrn-hzkuU,8263
|
|
222
|
+
runtimepy/net/server/app/env/tab/html.py,sha256=MbEQzxEPNcMCntGGm2qWli6ND_Ina46CEVzt7HF2yBg,8210
|
|
220
223
|
runtimepy/net/server/app/env/tab/message.py,sha256=-J8wBo1KH0XoBi9VcUvl9LXZCaoFAmvFyMf_YFJVF6Q,3945
|
|
221
224
|
runtimepy/net/server/struct/__init__.py,sha256=Zy37r6RLFu-XFr9vsanSq80BJdS6Dxr7zmPzQbb7xdw,1799
|
|
222
225
|
runtimepy/net/server/websocket/__init__.py,sha256=KISuFUUQwNn6BXo8BOMuMOXyoVqE7Jw94ZQiSCQuRQE,5279
|
|
223
226
|
runtimepy/net/server/websocket/state.py,sha256=tClzw_3pOV9fzsiqnmss0FUsZZPhInL2CnDi_jyrayI,2291
|
|
224
|
-
runtimepy/net/stream/__init__.py,sha256=
|
|
225
|
-
runtimepy/net/stream/base.py,sha256=
|
|
227
|
+
runtimepy/net/stream/__init__.py,sha256=B4NipXGwA2AQ5UJ8YVJqqOg_X_Cm7p2nfIbIXJMiGBI,2359
|
|
228
|
+
runtimepy/net/stream/base.py,sha256=lL2-t-T2ldfUJHuFIf8X4_WdXlsVZOue7w_FOLHtmQY,1987
|
|
226
229
|
runtimepy/net/stream/string.py,sha256=61mgserU3p6j5gAcK0oe0aKqL6vDh7NtgJvbPoiAUPM,784
|
|
227
230
|
runtimepy/net/stream/json/__init__.py,sha256=h--C_9moW92TC_e097FRRXcg8GJ6VVbMLXl1cICknys,2508
|
|
228
231
|
runtimepy/net/tcp/__init__.py,sha256=OOWohegpoioSTf8M7uDf-4EV1IDungz7-U19L_2yW4I,250
|
|
229
|
-
runtimepy/net/tcp/connection.py,sha256=
|
|
232
|
+
runtimepy/net/tcp/connection.py,sha256=FL9SlODVAehECYgF9eKk8sbDMmTMBGlsGJlGaMncQh4,8793
|
|
230
233
|
runtimepy/net/tcp/create.py,sha256=zZsRs5KYpO3bNGh-DwEOEzjUDE4ixj-UBHYgZ0GvC7c,2013
|
|
231
|
-
runtimepy/net/tcp/protocol.py,sha256=
|
|
232
|
-
runtimepy/net/tcp/http/__init__.py,sha256
|
|
233
|
-
runtimepy/net/tcp/scpi/__init__.py,sha256=
|
|
234
|
-
runtimepy/net/tcp/telnet/__init__.py,sha256=
|
|
234
|
+
runtimepy/net/tcp/protocol.py,sha256=vT4HOH-WLrM0j4kUpQA_ZZOwA-kJPMP9M40ptuL84_0,1412
|
|
235
|
+
runtimepy/net/tcp/http/__init__.py,sha256=0nEB6KFqV9GxMwFKqKIswA0wihHfbLP5UD-r5ulgTj0,6391
|
|
236
|
+
runtimepy/net/tcp/scpi/__init__.py,sha256=FcNouVQh0A27-x16lzTbt7vZfWs4bRU9uZqbeVjDfiU,2173
|
|
237
|
+
runtimepy/net/tcp/telnet/__init__.py,sha256=2pGaG-IlZA29BM6QAvI4q9w484fgvypX4fOIioDem94,4814
|
|
235
238
|
runtimepy/net/tcp/telnet/codes.py,sha256=1-yyRe-Kz_W7d6B0P3iT1AaSNR3_Twmn-MUjKCJJknY,3518
|
|
236
239
|
runtimepy/net/tcp/telnet/np_05b.py,sha256=ikp9txHBvbRps6x7C1FsEf9i6vmUtGvei4Nukc_gypI,7887
|
|
237
240
|
runtimepy/net/udp/__init__.py,sha256=VSgle6cO2RXfwaei66wMIJ4zSB4gzpoadSSbmLfCzBw,357
|
|
238
|
-
runtimepy/net/udp/connection.py,sha256=
|
|
241
|
+
runtimepy/net/udp/connection.py,sha256=n3fS3zVx24TP2Qx8rXkTCHlvJZV-Iq4QzXsQ3PJtmoY,8047
|
|
239
242
|
runtimepy/net/udp/create.py,sha256=84YDfJbNBlN0ZwbNpvh6Dl7ZPecbZfmpjMNRRWcvJDk,2005
|
|
240
|
-
runtimepy/net/udp/protocol.py,sha256=
|
|
241
|
-
runtimepy/net/udp/queue.py,sha256=
|
|
243
|
+
runtimepy/net/udp/protocol.py,sha256=zx_756bqg-Ylqcufw6B0HQdJLhFIKfTtriCtbQUiCEg,1424
|
|
244
|
+
runtimepy/net/udp/queue.py,sha256=giSXovXeZwEyOOTb0pP0Q1Ffkc51QyWK0EsthXX0xjQ,706
|
|
242
245
|
runtimepy/net/udp/tftp/__init__.py,sha256=lR8_bFo8ECHMQygWsmbnNpsLqmwu6818k-cjKRE57yk,8983
|
|
243
|
-
runtimepy/net/udp/tftp/base.py,sha256=
|
|
246
|
+
runtimepy/net/udp/tftp/base.py,sha256=cUEkRfzhi4eEQ3pxUsRsYl2_UlAQOjBkOixzVkaIG14,11377
|
|
244
247
|
runtimepy/net/udp/tftp/endpoint.py,sha256=so60LdPTG66N5tdhHhiX7j_TBHvNOTi4JIgLcg2MAm0,10890
|
|
245
248
|
runtimepy/net/udp/tftp/enums.py,sha256=06juMd__pJZsyL8zO8p3hRucnOratt1qtz9zcxzMg4s,1579
|
|
246
249
|
runtimepy/net/udp/tftp/io.py,sha256=w6cnUt-T-Ma6Vg8BWoRbsNnIWUv0HTY4am6bcLWxNJs,803
|
|
247
250
|
runtimepy/net/websocket/__init__.py,sha256=YjSmoxiigmsI_hcQw6nueX7bxhrRGerEERnPvgLVEVA,313
|
|
248
|
-
runtimepy/net/websocket/connection.py,sha256=
|
|
251
|
+
runtimepy/net/websocket/connection.py,sha256=VS1ifMrpIOiqvUakZWSGypqTZEWTMXhjRDiGMJ2gkZs,10129
|
|
249
252
|
runtimepy/noise/__init__.py,sha256=EJM7h3t_z74wwrn6FAFQwYE2yUcOZQ1K1IQqOb8Z0AI,384
|
|
250
253
|
runtimepy/primitives/__init__.py,sha256=g5IK6e_UZuGhj9QNYoCn5TbhNatWX0nEYUs-JzsOizQ,2618
|
|
251
|
-
runtimepy/primitives/base.py,sha256=
|
|
254
|
+
runtimepy/primitives/base.py,sha256=6N_mfTuv0RJJYofSQQ858vJfgcTvjjvfXeebMw_1bw8,9339
|
|
252
255
|
runtimepy/primitives/bool.py,sha256=lATPgb1e62rjLn5XlJX8lP3tVYR3DlxV8RT9HpOMdT0,1640
|
|
253
256
|
runtimepy/primitives/byte_order.py,sha256=J2Pg3gXg8Lmu_uU2mduNJt3mnP_enwDI4Y-X8kWAUP0,1456
|
|
254
257
|
runtimepy/primitives/evaluation.py,sha256=0N7mT8uoiJaY-coF2PeEXU2WO-FmbyN2Io9_EaghO9Q,4657
|
|
@@ -256,26 +259,26 @@ runtimepy/primitives/float.py,sha256=6vzNKnnLzzM4vP10V4E0PHZQH6vTvIl34pId1oFtlqc
|
|
|
256
259
|
runtimepy/primitives/int.py,sha256=Ia2vtzXXfBb8fj1mgwu_PFpblrL2qzsN4Qwjvk5NhT4,3618
|
|
257
260
|
runtimepy/primitives/scaling.py,sha256=Vtxp2CSBahqPp4i2-IS4wjbcC023xwf-dqZMbYWf3V4,1144
|
|
258
261
|
runtimepy/primitives/string.py,sha256=ic5VKhXCSIwEOUfqIb1VUpZPwjdAcBul-cLLIihVkQI,2532
|
|
259
|
-
runtimepy/primitives/array/__init__.py,sha256=
|
|
260
|
-
runtimepy/primitives/field/__init__.py,sha256=
|
|
261
|
-
runtimepy/primitives/field/fields.py,sha256=
|
|
262
|
+
runtimepy/primitives/array/__init__.py,sha256=Wbhi0-frR72Yq1g0sZG2-kRpWX4uEvbEaOp8LCiKojI,8975
|
|
263
|
+
runtimepy/primitives/field/__init__.py,sha256=0xsbD95msOogDhoBLY-9hMM0AHVjVpCl26qfToKlJ54,5426
|
|
264
|
+
runtimepy/primitives/field/fields.py,sha256=Iq5FJihEVKDqFEsIgrLL8YtkyJhfxk4scAr5n0WtLG4,7967
|
|
262
265
|
runtimepy/primitives/field/manager/__init__.py,sha256=BCRi6-_5OOJ8kz78JHkiLp8cZ71KA1uiF2zq5FFe9js,2586
|
|
263
|
-
runtimepy/primitives/field/manager/base.py,sha256=
|
|
266
|
+
runtimepy/primitives/field/manager/base.py,sha256=MKmm882Gr8gQcbycPoMQuQafBXsI7AjZEdqmc7ALu-Y,7568
|
|
264
267
|
runtimepy/primitives/serializable/__init__.py,sha256=R9_derxnK1OCaYyqBZA4CCjPkXCBw6InkE8-3Zy75Uk,399
|
|
265
|
-
runtimepy/primitives/serializable/base.py,sha256=
|
|
266
|
-
runtimepy/primitives/serializable/fixed.py,sha256=
|
|
268
|
+
runtimepy/primitives/serializable/base.py,sha256=tcLC6l0cJfSFZc9MeREv_3BzpW9EJnEEaDDRbQ-qBgo,5795
|
|
269
|
+
runtimepy/primitives/serializable/fixed.py,sha256=gg86rultzHLW4qpYg8Z8hm06set7xmgcm50mTZixMPQ,1145
|
|
267
270
|
runtimepy/primitives/serializable/framer.py,sha256=rsoGQz6vD7v_EMu67aqxVqbvmbs6hjytXZ8dHLBM0SQ,1815
|
|
268
|
-
runtimepy/primitives/serializable/prefixed.py,sha256=
|
|
271
|
+
runtimepy/primitives/serializable/prefixed.py,sha256=brERtFPV1UsO6p5D6Da_5kRy8MITQ_3cCDUeu8LfnaM,2916
|
|
269
272
|
runtimepy/primitives/types/__init__.py,sha256=AcjLKotJ3A-9jNgThca1dBKsGKENPUGPiJAb6aauTpA,1876
|
|
270
|
-
runtimepy/primitives/types/base.py,sha256=
|
|
273
|
+
runtimepy/primitives/types/base.py,sha256=B37oV2tguZcPpygripAnNf1PFAA55NFlkZC0i7aKTIc,4940
|
|
271
274
|
runtimepy/primitives/types/bool.py,sha256=J0SYdp-9eIRs337d9qnw2f7IXTPQj_F21ugMIJ8-Hy4,547
|
|
272
|
-
runtimepy/primitives/types/bounds.py,sha256=
|
|
275
|
+
runtimepy/primitives/types/bounds.py,sha256=rBwcdHvMxZG5ikirTwfVnXIVKJ1mx3cM01XCprzXOZM,1349
|
|
273
276
|
runtimepy/primitives/types/float.py,sha256=yjiU1AGzekY8PjDcLNdoXMGDsdP5aDYWjLb3_RntRpA,1388
|
|
274
277
|
runtimepy/primitives/types/int.py,sha256=Gjro7RgPL1girVVXhvDErvRwxlfHclMr7tZEFYj-Uj4,3807
|
|
275
|
-
runtimepy/registry/__init__.py,sha256=
|
|
278
|
+
runtimepy/registry/__init__.py,sha256=MDgJjHYVpG4FTByc9nws2pDR3lSa24iuB9NUXaF7ckM,4152
|
|
276
279
|
runtimepy/registry/bool.py,sha256=ri56paLqwIOUo9JkSpwvrWmed9lHA851gke-0m8vGew,735
|
|
277
280
|
runtimepy/registry/item.py,sha256=HPqxmzuK8aOc1siHzYScgxYxSMZ4RVTmnsRW2oNcW34,852
|
|
278
|
-
runtimepy/registry/name.py,sha256=
|
|
281
|
+
runtimepy/registry/name.py,sha256=TkNm7kff_Id6p_b9jr8YTi1UN1xCNzwk38IEomE7o5Q,1915
|
|
279
282
|
runtimepy/sample/__init__.py,sha256=N7P6hnCLF9NwnkZA1h3LzS2C334SAO48Fu8adHxWGLU,56
|
|
280
283
|
runtimepy/sample/peer.py,sha256=uNlIPAv1-wjGUWdR0AM3L9NUMjnIMJBqQ9ZsHdTLx3Q,1688
|
|
281
284
|
runtimepy/sample/program.py,sha256=AFqinsnsjzatgJXePAO4yXYerxmzN7ajtDmJPwWigYc,2428
|
|
@@ -301,10 +304,10 @@ runtimepy/tui/mock.py,sha256=Vn0XK2OQ_ukSSHeS8xkzFfJPsmAplRiu7vIwb2SnUHI,1874
|
|
|
301
304
|
runtimepy/tui/task.py,sha256=nUZo9fuOC-k1Wpqdzkv9v1tQirCI28fZVgcC13Ijvus,1093
|
|
302
305
|
runtimepy/tui/channels/__init__.py,sha256=evDaiIn-YS9uGhdo8ZGtP9VK1ek6sr_P1nJ9JuSET0o,4536
|
|
303
306
|
runtimepy/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
304
|
-
runtimepy/ui/controls.py,sha256=
|
|
305
|
-
runtimepy-5.
|
|
306
|
-
runtimepy-5.
|
|
307
|
-
runtimepy-5.
|
|
308
|
-
runtimepy-5.
|
|
309
|
-
runtimepy-5.
|
|
310
|
-
runtimepy-5.
|
|
307
|
+
runtimepy/ui/controls.py,sha256=L55Af-4vGq6ZHewdoA7C_mAYq35WXl8NzOdcsmQIo7M,1868
|
|
308
|
+
runtimepy-5.15.0.dist-info/licenses/LICENSE,sha256=yKBRwbO-cOPBrlpsZmJkkSa33DfY31aE8t7lZ0DwlUo,1071
|
|
309
|
+
runtimepy-5.15.0.dist-info/METADATA,sha256=Hr1TYcveiC09pGHx5nro_VVvBfy3y1upL9vOgyTO0p4,9268
|
|
310
|
+
runtimepy-5.15.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
311
|
+
runtimepy-5.15.0.dist-info/entry_points.txt,sha256=-btVBkYv7ybcopqZ_pRky-bEzu3vhbaG3W3Z7ERBiFE,51
|
|
312
|
+
runtimepy-5.15.0.dist-info/top_level.txt,sha256=0jPmh6yqHyyJJDwEID-LpQly-9kQ3WRMjH7Lix8peLg,10
|
|
313
|
+
runtimepy-5.15.0.dist-info/RECORD,,
|
runtimepy/data/404.html
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
<!doctype html><html lang=en><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Libre Embedded - Home
|
|
2
|
-
</title><meta http-equiv=Cache-Control content="public"><link rel=icon href=/favicon.ico><meta name=description content="Libre Embedded Engineering Technologies LLC is an engineering consultancy and product development company. This page was rendered from Markdown by runtimepy/5.13.3."><style>@font-face{font-family:CascadiaCode;src:url(/static/woff2/CascadiaCode-Regular.woff2)}@font-face{font-family:CascadiaCode;src:url(/static/woff2/CascadiaCode-Bold.woff2);font-weight:700}@font-face{font-family:CascadiaCode;src:url(/static/woff2/CascadiaCode-BoldItalic.woff2);font-weight:700;font-style:italic}@font-face{font-family:CascadiaCode;src:url(/static/woff2/CascadiaCode-Italic.woff2);font-style:italic}@font-face{font-family:CascadiaMono;src:url(/static/woff2/CascadiaMono-Regular.woff2)}@font-face{font-family:CascadiaMono;src:url(/static/woff2/CascadiaMono-Bold.woff2);font-weight:700}@font-face{font-family:CascadiaMono;src:url(/static/woff2/CascadiaMono-BoldItalic.woff2);font-weight:700;font-style:italic}@font-face{font-family:CascadiaMono;src:url(/static/woff2/CascadiaMono-Italic.woff2);font-style:italic}</style><link rel=stylesheet href=/static/css/bootstrap-icons.min.css></link>
|
|
3
|
-
<link href=/static/css/bootstrap.min.css rel=stylesheet crossorigin=anonymous></link><style>html{height:100%;width:100%;position:fixed}body{height:100%;margin:0;overflow:hidden}body>:first-child{height:100%}#runtimepy{height:100%}#runtimepy-tabs{width:min-content}#runtimepy-splash{position:fixed;top:0;left:0;width:100vw;height:100vh;opacity:1}.click-plot{cursor:pointer}.stale{color:var(--bs-warning-text-emphasis)!important}.slider{min-width:8em}.toggle-value{}.window-button{border-right:var(--bs-border-width)var(--bs-border-style)var(--bs-link-hover-color)!important}:focus{outline:none}.flex-column-scroll-bodge{height:100%;flex-wrap:nowrap;overflow-y:scroll;flex-shrink:0}.scroll{overflow:scroll}.tab-content-bodge{width:100%;height:100%}.button-bodge{text-align:left}.collapsing{transition:none!important}.tab-pane.fade{transition:none!important}.modal.fade{transition:none!important}.modal-dialog{width:80%;max-width:80%}.table{margin-bottom:0;width:auto}.table-container{overflow-x:scroll;min-height:fit-content}.channel-column{overflow-y:scroll;overflow-x:hidden;flex-grow:0;flex-shrink:0;max-width:75%}.channel-value{min-width:10em}.table>tbody>tr>td{vertical-align:middle}.collapse:not(.show){display:none!important}select.form-select{width:min-content}select.form-select:hover{cursor:pointer}textarea.text-logs{min-height:10em!important;padding-top:0!important;padding-bottom:0!important;border-top:0}.vertical-divider{flex-basis:.75em;flex-grow:0;flex-shrink:0}pre{color:var(--bs-code-color)}.vertical-divider:hover{cursor:col-resize;background-color:var(--bs-highlight-bg)!important}button:hover{background-color:var(--bs-tertiary-bg)}.channel-value-input{width:6em}:root,[data-bs-theme=dark],[data-bs-theme=light]{--bs-font-sans-serif:CascadiaCode, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace:CascadiaMono, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}</style><div id=runtimepy class="d-flex bg-body align-items-start" data-bs-theme=dark><div class="bg-dark-subtle d-flex h-100 flex-column"><button type=button id=theme-button title="change theme button" class="btn btn-secondary rounded-0 font-monospace button-bodge text-nowrap has-tooltip" data-bs-title="Toggle light/dark." data-bs-placement=right>
|
|
4
|
-
<i class="bi bi-lightbulb"></i>
|
|
5
|
-
</button>
|
|
6
|
-
<a href="?print=true"><button type=button id=print-button title="print-view button" class="btn btn-secondary rounded-0 font-monospace button-bodge text-nowrap has-tooltip" data-bs-title="Printer-friendly view." data-bs-placement=right>
|
|
7
|
-
<i class="bi bi-printer"></i></button></a></div><div class="h-100 flex-grow-1 justify-content-between text-body d-flex overflow-y-auto flex-column"><div></div><div class="justify-content-between d-flex flex-row"><div></div><div class="text-body p-3 pb-0"><h1><a href=/><img alt=logo src=/static/png/chip-circle-bootstrap/128x128.png></a> Resource Not Found (404) <a href=/><img alt=logo src=/static/png/chip-circle-bootstrap/128x128.png></a></h1><p>(<a href=/>home</a>)</div><div></div></div><div></div></div></div><script>function worker_config(e){let t={},s="runtimepy_websocket",n="ws";location.protocol.includes("https")&&(s="runtimepy_secure_websocket",n+="s");let o=e.config.ports;for(let r in o){let i=o[r],a=e.config.websocket_hostname||window.location.hostname;i.name.includes(s)&&(i.name.includes("data")?t.data=`${n}://${a}:`+i.port:t.json=`${n}://${a}:`+i.port)}return t}let tabFilter=void 0;function bootstrap_init(){const t=document.querySelectorAll(".has-tooltip"),n=[...t].map(e=>new bootstrap.Tooltip(e));let e=document.getElementById("runtimepy-tabs");e&&(tabFilter=new TabFilter(e))}let lightMode=!1;function lightDarkClick(){lightMode=!lightMode,document.getElementById("runtimepy").setAttribute("data-bs-theme",lightMode?"light":"dark"),window.location.hash=lightMode?"#light-mode":""}window.onload=()=>{let e=document.getElementById("theme-button");if(e&&e.addEventListener("click",lightDarkClick),window.location.hash){let t=window.location.hash.slice(1).split(",");t.includes("light-mode")&&e.click()}bootstrap_init()}</script><script src=/static/js/bootstrap.bundle.min.js crossorigin=anonymous></script>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|