pymmcore-plus 0.13.3__tar.gz → 0.13.4__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.
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/PKG-INFO +2 -2
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/pyproject.toml +1 -1
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/_engine.py +8 -1
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/test_mda.py +6 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/.gitignore +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/LICENSE +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/README.md +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/__init__.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/_benchmark.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/_build.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/_cli.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/_logger.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/_pymmcore.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/_util.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/core/__init__.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/core/_adapter.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/core/_config.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/core/_config_group.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/core/_constants.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/core/_device.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/core/_metadata.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/core/_mmcore_plus.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/core/_property.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/core/_sequencing.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/core/events/__init__.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/core/events/_device_signal_view.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/core/events/_norm_slot.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/core/events/_prop_event_mixin.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/core/events/_protocol.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/core/events/_psygnal.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/core/events/_qsignals.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/experimental/__init__.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/experimental/unicore/__init__.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/experimental/unicore/_device_manager.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/experimental/unicore/_proxy.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/experimental/unicore/_unicore.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/experimental/unicore/devices/__init__.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/experimental/unicore/devices/_device.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/experimental/unicore/devices/_properties.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/experimental/unicore/devices/_stage.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/install.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/__init__.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/_protocol.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/_runner.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/_thread_relay.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/events/__init__.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/events/_protocol.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/events/_psygnal.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/events/_qsignals.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/handlers/_5d_writer_base.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/handlers/__init__.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/handlers/_img_sequence_writer.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/handlers/_ome_tiff_writer.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/handlers/_ome_zarr_writer.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/handlers/_tensorstore_handler.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/handlers/_util.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/metadata/__init__.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/metadata/functions.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/metadata/schema.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/metadata/serialize.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mocks.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/model/__init__.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/model/_config_file.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/model/_config_group.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/model/_core_device.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/model/_core_link.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/model/_device.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/model/_microscope.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/model/_pixel_size_config.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/model/_property.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/py.typed +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/seq_tester.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/__init__.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/conftest.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/io/test_image_sequence_writer.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/io/test_ome_tiff.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/io/test_zarr_writers.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/local_config.cfg +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/test_adapter_class.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/test_bench.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/test_cli.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/test_config_group_class.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/test_core.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/test_device_class.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/test_events.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/test_metadata.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/test_misc.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/test_model.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/test_pixel_config_class.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/test_property_class.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/test_sequencing.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/test_slm_image.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/test_thread_relay.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/unicore/test_unicore.py +0 -0
- {pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/tests/unicore/test_xy_stage.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pymmcore-plus
|
|
3
|
-
Version: 0.13.
|
|
3
|
+
Version: 0.13.4
|
|
4
4
|
Summary: pymmcore superset providing improved APIs, event handling, and a pure python acquisition engine
|
|
5
5
|
Project-URL: Source, https://github.com/pymmcore-plus/pymmcore-plus
|
|
6
6
|
Project-URL: Tracker, https://github.com/pymmcore-plus/pymmcore-plus/issues
|
|
@@ -33,7 +33,7 @@ Requires-Dist: rich>=10.2.0
|
|
|
33
33
|
Requires-Dist: tensorstore; python_version < '3.13'
|
|
34
34
|
Requires-Dist: typer>=0.4.2
|
|
35
35
|
Requires-Dist: typing-extensions
|
|
36
|
-
Requires-Dist: useq-schema>=0.
|
|
36
|
+
Requires-Dist: useq-schema>=0.7.0
|
|
37
37
|
Provides-Extra: cli
|
|
38
38
|
Requires-Dist: rich>=10.2.0; extra == 'cli'
|
|
39
39
|
Requires-Dist: typer>=0.4.2; extra == 'cli'
|
|
@@ -40,7 +40,7 @@ dependencies = [
|
|
|
40
40
|
"psygnal >=0.7",
|
|
41
41
|
"pymmcore >=10.7.0.71.0",
|
|
42
42
|
"typing-extensions", # not actually required at runtime
|
|
43
|
-
"useq-schema >=0.
|
|
43
|
+
"useq-schema >=0.7.0",
|
|
44
44
|
"tensorstore; python_version < '3.13'",
|
|
45
45
|
# cli requirements included by default for now
|
|
46
46
|
"typer >=0.4.2",
|
|
@@ -7,7 +7,7 @@ from typing import TYPE_CHECKING, Literal, NamedTuple, cast
|
|
|
7
7
|
|
|
8
8
|
import numpy as np
|
|
9
9
|
import useq
|
|
10
|
-
from useq import HardwareAutofocus, MDAEvent, MDASequence
|
|
10
|
+
from useq import AcquireImage, HardwareAutofocus, MDAEvent, MDASequence
|
|
11
11
|
|
|
12
12
|
from pymmcore_plus._logger import logger
|
|
13
13
|
from pymmcore_plus._util import retry
|
|
@@ -195,6 +195,13 @@ class MDAEngine(PMDAEngine):
|
|
|
195
195
|
)
|
|
196
196
|
return
|
|
197
197
|
|
|
198
|
+
# don't try to execute any other action types. Mostly, this is just
|
|
199
|
+
# CustomAction, which is a user-defined action that the engine doesn't know how
|
|
200
|
+
# to handle. But may include other actions in the future, and this ensures
|
|
201
|
+
# backwards compatibility.
|
|
202
|
+
if not isinstance(action, (AcquireImage, type(None))):
|
|
203
|
+
return
|
|
204
|
+
|
|
198
205
|
# if the autofocus was engaged at the start of the sequence AND autofocus action
|
|
199
206
|
# did not fail, re-engage it. NOTE: we need to do that AFTER the runner calls
|
|
200
207
|
# `setup_event`, so we can't do it inside the exec_event autofocus action above.
|
|
@@ -490,3 +490,9 @@ def test_get_handlers(core: CMMCorePlus) -> None:
|
|
|
490
490
|
# but they should have been available during start and finish events
|
|
491
491
|
assert on_start_names == ["TensorStoreHandler"]
|
|
492
492
|
assert on_finish_names == ["TensorStoreHandler"]
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
def test_custom_action(core: CMMCorePlus) -> None:
|
|
496
|
+
"""Make sure we can handle custom actions gracefully"""
|
|
497
|
+
|
|
498
|
+
core.mda.run([MDAEvent(action=useq.CustomAction())])
|
|
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
|
{pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/core/events/_device_signal_view.py
RENAMED
|
File without changes
|
|
File without changes
|
{pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/core/events/_prop_event_mixin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/experimental/unicore/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/experimental/unicore/_proxy.py
RENAMED
|
File without changes
|
{pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/experimental/unicore/_unicore.py
RENAMED
|
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
|
{pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/handlers/_5d_writer_base.py
RENAMED
|
File without changes
|
|
File without changes
|
{pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/handlers/_img_sequence_writer.py
RENAMED
|
File without changes
|
{pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/handlers/_ome_tiff_writer.py
RENAMED
|
File without changes
|
{pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/handlers/_ome_zarr_writer.py
RENAMED
|
File without changes
|
{pymmcore_plus-0.13.3 → pymmcore_plus-0.13.4}/src/pymmcore_plus/mda/handlers/_tensorstore_handler.py
RENAMED
|
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
|