ezmsg 3.9.0__tar.gz → 3.10.0b2__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 (176) hide show
  1. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/.github/workflows/ci.yml +1 -1
  2. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/PKG-INFO +11 -6
  3. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/README.md +4 -4
  4. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/examples/ezmsg_toy.py +1 -1
  5. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/pyproject.toml +6 -1
  6. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/__init__.py +5 -9
  7. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/backend.py +166 -152
  8. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/backendprocess.py +83 -8
  9. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/collection.py +1 -1
  10. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/command.py +3 -1
  11. ezmsg-3.10.0b2/src/ezmsg/core/commands/common.py +100 -0
  12. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/commands/dashboard_cmd.py +1 -1
  13. ezmsg-3.10.0b2/src/ezmsg/core/commands/serve.py +56 -0
  14. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/commands/start.py +4 -1
  15. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/graphmeta.py +22 -1
  16. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/graphserver.py +3 -1
  17. ezmsg-3.10.0b2/src/ezmsg/core/logconfig.py +47 -0
  18. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/messagechannel.py +79 -17
  19. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/profiling.py +122 -46
  20. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/pubclient.py +29 -1
  21. ezmsg-3.10.0b2/src/ezmsg/core/relay.py +98 -0
  22. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/settingsmeta.py +9 -3
  23. ezmsg-3.10.0b2/src/ezmsg/core/shm_grow_test_support.py +100 -0
  24. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/stream.py +64 -21
  25. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/subclient.py +29 -18
  26. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/util.py +68 -0
  27. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/messages/axisarray.py +132 -0
  28. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/messages/modify.py +9 -1
  29. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/messages/util.py +10 -0
  30. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/perf/ab.py +12 -0
  31. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/perf/hotpath.py +73 -19
  32. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/messages/test_axisarray.py +251 -2
  33. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/messages/test_modify.py +48 -0
  34. ezmsg-3.10.0b2/tests/messages/test_replace.py +59 -0
  35. ezmsg-3.10.0b2/tests/shm_resize_race_runner.py +73 -0
  36. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_channel.py +63 -0
  37. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_clean_shutdown.py +30 -0
  38. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_command.py +107 -1
  39. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_dashboard_commands.py +87 -5
  40. ezmsg-3.10.0b2/tests/test_logconfig.py +37 -0
  41. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_perf_ab.py +2 -0
  42. ezmsg-3.10.0b2/tests/test_perf_hotpath.py +149 -0
  43. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_run.py +24 -0
  44. ezmsg-3.10.0b2/tests/test_settingsmeta.py +166 -0
  45. ezmsg-3.10.0b2/tests/test_shm.py +212 -0
  46. ezmsg-3.10.0b2/tests/test_shm_grow.py +50 -0
  47. ezmsg-3.10.0b2/tests/test_topics.py +365 -0
  48. ezmsg-3.9.0/src/ezmsg/core/commands/common.py +0 -26
  49. ezmsg-3.9.0/src/ezmsg/core/commands/serve.py +0 -47
  50. ezmsg-3.9.0/src/ezmsg/core/relay.py +0 -42
  51. ezmsg-3.9.0/tests/test_perf_hotpath.py +0 -45
  52. ezmsg-3.9.0/tests/test_shm.py +0 -106
  53. ezmsg-3.9.0/tests/test_topics.py +0 -189
  54. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/.flake8 +0 -0
  55. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/.git-blame-ignore-revs +0 -0
  56. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/.github/workflows/docs.yml +0 -0
  57. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/.github/workflows/publish.yml +0 -0
  58. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/.gitignore +0 -0
  59. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/.pre-commit-config.yaml +0 -0
  60. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/LICENSE +0 -0
  61. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/docs/Makefile +0 -0
  62. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/docs/make.bat +0 -0
  63. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/docs/source/_static/_images/cloning.png +0 -0
  64. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/docs/source/_static/_images/ezmsg_logo.png +0 -0
  65. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/docs/source/_static/_images/tutorial_graph.png +0 -0
  66. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/docs/source/_static/_images/tutorial_graph_compact.png +0 -0
  67. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/docs/source/_static/_images/tutorial_graphviz.png +0 -0
  68. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/docs/source/_static/_images/tutorial_pipeline.png +0 -0
  69. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/docs/source/_static/_images/tutorial_system.png +0 -0
  70. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/docs/source/_static/custom.css +0 -0
  71. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/docs/source/conf.py +0 -0
  72. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/docs/source/index.rst +0 -0
  73. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/docs/source/reference/API/axisarray-util-units.rst +0 -0
  74. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/docs/source/reference/API/axisarray.rst +0 -0
  75. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/docs/source/reference/API/components.rst +0 -0
  76. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/docs/source/reference/API/content-api.rst +0 -0
  77. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/docs/source/reference/API/entrypoint.rst +0 -0
  78. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/docs/source/reference/API/functiondecorators.rst +0 -0
  79. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/docs/source/reference/API/util-units.rst +0 -0
  80. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/docs/source/reference/content-reference.rst +0 -0
  81. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/examples/.gitignore +0 -0
  82. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/examples/ezmsg_attach.py +0 -0
  83. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/examples/ezmsg_configs.py +0 -0
  84. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/examples/ezmsg_count.py +0 -0
  85. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/examples/ezmsg_generator.py +0 -0
  86. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/examples/ezmsg_intro.py +0 -0
  87. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/examples/ezmsg_leaky_subscriber.py +0 -0
  88. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/examples/ezmsg_log_to_file.py +0 -0
  89. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/examples/ezmsg_normalterm.py +0 -0
  90. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/examples/ezmsg_stop.py +0 -0
  91. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/examples/profiling_tui.py +0 -0
  92. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/examples/settings_tui.py +0 -0
  93. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/examples/simple_async_publisher.py +0 -0
  94. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/examples/simple_async_subscriber.py +0 -0
  95. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/examples/simple_publisher.py +0 -0
  96. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/examples/simple_subscriber.py +0 -0
  97. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/examples/topology_tui.py +0 -0
  98. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/scripts/perf_ab.py +0 -0
  99. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/__main__.py +0 -0
  100. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/addressable.py +0 -0
  101. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/backpressure.py +0 -0
  102. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/channelmanager.py +0 -0
  103. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/commands/__init__.py +0 -0
  104. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/commands/dashboard.py +0 -0
  105. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/commands/graphviz.py +0 -0
  106. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/commands/mermaid.py +0 -0
  107. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/commands/shutdown.py +0 -0
  108. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/component.py +0 -0
  109. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/dag.py +0 -0
  110. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/graph_util.py +0 -0
  111. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/graphcontext.py +0 -0
  112. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/message.py +0 -0
  113. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/messagecache.py +0 -0
  114. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/messagemarshal.py +0 -0
  115. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/netprotocol.py +0 -0
  116. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/processclient.py +0 -0
  117. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/settings.py +0 -0
  118. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/shm.py +0 -0
  119. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/state.py +0 -0
  120. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/sync.py +0 -0
  121. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/test.py +0 -0
  122. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/core/unit.py +0 -0
  123. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/__init__.py +0 -0
  124. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/debuglog.py +0 -0
  125. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/gen_to_unit.py +0 -0
  126. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/generator.py +0 -0
  127. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/messagecodec.py +0 -0
  128. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/messagegate.py +0 -0
  129. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/messagelogger.py +0 -0
  130. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/messagequeue.py +0 -0
  131. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/messagereplay.py +0 -0
  132. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/messages/__init__.py +0 -0
  133. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/messages/chunker.py +0 -0
  134. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/messages/key.py +0 -0
  135. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/perf/__init__.py +0 -0
  136. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/perf/analysis.py +0 -0
  137. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/perf/command.py +0 -0
  138. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/perf/envinfo.py +0 -0
  139. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/perf/impl.py +0 -0
  140. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/perf/run.py +0 -0
  141. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/perf/util.py +0 -0
  142. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/profiler.py +0 -0
  143. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/rate.py +0 -0
  144. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/src/ezmsg/util/terminate.py +0 -0
  145. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/__init__.py +0 -0
  146. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/clean_shutdown_examples_runner.py +0 -0
  147. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/ez_test_utils.py +0 -0
  148. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/messages/__init__.py +0 -0
  149. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/messages/test_chunker.py +0 -0
  150. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/messages/test_key.py +0 -0
  151. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/perf_sync_overhead.py +0 -0
  152. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/shutdown_runner.py +0 -0
  153. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_addressable.py +0 -0
  154. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_attach.py +0 -0
  155. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_channelmanager.py +0 -0
  156. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_connections.py +0 -0
  157. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_dag.py +0 -0
  158. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_generator.py +0 -0
  159. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_graph.py +0 -0
  160. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_graph_session.py +0 -0
  161. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_graph_visualization.py +0 -0
  162. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_leaky_subscriber.py +0 -0
  163. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_messagereplay.py +0 -0
  164. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_perf_analysis.py +0 -0
  165. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_perf_configs.py +0 -0
  166. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_process_control.py +0 -0
  167. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_process_routing.py +0 -0
  168. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_profiler.py +0 -0
  169. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_profiling_api.py +0 -0
  170. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_pubclient.py +0 -0
  171. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_settings_api.py +0 -0
  172. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_state.py +0 -0
  173. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_subclient.py +0 -0
  174. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_sync_api.py +0 -0
  175. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_test.py +0 -0
  176. {ezmsg-3.9.0 → ezmsg-3.10.0b2}/tests/test_topology_api.py +0 -0
@@ -15,7 +15,7 @@ jobs:
15
15
  pytest:
16
16
  strategy:
17
17
  matrix:
18
- python-version: ["3.10.15", "3.11", "3.12", "3.13"]
18
+ python-version: ["3.10.15", "3.11", "3.12", "3.13", "3.14"]
19
19
  os:
20
20
  - "ubuntu-latest"
21
21
  - "windows-latest"
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: ezmsg
3
- Version: 3.9.0
3
+ Version: 3.10.0b2
4
4
  Summary: A simple DAG-based computation model
5
5
  Author-email: Griffin Milsap <griffin.milsap@gmail.com>, Preston Peranich <pperanich@gmail.com>, Chadwick Boulay <chadwick.boulay@gmail.com>
6
6
  License: MIT License
@@ -15,6 +15,11 @@ License: MIT License
15
15
  License-File: LICENSE
16
16
  Classifier: Operating System :: OS Independent
17
17
  Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Programming Language :: Python :: 3.14
18
23
  Requires-Python: >=3.10
19
24
  Requires-Dist: array-api-compat>=1.12.0
20
25
  Requires-Dist: typing-extensions>=4.14.1
@@ -26,7 +31,7 @@ Provides-Extra: perf
26
31
  Requires-Dist: xarray>=2025.6.1; extra == 'perf'
27
32
  Description-Content-Type: text/markdown
28
33
 
29
- # <img src="https://raw.githubusercontent.com/iscoe/ezmsg/main/docs/source/logo.png" width="50"/> ezmsg
34
+ # <img src="https://raw.githubusercontent.com/ezmsg-org/ezmsg/main/docs/source/_static/_images/ezmsg_logo.png" width="50" alt="ezmsg logo" /> ezmsg
30
35
 
31
36
  Messaging and Multiprocessing.
32
37
 
@@ -78,7 +83,7 @@ cd docs
78
83
  uv run make.bat html
79
84
  ```
80
85
 
81
- https://ezmsg.readthedocs.io/en/latest/
86
+ https://www.ezmsg.org/
82
87
 
83
88
  `ezmsg` is very similar to [`labgraph`](https://www.github.com/facebookresearch/labgraph), so you might get a primer with their documentation and examples. Additionally, there are many examples provided in the examples/tests directories strewn throughout this repository.
84
89
 
@@ -104,8 +109,8 @@ Extensions can be managed manually as well. Here are some of the extensions we m
104
109
  - [ezmsg-sigproc](https://github.com/ezmsg-org/ezmsg-sigproc) -- Timeseries signal processing modules
105
110
  - [ezmsg-websocket](https://github.com/ezmsg-org/ezmsg-websocket) -- Websocket server and client nodes for `ezmsg` graphs
106
111
  - [ezmsg-zmq](https://github.com/ezmsg-org/ezmsg-zmq) -- ZeroMQ pub and sub nodes for `ezmsg` graphs
107
- - [ezmsg-panel](https://github.com/griffinmilsap/ezmsg-panel) -- Plotting tools for `ezmsg` that use [panel](https://github.com/holoviz/panel)
108
- - [ezmsg-blackrock](https://github.com/griffinmilsap/ezmsg-blackrock) -- Interface for Blackrock Cerebus ecosystem (incl. Neuroport) using `pycbsdk`
112
+ - [ezmsg-panel](https://github.com/ezmsg-org/ezmsg-panel) -- Plotting tools for `ezmsg` that use [panel](https://github.com/holoviz/panel)
113
+ - [ezmsg-blackrock](https://github.com/ezmsg-org/ezmsg-blackrock) -- Interface for Blackrock Cerebus ecosystem (incl. Neuroport) using `pycbsdk`
109
114
  - [ezmsg-lsl](https://github.com/ezmsg-org/ezmsg-lsl) -- Source unit for LSL Inlet and sink unit for LSL Outlet
110
115
  - [ezmsg-unicorn](https://github.com/griffinmilsap/ezmsg-unicorn) -- g.tec Unicorn Hybrid Black integration for `ezmsg`
111
116
  - [ezmsg-gadget](https://github.com/griffinmilsap/ezmsg-gadget) -- USB-gadget with HID control integration for Raspberry Pi (Zero/W/2W, 4, CM4)
@@ -1,4 +1,4 @@
1
- # <img src="https://raw.githubusercontent.com/iscoe/ezmsg/main/docs/source/logo.png" width="50"/> ezmsg
1
+ # <img src="https://raw.githubusercontent.com/ezmsg-org/ezmsg/main/docs/source/_static/_images/ezmsg_logo.png" width="50" alt="ezmsg logo" /> ezmsg
2
2
 
3
3
  Messaging and Multiprocessing.
4
4
 
@@ -50,7 +50,7 @@ cd docs
50
50
  uv run make.bat html
51
51
  ```
52
52
 
53
- https://ezmsg.readthedocs.io/en/latest/
53
+ https://www.ezmsg.org/
54
54
 
55
55
  `ezmsg` is very similar to [`labgraph`](https://www.github.com/facebookresearch/labgraph), so you might get a primer with their documentation and examples. Additionally, there are many examples provided in the examples/tests directories strewn throughout this repository.
56
56
 
@@ -76,8 +76,8 @@ Extensions can be managed manually as well. Here are some of the extensions we m
76
76
  - [ezmsg-sigproc](https://github.com/ezmsg-org/ezmsg-sigproc) -- Timeseries signal processing modules
77
77
  - [ezmsg-websocket](https://github.com/ezmsg-org/ezmsg-websocket) -- Websocket server and client nodes for `ezmsg` graphs
78
78
  - [ezmsg-zmq](https://github.com/ezmsg-org/ezmsg-zmq) -- ZeroMQ pub and sub nodes for `ezmsg` graphs
79
- - [ezmsg-panel](https://github.com/griffinmilsap/ezmsg-panel) -- Plotting tools for `ezmsg` that use [panel](https://github.com/holoviz/panel)
80
- - [ezmsg-blackrock](https://github.com/griffinmilsap/ezmsg-blackrock) -- Interface for Blackrock Cerebus ecosystem (incl. Neuroport) using `pycbsdk`
79
+ - [ezmsg-panel](https://github.com/ezmsg-org/ezmsg-panel) -- Plotting tools for `ezmsg` that use [panel](https://github.com/holoviz/panel)
80
+ - [ezmsg-blackrock](https://github.com/ezmsg-org/ezmsg-blackrock) -- Interface for Blackrock Cerebus ecosystem (incl. Neuroport) using `pycbsdk`
81
81
  - [ezmsg-lsl](https://github.com/ezmsg-org/ezmsg-lsl) -- Source unit for LSL Inlet and sink unit for LSL Outlet
82
82
  - [ezmsg-unicorn](https://github.com/griffinmilsap/ezmsg-unicorn) -- g.tec Unicorn Hybrid Black integration for `ezmsg`
83
83
  - [ezmsg-gadget](https://github.com/griffinmilsap/ezmsg-gadget) -- USB-gadget with HID control integration for Raspberry Pi (Zero/W/2W, 4, CM4)
@@ -150,7 +150,7 @@ class ModifierCollection(ez.Collection):
150
150
  and append the most recent LFO output"""
151
151
 
152
152
  INPUT = ez.InputTopic(str)
153
- OUTPUT = ez.OutputTopic(str)
153
+ OUTPUT = ez.OutputRelay(str)
154
154
 
155
155
  SIN = LFO()
156
156
  # SIN2 = LFO()
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ezmsg"
3
- version = "3.9.0"
3
+ version = "3.10.0b2"
4
4
  description = "A simple DAG-based computation model"
5
5
  authors = [
6
6
  { name = "Griffin Milsap", email = "griffin.milsap@gmail.com" },
@@ -11,6 +11,11 @@ license = { file = "LICENSE" }
11
11
  readme = "README.md"
12
12
  classifiers = [
13
13
  "Programming Language :: Python :: 3",
14
+ "Programming Language :: Python :: 3.10",
15
+ "Programming Language :: Python :: 3.11",
16
+ "Programming Language :: Python :: 3.12",
17
+ "Programming Language :: Python :: 3.13",
18
+ "Programming Language :: Python :: 3.14",
14
19
  "Operating System :: OS Independent",
15
20
  ]
16
21
  requires-python = ">=3.10"
@@ -17,6 +17,7 @@ __all__ = [
17
17
  "Topic",
18
18
  "InputTopic",
19
19
  "OutputTopic",
20
+ "Relay",
20
21
  "InputRelay",
21
22
  "OutputRelay",
22
23
  "InputStream",
@@ -53,6 +54,7 @@ from .stream import (
53
54
  Topic,
54
55
  InputTopic,
55
56
  OutputTopic,
57
+ Relay,
56
58
  InputRelay,
57
59
  OutputRelay,
58
60
  InputStream,
@@ -75,17 +77,11 @@ from .collection import Collection as System # deprecated, backward compatibili
75
77
 
76
78
  import os
77
79
  import logging
80
+ from .logconfig import create_ezmsg_stderr_handler, create_ezmsg_stdout_handler
78
81
 
79
82
  logger = logging.getLogger("ezmsg")
80
- handler = logging.StreamHandler()
81
- formatter = logging.Formatter(
82
- "%(asctime)s.%(msecs)03d - pid: %(process)d - %(threadName)s "
83
- + "- %(levelname)s - %(funcName)s: %(message)s",
84
- datefmt="%Y-%m-%d %H:%M:%S",
85
- )
86
-
87
- handler.setFormatter(formatter)
88
- logger.addHandler(handler)
83
+ logger.addHandler(create_ezmsg_stdout_handler())
84
+ logger.addHandler(create_ezmsg_stderr_handler())
89
85
 
90
86
  LOGLEVEL = os.environ.get("EZMSG_LOGLEVEL", "INFO").upper()
91
87
  logger.setLevel(LOGLEVEL)