runtimepy 5.7.7__py3-none-any.whl → 5.7.9__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.1.4
4
- # hash=ed12f307211d1317e3ce6a7c4409b97f
4
+ # hash=5d30f53776c61076df3ffeca2fdb30a1
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.7.7"
13
+ VERSION = "5.7.9"
14
14
 
15
15
  # runtimepy-specific content.
16
16
  METRICS_NAME = "metrics"
@@ -50,6 +50,9 @@
50
50
  overflow-x: hidden;
51
51
  flex-grow: 0;
52
52
  flex-shrink: 0;
53
+
54
+ /* Don't allow plot area to become too hidden. */
55
+ max-width: 75%;
53
56
  }
54
57
 
55
58
  .channel-value {
@@ -1,3 +1,4 @@
1
1
  # Runtime Structures
2
2
 
3
+ Containers for underlying primitives that can participate in binary messaging.
3
4
  To be continued.
@@ -58,6 +58,7 @@ class TabState:
58
58
 
59
59
  for logger in self._loggers:
60
60
  logger.removeHandler(self.tab_logger)
61
+ self.tab_logger.drain_str()
61
62
  self._loggers = []
62
63
 
63
64
  def add_logger(self, logger: logging.Logger) -> None:
@@ -1,5 +1,5 @@
1
1
  aiofiles
2
- vcorelib>=3.4.2
2
+ vcorelib>=3.4.5
3
3
  svgen>=0.6.8
4
4
  websockets
5
5
  psutil
runtimepy/sample/peer.py CHANGED
@@ -49,6 +49,9 @@ class SamplePeer(RuntimepyPeer):
49
49
  )
50
50
  sig = asyncio.Event()
51
51
  task = asyncio.create_task(conn.process(stop_sig=sig))
52
- await conn.request(RequestHeader(target="/index.html"))
52
+
53
+ for endpoint in ["/index.html", "/app.html"]:
54
+ await conn.request(RequestHeader(target=endpoint))
55
+
53
56
  sig.set()
54
57
  await task
@@ -63,6 +63,8 @@ async def run(app: AppInfo) -> int:
63
63
 
64
64
  prog = SampleProgram.singleton()
65
65
 
66
+ prog.send_poll(2)
67
+
66
68
  await prog.share_config({"config": app.original_config()})
67
69
 
68
70
  assert prog is not None
runtimepy/schemas.py CHANGED
@@ -8,12 +8,17 @@ from typing import Optional as _Optional
8
8
  # third-party
9
9
  from vcorelib.dict.codec import DictCodec as _DictCodec
10
10
  from vcorelib.io import DEFAULT_INCLUDES_KEY
11
+ from vcorelib.paths.find import PACKAGE_SEARCH
11
12
  from vcorelib.schemas.base import SchemaMap as _SchemaMap
12
13
  from vcorelib.schemas.json import JsonSchemaMap as _JsonSchemaMap
13
14
 
14
15
  # internal
15
16
  from runtimepy import PKG_NAME
16
17
 
18
+ # Add this package to the search path.
19
+ if PKG_NAME not in PACKAGE_SEARCH:
20
+ PACKAGE_SEARCH.insert(0, PKG_NAME)
21
+
17
22
 
18
23
  class RuntimepyDictCodec(_DictCodec):
19
24
  """
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2024 Vaughn Kottler
3
+ Copyright (c) 2024 Libre Embedded
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,26 +1,26 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: runtimepy
3
- Version: 5.7.7
3
+ Version: 5.7.9
4
4
  Summary: A framework for implementing Python services.
5
5
  Home-page: https://github.com/vkottler/runtimepy
6
6
  Author: Vaughn Kottler
7
7
  Author-email: Vaughn Kottler <vaughn@libre-embedded.com>
8
8
  Maintainer-email: Vaughn Kottler <vaughn@libre-embedded.com>
9
- Classifier: Programming Language :: Python :: 3.11
10
9
  Classifier: Programming Language :: Python :: 3.12
10
+ Classifier: Programming Language :: Python :: 3.13
11
11
  Classifier: Operating System :: Microsoft :: Windows
12
12
  Classifier: Operating System :: MacOS
13
13
  Classifier: Operating System :: POSIX :: Linux
14
14
  Classifier: Operating System :: Unix
15
15
  Classifier: Development Status :: 5 - Production/Stable
16
16
  Classifier: License :: OSI Approved :: MIT License
17
- Requires-Python: >=3.11
17
+ Requires-Python: >=3.12
18
18
  Description-Content-Type: text/markdown
19
19
  License-File: LICENSE
20
- Requires-Dist: svgen >=0.6.8
21
20
  Requires-Dist: aiofiles
21
+ Requires-Dist: svgen >=0.6.8
22
22
  Requires-Dist: websockets
23
- Requires-Dist: vcorelib >=3.4.2
23
+ Requires-Dist: vcorelib >=3.4.5
24
24
  Requires-Dist: psutil
25
25
  Provides-Extra: test
26
26
  Requires-Dist: pylint ; extra == 'test'
@@ -45,11 +45,11 @@ Requires-Dist: uvloop ; (sys_platform != "win32" and sys_platform != "cygwin") a
45
45
  =====================================
46
46
  generator=datazen
47
47
  version=3.1.4
48
- hash=0bf47d2ff3fb0ed78ed013f4fcbc59e2
48
+ hash=9fbafffa1da655b349a05dfa48addf0b
49
49
  =====================================
50
50
  -->
51
51
 
52
- # runtimepy ([5.7.7](https://pypi.org/project/runtimepy/))
52
+ # runtimepy ([5.7.9](https://pypi.org/project/runtimepy/))
53
53
 
54
54
  [![python](https://img.shields.io/pypi/pyversions/runtimepy.svg)](https://pypi.org/project/runtimepy/)
55
55
  ![Build Status](https://github.com/vkottler/runtimepy/workflows/Python%20Package/badge.svg)
@@ -72,8 +72,8 @@ Requires-Dist: uvloop ; (sys_platform != "win32" and sys_platform != "cygwin") a
72
72
 
73
73
  This package is tested with the following Python minor versions:
74
74
 
75
- * [`python3.11`](https://docs.python.org/3.11/)
76
75
  * [`python3.12`](https://docs.python.org/3.12/)
76
+ * [`python3.13`](https://docs.python.org/3.13/)
77
77
 
78
78
  ## Platform Support
79
79
 
@@ -1,12 +1,12 @@
1
- runtimepy/__init__.py,sha256=ifv28DYiMhfJHoYR8HQoEZaUsU7HvJuVEy6bMmCZqYc,390
1
+ runtimepy/__init__.py,sha256=GL1as0g7a1sU6w4kqUfDAJXvMjjsu7qwNr2fYa4Jpes,390
2
2
  runtimepy/__main__.py,sha256=OPAed6hggoQdw-6QAR62mqLC-rCkdDhOq0wyeS2vDRI,332
3
3
  runtimepy/app.py,sha256=sTvatbsGZ2Hdel36Si_WUbNMtg9CzsJyExr5xjIcxDE,970
4
4
  runtimepy/dev_requirements.txt,sha256=j0dh11ztJAzfaUL0iFheGjaZj9ppDzmTkclTT8YKO8c,230
5
5
  runtimepy/entry.py,sha256=3672ccoslf2h8Wg5M_SuW6SoEx0oslRoi0ngZsgjNz8,1954
6
6
  runtimepy/mapping.py,sha256=VQK1vzmQVvYYKI85_II37-hIEbvgL3PzNy-WI6TTo80,5091
7
7
  runtimepy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- runtimepy/requirements.txt,sha256=77PnkPte9OZyyJg88wF_6su2H4XSvuN8rQH1tibLdv4,124
9
- runtimepy/schemas.py,sha256=NROlzVCZGLTJ9xe7d1eNIYmjzf0AOv3qHK-f6g1jGHk,678
8
+ runtimepy/requirements.txt,sha256=ntjU97UnQ5N7tqfwM7ljg77V5MBFFNBTfVuKS_KGwP0,124
9
+ runtimepy/schemas.py,sha256=zTgxPm9DHZ0R_bmmOjNQMTXdtM_Hb1bE-Fog40jDCgg,839
10
10
  runtimepy/util.py,sha256=1279Ea7CNHa1U_JvUydGAb2oEI2TxilXkq5V1RseCwU,1437
11
11
  runtimepy/channel/__init__.py,sha256=pf0RJ5g37_FVV8xoUNgzFGuIfbZEYSBA_cQlJSDTPDo,4774
12
12
  runtimepy/channel/registry.py,sha256=nk36qM_Bf6qK6AFR0plaZHR1PU7b4LZqbQ0feJqk4lc,4784
@@ -51,7 +51,7 @@ runtimepy/data/server.yaml,sha256=wS_Ceiu2TpkfPurpqoYoPlgzc9DAWtUd24MW7t-S5rU,97
51
51
  runtimepy/data/server_base.yaml,sha256=R_varVgGPGV4nxWYYwKUnHC9ufINi4V92YVhxCCC5wg,875
52
52
  runtimepy/data/server_dev.yaml,sha256=nQsPh7LuQig3pzHfdg_aD3yOUiCj1sKKfI-WwW3hXmQ,523
53
53
  runtimepy/data/tftp_server.yaml,sha256=-bFOWJSagI-fEQQcT8k7eDMJVfSPm2XAxLVG3dqUTa4,204
54
- runtimepy/data/css/bootstrap_extra.css,sha256=-clAoiYcyOkS4xana4O-jvGVsphOaYB_VlmX9mUjI80,1796
54
+ runtimepy/data/css/bootstrap_extra.css,sha256=sNyeeW2WlPvFx7l1YPCa679I-W7nwE012ybQPLYh_b4,1867
55
55
  runtimepy/data/css/font.css,sha256=Pe82E66rNi-cwlQ-_1GHAuhPGu5L4x5KqgV0dbDe51w,977
56
56
  runtimepy/data/css/main.css,sha256=OSg5g7FYbjsHY7QNbFCTPAD1MlypeoYfaOyAfvnT2kI,680
57
57
  runtimepy/data/js/DataConnection.js,sha256=DnX8FMehjJXqmI62UMYXSvl_XdfQMzq3XUDFbLu2GgI,98
@@ -85,7 +85,7 @@ runtimepy/data/js/third-party/webgl-debug.js,sha256=AtuSr5qje8a37S2ZE-ztA01QuGlG
85
85
  runtimepy/data/js/unused/pyodide.js,sha256=tcfj4XcYdhJSwFdHOQYpIHu0_2fGwkpWp4ZFyIRmmrc,864
86
86
  runtimepy/data/md/Connection.md,sha256=gh0KIQObDOYEf_DNxLcb8U3ngjTYtmsgOhvz_O7QYpY,32
87
87
  runtimepy/data/md/PeriodicTask.md,sha256=86JR4cgUjhFU3pnUXvKIETVEtmskYtQ_Ip-v2_10G0Y,35
88
- runtimepy/data/md/RuntimeStruct.md,sha256=-hci789w_x098IxoSv0-euP8GQ2B1CF-hxPuRpljEng,39
88
+ runtimepy/data/md/RuntimeStruct.md,sha256=W6R0JQLGGXPJt71pssakHPEOBa7Mntjh4ErwoNoM0Bs,118
89
89
  runtimepy/data/md/RuntimepyPeer.md,sha256=ayjL1V5KXRBEixG0vfxIajY2Dt_H5SYaZGSscXHSL4E,34
90
90
  runtimepy/data/md/SinusoidTask.md,sha256=nTGmZXFv-r9d-ZgmmIHr6SKSp-K-nzJW-B6NKhg7FQ8,739
91
91
  runtimepy/data/schemas/BitFields.yaml,sha256=7tSjEQNo_j458EN16AgIaC5eh0iEXCj9EbVTVc-EkB8,926
@@ -202,7 +202,7 @@ runtimepy/net/server/app/env/tab/html.py,sha256=IfKCQ_2qupIRtWIuodIBM8XAal1esSXo
202
202
  runtimepy/net/server/app/env/tab/message.py,sha256=OWqBIPRt6UdBHAXk5qvFMbnWuvIRUyp34lzb3GYdthk,4070
203
203
  runtimepy/net/server/struct/__init__.py,sha256=Zy37r6RLFu-XFr9vsanSq80BJdS6Dxr7zmPzQbb7xdw,1799
204
204
  runtimepy/net/server/websocket/__init__.py,sha256=KISuFUUQwNn6BXo8BOMuMOXyoVqE7Jw94ZQiSCQuRQE,5279
205
- runtimepy/net/server/websocket/state.py,sha256=4Onb3adxY9w2LoZRRBoyxSWHNcDGYAJtK7TyIFbt_ho,1792
205
+ runtimepy/net/server/websocket/state.py,sha256=a5xNeq13VPaz48HCqcIQdf1r3WV1a3iVernXM6w7P9g,1828
206
206
  runtimepy/net/stream/__init__.py,sha256=1PNossiE4S9wtPYoiHVsTeAMJFGtiak5vbsoIkVGfZs,2374
207
207
  runtimepy/net/stream/base.py,sha256=Dg4vcR0n9y2122AyJ-9W-jkEhNla_EHO-DqJJPfGD4k,1977
208
208
  runtimepy/net/stream/string.py,sha256=61mgserU3p6j5gAcK0oe0aKqL6vDh7NtgJvbPoiAUPM,784
@@ -259,8 +259,8 @@ runtimepy/registry/bool.py,sha256=ri56paLqwIOUo9JkSpwvrWmed9lHA851gke-0m8vGew,73
259
259
  runtimepy/registry/item.py,sha256=HPqxmzuK8aOc1siHzYScgxYxSMZ4RVTmnsRW2oNcW34,852
260
260
  runtimepy/registry/name.py,sha256=uhxmijwUT7x59NUYV4hJSe7VcnAbLDUSAPaKhR6K-N0,1749
261
261
  runtimepy/sample/__init__.py,sha256=N7P6hnCLF9NwnkZA1h3LzS2C334SAO48Fu8adHxWGLU,56
262
- runtimepy/sample/peer.py,sha256=eZJ3gmvGsXoRTIyJ_OS71T5C1kjysbvd-yF5xZxedLU,1621
263
- runtimepy/sample/program.py,sha256=wL61OzdUYrHw3Lwbd_eeBDARhS7kEzdifGOFgXvvnAw,2332
262
+ runtimepy/sample/peer.py,sha256=uNlIPAv1-wjGUWdR0AM3L9NUMjnIMJBqQ9ZsHdTLx3Q,1688
263
+ runtimepy/sample/program.py,sha256=I8_JGjEAh-d3eEw4M9l9CxEw4KG4s8f4i8STwRei5IY,2355
264
264
  runtimepy/struct/__init__.py,sha256=wFjLwX83ztCF1CuFxnldetzMOoBs_UMirLV778GBGZc,2220
265
265
  runtimepy/subprocess/__init__.py,sha256=VAiFrYFCU5ETDVoWLOVlrrSsx2d1_atYXUfXYc_OQ9g,4059
266
266
  runtimepy/subprocess/interface.py,sha256=rYvM8bgoT4DoXGhdidhfmivzrjmEoW6788DjGyAdJ7A,8032
@@ -284,9 +284,9 @@ runtimepy/tui/task.py,sha256=nUZo9fuOC-k1Wpqdzkv9v1tQirCI28fZVgcC13Ijvus,1093
284
284
  runtimepy/tui/channels/__init__.py,sha256=evDaiIn-YS9uGhdo8ZGtP9VK1ek6sr_P1nJ9JuSET0o,4536
285
285
  runtimepy/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
286
286
  runtimepy/ui/controls.py,sha256=yvT7h3thbYaitsakcIAJ90EwKzJ4b-jnc6p3UuVf_XE,1241
287
- runtimepy-5.7.7.dist-info/LICENSE,sha256=okYCYhGsx_BlzvFdoNVBVpw_Cfb4SOqHA_VAARml4Hc,1071
288
- runtimepy-5.7.7.dist-info/METADATA,sha256=RbUgD3uuOyvV__lOtj8TAIca5btsr-2wW4monhtDWZ8,9308
289
- runtimepy-5.7.7.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
290
- runtimepy-5.7.7.dist-info/entry_points.txt,sha256=-btVBkYv7ybcopqZ_pRky-bEzu3vhbaG3W3Z7ERBiFE,51
291
- runtimepy-5.7.7.dist-info/top_level.txt,sha256=0jPmh6yqHyyJJDwEID-LpQly-9kQ3WRMjH7Lix8peLg,10
292
- runtimepy-5.7.7.dist-info/RECORD,,
287
+ runtimepy-5.7.9.dist-info/LICENSE,sha256=s2ILEylm2dAJJXL25nM92IWLRKmJW92zQRQe_cfdsHo,1071
288
+ runtimepy-5.7.9.dist-info/METADATA,sha256=n3bYpGmFzA7nS0zhHK2DNNzcTizdlZCfzCC2kRuKQoc,9308
289
+ runtimepy-5.7.9.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
290
+ runtimepy-5.7.9.dist-info/entry_points.txt,sha256=-btVBkYv7ybcopqZ_pRky-bEzu3vhbaG3W3Z7ERBiFE,51
291
+ runtimepy-5.7.9.dist-info/top_level.txt,sha256=0jPmh6yqHyyJJDwEID-LpQly-9kQ3WRMjH7Lix8peLg,10
292
+ runtimepy-5.7.9.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.2.0)
2
+ Generator: setuptools (75.3.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5