runtimepy 5.7.1__tar.gz → 5.7.2__tar.gz

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.
Files changed (299) hide show
  1. {runtimepy-5.7.1/runtimepy.egg-info → runtimepy-5.7.2}/PKG-INFO +4 -4
  2. {runtimepy-5.7.1 → runtimepy-5.7.2}/README.md +2 -2
  3. {runtimepy-5.7.1 → runtimepy-5.7.2}/pyproject.toml +1 -1
  4. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/__init__.py +2 -2
  5. runtimepy-5.7.2/runtimepy/data/js/main.js +14 -0
  6. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/__init__.py +40 -6
  7. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/__init__.py +5 -0
  8. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/json.py +2 -1
  9. runtimepy-5.7.2/runtimepy/util.py +60 -0
  10. {runtimepy-5.7.1 → runtimepy-5.7.2/runtimepy.egg-info}/PKG-INFO +4 -4
  11. runtimepy-5.7.1/runtimepy/data/js/main.js +0 -6
  12. runtimepy-5.7.1/runtimepy/util.py +0 -18
  13. {runtimepy-5.7.1 → runtimepy-5.7.2}/LICENSE +0 -0
  14. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/__main__.py +0 -0
  15. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/app.py +0 -0
  16. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/channel/__init__.py +0 -0
  17. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/channel/environment/__init__.py +0 -0
  18. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/channel/environment/array.py +0 -0
  19. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/channel/environment/base.py +0 -0
  20. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/channel/environment/command/__init__.py +0 -0
  21. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/channel/environment/command/parser.py +0 -0
  22. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/channel/environment/command/processor.py +0 -0
  23. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/channel/environment/command/result.py +0 -0
  24. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/channel/environment/create.py +0 -0
  25. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/channel/environment/file.py +0 -0
  26. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/channel/environment/sample.py +0 -0
  27. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/channel/environment/telemetry.py +0 -0
  28. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/channel/event/__init__.py +0 -0
  29. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/channel/event/header.py +0 -0
  30. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/channel/registry.py +0 -0
  31. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/codec/__init__.py +0 -0
  32. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/codec/protocol/__init__.py +0 -0
  33. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/codec/protocol/base.py +0 -0
  34. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/codec/protocol/json.py +0 -0
  35. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/codec/system/__init__.py +0 -0
  36. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/commands/__init__.py +0 -0
  37. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/commands/all.py +0 -0
  38. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/commands/arbiter.py +0 -0
  39. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/commands/common.py +0 -0
  40. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/commands/mtu.py +0 -0
  41. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/commands/server.py +0 -0
  42. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/commands/task.py +0 -0
  43. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/commands/tftp.py +0 -0
  44. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/commands/tui.py +0 -0
  45. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/control/__init__.py +0 -0
  46. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/control/env/__init__.py +0 -0
  47. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/control/source.py +0 -0
  48. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/control/step.py +0 -0
  49. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/browser.yaml +0 -0
  50. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/css/bootstrap_extra.css +0 -0
  51. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/css/font.css +0 -0
  52. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/css/main.css +0 -0
  53. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/dummy_load.yaml +0 -0
  54. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/factories.yaml +0 -0
  55. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/favicon.ico +0 -0
  56. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/DataConnection.js +0 -0
  57. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/JsonConnection.js +0 -0
  58. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/audio.js +0 -0
  59. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/classes/App.js +0 -0
  60. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/classes/ChannelTable.js +0 -0
  61. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/classes/DataConnection.js +0 -0
  62. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/classes/JsonConnection.js +0 -0
  63. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/classes/OverlayManager.js +0 -0
  64. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/classes/Plot.js +0 -0
  65. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/classes/PlotDrawer.js +0 -0
  66. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/classes/PlotManager.js +0 -0
  67. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/classes/PlotModalManager.js +0 -0
  68. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/classes/PointBuffer.js +0 -0
  69. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/classes/PointManager.js +0 -0
  70. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/classes/TabFilter.js +0 -0
  71. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/classes/TabInterface.js +0 -0
  72. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/classes/UnitSystem.js +0 -0
  73. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/classes/WindowHashManager.js +0 -0
  74. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/classes/WorkerInterface.js +0 -0
  75. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/events.js +0 -0
  76. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/init.js +0 -0
  77. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/tab/env.js +0 -0
  78. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/tab/sound.js +0 -0
  79. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/third-party/webgl-debug.js +0 -0
  80. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/unused/pyodide.js +0 -0
  81. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/util.js +0 -0
  82. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/js/worker.js +0 -0
  83. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/md/Connection.md +0 -0
  84. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/md/PeriodicTask.md +0 -0
  85. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/md/RuntimeStruct.md +0 -0
  86. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/md/RuntimepyPeer.md +0 -0
  87. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/md/SinusoidTask.md +0 -0
  88. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/sample_telemetry.yaml +0 -0
  89. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/schemas/BitFields.yaml +0 -0
  90. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/schemas/Channel.yaml +0 -0
  91. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/schemas/ChannelCommand.yaml +0 -0
  92. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/schemas/ChannelRegistry.yaml +0 -0
  93. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/schemas/ClientConnectionConfig.yaml +0 -0
  94. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/schemas/ConnectionArbiterConfig.yaml +0 -0
  95. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/schemas/EnumRegistry.yaml +0 -0
  96. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/schemas/FindFile.yaml +0 -0
  97. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/schemas/PeerProcessConfig.yaml +0 -0
  98. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/schemas/RuntimeEnum.yaml +0 -0
  99. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/schemas/ServerConnectionConfig.yaml +0 -0
  100. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/schemas/StructConfig.yaml +0 -0
  101. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/schemas/TaskConfig.yaml +0 -0
  102. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/schemas/channel_controls.yaml +0 -0
  103. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/schemas/has_config.yaml +0 -0
  104. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/schemas/has_factory.yaml +0 -0
  105. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/schemas/has_markdown.yaml +0 -0
  106. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/schemas/has_name.yaml +0 -0
  107. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/schemas/has_request_flag.yaml +0 -0
  108. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/server.yaml +0 -0
  109. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/server_base.yaml +0 -0
  110. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/server_dev.yaml +0 -0
  111. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/static/svg/chip-circle-bootstrap.svg +0 -0
  112. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/static/woff2/CascadiaCode-Bold.woff2 +0 -0
  113. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/static/woff2/CascadiaCode-BoldItalic.woff2 +0 -0
  114. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/static/woff2/CascadiaCode-Italic.woff2 +0 -0
  115. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/static/woff2/CascadiaCode-Regular.woff2 +0 -0
  116. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/static/woff2/CascadiaMono-Bold.woff2 +0 -0
  117. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/static/woff2/CascadiaMono-BoldItalic.woff2 +0 -0
  118. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/static/woff2/CascadiaMono-Italic.woff2 +0 -0
  119. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/static/woff2/CascadiaMono-Regular.woff2 +0 -0
  120. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/static/woff2/README.md +0 -0
  121. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/data/tftp_server.yaml +0 -0
  122. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/dev_requirements.txt +0 -0
  123. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/entry.py +0 -0
  124. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/enum/__init__.py +0 -0
  125. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/enum/registry.py +0 -0
  126. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/enum/types.py +0 -0
  127. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/mapping.py +0 -0
  128. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/message/__init__.py +0 -0
  129. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/message/handlers.py +0 -0
  130. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/message/interface.py +0 -0
  131. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/message/types.py +0 -0
  132. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/metrics/__init__.py +0 -0
  133. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/metrics/channel.py +0 -0
  134. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/metrics/connection.py +0 -0
  135. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/metrics/task.py +0 -0
  136. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/mixins/__init__.py +0 -0
  137. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/mixins/async_command.py +0 -0
  138. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/mixins/enum.py +0 -0
  139. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/mixins/environment.py +0 -0
  140. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/mixins/finalize.py +0 -0
  141. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/mixins/logging.py +0 -0
  142. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/mixins/psutil.py +0 -0
  143. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/mixins/regex.py +0 -0
  144. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/mixins/trig.py +0 -0
  145. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/__init__.py +0 -0
  146. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/apps/__init__.py +0 -0
  147. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/arbiter/__init__.py +0 -0
  148. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/arbiter/base.py +0 -0
  149. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/arbiter/config/__init__.py +0 -0
  150. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/arbiter/config/codec.py +0 -0
  151. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/arbiter/config/util.py +0 -0
  152. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/arbiter/factory/__init__.py +0 -0
  153. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/arbiter/factory/connection.py +0 -0
  154. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/arbiter/factory/task.py +0 -0
  155. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/arbiter/housekeeping/__init__.py +0 -0
  156. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/arbiter/imports/__init__.py +0 -0
  157. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/arbiter/imports/util.py +0 -0
  158. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/arbiter/info.py +0 -0
  159. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/arbiter/result.py +0 -0
  160. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/arbiter/struct/__init__.py +0 -0
  161. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/arbiter/task.py +0 -0
  162. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/arbiter/tcp/__init__.py +0 -0
  163. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/arbiter/tcp/json.py +0 -0
  164. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/arbiter/udp.py +0 -0
  165. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/arbiter/websocket.py +0 -0
  166. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/backoff.py +0 -0
  167. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/connection.py +0 -0
  168. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/factories/__init__.py +0 -0
  169. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/http/__init__.py +0 -0
  170. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/http/common.py +0 -0
  171. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/http/header.py +0 -0
  172. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/http/request_target.py +0 -0
  173. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/http/response.py +0 -0
  174. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/http/state.py +0 -0
  175. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/http/version.py +0 -0
  176. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/manager.py +0 -0
  177. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/mixin.py +0 -0
  178. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/mtu.py +0 -0
  179. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/base.py +0 -0
  180. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/bootstrap/__init__.py +0 -0
  181. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/bootstrap/elements.py +0 -0
  182. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/bootstrap/tabs.py +0 -0
  183. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/create.py +0 -0
  184. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/elements.py +0 -0
  185. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/env/__init__.py +0 -0
  186. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/env/modal.py +0 -0
  187. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/env/settings.py +0 -0
  188. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/env/tab/__init__.py +0 -0
  189. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/env/tab/base.py +0 -0
  190. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/env/tab/controls.py +0 -0
  191. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/env/tab/html.py +0 -0
  192. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/env/tab/message.py +0 -0
  193. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/env/widgets.py +0 -0
  194. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/files.py +0 -0
  195. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/landing_page.py +0 -0
  196. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/placeholder.py +0 -0
  197. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/pyodide.py +0 -0
  198. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/sound.py +0 -0
  199. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/app/tab.py +0 -0
  200. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/html.py +0 -0
  201. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/struct/__init__.py +0 -0
  202. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/websocket/__init__.py +0 -0
  203. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/server/websocket/state.py +0 -0
  204. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/ssl.py +0 -0
  205. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/stream/__init__.py +0 -0
  206. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/stream/base.py +0 -0
  207. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/stream/json/__init__.py +0 -0
  208. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/stream/string.py +0 -0
  209. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/tcp/__init__.py +0 -0
  210. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/tcp/connection.py +0 -0
  211. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/tcp/create.py +0 -0
  212. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/tcp/http/__init__.py +0 -0
  213. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/tcp/protocol.py +0 -0
  214. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/tcp/scpi/__init__.py +0 -0
  215. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/tcp/telnet/__init__.py +0 -0
  216. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/tcp/telnet/codes.py +0 -0
  217. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/tcp/telnet/np_05b.py +0 -0
  218. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/udp/__init__.py +0 -0
  219. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/udp/connection.py +0 -0
  220. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/udp/create.py +0 -0
  221. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/udp/protocol.py +0 -0
  222. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/udp/queue.py +0 -0
  223. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/udp/tftp/__init__.py +0 -0
  224. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/udp/tftp/base.py +0 -0
  225. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/udp/tftp/endpoint.py +0 -0
  226. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/udp/tftp/enums.py +0 -0
  227. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/udp/tftp/io.py +0 -0
  228. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/util.py +0 -0
  229. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/websocket/__init__.py +0 -0
  230. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/net/websocket/connection.py +0 -0
  231. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/noise/__init__.py +0 -0
  232. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/__init__.py +0 -0
  233. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/array/__init__.py +0 -0
  234. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/base.py +0 -0
  235. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/bool.py +0 -0
  236. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/byte_order.py +0 -0
  237. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/evaluation.py +0 -0
  238. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/field/__init__.py +0 -0
  239. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/field/fields.py +0 -0
  240. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/field/manager/__init__.py +0 -0
  241. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/field/manager/base.py +0 -0
  242. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/float.py +0 -0
  243. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/int.py +0 -0
  244. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/scaling.py +0 -0
  245. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/serializable/__init__.py +0 -0
  246. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/serializable/base.py +0 -0
  247. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/serializable/fixed.py +0 -0
  248. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/serializable/framer.py +0 -0
  249. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/serializable/prefixed.py +0 -0
  250. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/string.py +0 -0
  251. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/types/__init__.py +0 -0
  252. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/types/base.py +0 -0
  253. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/types/bool.py +0 -0
  254. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/types/bounds.py +0 -0
  255. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/types/float.py +0 -0
  256. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/primitives/types/int.py +0 -0
  257. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/py.typed +0 -0
  258. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/registry/__init__.py +0 -0
  259. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/registry/bool.py +0 -0
  260. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/registry/item.py +0 -0
  261. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/registry/name.py +0 -0
  262. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/requirements.txt +0 -0
  263. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/sample/__init__.py +0 -0
  264. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/sample/peer.py +0 -0
  265. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/sample/program.py +0 -0
  266. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/schemas.py +0 -0
  267. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/struct/__init__.py +0 -0
  268. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/subprocess/__init__.py +0 -0
  269. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/subprocess/interface.py +0 -0
  270. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/subprocess/peer.py +0 -0
  271. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/subprocess/program.py +0 -0
  272. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/subprocess/protocol.py +0 -0
  273. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/task/__init__.py +0 -0
  274. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/task/asynchronous.py +0 -0
  275. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/task/basic/__init__.py +0 -0
  276. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/task/basic/manager.py +0 -0
  277. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/task/basic/periodic.py +0 -0
  278. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/task/sample.py +0 -0
  279. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/task/trig/__init__.py +0 -0
  280. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/telemetry/__init__.py +0 -0
  281. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/telemetry/sample.py +0 -0
  282. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/tui/__init__.py +0 -0
  283. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/tui/channels/__init__.py +0 -0
  284. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/tui/cursor.py +0 -0
  285. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/tui/mixin.py +0 -0
  286. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/tui/mock.py +0 -0
  287. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/tui/task.py +0 -0
  288. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/ui/__init__.py +0 -0
  289. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy/ui/controls.py +0 -0
  290. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy.egg-info/SOURCES.txt +0 -0
  291. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy.egg-info/dependency_links.txt +0 -0
  292. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy.egg-info/entry_points.txt +0 -0
  293. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy.egg-info/requires.txt +1 -1
  294. {runtimepy-5.7.1 → runtimepy-5.7.2}/runtimepy.egg-info/top_level.txt +0 -0
  295. {runtimepy-5.7.1 → runtimepy-5.7.2}/setup.cfg +0 -0
  296. {runtimepy-5.7.1 → runtimepy-5.7.2}/setup.py +0 -0
  297. {runtimepy-5.7.1 → runtimepy-5.7.2}/tests/test_entry.py +0 -0
  298. {runtimepy-5.7.1 → runtimepy-5.7.2}/tests/test_mapping.py +0 -0
  299. {runtimepy-5.7.1 → runtimepy-5.7.2}/tests/test_resources.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: runtimepy
3
- Version: 5.7.1
3
+ Version: 5.7.2
4
4
  Summary: A framework for implementing Python services.
5
5
  Home-page: https://github.com/vkottler/runtimepy
6
6
  Author: Vaughn Kottler
@@ -18,9 +18,9 @@ Requires-Python: >=3.11
18
18
  Description-Content-Type: text/markdown
19
19
  License-File: LICENSE
20
20
  Requires-Dist: psutil
21
- Requires-Dist: vcorelib>=3.4.2
22
21
  Requires-Dist: svgen>=0.6.8
23
22
  Requires-Dist: websockets
23
+ Requires-Dist: vcorelib>=3.4.2
24
24
  Requires-Dist: aiofiles
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") an
45
45
  =====================================
46
46
  generator=datazen
47
47
  version=3.1.4
48
- hash=8247340c8c4e6982a54b831c311f2c0b
48
+ hash=618546df79dd7f387faa6f84f9a58c79
49
49
  =====================================
50
50
  -->
51
51
 
52
- # runtimepy ([5.7.1](https://pypi.org/project/runtimepy/))
52
+ # runtimepy ([5.7.2](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)
@@ -2,11 +2,11 @@
2
2
  =====================================
3
3
  generator=datazen
4
4
  version=3.1.4
5
- hash=8247340c8c4e6982a54b831c311f2c0b
5
+ hash=618546df79dd7f387faa6f84f9a58c79
6
6
  =====================================
7
7
  -->
8
8
 
9
- # runtimepy ([5.7.1](https://pypi.org/project/runtimepy/))
9
+ # runtimepy ([5.7.2](https://pypi.org/project/runtimepy/))
10
10
 
11
11
  [![python](https://img.shields.io/pypi/pyversions/runtimepy.svg)](https://pypi.org/project/runtimepy/)
12
12
  ![Build Status](https://github.com/vkottler/runtimepy/workflows/Python%20Package/badge.svg)
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta:__legacy__"
4
4
 
5
5
  [project]
6
6
  name = "runtimepy"
7
- version = "5.7.1"
7
+ version = "5.7.2"
8
8
  description = "A framework for implementing Python services."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -1,7 +1,7 @@
1
1
  # =====================================
2
2
  # generator=datazen
3
3
  # version=3.1.4
4
- # hash=405585c0fbfcc966ef193f744f21fa59
4
+ # hash=0a0c607a8f78dc35cf48427539c9bafa
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.1"
13
+ VERSION = "5.7.2"
14
14
 
15
15
  # runtimepy-specific content.
16
16
  METRICS_NAME = "metrics"
@@ -0,0 +1,14 @@
1
+ function changeFileName(urlObj, newFileName) {
2
+ let pathParts = urlObj.pathname.split('/');
3
+ pathParts[pathParts.length - 1] = newFileName;
4
+ return pathParts.join('/');
5
+ }
6
+
7
+ /* Load configuration data then run application entry. */
8
+ window.onload = async () => {
9
+ await (
10
+ new App(
11
+ await (await fetch(changeFileName(window.location, "json"))).json(),
12
+ worker))
13
+ .main();
14
+ };
@@ -3,11 +3,12 @@ A module implementing a server interface for this package.
3
3
  """
4
4
 
5
5
  # built-in
6
+ import http
6
7
  from io import StringIO
7
8
  import logging
8
9
  import mimetypes
9
10
  from pathlib import Path
10
- from typing import Any, Optional, TextIO
11
+ from typing import Any, Optional, TextIO, Union
11
12
 
12
13
  # third-party
13
14
  from vcorelib.io import JsonObject
@@ -22,6 +23,7 @@ from runtimepy.net.http.response import ResponseHeader
22
23
  from runtimepy.net.server.html import HtmlApp, HtmlApps, html_handler
23
24
  from runtimepy.net.server.json import encode_json, json_handler
24
25
  from runtimepy.net.tcp.http import HttpConnection
26
+ from runtimepy.util import normalize_root, path_has_part
25
27
 
26
28
  MIMETYPES_INIT = False
27
29
 
@@ -48,6 +50,7 @@ class RuntimepyServerConnection(HttpConnection):
48
50
 
49
51
  paths: list[Path]
50
52
  class_paths: list[Pathlike] = [Path(), package_data_dir()]
53
+ class_redirect_paths: dict[Path, Union[str, Path]] = {}
51
54
 
52
55
  def add_path(self, path: Pathlike, front: bool = False) -> None:
53
56
  """Add a path."""
@@ -60,6 +63,19 @@ class RuntimepyServerConnection(HttpConnection):
60
63
 
61
64
  self.log_paths()
62
65
 
66
+ @classmethod
67
+ def add_redirect_path(
68
+ cls, dest: Union[str, Path], *src_parts: Union[str, Path]
69
+ ) -> None:
70
+ """Add a redirect path."""
71
+
72
+ source = normalize_root(*src_parts)
73
+ assert source not in cls.class_redirect_paths, (
74
+ source,
75
+ cls.class_redirect_paths,
76
+ )
77
+ cls.class_redirect_paths[source] = dest
78
+
63
79
  def log_paths(self) -> None:
64
80
  """Log search paths."""
65
81
 
@@ -90,6 +106,23 @@ class RuntimepyServerConnection(HttpConnection):
90
106
  with favicon.open("rb") as favicon_fd:
91
107
  type(self).favicon_data = favicon_fd.read()
92
108
 
109
+ def try_redirect(
110
+ self, path: PathMaybeQuery, response: ResponseHeader
111
+ ) -> Optional[bytes]:
112
+ """Try handling any HTTP redirect rules."""
113
+
114
+ result = None
115
+
116
+ curr = Path(path[0])
117
+ if curr in self.class_redirect_paths:
118
+ response["Location"] = str(self.class_redirect_paths[curr])
119
+ response.status = http.HTTPStatus.TEMPORARY_REDIRECT
120
+
121
+ # No data payload, but signal to caller that a response is ready.
122
+ result = bytes()
123
+
124
+ return result
125
+
93
126
  def try_file(
94
127
  self, path: PathMaybeQuery, response: ResponseHeader
95
128
  ) -> Optional[bytes]:
@@ -188,13 +221,14 @@ class RuntimepyServerConnection(HttpConnection):
188
221
  response["Content-Type"] = "image/x-icon"
189
222
  return self.favicon_data
190
223
 
191
- # Try serving the path as a file.
192
- result = self.try_file(request.target.origin_form, response)
193
- if result is not None:
194
- return result
224
+ # Try serving a file and handling redirects.
225
+ for handler in [self.try_redirect, self.try_file]:
226
+ result = handler(request.target.origin_form, response)
227
+ if result is not None:
228
+ return result
195
229
 
196
230
  # Handle raw data queries.
197
- if path.startswith("/json"):
231
+ if path_has_part(request.target.path):
198
232
  json_handler(
199
233
  stream,
200
234
  request,
@@ -73,6 +73,11 @@ async def setup(app: AppInfo) -> int:
73
73
  RuntimepyServerConnection.apps["/app.html"] = web_app
74
74
  RuntimepyServerConnection.default_app = web_app
75
75
 
76
+ # Register redirects.
77
+ redirects: dict[str, str] = app.config_param("http_redirects", {})
78
+ for key, val in redirects.items():
79
+ RuntimepyServerConnection.add_redirect_path(val, key)
80
+
76
81
  # Register custom applications.
77
82
  for key, app_method in APPS.items():
78
83
  app_cfg: dict[str, Any] = app.config_param(key, {})
@@ -13,6 +13,7 @@ from vcorelib.io import ARBITER, JsonObject
13
13
  # internal
14
14
  from runtimepy.net.http.header import RequestHeader
15
15
  from runtimepy.net.http.response import ResponseHeader
16
+ from runtimepy.util import parse_path_parts
16
17
 
17
18
 
18
19
  class Encoder(JSONEncoder):
@@ -94,7 +95,7 @@ def json_handler(
94
95
  del request_data
95
96
 
96
97
  # Traverse path.
97
- data = traverse_dict(data, *request.target.path.split("/")[2:])
98
+ data = traverse_dict(data, *parse_path_parts(request.target.path))
98
99
 
99
100
  # Use a convention for indexing data to non-dictionary leaf nodes.
100
101
  if not isinstance(data, dict):
@@ -0,0 +1,60 @@
1
+ """
2
+ A module implementing package utilities.
3
+ """
4
+
5
+ # built-in
6
+ from os import sep
7
+ from pathlib import Path
8
+ from typing import Iterator, Union
9
+
10
+ # third-party
11
+ from vcorelib.paths import normalize
12
+
13
+ ROOT_PATH = Path(sep)
14
+
15
+
16
+ def normalize_root(*src_parts: Union[str, Path]) -> Path:
17
+ """Make paths absolute that aren't. Useful for HTTP-request pathing."""
18
+
19
+ result = normalize(*src_parts)
20
+ if not result.is_absolute():
21
+ result = ROOT_PATH.joinpath(result)
22
+ return result
23
+
24
+
25
+ class Identifier:
26
+ """A simple message indentifier interface."""
27
+
28
+ def __init__(self) -> None:
29
+ """Initialize this instance."""
30
+ self.curr_id: int = 1
31
+ self.scale = 2
32
+
33
+ def __call__(self) -> int:
34
+ """Get the next identifier."""
35
+ curr = self.curr_id
36
+ self.curr_id += self.scale
37
+ return curr
38
+
39
+
40
+ def path_has_part(path: str, key: str = "json") -> bool:
41
+ """Determine if a key appears as a part of a path."""
42
+
43
+ # Ignore '/' component (intended for URI paths).
44
+ return key in path.split("/")[1:]
45
+
46
+
47
+ def parse_path_parts(path: str, key: str = "json") -> Iterator[str]:
48
+ """
49
+ Parse a path such that all parts appearing after a possible 'key' appears
50
+ are yielded.
51
+ """
52
+
53
+ key_found = False
54
+
55
+ # Ignore '/' component (intended for URI paths).
56
+ for item in path.split("/")[1:]:
57
+ if key_found:
58
+ yield item
59
+ elif item == key:
60
+ key_found = True
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: runtimepy
3
- Version: 5.7.1
3
+ Version: 5.7.2
4
4
  Summary: A framework for implementing Python services.
5
5
  Home-page: https://github.com/vkottler/runtimepy
6
6
  Author: Vaughn Kottler
@@ -18,9 +18,9 @@ Requires-Python: >=3.11
18
18
  Description-Content-Type: text/markdown
19
19
  License-File: LICENSE
20
20
  Requires-Dist: psutil
21
- Requires-Dist: vcorelib>=3.4.2
22
21
  Requires-Dist: svgen>=0.6.8
23
22
  Requires-Dist: websockets
23
+ Requires-Dist: vcorelib>=3.4.2
24
24
  Requires-Dist: aiofiles
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") an
45
45
  =====================================
46
46
  generator=datazen
47
47
  version=3.1.4
48
- hash=8247340c8c4e6982a54b831c311f2c0b
48
+ hash=618546df79dd7f387faa6f84f9a58c79
49
49
  =====================================
50
50
  -->
51
51
 
52
- # runtimepy ([5.7.1](https://pypi.org/project/runtimepy/))
52
+ # runtimepy ([5.7.2](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,6 +0,0 @@
1
- /* Load configuration data then run application entry. */
2
- window.onload = async () => {
3
- await (new App(await (await fetch(window.location.origin + "/json")).json(),
4
- worker))
5
- .main();
6
- };
@@ -1,18 +0,0 @@
1
- """
2
- A module implementing package utilities.
3
- """
4
-
5
-
6
- class Identifier:
7
- """A simple message indentifier interface."""
8
-
9
- def __init__(self) -> None:
10
- """Initialize this instance."""
11
- self.curr_id: int = 1
12
- self.scale = 2
13
-
14
- def __call__(self) -> int:
15
- """Get the next identifier."""
16
- curr = self.curr_id
17
- self.curr_id += self.scale
18
- return curr
File without changes
File without changes
File without changes