pymmcore-plus 0.13.0__tar.gz → 0.13.1__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.0 → pymmcore_plus-0.13.1}/PKG-INFO +1 -1
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/_engine.py +6 -1
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mocks.py +1 -3
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_mda.py +16 -2
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/.gitignore +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/LICENSE +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/README.md +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/pyproject.toml +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/__init__.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/_benchmark.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/_build.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/_cli.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/_logger.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/_pymmcore.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/_util.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/__init__.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/_adapter.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/_config.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/_config_group.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/_constants.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/_device.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/_metadata.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/_mmcore_plus.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/_property.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/_sequencing.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/events/__init__.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/events/_device_signal_view.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/events/_norm_slot.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/events/_prop_event_mixin.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/events/_protocol.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/events/_psygnal.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/events/_qsignals.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/experimental/__init__.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/experimental/unicore/__init__.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/experimental/unicore/_device_manager.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/experimental/unicore/_proxy.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/experimental/unicore/_unicore.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/experimental/unicore/devices/__init__.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/experimental/unicore/devices/_device.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/experimental/unicore/devices/_properties.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/experimental/unicore/devices/_stage.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/install.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/__init__.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/_protocol.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/_runner.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/_thread_relay.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/events/__init__.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/events/_protocol.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/events/_psygnal.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/events/_qsignals.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/handlers/_5d_writer_base.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/handlers/__init__.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/handlers/_img_sequence_writer.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/handlers/_ome_tiff_writer.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/handlers/_ome_zarr_writer.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/handlers/_tensorstore_handler.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/handlers/_util.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/metadata/__init__.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/metadata/functions.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/metadata/schema.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/metadata/serialize.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/model/__init__.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/model/_config_file.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/model/_config_group.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/model/_core_device.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/model/_core_link.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/model/_device.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/model/_microscope.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/model/_pixel_size_config.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/model/_property.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/py.typed +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/seq_tester.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/__init__.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/conftest.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/io/test_image_sequence_writer.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/io/test_ome_tiff.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/io/test_zarr_writers.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/local_config.cfg +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_adapter_class.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_bench.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_cli.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_config_group_class.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_core.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_device_class.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_events.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_metadata.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_misc.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_model.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_pixel_config_class.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_property_class.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_sequencing.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_slm_image.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_thread_relay.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/unicore/test_unicore.py +0 -0
- {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/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.1
|
|
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
|
|
@@ -248,7 +248,12 @@ class MDAEngine(PMDAEngine):
|
|
|
248
248
|
self._mmc.setExposure(event.exposure)
|
|
249
249
|
except Exception as e:
|
|
250
250
|
logger.warning("Failed to set exposure. %s", e)
|
|
251
|
-
|
|
251
|
+
if event.properties is not None:
|
|
252
|
+
try:
|
|
253
|
+
for dev, prop, value in event.properties:
|
|
254
|
+
self._mmc.setProperty(dev, prop, value)
|
|
255
|
+
except Exception as e:
|
|
256
|
+
logger.warning("Failed to set properties. %s", e)
|
|
252
257
|
if (
|
|
253
258
|
# (if autoshutter wasn't set at the beginning of the sequence
|
|
254
259
|
# then it never matters...)
|
|
@@ -28,9 +28,7 @@ class MockSequenceableCore(MagicMock):
|
|
|
28
28
|
self.loadExposureSequence.return_value = None
|
|
29
29
|
self.loadStageSequence.return_value = None
|
|
30
30
|
self.loadXYStageSequence.return_value = None
|
|
31
|
-
|
|
32
|
-
if hasattr(CMMCorePlus, "loadSLMSequence"):
|
|
33
|
-
self.loadSLMSequence.return_value = None
|
|
31
|
+
self.loadSLMSequence.return_value = None
|
|
34
32
|
|
|
35
33
|
self.loadPropertySequence.return_value = None
|
|
36
34
|
|
|
@@ -49,19 +49,33 @@ def test_mda_waiting(core: CMMCorePlus) -> None:
|
|
|
49
49
|
|
|
50
50
|
def test_setting_position(core: CMMCorePlus) -> None:
|
|
51
51
|
core.mda._running = True
|
|
52
|
-
event1 = MDAEvent(
|
|
52
|
+
event1 = MDAEvent(
|
|
53
|
+
exposure=123,
|
|
54
|
+
x_pos=123,
|
|
55
|
+
y_pos=456,
|
|
56
|
+
z_pos=1,
|
|
57
|
+
properties=[("Camera", "TestProperty1", 0.05)],
|
|
58
|
+
)
|
|
53
59
|
core.mda.engine.setup_event(event1)
|
|
54
60
|
assert tuple(core.getXYPosition()) == (123, 456)
|
|
55
61
|
assert core.getPosition() == 1
|
|
56
62
|
assert core.getExposure() == 123
|
|
63
|
+
assert core.getProperty("Camera", "TestProperty1") == "0.0500"
|
|
57
64
|
|
|
58
65
|
# check that we aren't check things like: if event.x_pos
|
|
59
66
|
# because then we will not set to zero
|
|
60
|
-
event2 = MDAEvent(
|
|
67
|
+
event2 = MDAEvent(
|
|
68
|
+
exposure=321,
|
|
69
|
+
x_pos=0,
|
|
70
|
+
y_pos=0,
|
|
71
|
+
z_pos=0,
|
|
72
|
+
properties=[("Camera", "TestProperty2", -0.07)],
|
|
73
|
+
)
|
|
61
74
|
core.mda.engine.setup_event(event2)
|
|
62
75
|
assert tuple(core.getXYPosition()) == (0, 0)
|
|
63
76
|
assert core.getPosition() == 0
|
|
64
77
|
assert core.getExposure() == 321
|
|
78
|
+
assert core.getProperty("Camera", "TestProperty2") == "-0.0700"
|
|
65
79
|
|
|
66
80
|
|
|
67
81
|
class BrokenEngine:
|
|
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
|
{pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/events/_device_signal_view.py
RENAMED
|
File without changes
|
|
File without changes
|
{pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/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.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/experimental/unicore/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/experimental/unicore/_proxy.py
RENAMED
|
File without changes
|
{pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/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.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/handlers/_5d_writer_base.py
RENAMED
|
File without changes
|
|
File without changes
|
{pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/handlers/_img_sequence_writer.py
RENAMED
|
File without changes
|
{pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/handlers/_ome_tiff_writer.py
RENAMED
|
File without changes
|
{pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/handlers/_ome_zarr_writer.py
RENAMED
|
File without changes
|
{pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/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
|