runtimepy 5.11.1__tar.gz → 5.11.3__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 (304) hide show
  1. {runtimepy-5.11.1/runtimepy.egg-info → runtimepy-5.11.3}/PKG-INFO +5 -5
  2. {runtimepy-5.11.1 → runtimepy-5.11.3}/README.md +2 -2
  3. {runtimepy-5.11.1 → runtimepy-5.11.3}/pyproject.toml +1 -1
  4. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/__init__.py +2 -2
  5. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/codec/protocol/base.py +1 -0
  6. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/codec/protocol/json.py +7 -1
  7. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/codec/system/__init__.py +25 -13
  8. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/enum/registry.py +11 -1
  9. runtimepy-5.11.3/runtimepy/primitives/byte_order.py +65 -0
  10. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/util.py +3 -3
  11. {runtimepy-5.11.1 → runtimepy-5.11.3/runtimepy.egg-info}/PKG-INFO +5 -5
  12. runtimepy-5.11.1/runtimepy/primitives/byte_order.py +0 -34
  13. {runtimepy-5.11.1 → runtimepy-5.11.3}/LICENSE +0 -0
  14. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/__main__.py +0 -0
  15. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/app.py +0 -0
  16. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/channel/__init__.py +0 -0
  17. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/channel/environment/__init__.py +0 -0
  18. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/channel/environment/array.py +0 -0
  19. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/channel/environment/base.py +0 -0
  20. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/channel/environment/command/__init__.py +0 -0
  21. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/channel/environment/command/parser.py +0 -0
  22. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/channel/environment/command/processor.py +0 -0
  23. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/channel/environment/command/result.py +0 -0
  24. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/channel/environment/create.py +0 -0
  25. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/channel/environment/file.py +0 -0
  26. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/channel/environment/sample.py +0 -0
  27. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/channel/environment/telemetry.py +0 -0
  28. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/channel/event/__init__.py +0 -0
  29. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/channel/event/header.py +0 -0
  30. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/channel/registry.py +0 -0
  31. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/codec/__init__.py +0 -0
  32. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/codec/protocol/__init__.py +0 -0
  33. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/commands/__init__.py +0 -0
  34. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/commands/all.py +0 -0
  35. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/commands/arbiter.py +0 -0
  36. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/commands/common.py +0 -0
  37. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/commands/mtu.py +0 -0
  38. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/commands/server.py +0 -0
  39. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/commands/task.py +0 -0
  40. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/commands/tftp.py +0 -0
  41. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/commands/tui.py +0 -0
  42. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/control/__init__.py +0 -0
  43. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/control/env/__init__.py +0 -0
  44. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/control/source.py +0 -0
  45. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/control/step.py +0 -0
  46. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/404.html +0 -0
  47. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/browser.yaml +0 -0
  48. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/css/bootstrap_extra.css +0 -0
  49. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/css/font.css +0 -0
  50. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/css/main.css +0 -0
  51. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/dummy_load.yaml +0 -0
  52. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/factories.yaml +0 -0
  53. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/favicon.ico +0 -0
  54. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/DataConnection.js +0 -0
  55. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/JsonConnection.js +0 -0
  56. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/audio.js +0 -0
  57. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/classes/App.js +0 -0
  58. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/classes/ChannelTable.js +0 -0
  59. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/classes/DataConnection.js +0 -0
  60. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/classes/JsonConnection.js +0 -0
  61. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/classes/OverlayManager.js +0 -0
  62. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/classes/Plot.js +0 -0
  63. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/classes/PlotDrawer.js +0 -0
  64. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/classes/PlotManager.js +0 -0
  65. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/classes/PlotModalManager.js +0 -0
  66. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/classes/PointBuffer.js +0 -0
  67. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/classes/PointManager.js +0 -0
  68. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/classes/TabFilter.js +0 -0
  69. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/classes/TabInterface.js +0 -0
  70. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/classes/UnitSystem.js +0 -0
  71. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/classes/WindowHashManager.js +0 -0
  72. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/classes/WorkerInterface.js +0 -0
  73. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/events.js +0 -0
  74. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/init.js +0 -0
  75. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/main.js +0 -0
  76. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/markdown_page.js +0 -0
  77. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/tab/env.js +0 -0
  78. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/tab/sound.js +0 -0
  79. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/third-party/webgl-debug.js +0 -0
  80. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/unused/pyodide.js +0 -0
  81. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/util.js +0 -0
  82. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/js/worker.js +0 -0
  83. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/md/Connection.md +0 -0
  84. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/md/PeriodicTask.md +0 -0
  85. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/md/RuntimeStruct.md +0 -0
  86. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/md/RuntimepyPeer.md +0 -0
  87. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/md/SinusoidTask.md +0 -0
  88. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/sample_telemetry.yaml +0 -0
  89. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/schemas/BitFields.yaml +0 -0
  90. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/schemas/Channel.yaml +0 -0
  91. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/schemas/ChannelCommand.yaml +0 -0
  92. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/schemas/ChannelRegistry.yaml +0 -0
  93. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/schemas/ClientConnectionConfig.yaml +0 -0
  94. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/schemas/ConnectionArbiterConfig.yaml +0 -0
  95. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/schemas/EnumRegistry.yaml +0 -0
  96. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/schemas/FindFile.yaml +0 -0
  97. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/schemas/PeerProcessConfig.yaml +0 -0
  98. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/schemas/RuntimeEnum.yaml +0 -0
  99. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/schemas/ServerConnectionConfig.yaml +0 -0
  100. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/schemas/StructConfig.yaml +0 -0
  101. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/schemas/TaskConfig.yaml +0 -0
  102. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/schemas/channel_controls.yaml +0 -0
  103. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/schemas/has_config.yaml +0 -0
  104. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/schemas/has_factory.yaml +0 -0
  105. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/schemas/has_markdown.yaml +0 -0
  106. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/schemas/has_name.yaml +0 -0
  107. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/schemas/has_request_flag.yaml +0 -0
  108. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/server.yaml +0 -0
  109. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/server_base.yaml +0 -0
  110. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/server_dev.yaml +0 -0
  111. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/static/svg/chip-circle-bootstrap.svg +0 -0
  112. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/static/woff2/CascadiaCode-Bold.woff2 +0 -0
  113. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/static/woff2/CascadiaCode-BoldItalic.woff2 +0 -0
  114. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/static/woff2/CascadiaCode-Italic.woff2 +0 -0
  115. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/static/woff2/CascadiaCode-Regular.woff2 +0 -0
  116. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/static/woff2/CascadiaMono-Bold.woff2 +0 -0
  117. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/static/woff2/CascadiaMono-BoldItalic.woff2 +0 -0
  118. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/static/woff2/CascadiaMono-Italic.woff2 +0 -0
  119. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/static/woff2/CascadiaMono-Regular.woff2 +0 -0
  120. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/static/woff2/README.md +0 -0
  121. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/data/tftp_server.yaml +0 -0
  122. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/dev_requirements.txt +0 -0
  123. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/entry.py +0 -0
  124. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/enum/__init__.py +0 -0
  125. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/enum/types.py +0 -0
  126. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/mapping.py +0 -0
  127. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/message/__init__.py +0 -0
  128. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/message/handlers.py +0 -0
  129. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/message/interface.py +0 -0
  130. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/message/types.py +0 -0
  131. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/metrics/__init__.py +0 -0
  132. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/metrics/channel.py +0 -0
  133. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/metrics/connection.py +0 -0
  134. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/metrics/task.py +0 -0
  135. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/mixins/__init__.py +0 -0
  136. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/mixins/async_command.py +0 -0
  137. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/mixins/enum.py +0 -0
  138. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/mixins/environment.py +0 -0
  139. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/mixins/finalize.py +0 -0
  140. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/mixins/logging.py +0 -0
  141. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/mixins/psutil.py +0 -0
  142. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/mixins/regex.py +0 -0
  143. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/mixins/trig.py +0 -0
  144. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/__init__.py +0 -0
  145. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/apps/__init__.py +0 -0
  146. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/arbiter/__init__.py +0 -0
  147. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/arbiter/base.py +0 -0
  148. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/arbiter/config/__init__.py +0 -0
  149. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/arbiter/config/codec.py +0 -0
  150. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/arbiter/config/util.py +0 -0
  151. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/arbiter/factory/__init__.py +0 -0
  152. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/arbiter/factory/connection.py +0 -0
  153. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/arbiter/factory/task.py +0 -0
  154. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/arbiter/housekeeping/__init__.py +0 -0
  155. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/arbiter/imports/__init__.py +0 -0
  156. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/arbiter/imports/util.py +0 -0
  157. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/arbiter/info.py +0 -0
  158. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/arbiter/result.py +0 -0
  159. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/arbiter/struct/__init__.py +0 -0
  160. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/arbiter/task.py +0 -0
  161. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/arbiter/tcp/__init__.py +0 -0
  162. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/arbiter/tcp/json.py +0 -0
  163. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/arbiter/udp.py +0 -0
  164. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/arbiter/websocket.py +0 -0
  165. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/backoff.py +0 -0
  166. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/connection.py +0 -0
  167. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/factories/__init__.py +0 -0
  168. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/html/__init__.py +0 -0
  169. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/html/arbiter.py +0 -0
  170. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/html/bootstrap/__init__.py +0 -0
  171. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/html/bootstrap/elements.py +0 -0
  172. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/html/bootstrap/tabs.py +0 -0
  173. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/http/__init__.py +0 -0
  174. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/http/common.py +0 -0
  175. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/http/header.py +0 -0
  176. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/http/request_target.py +0 -0
  177. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/http/response.py +0 -0
  178. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/http/state.py +0 -0
  179. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/http/version.py +0 -0
  180. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/manager.py +0 -0
  181. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/mixin.py +0 -0
  182. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/mtu.py +0 -0
  183. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/__init__.py +0 -0
  184. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/app/__init__.py +0 -0
  185. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/app/base.py +0 -0
  186. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/app/create.py +0 -0
  187. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/app/elements.py +0 -0
  188. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/app/env/__init__.py +0 -0
  189. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/app/env/modal.py +0 -0
  190. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/app/env/settings.py +0 -0
  191. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/app/env/tab/__init__.py +0 -0
  192. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/app/env/tab/base.py +0 -0
  193. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/app/env/tab/controls.py +0 -0
  194. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/app/env/tab/html.py +0 -0
  195. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/app/env/tab/message.py +0 -0
  196. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/app/env/widgets.py +0 -0
  197. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/app/files.py +0 -0
  198. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/app/landing_page.py +0 -0
  199. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/app/placeholder.py +0 -0
  200. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/app/pyodide.py +0 -0
  201. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/app/sound.py +0 -0
  202. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/app/tab.py +0 -0
  203. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/html.py +0 -0
  204. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/json.py +0 -0
  205. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/markdown.py +0 -0
  206. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/struct/__init__.py +0 -0
  207. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/websocket/__init__.py +0 -0
  208. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/server/websocket/state.py +0 -0
  209. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/ssl.py +0 -0
  210. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/stream/__init__.py +0 -0
  211. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/stream/base.py +0 -0
  212. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/stream/json/__init__.py +0 -0
  213. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/stream/string.py +0 -0
  214. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/tcp/__init__.py +0 -0
  215. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/tcp/connection.py +0 -0
  216. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/tcp/create.py +0 -0
  217. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/tcp/http/__init__.py +0 -0
  218. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/tcp/protocol.py +0 -0
  219. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/tcp/scpi/__init__.py +0 -0
  220. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/tcp/telnet/__init__.py +0 -0
  221. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/tcp/telnet/codes.py +0 -0
  222. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/tcp/telnet/np_05b.py +0 -0
  223. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/udp/__init__.py +0 -0
  224. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/udp/connection.py +0 -0
  225. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/udp/create.py +0 -0
  226. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/udp/protocol.py +0 -0
  227. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/udp/queue.py +0 -0
  228. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/udp/tftp/__init__.py +0 -0
  229. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/udp/tftp/base.py +0 -0
  230. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/udp/tftp/endpoint.py +0 -0
  231. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/udp/tftp/enums.py +0 -0
  232. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/udp/tftp/io.py +0 -0
  233. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/util.py +0 -0
  234. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/websocket/__init__.py +0 -0
  235. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/net/websocket/connection.py +0 -0
  236. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/noise/__init__.py +0 -0
  237. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/__init__.py +0 -0
  238. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/array/__init__.py +0 -0
  239. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/base.py +0 -0
  240. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/bool.py +0 -0
  241. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/evaluation.py +0 -0
  242. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/field/__init__.py +0 -0
  243. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/field/fields.py +0 -0
  244. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/field/manager/__init__.py +0 -0
  245. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/field/manager/base.py +0 -0
  246. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/float.py +0 -0
  247. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/int.py +0 -0
  248. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/scaling.py +0 -0
  249. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/serializable/__init__.py +0 -0
  250. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/serializable/base.py +0 -0
  251. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/serializable/fixed.py +0 -0
  252. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/serializable/framer.py +0 -0
  253. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/serializable/prefixed.py +0 -0
  254. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/string.py +0 -0
  255. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/types/__init__.py +0 -0
  256. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/types/base.py +0 -0
  257. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/types/bool.py +0 -0
  258. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/types/bounds.py +0 -0
  259. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/types/float.py +0 -0
  260. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/primitives/types/int.py +0 -0
  261. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/py.typed +0 -0
  262. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/registry/__init__.py +0 -0
  263. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/registry/bool.py +0 -0
  264. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/registry/item.py +0 -0
  265. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/registry/name.py +0 -0
  266. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/requirements.txt +0 -0
  267. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/sample/__init__.py +0 -0
  268. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/sample/peer.py +0 -0
  269. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/sample/program.py +0 -0
  270. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/schemas.py +0 -0
  271. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/struct/__init__.py +0 -0
  272. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/subprocess/__init__.py +0 -0
  273. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/subprocess/interface.py +0 -0
  274. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/subprocess/peer.py +0 -0
  275. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/subprocess/program.py +0 -0
  276. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/subprocess/protocol.py +0 -0
  277. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/task/__init__.py +0 -0
  278. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/task/asynchronous.py +0 -0
  279. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/task/basic/__init__.py +0 -0
  280. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/task/basic/manager.py +0 -0
  281. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/task/basic/periodic.py +0 -0
  282. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/task/sample.py +0 -0
  283. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/task/trig/__init__.py +0 -0
  284. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/telemetry/__init__.py +0 -0
  285. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/telemetry/sample.py +0 -0
  286. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/tui/__init__.py +0 -0
  287. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/tui/channels/__init__.py +0 -0
  288. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/tui/cursor.py +0 -0
  289. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/tui/mixin.py +0 -0
  290. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/tui/mock.py +0 -0
  291. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/tui/task.py +0 -0
  292. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/ui/__init__.py +0 -0
  293. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy/ui/controls.py +0 -0
  294. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy.egg-info/SOURCES.txt +0 -0
  295. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy.egg-info/dependency_links.txt +0 -0
  296. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy.egg-info/entry_points.txt +0 -0
  297. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy.egg-info/requires.txt +2 -2
  298. {runtimepy-5.11.1 → runtimepy-5.11.3}/runtimepy.egg-info/top_level.txt +0 -0
  299. {runtimepy-5.11.1 → runtimepy-5.11.3}/setup.cfg +0 -0
  300. {runtimepy-5.11.1 → runtimepy-5.11.3}/setup.py +0 -0
  301. {runtimepy-5.11.1 → runtimepy-5.11.3}/tests/test_entry.py +0 -0
  302. {runtimepy-5.11.1 → runtimepy-5.11.3}/tests/test_mapping.py +0 -0
  303. {runtimepy-5.11.1 → runtimepy-5.11.3}/tests/test_resources.py +0 -0
  304. {runtimepy-5.11.1 → runtimepy-5.11.3}/tests/test_util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: runtimepy
3
- Version: 5.11.1
3
+ Version: 5.11.3
4
4
  Summary: A framework for implementing Python services.
5
5
  Home-page: https://github.com/vkottler/runtimepy
6
6
  Author: Vaughn Kottler
@@ -17,11 +17,11 @@ Classifier: License :: OSI Approved :: MIT License
17
17
  Requires-Python: >=3.12
18
18
  Description-Content-Type: text/markdown
19
19
  License-File: LICENSE
20
+ Requires-Dist: psutil
21
+ Requires-Dist: svgen>=0.7.4
20
22
  Requires-Dist: websockets
21
23
  Requires-Dist: aiofiles
22
24
  Requires-Dist: vcorelib>=3.5.1
23
- Requires-Dist: psutil
24
- Requires-Dist: svgen>=0.7.4
25
25
  Provides-Extra: test
26
26
  Requires-Dist: pylint; extra == "test"
27
27
  Requires-Dist: flake8; extra == "test"
@@ -50,11 +50,11 @@ Dynamic: requires-python
50
50
  =====================================
51
51
  generator=datazen
52
52
  version=3.1.4
53
- hash=4ef876633bf905b103835e81db45e721
53
+ hash=8e8d3499d8579ca086dc80c977f6fd7f
54
54
  =====================================
55
55
  -->
56
56
 
57
- # runtimepy ([5.11.1](https://pypi.org/project/runtimepy/))
57
+ # runtimepy ([5.11.3](https://pypi.org/project/runtimepy/))
58
58
 
59
59
  [![python](https://img.shields.io/pypi/pyversions/runtimepy.svg)](https://pypi.org/project/runtimepy/)
60
60
  ![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=4ef876633bf905b103835e81db45e721
5
+ hash=8e8d3499d8579ca086dc80c977f6fd7f
6
6
  =====================================
7
7
  -->
8
8
 
9
- # runtimepy ([5.11.1](https://pypi.org/project/runtimepy/))
9
+ # runtimepy ([5.11.3](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.11.1"
7
+ version = "5.11.3"
8
8
  description = "A framework for implementing Python services."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.12"
@@ -1,7 +1,7 @@
1
1
  # =====================================
2
2
  # generator=datazen
3
3
  # version=3.1.4
4
- # hash=da21068ff2c7240dc103642dedb80cf5
4
+ # hash=f45f335bfb519a5a33f13603258a4d33
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.11.1"
13
+ VERSION = "5.11.3"
14
14
 
15
15
  # runtimepy-specific content.
16
16
  METRICS_NAME = "metrics"
@@ -145,6 +145,7 @@ class ProtocolBase(PrimitiveArray):
145
145
  fields=_copy(self._fields),
146
146
  build=self._build,
147
147
  byte_order=self.byte_order,
148
+ identifier=self.id,
148
149
  serializables={
149
150
  key: [val[0].copy_without_chain()]
150
151
  for key, val in self.serializables.items()
@@ -25,6 +25,7 @@ from runtimepy.primitives.field.manager import (
25
25
  VALUES_KEY,
26
26
  BitFieldsManager,
27
27
  )
28
+ from runtimepy.primitives.serializable import SerializableMap
28
29
 
29
30
  BUILD_KEY = "build"
30
31
  META_KEY = "meta"
@@ -96,7 +97,11 @@ class JsonProtocol(ProtocolBase):
96
97
  return data
97
98
 
98
99
  @classmethod
99
- def import_json(cls: type[T], data: dict[str, _JsonObject]) -> T:
100
+ def import_json(
101
+ cls: type[T],
102
+ data: dict[str, _JsonObject],
103
+ serializables: SerializableMap = None,
104
+ ) -> T:
100
105
  """Create a bit-fields manager from JSON data."""
101
106
 
102
107
  # Only set values once (at the end).
@@ -126,6 +131,7 @@ class JsonProtocol(ProtocolBase):
126
131
  identifier=_cast(int, data[META_KEY]["id"]),
127
132
  byte_order=_cast(str, data[META_KEY]["byte_order"]),
128
133
  alias=data[META_KEY]["alias"], # type: ignore
134
+ serializables=serializables,
129
135
  )
130
136
 
131
137
  # Set values.
@@ -3,23 +3,24 @@ A basic type-system implementation.
3
3
  """
4
4
 
5
5
  # built-in
6
- from typing import Iterable, Optional
6
+ from typing import Iterable, Optional, Union
7
7
 
8
8
  # third-party
9
9
  from vcorelib.logging import LoggerMixin
10
10
  from vcorelib.namespace import CPP_DELIM, Namespace
11
11
 
12
12
  # internal
13
- from runtimepy import PKG_NAME
14
13
  from runtimepy.codec.protocol import Protocol
15
14
  from runtimepy.enum import RuntimeEnum
16
- from runtimepy.enum.registry import (
17
- DEFAULT_ENUM_PRIMITIVE,
18
- EnumRegistry,
19
- RuntimeIntEnum,
15
+ from runtimepy.enum.registry import DEFAULT_ENUM_PRIMITIVE, RuntimeIntEnum
16
+ from runtimepy.primitives.byte_order import (
17
+ DEFAULT_BYTE_ORDER,
18
+ ByteOrder,
19
+ enum_registry,
20
20
  )
21
- from runtimepy.primitives.byte_order import ByteOrder
22
21
  from runtimepy.primitives.types import AnyPrimitiveType, PrimitiveTypes
22
+ from runtimepy.registry.name import RegistryKey
23
+ from runtimepy.util import Identifier
23
24
 
24
25
 
25
26
  def resolve_name(matches: Iterable[str]) -> str:
@@ -50,7 +51,9 @@ class TypeSystem(LoggerMixin):
50
51
 
51
52
  self.primitives: dict[str, AnyPrimitiveType] = {}
52
53
  self.custom: dict[str, Protocol] = {}
53
- self._enums = EnumRegistry()
54
+ self.custom_ids = Identifier(scale=1)
55
+
56
+ self._enums = enum_registry(register_byte_order=False)
54
57
 
55
58
  global_namespace = Namespace(delim=CPP_DELIM)
56
59
 
@@ -61,9 +64,8 @@ class TypeSystem(LoggerMixin):
61
64
  self.root_namespace = global_namespace
62
65
 
63
66
  # Register enums.
64
- with self.root_namespace.pushed(PKG_NAME):
65
- for enum in [ByteOrder]:
66
- self.runtime_int_enum(enum)
67
+ for enum in [ByteOrder]:
68
+ self.runtime_int_enum(enum)
67
69
 
68
70
  self.root_namespace = global_namespace.child(*namespace)
69
71
 
@@ -98,11 +100,21 @@ class TypeSystem(LoggerMixin):
98
100
  assert enum is not None
99
101
  self._register_primitive(name, enum.primitive)
100
102
 
101
- def register(self, name: str, *namespace: str) -> Protocol:
103
+ def register(
104
+ self,
105
+ name: str,
106
+ *namespace: str,
107
+ byte_order: Union[ByteOrder, RegistryKey] = DEFAULT_BYTE_ORDER,
108
+ ) -> Protocol:
102
109
  """Register a custom type."""
103
110
 
104
111
  resolved = self._name(name, *namespace, check_available=True)
105
- new_type = Protocol(self._enums, alias=resolved)
112
+ new_type = Protocol(
113
+ self._enums,
114
+ alias=resolved,
115
+ identifier=self.custom_ids(),
116
+ byte_order=byte_order,
117
+ )
106
118
  self.custom[resolved] = new_type
107
119
  return new_type
108
120
 
@@ -63,6 +63,11 @@ class RuntimeIntEnum(_IntEnum):
63
63
 
64
64
  return data
65
65
 
66
+ @classmethod
67
+ def id(cls) -> _Optional[int]:
68
+ """Override in sub-class to coerce enum id."""
69
+ return None
70
+
66
71
  @classmethod
67
72
  def primitive(cls) -> str:
68
73
  """The underlying primitive type for this runtime enumeration."""
@@ -89,6 +94,11 @@ class RuntimeIntEnum(_IntEnum):
89
94
 
90
95
  data = _RuntimeEnum.data_from_enum(cls)
91
96
  data["primitive"] = cls.primitive()
97
+
98
+ ident = cls.id()
99
+ if ident is not None:
100
+ data["id"] = ident
101
+
92
102
  result = registry.register_dict(name, data)
93
- assert result is not None
103
+ assert result is not None, (name, data)
94
104
  return result
@@ -0,0 +1,65 @@
1
+ """
2
+ A module implementing an enumeration for byte ordering options.
3
+ """
4
+
5
+ # built-in
6
+ from typing import Optional
7
+
8
+ # internal
9
+ from runtimepy.enum.registry import EnumRegistry, RuntimeIntEnum
10
+
11
+
12
+ class ByteOrder(RuntimeIntEnum):
13
+ """An enumeration for viable byte orders."""
14
+
15
+ NATIVE = 1
16
+ LITTLE_ENDIAN = 2
17
+ BIG_ENDIAN = 3
18
+ NETWORK = 4
19
+
20
+ @property
21
+ def fmt(self) -> str:
22
+ """Get the struct formatter for this byte order."""
23
+
24
+ if self is ByteOrder.NATIVE:
25
+ return "@"
26
+ if self is ByteOrder.LITTLE_ENDIAN:
27
+ return "<"
28
+ if self is ByteOrder.BIG_ENDIAN:
29
+ return ">"
30
+ return "!"
31
+
32
+ def __str__(self) -> str:
33
+ """Get this byte order as a string."""
34
+ return self.fmt
35
+
36
+ @classmethod
37
+ def id(cls) -> Optional[int]:
38
+ """Override in sub-class to coerce enum id."""
39
+ return 1
40
+
41
+
42
+ # https://en.cppreference.com/w/cpp/types/endian
43
+ STD_ENDIAN = {
44
+ "little": ByteOrder.LITTLE_ENDIAN,
45
+ "big": ByteOrder.BIG_ENDIAN,
46
+ "native": ByteOrder.NATIVE,
47
+ }
48
+
49
+
50
+ DEFAULT_BYTE_ORDER = ByteOrder.NETWORK
51
+
52
+
53
+ def enum_registry(
54
+ *kinds: type[RuntimeIntEnum], register_byte_order: bool = True
55
+ ) -> EnumRegistry:
56
+ """Create an enum registry with the provided custom types registered."""
57
+
58
+ result = EnumRegistry()
59
+
60
+ if register_byte_order:
61
+ ByteOrder.register_enum(result)
62
+
63
+ for kind in kinds:
64
+ kind.register_enum(result)
65
+ return result
@@ -34,10 +34,10 @@ def normalize_root(*src_parts: Union[str, Path]) -> Path:
34
34
  class Identifier:
35
35
  """A simple message indentifier interface."""
36
36
 
37
- def __init__(self) -> None:
37
+ def __init__(self, start: int = 1, scale: int = 2) -> None:
38
38
  """Initialize this instance."""
39
- self.curr_id: int = 1
40
- self.scale = 2
39
+ self.curr_id = start
40
+ self.scale = scale
41
41
 
42
42
  def __call__(self) -> int:
43
43
  """Get the next identifier."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: runtimepy
3
- Version: 5.11.1
3
+ Version: 5.11.3
4
4
  Summary: A framework for implementing Python services.
5
5
  Home-page: https://github.com/vkottler/runtimepy
6
6
  Author: Vaughn Kottler
@@ -17,11 +17,11 @@ Classifier: License :: OSI Approved :: MIT License
17
17
  Requires-Python: >=3.12
18
18
  Description-Content-Type: text/markdown
19
19
  License-File: LICENSE
20
+ Requires-Dist: psutil
21
+ Requires-Dist: svgen>=0.7.4
20
22
  Requires-Dist: websockets
21
23
  Requires-Dist: aiofiles
22
24
  Requires-Dist: vcorelib>=3.5.1
23
- Requires-Dist: psutil
24
- Requires-Dist: svgen>=0.7.4
25
25
  Provides-Extra: test
26
26
  Requires-Dist: pylint; extra == "test"
27
27
  Requires-Dist: flake8; extra == "test"
@@ -50,11 +50,11 @@ Dynamic: requires-python
50
50
  =====================================
51
51
  generator=datazen
52
52
  version=3.1.4
53
- hash=4ef876633bf905b103835e81db45e721
53
+ hash=8e8d3499d8579ca086dc80c977f6fd7f
54
54
  =====================================
55
55
  -->
56
56
 
57
- # runtimepy ([5.11.1](https://pypi.org/project/runtimepy/))
57
+ # runtimepy ([5.11.3](https://pypi.org/project/runtimepy/))
58
58
 
59
59
  [![python](https://img.shields.io/pypi/pyversions/runtimepy.svg)](https://pypi.org/project/runtimepy/)
60
60
  ![Build Status](https://github.com/vkottler/runtimepy/workflows/Python%20Package/badge.svg)
@@ -1,34 +0,0 @@
1
- """
2
- A module implementing an enumeration for byte ordering options.
3
- """
4
-
5
- # internal
6
- from runtimepy.enum.registry import RuntimeIntEnum as _RuntimeIntEnum
7
-
8
-
9
- class ByteOrder(_RuntimeIntEnum):
10
- """An enumeration for viable byte orders."""
11
-
12
- NATIVE = 1
13
- LITTLE_ENDIAN = 2
14
- BIG_ENDIAN = 3
15
- NETWORK = 4
16
-
17
- @property
18
- def fmt(self) -> str:
19
- """Get the struct formatter for this byte order."""
20
-
21
- if self is ByteOrder.NATIVE:
22
- return "@"
23
- if self is ByteOrder.LITTLE_ENDIAN:
24
- return "<"
25
- if self is ByteOrder.BIG_ENDIAN:
26
- return ">"
27
- return "!"
28
-
29
- def __str__(self) -> str:
30
- """Get this byte order as a string."""
31
- return self.fmt
32
-
33
-
34
- DEFAULT_BYTE_ORDER = ByteOrder.NETWORK
File without changes
File without changes