pymmcore-plus 0.15.3__py3-none-any.whl → 0.15.4__py3-none-any.whl

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.
@@ -131,6 +131,9 @@ class PCoreSignaler(Protocol):
131
131
  """Emits `(name: str, newExposure: float)` when the exposure of the SLM device changes.""" # noqa: E501
132
132
  sLMExposureChanged: ClassVar[PSignal] # alias
133
133
 
134
+ shutterOpenChanged: ClassVar[PSignal]
135
+ """Emits `(name: str, isOpen: bool)` when the shutter open state has changed."""
136
+
134
137
  # added for CMMCorePlus
135
138
  configSet: ClassVar[PSignal]
136
139
  """Emits `(str, str)` when a config has been set.
@@ -24,6 +24,7 @@ class CMMCoreSignaler(SignalGroup, _DevicePropertyEventMixin):
24
24
  XYStagePositionChanged = Signal(str, float, float)
25
25
  exposureChanged = Signal(str, float)
26
26
  SLMExposureChanged = Signal(str, float)
27
+ shutterOpenChanged = Signal(str, bool)
27
28
 
28
29
  # https://github.com/micro-manager/mmCoreAndDevices/pull/659
29
30
  imageSnapped = Signal(str) # on snapImage()
@@ -25,6 +25,7 @@ class QCoreSignaler(QObject):
25
25
  exposureChanged = Signal(str, float)
26
26
  SLMExposureChanged = Signal(str, float)
27
27
  sLMExposureChanged = SLMExposureChanged # alias
28
+ shutterOpenChanged = Signal(str, bool)
28
29
 
29
30
  # https://github.com/micro-manager/mmCoreAndDevices/pull/659
30
31
  imageSnapped = Signal(str) # on snapImage()
pymmcore_plus/install.py CHANGED
@@ -68,6 +68,7 @@ DOWNLOADS_URL = f"{BASE_URL}/nightly/2.0/{plat}/"
68
68
  # generally running `mmcore install -r <some_date>` will bring in devices with
69
69
  # the NEW interface.
70
70
  INTERFACES: dict[int, str] = {
71
+ 74: "20250815",
71
72
  73: "20250318",
72
73
  72: "20250318",
73
74
  71: "20221031",
@@ -26,7 +26,7 @@ def _get_auto_MDA_callback_class() -> type[PMDASignaler]:
26
26
  return QMDASignaler
27
27
 
28
28
  # (not sure why this type ignore is needed... apparently isn't matching protocol)
29
- return MDASignaler # type: ignore
29
+ return MDASignaler
30
30
 
31
31
 
32
32
  def __dir__() -> list[str]: # pragma: no cover
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pymmcore-plus
3
- Version: 0.15.3
3
+ Version: 0.15.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
@@ -7,7 +7,7 @@ pymmcore_plus/_ipy_completion.py,sha256=K__bKTJZukzz0RhNr3KZ2urpQGxQrW8ySUQtHDoK
7
7
  pymmcore_plus/_logger.py,sha256=d7ldqxY0rGWORKdIzNUiFc9BW6cFBx57kHWtXyY1HE0,5416
8
8
  pymmcore_plus/_pymmcore.py,sha256=hy0gfEhvQ84o7SFIB2nQp6A1w2L4U7VQrV5_qKsJoLQ,699
9
9
  pymmcore_plus/_util.py,sha256=VGcb_nQu6BBWZsQihed0TrCHdTRADKlBo_qSnIbeF0Q,22814
10
- pymmcore_plus/install.py,sha256=U4TbQXbUc12aMtGRF_SkinNOTDCuuzIhME5Oup_4ds0,10768
10
+ pymmcore_plus/install.py,sha256=t05GmuxphIVkOr1CuFLAL6NmzL5ELWiXl7aivtQSoOo,10788
11
11
  pymmcore_plus/mocks.py,sha256=jNUfmffD1OArtIvEmqWsy7GCrtTpssVF03flH8cEYx8,1867
12
12
  pymmcore_plus/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  pymmcore_plus/seq_tester.py,sha256=ielLx2ZUJrOXVCojk64UXTeKDoARxt8QkQjt5AE5Gng,3776
@@ -26,9 +26,9 @@ pymmcore_plus/core/events/_deprecated.py,sha256=H_Sd63ZyV3Hkq8Imozi8OE7FIa_hhSRp
26
26
  pymmcore_plus/core/events/_device_signal_view.py,sha256=t-NfBdg3E4rms4vDFxkkR5XtrpLxaBT7mfPwkpIsbVk,1079
27
27
  pymmcore_plus/core/events/_norm_slot.py,sha256=8DCBoLHGh7cbB1OB19IJYwL6sFBFmkD8IakfBOvFbw8,2907
28
28
  pymmcore_plus/core/events/_prop_event_mixin.py,sha256=FvJJnpEKrOR-_Sp3-NNCwFoUUHwmNKiHruo0Y1vybsY,4042
29
- pymmcore_plus/core/events/_protocol.py,sha256=LSS2ns1XZqByB61nx_zdwMxqQuHmRj4BrbJ392f6Z30,8944
30
- pymmcore_plus/core/events/_psygnal.py,sha256=GZGLU-L9lE-l-_24ABKhT8_OUw0yvu9QxNIk6mAVwL8,2709
31
- pymmcore_plus/core/events/_qsignals.py,sha256=d1-J2ISo09JovLrZ6Tn3b5DHrmbRMbvqfFaH_Hsb0Os,4009
29
+ pymmcore_plus/core/events/_protocol.py,sha256=0EpuRrgbnG_abE8raixViU4QcJ59i2RWI7kwKIeZiBs,9072
30
+ pymmcore_plus/core/events/_psygnal.py,sha256=PogTZBA2Xd1PaKHtWpqkSqYOwRd4UM2XSHAHo7-UipI,2752
31
+ pymmcore_plus/core/events/_qsignals.py,sha256=aQfLz_E7E3gqE62KWmuyxekQB9N2rUZ9Dbd8c-TgV9U,4052
32
32
  pymmcore_plus/experimental/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
33
  pymmcore_plus/experimental/unicore/__init__.py,sha256=2jjw8K3DZ8NSY5mFn4YBTrYp78Zc9EbGIZCiyG7PujQ,682
34
34
  pymmcore_plus/experimental/unicore/_device_manager.py,sha256=I0kbIsxxT3tyeeSElK4l4kUd16hbw81fJv3UZCQPW2Q,6423
@@ -50,7 +50,7 @@ pymmcore_plus/mda/_engine.py,sha256=U83PnmbaWChxUCEskKqHVy-Xa8KAZAMuvwPSVTAwsKg,
50
50
  pymmcore_plus/mda/_protocol.py,sha256=10CDJ9H57oX1z0oqK3eShXyQhufHvvu3_8wdaCYpPIg,3254
51
51
  pymmcore_plus/mda/_runner.py,sha256=NSOhpll6_WxDLO19FTs19dASJcHcOoVOCy7q_QzX_Ms,18523
52
52
  pymmcore_plus/mda/_thread_relay.py,sha256=Ww-9gyvLEzwRhnpL1dpze71wL7IRlhH8K3Q1dmJIxgs,6193
53
- pymmcore_plus/mda/events/__init__.py,sha256=v7YsVXzd3cTavFs2v3_PEhjqP4CtuRE0nWUoJA3CvYU,1176
53
+ pymmcore_plus/mda/events/__init__.py,sha256=Y3AermCe3megT48VMF9-6lGweAx1J13hAC_TZjvtw6M,1160
54
54
  pymmcore_plus/mda/events/_protocol.py,sha256=9xs9sRaCGtOQcAPChsB_NxXs4g8eaEKuJHBzNRRtiII,1739
55
55
  pymmcore_plus/mda/events/_psygnal.py,sha256=TdN1mFGpTPXmEs9iwFKSC1svv87PDZkT2JZvl0tEGrQ,640
56
56
  pymmcore_plus/mda/events/_qsignals.py,sha256=tULQg-e_NX197DxJXaWHn1zLJ-4tzc9QyOAnsobEDtA,554
@@ -74,8 +74,8 @@ pymmcore_plus/model/_device.py,sha256=AX3rO2gbY7AXJyMN3FfI_n2jl2V0IAPuBh7MiDA5Sq
74
74
  pymmcore_plus/model/_microscope.py,sha256=69VV6cuevinOK_LhYEkQygHGesvCZefdn9YNt3mV618,11353
75
75
  pymmcore_plus/model/_pixel_size_config.py,sha256=RXk8AAwARe8clsXue0GZfOTb1bxyXIsO0ibcDLHM4_s,3889
76
76
  pymmcore_plus/model/_property.py,sha256=NQzNtnEzSCR9ogwx1cfi8X-qbJ_cBSJKdSBAaoKoPQ0,3720
77
- pymmcore_plus-0.15.3.dist-info/METADATA,sha256=L5RyGMYqgYUSedw36U4I6MJORJrcsKexbailtiUWmG0,8835
78
- pymmcore_plus-0.15.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
79
- pymmcore_plus-0.15.3.dist-info/entry_points.txt,sha256=NtFyndrQzBpUNJyil-8e5hMGke2utAf7mkGavTLcLOY,51
80
- pymmcore_plus-0.15.3.dist-info/licenses/LICENSE,sha256=OHJjRpOPKKRc7FEnpehNWdR5LRBdBhUtIFG-ZI0dCEA,1522
81
- pymmcore_plus-0.15.3.dist-info/RECORD,,
77
+ pymmcore_plus-0.15.4.dist-info/METADATA,sha256=-3XrqRBjgLgw1NqqiSnXjoLYIw0nteZgXIeOYpVl1Pg,8835
78
+ pymmcore_plus-0.15.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
79
+ pymmcore_plus-0.15.4.dist-info/entry_points.txt,sha256=NtFyndrQzBpUNJyil-8e5hMGke2utAf7mkGavTLcLOY,51
80
+ pymmcore_plus-0.15.4.dist-info/licenses/LICENSE,sha256=OHJjRpOPKKRc7FEnpehNWdR5LRBdBhUtIFG-ZI0dCEA,1522
81
+ pymmcore_plus-0.15.4.dist-info/RECORD,,