runtimepy 5.8.2__py3-none-any.whl → 5.8.4__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=2ba96609ce56b23f10e95e08eb767442
4
+ # hash=99838ab674af55409015e5abdd55fc6e
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.8.2"
13
+ VERSION = "5.8.4"
14
14
 
15
15
  # runtimepy-specific content.
16
16
  METRICS_NAME = "metrics"
@@ -1,5 +1,7 @@
1
1
  html {
2
2
  height: 100%;
3
+ width: 100%;
4
+ position: fixed;
3
5
  }
4
6
 
5
7
  body {
@@ -165,8 +165,14 @@ def slider(
165
165
  return elem
166
166
 
167
167
 
168
+ TABLE_CLASSES = ["table", "table-hover", "table-striped", "table-bordered"]
169
+
170
+
168
171
  def centered_markdown(
169
- parent: Element, markdown: str, *container_classes: str
172
+ parent: Element,
173
+ markdown: str,
174
+ *container_classes: str,
175
+ table_classes: list[str] = None,
170
176
  ) -> Element:
171
177
  """Add centered markdown."""
172
178
 
@@ -188,7 +194,21 @@ def centered_markdown(
188
194
 
189
195
  with StringIO() as stream:
190
196
  writer = IndentedFileWriter(stream)
191
- writer.write_markdown(markdown)
197
+
198
+ if table_classes is None:
199
+ table_classes = TABLE_CLASSES
200
+
201
+ def render_hook(data: str) -> str:
202
+ """Make some adjustments to various element declarations."""
203
+
204
+ if table_classes:
205
+ data = data.replace(
206
+ "<table>", f'<table class="{' '.join(table_classes)}">'
207
+ )
208
+
209
+ return data
210
+
211
+ writer.write_markdown(markdown, hook=render_hook)
192
212
  div(
193
213
  text=stream.getvalue(),
194
214
  parent=horiz_container,
@@ -1,5 +1,5 @@
1
1
  aiofiles
2
- vcorelib>=3.4.7
2
+ vcorelib>=3.4.8
3
3
  svgen>=0.7.4
4
4
  websockets
5
5
  psutil
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: runtimepy
3
- Version: 5.8.2
3
+ Version: 5.8.4
4
4
  Summary: A framework for implementing Python services.
5
5
  Home-page: https://github.com/vkottler/runtimepy
6
6
  Author: Vaughn Kottler
@@ -18,10 +18,10 @@ Requires-Python: >=3.12
18
18
  Description-Content-Type: text/markdown
19
19
  License-File: LICENSE
20
20
  Requires-Dist: svgen>=0.7.4
21
+ Requires-Dist: vcorelib>=3.4.8
21
22
  Requires-Dist: websockets
22
- Requires-Dist: aiofiles
23
- Requires-Dist: vcorelib>=3.4.7
24
23
  Requires-Dist: psutil
24
+ Requires-Dist: aiofiles
25
25
  Provides-Extra: test
26
26
  Requires-Dist: pylint; extra == "test"
27
27
  Requires-Dist: flake8; extra == "test"
@@ -45,11 +45,11 @@ Requires-Dist: uvloop; (sys_platform != "win32" and sys_platform != "cygwin") an
45
45
  =====================================
46
46
  generator=datazen
47
47
  version=3.1.4
48
- hash=f08f284eec5884d8657cdaf9e4105284
48
+ hash=f89c565370dd68d4215345aeab6feff4
49
49
  =====================================
50
50
  -->
51
51
 
52
- # runtimepy ([5.8.2](https://pypi.org/project/runtimepy/))
52
+ # runtimepy ([5.8.4](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)
@@ -1,11 +1,11 @@
1
- runtimepy/__init__.py,sha256=pHPXa4ykbq-czmNz9J7gmRdvOlWgDPNfsUvvlnK1L28,390
1
+ runtimepy/__init__.py,sha256=oMrAywftcbstGYwY0z1DXS3TjHOgKgWR7CH65gdZkbQ,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=z6YEkhMxILetIJNG6hL-cwxNCpuNUvU5u5K1mwSDLP8,124
8
+ runtimepy/requirements.txt,sha256=06GUbnvKnIxnUcTivKEv2Ik34C9RU8Sm5Ko9uvI1f9s,124
9
9
  runtimepy/schemas.py,sha256=zTgxPm9DHZ0R_bmmOjNQMTXdtM_Hb1bE-Fog40jDCgg,839
10
10
  runtimepy/util.py,sha256=GuyIHVFGMS02OR6-O3LnlV3DqG5hj4-IUud0QM6WicA,1684
11
11
  runtimepy/channel/__init__.py,sha256=pf0RJ5g37_FVV8xoUNgzFGuIfbZEYSBA_cQlJSDTPDo,4774
@@ -53,7 +53,7 @@ runtimepy/data/server_dev.yaml,sha256=nQsPh7LuQig3pzHfdg_aD3yOUiCj1sKKfI-WwW3hXm
53
53
  runtimepy/data/tftp_server.yaml,sha256=-bFOWJSagI-fEQQcT8k7eDMJVfSPm2XAxLVG3dqUTa4,204
54
54
  runtimepy/data/css/bootstrap_extra.css,sha256=kJLOp8j-vRxnWzQOf_eOz4kL8Mbrwxuwk3YNh90HgWM,1907
55
55
  runtimepy/data/css/font.css,sha256=Pe82E66rNi-cwlQ-_1GHAuhPGu5L4x5KqgV0dbDe51w,977
56
- runtimepy/data/css/main.css,sha256=OSg5g7FYbjsHY7QNbFCTPAD1MlypeoYfaOyAfvnT2kI,680
56
+ runtimepy/data/css/main.css,sha256=kdqSsltzP78dgbiAQCTtsvK9p3kpbtQ809PD5tK9LVE,714
57
57
  runtimepy/data/js/DataConnection.js,sha256=DnX8FMehjJXqmI62UMYXSvl_XdfQMzq3XUDFbLu2GgI,98
58
58
  runtimepy/data/js/JsonConnection.js,sha256=rclZrbmWc_zSs6I_JhOgxnVPFIyPMo5WdjAe8alyZ3o,2729
59
59
  runtimepy/data/js/audio.js,sha256=bLkBqbeHMiGGidfL3iXjmVoF9seK-ZeZ3kwgOrcpgk4,1092
@@ -169,7 +169,7 @@ runtimepy/net/factories/__init__.py,sha256=rPdBVpgzzQYF61w6efQrEre71yMPHd6kanBpM
169
169
  runtimepy/net/html/__init__.py,sha256=BQeGpZWfGSmMg1R0N9GaOZfyFn4UQGHKoFOhd-1G75Q,3983
170
170
  runtimepy/net/html/arbiter.py,sha256=SkZZm-CmyCxbAcWZbvCLH-RwFUJPvrvR5yWysVVuvCM,951
171
171
  runtimepy/net/html/bootstrap/__init__.py,sha256=ONhwx68piWjsrf88FMpda84TWSPqgi-RZCBuWCci_ak,1444
172
- runtimepy/net/html/bootstrap/elements.py,sha256=DJYCsheNtW1lpooBVTAeN2LgAdw4uu2v0PsMk8u3i2k,4831
172
+ runtimepy/net/html/bootstrap/elements.py,sha256=NBdjg0_1LTxoyJrNQNw-2v8AWaiW2S1poJcDo4P6GWE,5355
173
173
  runtimepy/net/html/bootstrap/tabs.py,sha256=7-0lJOD9SALmsViUYGJAXF0PTSqtffc4mpoFwmYcnXE,3842
174
174
  runtimepy/net/http/__init__.py,sha256=4TjFp_ajAVcOEvwtjlF6mG-9EbEePqFZht-QpWIKVBo,1802
175
175
  runtimepy/net/http/common.py,sha256=vpoO6XwRmrZmTkCu9bkI0HnyaD8MWTpV7ADesCNrfRE,2237
@@ -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.8.2.dist-info/LICENSE,sha256=s2ILEylm2dAJJXL25nM92IWLRKmJW92zQRQe_cfdsHo,1071
288
- runtimepy-5.8.2.dist-info/METADATA,sha256=E9aOIvplj2wpgb_vEEHHAaJlFYa17GUxnXEjsjZtW_Y,9288
289
- runtimepy-5.8.2.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
290
- runtimepy-5.8.2.dist-info/entry_points.txt,sha256=-btVBkYv7ybcopqZ_pRky-bEzu3vhbaG3W3Z7ERBiFE,51
291
- runtimepy-5.8.2.dist-info/top_level.txt,sha256=0jPmh6yqHyyJJDwEID-LpQly-9kQ3WRMjH7Lix8peLg,10
292
- runtimepy-5.8.2.dist-info/RECORD,,
287
+ runtimepy-5.8.4.dist-info/LICENSE,sha256=s2ILEylm2dAJJXL25nM92IWLRKmJW92zQRQe_cfdsHo,1071
288
+ runtimepy-5.8.4.dist-info/METADATA,sha256=xOJmQiU6_1njXfp36M4IuEavC0ddklFVwz-kWL7vur4,9288
289
+ runtimepy-5.8.4.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
290
+ runtimepy-5.8.4.dist-info/entry_points.txt,sha256=-btVBkYv7ybcopqZ_pRky-bEzu3vhbaG3W3Z7ERBiFE,51
291
+ runtimepy-5.8.4.dist-info/top_level.txt,sha256=0jPmh6yqHyyJJDwEID-LpQly-9kQ3WRMjH7Lix8peLg,10
292
+ runtimepy-5.8.4.dist-info/RECORD,,