runtimepy 5.15.1__py3-none-any.whl → 5.15.2__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 CHANGED
@@ -1,7 +1,7 @@
1
1
  # =====================================
2
2
  # generator=datazen
3
3
  # version=3.2.3
4
- # hash=7da25db9f79bc00e444a7898020e2a26
4
+ # hash=839ec3c3fa52de16f775789c0d38bf3e
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.15.1"
13
+ VERSION = "5.15.2"
14
14
 
15
15
  # runtimepy-specific content.
16
16
  METRICS_NAME = "metrics"
@@ -10,5 +10,7 @@ class WorkerInterface {
10
10
 
11
11
  command(data) { this.send({kind : "command", value : data}); }
12
12
 
13
+ bus(data) { this.worker.postMessage({bus : data}); }
14
+
13
15
  toWorker(data, param) { return this.send({"worker" : data}, param); }
14
16
  }
@@ -1 +1,2 @@
1
1
  console.log(`sample.js included (${tab.name})`);
2
+ // tab.worker.bus({a: 1, b: 2, c: 3});
@@ -7,6 +7,7 @@ from collections import defaultdict
7
7
  from typing import Optional
8
8
 
9
9
  # third-party
10
+ from vcorelib.io.bus import BUS
10
11
  from vcorelib.math import RateLimiter, metrics_time_ns, to_nanos
11
12
 
12
13
  # internal
@@ -93,6 +94,11 @@ class RuntimepyWebsocketConnection(WebsocketJsonMessageConnection):
93
94
  async def ui_handler(outbox: JsonMessage, inbox: JsonMessage) -> None:
94
95
  """A simple loopback handler."""
95
96
 
97
+ # Handle bus messages.
98
+ if "bus" in inbox:
99
+ await BUS.send_ro("ui", inbox["bus"])
100
+ return
101
+
96
102
  # Handle frame messages.
97
103
  if "time" in inbox:
98
104
  # Poll UI state.
@@ -1,5 +1,5 @@
1
1
  aiofiles
2
- vcorelib>=3.6.2
2
+ vcorelib>=3.6.3
3
3
  svgen>=0.8.0
4
4
  websockets
5
5
  psutil
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: runtimepy
3
- Version: 5.15.1
3
+ Version: 5.15.2
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,10 +17,10 @@ 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: vcorelib>=3.6.2
21
20
  Requires-Dist: websockets
22
- Requires-Dist: svgen>=0.8.0
23
21
  Requires-Dist: aiofiles
22
+ Requires-Dist: vcorelib>=3.6.3
23
+ Requires-Dist: svgen>=0.8.0
24
24
  Requires-Dist: psutil
25
25
  Provides-Extra: test
26
26
  Requires-Dist: pylint; extra == "test"
@@ -51,11 +51,11 @@ Dynamic: requires-python
51
51
  =====================================
52
52
  generator=datazen
53
53
  version=3.2.3
54
- hash=21dc494ffe783ac9edf7769c4d5aa21e
54
+ hash=f1c75c9b812e8ff29fdda46f58009aef
55
55
  =====================================
56
56
  -->
57
57
 
58
- # runtimepy ([5.15.1](https://pypi.org/project/runtimepy/))
58
+ # runtimepy ([5.15.2](https://pypi.org/project/runtimepy/))
59
59
 
60
60
  [![python](https://img.shields.io/pypi/pyversions/runtimepy.svg)](https://pypi.org/project/runtimepy/)
61
61
  ![Build Status](https://github.com/libre-embedded/runtimepy/workflows/Python%20Package/badge.svg)
@@ -1,11 +1,11 @@
1
- runtimepy/__init__.py,sha256=fFFYCw5EFe16Vfqrut6lO_EODvjbdb7fbzjzBldFfq4,391
1
+ runtimepy/__init__.py,sha256=flvkr-56G2rUSF5MWiJFKowe_0LjNtJbpWzAdUU_B3M,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=vhbL-1vCt_sD7ZrLXZT-TX5WMQVC0hJMb_KMyUjDc9E,124
8
+ runtimepy/requirements.txt,sha256=dBOVAEEsNN89zt8_WRCcQsge6pxvmJ5srJdFAC8uAL8,124
9
9
  runtimepy/schemas.py,sha256=zTgxPm9DHZ0R_bmmOjNQMTXdtM_Hb1bE-Fog40jDCgg,839
10
10
  runtimepy/util.py,sha256=ZHSucNi-gbrcajoCv2dNjQs48dJPC3mTM_wZHx7AW1U,1719
11
11
  runtimepy/channel/__init__.py,sha256=bI1mfHmjUGrYcwePip2ddbMaGSkyQXQVfESL5dqXRdU,4716
@@ -63,7 +63,7 @@ runtimepy/data/js/events.js,sha256=rgz3Q_8J6sfU_7Sa7fG1mZD0pQ4S3vwN2mqcvQfePkM,5
63
63
  runtimepy/data/js/init.js,sha256=6RhwGRl_DBjMpztms2JOQiQlvdizcLeaiETNEh31KyU,1992
64
64
  runtimepy/data/js/main.js,sha256=nYIQ6O76EWqlzwX7oEwPXqC-LCUFCZYDADK9QbYRDKk,404
65
65
  runtimepy/data/js/markdown_page.js,sha256=R7Z2CwCk0dXED_4lwvDMXRNNB9ki9RvfwEKLPSwNWec,982
66
- runtimepy/data/js/sample.js,sha256=Q8UhPKNNrkQ7yFd5p1xqWNerVJ-s8WHJSAYn2ohUkNE,49
66
+ runtimepy/data/js/sample.js,sha256=-ezzcH-U4hchWYgE2mMzO9lUdkmNDA_OojJRzA17AGU,88
67
67
  runtimepy/data/js/util.js,sha256=Xc8pHUiFDBDvIqTamWrCYUOpF7iR9VNvPDCSCQAfLDA,1424
68
68
  runtimepy/data/js/worker.js,sha256=V9deGAynjvUr1D-WGi3wUW8rxoaNLvBvayMoLFZk3w0,2444
69
69
  runtimepy/data/js/classes/App.js,sha256=t3XVC7zSi8L_sMJ4KP-lyWyuD4cysCKkptN-lgjewN8,5159
@@ -81,7 +81,7 @@ runtimepy/data/js/classes/TabFilter.js,sha256=xajU1ZzVI0jFGhaHkKFX4-d2n2KlxiTC4i
81
81
  runtimepy/data/js/classes/TabInterface.js,sha256=xBBPX9UqMXvo6yguaJ5p3-Za1lLj3FAMLQk5rx4azZ8,14864
82
82
  runtimepy/data/js/classes/UnitSystem.js,sha256=ys4OMabq47k_VvJpRItm82U0IequDvx3ysRJOQzDf94,906
83
83
  runtimepy/data/js/classes/WindowHashManager.js,sha256=aR8zs1gUq9vkStLjyQj4rssx4dujLdDcoWNs91ViV44,7461
84
- runtimepy/data/js/classes/WorkerInterface.js,sha256=qARPW1CUDnHnVFVE8UjqKq74QfommCLwd6nisy-ayOw,346
84
+ runtimepy/data/js/classes/WorkerInterface.js,sha256=5jn5JX3cx-1oBVBpZ6X6E5x6uk5vmKQ98EMBoRAaqxk,402
85
85
  runtimepy/data/js/tab/env.js,sha256=MB79l3XyXKELWRqHcTnwWHiwdiceLHl1N_s-mS33pyU,22
86
86
  runtimepy/data/js/tab/sound.js,sha256=RSKp0AXM_zGOCsUvIT-BUjIzOE7Dp5NHiQG4fy7gBgY,1388
87
87
  runtimepy/data/js/third-party/webgl-debug.js,sha256=AtuSr5qje8a37S2ZE-ztA01QuGlGj9bGl-ntjlaqJIo,36878
@@ -223,7 +223,7 @@ runtimepy/net/server/app/env/tab/controls.py,sha256=11TidvphKyvLCgdW8Sjiyd6BpX4-
223
223
  runtimepy/net/server/app/env/tab/html.py,sha256=MbEQzxEPNcMCntGGm2qWli6ND_Ina46CEVzt7HF2yBg,8210
224
224
  runtimepy/net/server/app/env/tab/message.py,sha256=-J8wBo1KH0XoBi9VcUvl9LXZCaoFAmvFyMf_YFJVF6Q,3945
225
225
  runtimepy/net/server/struct/__init__.py,sha256=Zy37r6RLFu-XFr9vsanSq80BJdS6Dxr7zmPzQbb7xdw,1799
226
- runtimepy/net/server/websocket/__init__.py,sha256=KISuFUUQwNn6BXo8BOMuMOXyoVqE7Jw94ZQiSCQuRQE,5279
226
+ runtimepy/net/server/websocket/__init__.py,sha256=A0RTRGVsC_Ug2AyhfMdUqHjIN7O2Dor_rnP260g6YSM,5455
227
227
  runtimepy/net/server/websocket/state.py,sha256=tClzw_3pOV9fzsiqnmss0FUsZZPhInL2CnDi_jyrayI,2291
228
228
  runtimepy/net/stream/__init__.py,sha256=B4NipXGwA2AQ5UJ8YVJqqOg_X_Cm7p2nfIbIXJMiGBI,2359
229
229
  runtimepy/net/stream/base.py,sha256=lL2-t-T2ldfUJHuFIf8X4_WdXlsVZOue7w_FOLHtmQY,1987
@@ -306,9 +306,9 @@ runtimepy/tui/task.py,sha256=nUZo9fuOC-k1Wpqdzkv9v1tQirCI28fZVgcC13Ijvus,1093
306
306
  runtimepy/tui/channels/__init__.py,sha256=evDaiIn-YS9uGhdo8ZGtP9VK1ek6sr_P1nJ9JuSET0o,4536
307
307
  runtimepy/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
308
308
  runtimepy/ui/controls.py,sha256=L55Af-4vGq6ZHewdoA7C_mAYq35WXl8NzOdcsmQIo7M,1868
309
- runtimepy-5.15.1.dist-info/licenses/LICENSE,sha256=yKBRwbO-cOPBrlpsZmJkkSa33DfY31aE8t7lZ0DwlUo,1071
310
- runtimepy-5.15.1.dist-info/METADATA,sha256=3j48z5hnAIZFf5Nf3sQNIHAmDou7FrpFtm9YAwy6MD8,9268
311
- runtimepy-5.15.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
312
- runtimepy-5.15.1.dist-info/entry_points.txt,sha256=-btVBkYv7ybcopqZ_pRky-bEzu3vhbaG3W3Z7ERBiFE,51
313
- runtimepy-5.15.1.dist-info/top_level.txt,sha256=0jPmh6yqHyyJJDwEID-LpQly-9kQ3WRMjH7Lix8peLg,10
314
- runtimepy-5.15.1.dist-info/RECORD,,
309
+ runtimepy-5.15.2.dist-info/licenses/LICENSE,sha256=yKBRwbO-cOPBrlpsZmJkkSa33DfY31aE8t7lZ0DwlUo,1071
310
+ runtimepy-5.15.2.dist-info/METADATA,sha256=6UbqbnIRB9WTeD5cDcSUfCqcqlxEEC6o5CQgPSBAohM,9268
311
+ runtimepy-5.15.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
312
+ runtimepy-5.15.2.dist-info/entry_points.txt,sha256=-btVBkYv7ybcopqZ_pRky-bEzu3vhbaG3W3Z7ERBiFE,51
313
+ runtimepy-5.15.2.dist-info/top_level.txt,sha256=0jPmh6yqHyyJJDwEID-LpQly-9kQ3WRMjH7Lix8peLg,10
314
+ runtimepy-5.15.2.dist-info/RECORD,,