pymmcore-plus 0.11.0__py3-none-any.whl → 0.11.1__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.
pymmcore_plus/_cli.py CHANGED
@@ -31,7 +31,7 @@ def _show_version_and_exit(value: bool) -> None:
31
31
  import pymmcore
32
32
 
33
33
  typer.echo(f"pymmcore-plus v{pymmcore_plus.__version__}")
34
- typer.echo(f"pymmcore v{pymmcore.__version__}") # type: ignore [attr-defined]
34
+ typer.echo(f"pymmcore v{pymmcore.__version__}")
35
35
  typer.echo(f"MMCore v{pymmcore.CMMCore().getAPIVersionInfo()}")
36
36
  raise typer.Exit()
37
37
 
@@ -53,7 +53,7 @@ def _main(
53
53
  # fix for windows CI encoding and emoji printing
54
54
  if getattr(sys.stdout, "encoding", None) != "utf-8":
55
55
  with suppress(AttributeError):
56
- sys.stdout.reconfigure(encoding="utf-8") # type: ignore [attr-defined]
56
+ sys.stdout.reconfigure(encoding="utf-8") # type: ignore [union-attr]
57
57
 
58
58
 
59
59
  if "mkdocs" in sys.argv[0]: # pragma: no cover
@@ -1594,7 +1594,7 @@ class CMMCorePlus(pymmcore.CMMCore):
1594
1594
 
1595
1595
  try:
1596
1596
  channel_group = self.getPropertyFromCache("Core", "ChannelGroup")
1597
- channel = self.getCurrentConfigFromCache(channel_group)
1597
+ channel: str = self.getCurrentConfigFromCache(channel_group)
1598
1598
  except Exception:
1599
1599
  channel = "Default"
1600
1600
  tags["Channel"] = channel
@@ -2010,7 +2010,7 @@ class CMMCorePlus(pymmcore.CMMCore):
2010
2010
 
2011
2011
  :sparkles: *This method is new in `CMMCorePlus`.*
2012
2012
  """
2013
- _current = {
2013
+ _current: dict[str, str] = {
2014
2014
  self.getCameraDevice(): "Camera",
2015
2015
  self.getXYStageDevice(): "XYStage",
2016
2016
  self.getFocusDevice(): "Focus",
@@ -54,12 +54,11 @@ class MDAEngine(PMDAEngine):
54
54
  attempt to combine MDAEvents into a single `SequencedEvent` if
55
55
  [`core.canSequenceEvents()`][pymmcore_plus.CMMCorePlus.canSequenceEvents]
56
56
  reports that the events can be sequenced. This can be set after instantiation.
57
- By default, this is `False`, in order to avoid unexpected behavior, particularly
58
- in testing and demo scenarios. But in many "real world" scenarios, this can be
59
- set to `True` to improve performance.
57
+ By default, this is `True`, however in various testing and demo scenarios, you
58
+ may wish to set it to `False` in order to avoid unexpected behavior.
60
59
  """
61
60
 
62
- def __init__(self, mmc: CMMCorePlus, use_hardware_sequencing: bool = False) -> None:
61
+ def __init__(self, mmc: CMMCorePlus, use_hardware_sequencing: bool = True) -> None:
63
62
  self._mmc = mmc
64
63
  self.use_hardware_sequencing = use_hardware_sequencing
65
64
 
@@ -180,7 +180,7 @@ def image_info(core: CMMCorePlus) -> ImageInfo:
180
180
  if (mag_factor := core.getMagnificationFactor()) != 1.0:
181
181
  info["magnification_factor"] = mag_factor
182
182
  if (affine := core.getPixelSizeAffine(True)) != (1.0, 0.0, 0.0, 0.0, 1.0, 0.0):
183
- info["pixel_size_affine"] = affine # type: ignore [typeddict-item]
183
+ info["pixel_size_affine"] = affine
184
184
 
185
185
  with suppress(RuntimeError):
186
186
  if (roi := core.getROI()) != [0, 0, w, h]:
@@ -278,7 +278,7 @@ def pixel_size_config(core: CMMCorePlus, *, config_name: str) -> PixelSizeConfig
278
278
  }
279
279
  affine = core.getPixelSizeAffineByID(config_name)
280
280
  if affine != (1.0, 0.0, 0.0, 0.0, 1.0, 0.0):
281
- info["pixel_size_affine"] = affine # type: ignore [typeddict-item]
281
+ info["pixel_size_affine"] = affine
282
282
  return info
283
283
 
284
284
 
@@ -212,7 +212,7 @@ class Microscope:
212
212
  self.devices = [
213
213
  Device.create_from_core(core, name=name)
214
214
  for name in core.getLoadedDevices()
215
- if name != Keyword.CoreDevice
215
+ if name != Keyword.CoreDevice # type: ignore [comparison-overlap]
216
216
  ]
217
217
  if "core_device" not in exclude:
218
218
  self.core_device.update_from_core(core)
@@ -77,7 +77,7 @@ class PixelSizeGroup(ConfigGroup):
77
77
  preset: PixelSizePreset(
78
78
  name=preset,
79
79
  pixel_size_um=core.getPixelSizeUmByID(preset),
80
- affine=core.getPixelSizeAffineByID(preset), # type: ignore
80
+ affine=core.getPixelSizeAffineByID(preset),
81
81
  settings=[Setting(*d) for d in core.getPixelSizeConfigData(preset)],
82
82
  )
83
83
  for preset in core.getAvailablePixelSizeConfigs()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pymmcore-plus
3
- Version: 0.11.0
3
+ Version: 0.11.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
@@ -53,7 +53,7 @@ Requires-Dist: mkdocstrings-python==1.1.2; extra == 'docs'
53
53
  Requires-Dist: mkdocstrings==0.22.0; extra == 'docs'
54
54
  Provides-Extra: io
55
55
  Requires-Dist: tifffile>=2021.6.14; extra == 'io'
56
- Requires-Dist: zarr>=2.2; extra == 'io'
56
+ Requires-Dist: zarr<3,>=2.2; extra == 'io'
57
57
  Provides-Extra: test
58
58
  Requires-Dist: msgpack; extra == 'test'
59
59
  Requires-Dist: msgspec; extra == 'test'
@@ -65,7 +65,7 @@ Requires-Dist: rich; extra == 'test'
65
65
  Requires-Dist: tifffile>=2021.6.14; extra == 'test'
66
66
  Requires-Dist: typer>=0.4.2; extra == 'test'
67
67
  Requires-Dist: xarray; extra == 'test'
68
- Requires-Dist: zarr>=2.2; extra == 'test'
68
+ Requires-Dist: zarr<3,>=2.2; extra == 'test'
69
69
  Description-Content-Type: text/markdown
70
70
 
71
71
  # pymmcore-plus
@@ -1,6 +1,6 @@
1
1
  pymmcore_plus/__init__.py,sha256=y2y48MqOnY-B1h7QnJc36HRDuXEegMsPNqKq51bu8DQ,1415
2
2
  pymmcore_plus/_build.py,sha256=PU6rm_4l-SGMurPQT5RuloUMkrgqKTI0Y9ePbPmWOmo,10928
3
- pymmcore_plus/_cli.py,sha256=M2ndZGKv6HN7DtVaeB48bAQiaJN8Yu8GcupjaGZelNQ,14291
3
+ pymmcore_plus/_cli.py,sha256=m6OEbKM90lJ6v5429cbsIultyB86iqXaDN0hSSyj810,14258
4
4
  pymmcore_plus/_logger.py,sha256=IQl--kuEQqUwV9C4P1sY-7J5IW6V7q45wsi2NbfnAbM,5088
5
5
  pymmcore_plus/_util.py,sha256=mNabztc90ck1rN_15RtaYjk6acyP2azSJGzMkyeJELs,20247
6
6
  pymmcore_plus/install.py,sha256=a85-KCifBetKSQXwH1DqEkz7il5iqFcl9LR0qFIVvbk,8503
@@ -13,7 +13,7 @@ pymmcore_plus/core/_config_group.py,sha256=w-psUtMk3X6MzqU17j4D2yZ_ugLP7u0-mvPIX
13
13
  pymmcore_plus/core/_constants.py,sha256=55lKxI38TXceowsM_Z7ShWZ-DfQiBJB_qqzaU8G9PSc,11743
14
14
  pymmcore_plus/core/_device.py,sha256=Uy5A58Jj_bIY5n6OymtTJPRnYkktoCq6ZtQV4KcLwPo,7756
15
15
  pymmcore_plus/core/_metadata.py,sha256=64RdptyRGRqtRJ8pWMlAyevSgYMAE1Hzs8TB3DBQHAA,2618
16
- pymmcore_plus/core/_mmcore_plus.py,sha256=fOtv3hf11YkV7ekEZePOS0tCkDqGdFpihqrIZot20n8,87548
16
+ pymmcore_plus/core/_mmcore_plus.py,sha256=twgVOJ3yF67ljvcWOtU0HexuLCNpQlqsN9yxIqwqdqI,87569
17
17
  pymmcore_plus/core/_property.py,sha256=sd28rZE-_l4HaIJxqJlUX7DlM-Fa9_Xr6cLERwOtBYc,8283
18
18
  pymmcore_plus/core/_sequencing.py,sha256=ueyuqsUPbfH7FLMdqFUpHoxSZfBRHHkYmv12lOt72hI,11847
19
19
  pymmcore_plus/core/events/__init__.py,sha256=8NjFkVdRVRiiLUQ_brGQSlTaK3rqNizdNEX17NEXAis,1106
@@ -24,7 +24,7 @@ pymmcore_plus/core/events/_protocol.py,sha256=Cf9uGZe_uP8nIa8rsaDIX5RCW5pNQQt2ju
24
24
  pymmcore_plus/core/events/_psygnal.py,sha256=owaKlW2zpvocXDbAW4kHovBoVv4Fjfn-S5oUJrVWsD4,1646
25
25
  pymmcore_plus/core/events/_qsignals.py,sha256=gr-GDiSVLhFhSfaoKrdTz2y3I_2IUg62bYDGuGrB3j0,3018
26
26
  pymmcore_plus/mda/__init__.py,sha256=NF4OReQbShxZeLFaNaLPyMwkr1e5j5zMZmzHvHeSBzE,298
27
- pymmcore_plus/mda/_engine.py,sha256=qHIMwLsl9NROa8pVv41dKzZP3OoNeRhosMjuIL4a0sY,24432
27
+ pymmcore_plus/mda/_engine.py,sha256=gN_F9iJyEzHCIBVBYUCL6fnRlbBcDbpR8cmkwK5d_1I,24372
28
28
  pymmcore_plus/mda/_protocol.py,sha256=vuotAc2P1zl2EX4wGjfaasarQHNqtF5UpOwPtUqHG2Y,3245
29
29
  pymmcore_plus/mda/_runner.py,sha256=edgRQo-YRzF5f2VEVjATsTV70wUjuRcUFF5XtRLgguE,15498
30
30
  pymmcore_plus/mda/_thread_relay.py,sha256=wjP1tag7nN2Sr0RzaPnYRqHl8XjAQg2MpXOt0ONLcQ8,6112
@@ -40,7 +40,7 @@ pymmcore_plus/mda/handlers/_ome_zarr_writer.py,sha256=ReJW8bnk-vQk4J1Zd66swkQATg
40
40
  pymmcore_plus/mda/handlers/_tensorstore_handler.py,sha256=gweY2WoXgjPmiQbfTgL3TwB4b-u8cjlrlWEr-5n84OM,14642
41
41
  pymmcore_plus/mda/handlers/_util.py,sha256=p-8Gg5Q2Jo0zyYdniP9a0NirUOnuKNLWzwjhzcKqskg,1601
42
42
  pymmcore_plus/metadata/__init__.py,sha256=r_2dI4qbc5GPl3MP6ye-W7-c1RBZZXkCgFqJ4HaPJOA,699
43
- pymmcore_plus/metadata/functions.py,sha256=b9bdLwvzqzhku4cLkFfRiAUXL8-wJNaZKayYzks39qg,12254
43
+ pymmcore_plus/metadata/functions.py,sha256=RsXuYS6ytIRicefRF0h7NiGfDhmimKbpgL9Vrp1p548,12188
44
44
  pymmcore_plus/metadata/schema.py,sha256=bP0SMwMfvgTfmTKMIWveAXbw5fDnE18kmFYu-FLenAM,17260
45
45
  pymmcore_plus/metadata/serialize.py,sha256=XB-epU7-bJfmP6HItBH9t0-lOsJuW7xSFjc5y3mO1Jg,3701
46
46
  pymmcore_plus/model/__init__.py,sha256=zKZkkSpNK4ERu-VMdi9gvRrj1aXAjNaYxlYB5PdYSg0,479
@@ -49,11 +49,11 @@ pymmcore_plus/model/_config_group.py,sha256=O9DzPyKe2Q3iInsQNbDsQfJeCWVcnzgMHGD_
49
49
  pymmcore_plus/model/_core_device.py,sha256=afNYGIRFunUPYNYJ_yHJwOjo7HO9FW8qGWTMeiKRmNU,2370
50
50
  pymmcore_plus/model/_core_link.py,sha256=myE0qa2pEWEinbsIhTN4uB_c-lr9dtUG3npLgsHEI_0,2706
51
51
  pymmcore_plus/model/_device.py,sha256=IuSTdxR6OwGnmhTgV77QDEwIwuZOLbmU-gCnSdd2H-c,15717
52
- pymmcore_plus/model/_microscope.py,sha256=CkzkpGtl1n-phMtDBygsIa7wVnTWLtEqgZ-hgZYxdRE,11284
53
- pymmcore_plus/model/_pixel_size_config.py,sha256=l-BkE7NuBcnXfytEPIblYA5vgCqb4nhvv1yhSCvr8pQ,3499
52
+ pymmcore_plus/model/_microscope.py,sha256=EFhSUBdnVcwZHRFxcTk346Ha0o9WZyjsQzpk1k0JCwc,11321
53
+ pymmcore_plus/model/_pixel_size_config.py,sha256=eoEQrXqOKaRBcdLtaTX15rIWMF3QJ1fNgTrgXEFfvBs,3483
54
54
  pymmcore_plus/model/_property.py,sha256=gJM7SFjLB2HnN0E8HOn4qVlB2wAxmkEFxSJFjKauZEk,3328
55
- pymmcore_plus-0.11.0.dist-info/METADATA,sha256=DxCVFUfpvr1bEbezpQ6O73IBBAD01sTUiADwP7Tk0Y4,9265
56
- pymmcore_plus-0.11.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
57
- pymmcore_plus-0.11.0.dist-info/entry_points.txt,sha256=NtFyndrQzBpUNJyil-8e5hMGke2utAf7mkGavTLcLOY,51
58
- pymmcore_plus-0.11.0.dist-info/licenses/LICENSE,sha256=OHJjRpOPKKRc7FEnpehNWdR5LRBdBhUtIFG-ZI0dCEA,1522
59
- pymmcore_plus-0.11.0.dist-info/RECORD,,
55
+ pymmcore_plus-0.11.1.dist-info/METADATA,sha256=b8a-4eD6Cn6UhAzBUibyCjSK23_7A422cK3bcXcxXRI,9271
56
+ pymmcore_plus-0.11.1.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
57
+ pymmcore_plus-0.11.1.dist-info/entry_points.txt,sha256=NtFyndrQzBpUNJyil-8e5hMGke2utAf7mkGavTLcLOY,51
58
+ pymmcore_plus-0.11.1.dist-info/licenses/LICENSE,sha256=OHJjRpOPKKRc7FEnpehNWdR5LRBdBhUtIFG-ZI0dCEA,1522
59
+ pymmcore_plus-0.11.1.dist-info/RECORD,,