ezmsg 3.7.2__tar.gz → 3.7.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.
- {ezmsg-3.7.2 → ezmsg-3.7.3}/.github/workflows/ci.yml +1 -1
- {ezmsg-3.7.2 → ezmsg-3.7.3}/PKG-INFO +1 -1
- {ezmsg-3.7.2 → ezmsg-3.7.3}/pyproject.toml +1 -1
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/messagereplay.py +1 -1
- ezmsg-3.7.3/tests/test_messagereplay.py +92 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/.flake8 +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/.git-blame-ignore-revs +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/.github/workflows/docs.yml +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/.github/workflows/publish.yml +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/.gitignore +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/.pre-commit-config.yaml +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/LICENSE +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/README.md +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/docs/Makefile +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/docs/make.bat +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/docs/source/_static/_images/cloning.png +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/docs/source/_static/_images/ezmsg_logo.png +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/docs/source/_static/_images/tutorial_graph.png +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/docs/source/_static/_images/tutorial_graph_compact.png +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/docs/source/_static/_images/tutorial_graphviz.png +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/docs/source/_static/_images/tutorial_pipeline.png +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/docs/source/_static/_images/tutorial_system.png +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/docs/source/_static/custom.css +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/docs/source/conf.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/docs/source/index.rst +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/docs/source/reference/API/axisarray-util-units.rst +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/docs/source/reference/API/axisarray.rst +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/docs/source/reference/API/components.rst +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/docs/source/reference/API/content-api.rst +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/docs/source/reference/API/entrypoint.rst +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/docs/source/reference/API/functiondecorators.rst +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/docs/source/reference/API/util-units.rst +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/docs/source/reference/content-reference.rst +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/examples/.gitignore +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/examples/ezmsg_attach.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/examples/ezmsg_configs.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/examples/ezmsg_count.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/examples/ezmsg_generator.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/examples/ezmsg_intro.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/examples/ezmsg_leaky_subscriber.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/examples/ezmsg_log_to_file.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/examples/ezmsg_normalterm.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/examples/ezmsg_stop.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/examples/ezmsg_toy.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/examples/lowlevel_api.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/__init__.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/__main__.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/addressable.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/backend.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/backendprocess.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/backpressure.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/channelmanager.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/collection.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/command.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/component.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/dag.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/graph_util.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/graphcontext.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/graphserver.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/message.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/messagecache.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/messagechannel.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/messagemarshal.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/netprotocol.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/pubclient.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/settings.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/shm.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/state.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/stream.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/subclient.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/test.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/unit.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/core/util.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/__init__.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/debuglog.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/gen_to_unit.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/generator.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/messagecodec.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/messagegate.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/messagelogger.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/messagequeue.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/messages/__init__.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/messages/axisarray.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/messages/chunker.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/messages/key.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/messages/modify.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/messages/util.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/perf/__init__.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/perf/analysis.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/perf/command.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/perf/envinfo.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/perf/impl.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/perf/run.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/perf/util.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/profiler.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/rate.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/src/ezmsg/util/terminate.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/__init__.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/ez_test_utils.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/messages/__init__.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/messages/test_axisarray.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/messages/test_chunker.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/messages/test_key.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/messages/test_modify.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/test_addressable.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/test_attach.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/test_channel.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/test_channelmanager.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/test_connections.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/test_dag.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/test_generator.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/test_graph.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/test_graph_visualization.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/test_leaky_subscriber.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/test_perf_configs.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/test_profiler.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/test_run.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/test_shm.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/test_state.py +0 -0
- {ezmsg-3.7.2 → ezmsg-3.7.3}/tests/test_test.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ezmsg
|
|
3
|
-
Version: 3.7.
|
|
3
|
+
Version: 3.7.3
|
|
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
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"""Tests for ezmsg.util.messagereplay module."""
|
|
2
|
+
|
|
3
|
+
import json
|
|
4
|
+
import typing
|
|
5
|
+
from dataclasses import fields
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
import pytest
|
|
9
|
+
|
|
10
|
+
import ezmsg.core as ez
|
|
11
|
+
from ezmsg.util.messagecodec import MessageEncoder, LogStart
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def test_import():
|
|
15
|
+
"""Importing the module should not raise (regression: frozen dataclass inheritance on 3.13+)."""
|
|
16
|
+
from ezmsg.util.messagereplay import (
|
|
17
|
+
FileReplayMessage,
|
|
18
|
+
MessageCollector,
|
|
19
|
+
MessageReplay,
|
|
20
|
+
MessageReplaySettings,
|
|
21
|
+
ReplayStatusMessage,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def test_replay_status_message():
|
|
26
|
+
from ezmsg.util.messagereplay import ReplayStatusMessage
|
|
27
|
+
|
|
28
|
+
msg = ReplayStatusMessage(filename=Path("/tmp/test.log"), idx=3, total=10)
|
|
29
|
+
assert msg.filename == Path("/tmp/test.log")
|
|
30
|
+
assert msg.idx == 3
|
|
31
|
+
assert msg.total == 10
|
|
32
|
+
assert msg.done is False
|
|
33
|
+
|
|
34
|
+
msg_done = ReplayStatusMessage(filename=Path("/tmp/test.log"), idx=10, total=10, done=True)
|
|
35
|
+
assert msg_done.done is True
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def test_file_replay_message_defaults():
|
|
39
|
+
from ezmsg.util.messagereplay import FileReplayMessage
|
|
40
|
+
|
|
41
|
+
msg = FileReplayMessage()
|
|
42
|
+
assert msg.filename is None
|
|
43
|
+
assert msg.rate is None
|
|
44
|
+
|
|
45
|
+
msg2 = FileReplayMessage(filename=Path("/tmp/test.log"), rate=10.0)
|
|
46
|
+
assert msg2.filename == Path("/tmp/test.log")
|
|
47
|
+
assert msg2.rate == 10.0
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def test_message_replay_settings():
|
|
51
|
+
"""Settings should inherit from both ez.Settings and FileReplayMessage without error."""
|
|
52
|
+
from ezmsg.util.messagereplay import MessageReplaySettings
|
|
53
|
+
|
|
54
|
+
settings = MessageReplaySettings()
|
|
55
|
+
assert settings.filename is None
|
|
56
|
+
assert settings.rate is None
|
|
57
|
+
assert settings.progress is False
|
|
58
|
+
|
|
59
|
+
settings2 = MessageReplaySettings(filename=Path("/tmp/test.log"), rate=5.0, progress=True)
|
|
60
|
+
assert settings2.filename == Path("/tmp/test.log")
|
|
61
|
+
assert settings2.rate == 5.0
|
|
62
|
+
assert settings2.progress is True
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def test_message_replay_settings_is_frozen():
|
|
66
|
+
"""ez.Settings subclasses should be frozen dataclasses."""
|
|
67
|
+
from ezmsg.util.messagereplay import MessageReplaySettings
|
|
68
|
+
|
|
69
|
+
settings = MessageReplaySettings()
|
|
70
|
+
with pytest.raises(AttributeError):
|
|
71
|
+
settings.progress = True
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def test_message_replay_unit_streams():
|
|
75
|
+
"""MessageReplay unit should have the expected stream attributes."""
|
|
76
|
+
from ezmsg.util.messagereplay import MessageReplay
|
|
77
|
+
|
|
78
|
+
assert hasattr(MessageReplay, "INPUT_FILE")
|
|
79
|
+
assert hasattr(MessageReplay, "INPUT_PAUSED")
|
|
80
|
+
assert hasattr(MessageReplay, "INPUT_STOP")
|
|
81
|
+
assert hasattr(MessageReplay, "OUTPUT_MESSAGE")
|
|
82
|
+
assert hasattr(MessageReplay, "OUTPUT_TOTAL")
|
|
83
|
+
assert hasattr(MessageReplay, "OUTPUT_REPLAY_STATUS")
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def test_message_collector_collects(tmp_path):
|
|
87
|
+
"""MessageCollector should be instantiable and have an empty messages list."""
|
|
88
|
+
from ezmsg.util.messagereplay import MessageCollector
|
|
89
|
+
|
|
90
|
+
collector = MessageCollector()
|
|
91
|
+
assert hasattr(collector, "INPUT_MESSAGE")
|
|
92
|
+
assert hasattr(collector, "OUTPUT_MESSAGE")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|