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.
Files changed (95) hide show
  1. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/PKG-INFO +1 -1
  2. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/_engine.py +6 -1
  3. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mocks.py +1 -3
  4. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_mda.py +16 -2
  5. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/.gitignore +0 -0
  6. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/LICENSE +0 -0
  7. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/README.md +0 -0
  8. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/pyproject.toml +0 -0
  9. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/__init__.py +0 -0
  10. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/_benchmark.py +0 -0
  11. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/_build.py +0 -0
  12. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/_cli.py +0 -0
  13. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/_logger.py +0 -0
  14. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/_pymmcore.py +0 -0
  15. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/_util.py +0 -0
  16. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/__init__.py +0 -0
  17. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/_adapter.py +0 -0
  18. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/_config.py +0 -0
  19. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/_config_group.py +0 -0
  20. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/_constants.py +0 -0
  21. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/_device.py +0 -0
  22. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/_metadata.py +0 -0
  23. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/_mmcore_plus.py +0 -0
  24. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/_property.py +0 -0
  25. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/_sequencing.py +0 -0
  26. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/events/__init__.py +0 -0
  27. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/events/_device_signal_view.py +0 -0
  28. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/events/_norm_slot.py +0 -0
  29. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/events/_prop_event_mixin.py +0 -0
  30. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/events/_protocol.py +0 -0
  31. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/events/_psygnal.py +0 -0
  32. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/core/events/_qsignals.py +0 -0
  33. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/experimental/__init__.py +0 -0
  34. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/experimental/unicore/__init__.py +0 -0
  35. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/experimental/unicore/_device_manager.py +0 -0
  36. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/experimental/unicore/_proxy.py +0 -0
  37. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/experimental/unicore/_unicore.py +0 -0
  38. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/experimental/unicore/devices/__init__.py +0 -0
  39. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/experimental/unicore/devices/_device.py +0 -0
  40. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/experimental/unicore/devices/_properties.py +0 -0
  41. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/experimental/unicore/devices/_stage.py +0 -0
  42. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/install.py +0 -0
  43. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/__init__.py +0 -0
  44. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/_protocol.py +0 -0
  45. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/_runner.py +0 -0
  46. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/_thread_relay.py +0 -0
  47. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/events/__init__.py +0 -0
  48. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/events/_protocol.py +0 -0
  49. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/events/_psygnal.py +0 -0
  50. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/events/_qsignals.py +0 -0
  51. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/handlers/_5d_writer_base.py +0 -0
  52. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/handlers/__init__.py +0 -0
  53. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/handlers/_img_sequence_writer.py +0 -0
  54. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/handlers/_ome_tiff_writer.py +0 -0
  55. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/handlers/_ome_zarr_writer.py +0 -0
  56. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/handlers/_tensorstore_handler.py +0 -0
  57. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/mda/handlers/_util.py +0 -0
  58. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/metadata/__init__.py +0 -0
  59. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/metadata/functions.py +0 -0
  60. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/metadata/schema.py +0 -0
  61. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/metadata/serialize.py +0 -0
  62. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/model/__init__.py +0 -0
  63. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/model/_config_file.py +0 -0
  64. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/model/_config_group.py +0 -0
  65. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/model/_core_device.py +0 -0
  66. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/model/_core_link.py +0 -0
  67. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/model/_device.py +0 -0
  68. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/model/_microscope.py +0 -0
  69. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/model/_pixel_size_config.py +0 -0
  70. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/model/_property.py +0 -0
  71. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/py.typed +0 -0
  72. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/src/pymmcore_plus/seq_tester.py +0 -0
  73. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/__init__.py +0 -0
  74. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/conftest.py +0 -0
  75. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/io/test_image_sequence_writer.py +0 -0
  76. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/io/test_ome_tiff.py +0 -0
  77. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/io/test_zarr_writers.py +0 -0
  78. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/local_config.cfg +0 -0
  79. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_adapter_class.py +0 -0
  80. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_bench.py +0 -0
  81. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_cli.py +0 -0
  82. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_config_group_class.py +0 -0
  83. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_core.py +0 -0
  84. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_device_class.py +0 -0
  85. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_events.py +0 -0
  86. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_metadata.py +0 -0
  87. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_misc.py +0 -0
  88. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_model.py +0 -0
  89. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_pixel_config_class.py +0 -0
  90. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_property_class.py +0 -0
  91. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_sequencing.py +0 -0
  92. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_slm_image.py +0 -0
  93. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/test_thread_relay.py +0 -0
  94. {pymmcore_plus-0.13.0 → pymmcore_plus-0.13.1}/tests/unicore/test_unicore.py +0 -0
  95. {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.0
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
- # TODO: add support in pymmcore-nano
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(exposure=123, x_pos=123, y_pos=456, z_pos=1)
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(exposure=321, x_pos=0, y_pos=0, z_pos=0)
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