pymmcore-plus 0.13.7__py3-none-any.whl → 0.15.0__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.
Files changed (27) hide show
  1. pymmcore_plus/__init__.py +2 -0
  2. pymmcore_plus/_accumulator.py +258 -0
  3. pymmcore_plus/_pymmcore.py +4 -2
  4. pymmcore_plus/core/__init__.py +34 -1
  5. pymmcore_plus/core/_constants.py +21 -3
  6. pymmcore_plus/core/_device.py +739 -19
  7. pymmcore_plus/core/_mmcore_plus.py +260 -47
  8. pymmcore_plus/core/events/_protocol.py +49 -34
  9. pymmcore_plus/core/events/_psygnal.py +2 -2
  10. pymmcore_plus/experimental/unicore/__init__.py +7 -1
  11. pymmcore_plus/experimental/unicore/_proxy.py +20 -3
  12. pymmcore_plus/experimental/unicore/core/__init__.py +0 -0
  13. pymmcore_plus/experimental/unicore/core/_sequence_buffer.py +318 -0
  14. pymmcore_plus/experimental/unicore/core/_unicore.py +1702 -0
  15. pymmcore_plus/experimental/unicore/devices/_camera.py +196 -0
  16. pymmcore_plus/experimental/unicore/devices/_device.py +54 -28
  17. pymmcore_plus/experimental/unicore/devices/_properties.py +8 -1
  18. pymmcore_plus/experimental/unicore/devices/_slm.py +82 -0
  19. pymmcore_plus/experimental/unicore/devices/_state.py +152 -0
  20. pymmcore_plus/mda/events/_protocol.py +8 -8
  21. pymmcore_plus/mda/handlers/_tensorstore_handler.py +3 -1
  22. {pymmcore_plus-0.13.7.dist-info → pymmcore_plus-0.15.0.dist-info}/METADATA +14 -37
  23. {pymmcore_plus-0.13.7.dist-info → pymmcore_plus-0.15.0.dist-info}/RECORD +26 -20
  24. pymmcore_plus/experimental/unicore/_unicore.py +0 -703
  25. {pymmcore_plus-0.13.7.dist-info → pymmcore_plus-0.15.0.dist-info}/WHEEL +0 -0
  26. {pymmcore_plus-0.13.7.dist-info → pymmcore_plus-0.15.0.dist-info}/entry_points.txt +0 -0
  27. {pymmcore_plus-0.13.7.dist-info → pymmcore_plus-0.15.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pymmcore-plus
3
- Version: 0.13.7
3
+ Version: 0.15.0
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
@@ -25,55 +25,32 @@ Classifier: Topic :: System :: Hardware
25
25
  Classifier: Topic :: System :: Hardware :: Hardware Drivers
26
26
  Classifier: Topic :: Utilities
27
27
  Requires-Python: >=3.9
28
- Requires-Dist: numpy>=1.17.3
28
+ Requires-Dist: numpy>=1.25.2
29
+ Requires-Dist: numpy>=1.26.0; python_version >= '3.12'
30
+ Requires-Dist: numpy>=2.1.0; python_version >= '3.13'
29
31
  Requires-Dist: platformdirs>=3.0.0
30
- Requires-Dist: psygnal>=0.7
31
- Requires-Dist: pymmcore>=10.7.0.71.0
32
+ Requires-Dist: psygnal>=0.10
33
+ Requires-Dist: pymmcore>=11.2.1.71.0
32
34
  Requires-Dist: rich>=10.2.0
33
- Requires-Dist: tensorstore<=0.1.71
35
+ Requires-Dist: tensorstore!=0.1.72,>=0.1.67
36
+ Requires-Dist: tensorstore!=0.1.72,>=0.1.71; python_version >= '3.13'
34
37
  Requires-Dist: typer>=0.4.2
35
- Requires-Dist: typing-extensions
36
- Requires-Dist: useq-schema>=0.7.0
38
+ Requires-Dist: typing-extensions>=4
39
+ Requires-Dist: useq-schema>=0.7.2
37
40
  Provides-Extra: cli
38
41
  Requires-Dist: rich>=10.2.0; extra == 'cli'
39
42
  Requires-Dist: typer>=0.4.2; extra == 'cli'
40
- Provides-Extra: dev
41
- Requires-Dist: ipython; extra == 'dev'
42
- Requires-Dist: mypy; extra == 'dev'
43
- Requires-Dist: pdbpp; (sys_platform != 'win32') and extra == 'dev'
44
- Requires-Dist: pre-commit; extra == 'dev'
45
- Requires-Dist: ruff; extra == 'dev'
46
- Requires-Dist: tensorstore-stubs; extra == 'dev'
47
- Provides-Extra: docs
48
- Requires-Dist: mkdocs-autorefs==1.3.1; extra == 'docs'
49
- Requires-Dist: mkdocs-material; extra == 'docs'
50
- Requires-Dist: mkdocs-typer==0.0.3; extra == 'docs'
51
- Requires-Dist: mkdocs>=1.4; extra == 'docs'
52
- Requires-Dist: mkdocstrings-python==1.1.2; extra == 'docs'
53
- Requires-Dist: mkdocstrings==0.22.0; extra == 'docs'
54
43
  Provides-Extra: io
55
44
  Requires-Dist: tifffile>=2021.6.14; extra == 'io'
56
- Requires-Dist: zarr<3,>=2.2; extra == 'io'
45
+ Requires-Dist: zarr<3,>=2.15; extra == 'io'
57
46
  Provides-Extra: pyqt5
58
47
  Requires-Dist: pyqt5>=5.15.4; extra == 'pyqt5'
59
48
  Provides-Extra: pyqt6
60
- Requires-Dist: pyqt6<6.8,>=6.4.2; extra == 'pyqt6'
49
+ Requires-Dist: pyqt6>=6.4.2; extra == 'pyqt6'
61
50
  Provides-Extra: pyside2
62
- Requires-Dist: pyside2>=5.15; extra == 'pyside2'
51
+ Requires-Dist: pyside2>=5.15.2.1; extra == 'pyside2'
63
52
  Provides-Extra: pyside6
64
- Requires-Dist: pyside6<6.8,>=6.4.0; extra == 'pyside6'
65
- Provides-Extra: test
66
- Requires-Dist: msgpack; extra == 'test'
67
- Requires-Dist: msgspec; extra == 'test'
68
- Requires-Dist: pytest-cov>=4; extra == 'test'
69
- Requires-Dist: pytest-qt>=4; extra == 'test'
70
- Requires-Dist: pytest>=7.3.2; extra == 'test'
71
- Requires-Dist: qtpy>=2; extra == 'test'
72
- Requires-Dist: rich; extra == 'test'
73
- Requires-Dist: tifffile>=2021.6.14; extra == 'test'
74
- Requires-Dist: typer>=0.4.2; extra == 'test'
75
- Requires-Dist: xarray; extra == 'test'
76
- Requires-Dist: zarr<3,>=2.2; extra == 'test'
53
+ Requires-Dist: pyside6==6.7.3; extra == 'pyside6'
77
54
  Description-Content-Type: text/markdown
78
55
 
79
56
  # pymmcore-plus
@@ -1,47 +1,53 @@
1
- pymmcore_plus/__init__.py,sha256=9-vK2P2jkJJ2REhCjFDBbJu0wrZM0jvDcf-d2GsjTk0,1415
1
+ pymmcore_plus/__init__.py,sha256=EEwtq7bwQ1NC0-wu1DoyA9kJQS7nHqZOlUoYmK3-FQI,1500
2
+ pymmcore_plus/_accumulator.py,sha256=WUgCrLW0U8_kWXfmhSRrC17ubWZNQNckkGVBiTp72F8,9205
2
3
  pymmcore_plus/_benchmark.py,sha256=YJICxXleFQVbOluJdq4OujnIcTkkuMVzeB8GJ8nUv5I,6011
3
4
  pymmcore_plus/_build.py,sha256=RPTAuwCZWGL5IDJj4JZo1DIIouUsIqS3vnbPbG2_bRE,10993
4
5
  pymmcore_plus/_cli.py,sha256=wmqlG8UGBNiTefRppSnRHwnD3w-5DAhN168lIBujbRA,16831
5
6
  pymmcore_plus/_logger.py,sha256=d7ldqxY0rGWORKdIzNUiFc9BW6cFBx57kHWtXyY1HE0,5416
6
- pymmcore_plus/_pymmcore.py,sha256=tcWtTRte9AFQznLGn6CmwLW0W3Rsse8N8NQ5L7JwKCc,630
7
+ pymmcore_plus/_pymmcore.py,sha256=hy0gfEhvQ84o7SFIB2nQp6A1w2L4U7VQrV5_qKsJoLQ,699
7
8
  pymmcore_plus/_util.py,sha256=VGcb_nQu6BBWZsQihed0TrCHdTRADKlBo_qSnIbeF0Q,22814
8
9
  pymmcore_plus/install.py,sha256=U4TbQXbUc12aMtGRF_SkinNOTDCuuzIhME5Oup_4ds0,10768
9
10
  pymmcore_plus/mocks.py,sha256=jNUfmffD1OArtIvEmqWsy7GCrtTpssVF03flH8cEYx8,1867
10
11
  pymmcore_plus/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
12
  pymmcore_plus/seq_tester.py,sha256=ielLx2ZUJrOXVCojk64UXTeKDoARxt8QkQjt5AE5Gng,3776
12
- pymmcore_plus/core/__init__.py,sha256=rYHv5JQVMVDlwYD1wodCc5L9ZbpVld1C_swGx4CRogA,1011
13
+ pymmcore_plus/core/__init__.py,sha256=gCZMmUjvCh4GX3dwKPxiPzt6NQokFtuHl0-tBUG7B9g,1620
13
14
  pymmcore_plus/core/_adapter.py,sha256=eu2BhGe_dnoQrIsh-u3poxWXsiF2Y8pfbKIGWbUgOk8,2857
14
15
  pymmcore_plus/core/_config.py,sha256=yWwOnW6f37lLt83MnodNce04az-g8YDjyo7BvMiTc8s,10672
15
16
  pymmcore_plus/core/_config_group.py,sha256=R-o4xuPDBPQAC3s-mFsiKwHVKWR38L9qq_aoWdPrAq8,8542
16
- pymmcore_plus/core/_constants.py,sha256=yS_YVRZQkpvTuQdOPFJdetaFpvXh4CTvd7i0qDIiAuA,13200
17
- pymmcore_plus/core/_device.py,sha256=Pz9Ekhss2c9IBA3B7WyMU2cCwc19Dp_dGVhMkzqUaIE,7762
17
+ pymmcore_plus/core/_constants.py,sha256=yYtiuPn8iIX-f1Y4In9lCcs25_d0HKNWBNP1dsfLJgE,13932
18
+ pymmcore_plus/core/_device.py,sha256=v58TcROSuvxE5ALBjzS474Dx430e0iMA61OuBSnc2rE,33197
18
19
  pymmcore_plus/core/_metadata.py,sha256=L8x1gX_zXPz02BUqc7eqJM_Bey2G0RyX30SOBs2aBNc,2755
19
- pymmcore_plus/core/_mmcore_plus.py,sha256=15_QvUuURNP23rtN_nkWcqVOx6ohwizZyYPEta6O7ww,94187
20
+ pymmcore_plus/core/_mmcore_plus.py,sha256=rpReucLtB6bYrITrlr3RwTj7bkTBqkRRnFFdLnUI6M0,102336
20
21
  pymmcore_plus/core/_property.py,sha256=QsQEzqOAedR24zEJ1Ge4kwScfT_7NOApVcgz6QxBJrI,8265
21
22
  pymmcore_plus/core/_sequencing.py,sha256=QmaCoyWzR9lX-3ldZxGYqAiEqOn8gts3X0qmskZXzQo,16887
22
23
  pymmcore_plus/core/events/__init__.py,sha256=F8r10LEBLrAV8qfkXScSkpqfExdT2XoOx92OqSturpc,1078
23
24
  pymmcore_plus/core/events/_device_signal_view.py,sha256=t-NfBdg3E4rms4vDFxkkR5XtrpLxaBT7mfPwkpIsbVk,1079
24
25
  pymmcore_plus/core/events/_norm_slot.py,sha256=8DCBoLHGh7cbB1OB19IJYwL6sFBFmkD8IakfBOvFbw8,2907
25
26
  pymmcore_plus/core/events/_prop_event_mixin.py,sha256=FvJJnpEKrOR-_Sp3-NNCwFoUUHwmNKiHruo0Y1vybsY,4042
26
- pymmcore_plus/core/events/_protocol.py,sha256=Zp_8rldyNca3RUOsgnxYj8Bxmo9rLsruTX-ORHBNw9E,8043
27
- pymmcore_plus/core/events/_psygnal.py,sha256=9xsTY9wysrUlis5_29CesgyEXGDv8kwgZOZjaN_V7bc,1763
27
+ pymmcore_plus/core/events/_protocol.py,sha256=okJOucjweLmbDnh9W-wILqNlqc_Yk1tAlKpQvalOIcA,8554
28
+ pymmcore_plus/core/events/_psygnal.py,sha256=VuxrW_XpfSL5Fb17QpZHHtgsPM4Fmi_KUXtbD9XgjAs,1731
28
29
  pymmcore_plus/core/events/_qsignals.py,sha256=pN87k6XEIrgtbJTJWjwKWRR3j-RIGGwnaX-9iHPB-q0,3135
29
30
  pymmcore_plus/experimental/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
- pymmcore_plus/experimental/unicore/__init__.py,sha256=OcjUZ4tq-NtWDR5R3JFivsRePliQSIQ7Z92k_8Gfz2Q,361
31
+ pymmcore_plus/experimental/unicore/__init__.py,sha256=pX5GQAA71Jsuz5ufO_BdGdjA0wkf8HLlALXTWzdDm_I,528
31
32
  pymmcore_plus/experimental/unicore/_device_manager.py,sha256=c5DAMsnK06xOy6G7YjHdUughc7xdFtzeo10woO5G_KE,6418
32
- pymmcore_plus/experimental/unicore/_proxy.py,sha256=Sl_Jiwd4RlcKgmsrEUNZT38YPFGlQonELAg_n3sfbdo,4020
33
- pymmcore_plus/experimental/unicore/_unicore.py,sha256=3-HkZbbrQxrUgvEx3A6XEStDH9C3c6NdG_Kb8y1KubY,29029
33
+ pymmcore_plus/experimental/unicore/_proxy.py,sha256=QPFnG9Mw6WCFSui8nUCabJTJL-Xyvyo-fbLM1Q949is,4703
34
+ pymmcore_plus/experimental/unicore/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
+ pymmcore_plus/experimental/unicore/core/_sequence_buffer.py,sha256=WbNlzcQi06zNYza8Sa07HtF-FLFcg79CzAAK14zP53U,12380
36
+ pymmcore_plus/experimental/unicore/core/_unicore.py,sha256=Mkkl9U64-C-m3eTYZnZ829KxzES1u_4kDRkZNEDCfgA,69939
34
37
  pymmcore_plus/experimental/unicore/devices/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
- pymmcore_plus/experimental/unicore/devices/_device.py,sha256=PfX4BSpVMPXyNCNWkZ0Xy1-72ZZdME5zm7NgtCRu8ts,9751
36
- pymmcore_plus/experimental/unicore/devices/_properties.py,sha256=KuHlSNNpmfj_Q1m1uyfycpE5C63jLg5Mm_D57In2oPo,15389
38
+ pymmcore_plus/experimental/unicore/devices/_camera.py,sha256=IrEaJXIBwSguZcGmrySesR63VMHaJcenFIXvBlA1K9k,8274
39
+ pymmcore_plus/experimental/unicore/devices/_device.py,sha256=rmxzP-Cghn9bOA0m3I2a-7CspJAsp3OwTY6mv3bYzE0,10870
40
+ pymmcore_plus/experimental/unicore/devices/_properties.py,sha256=2nKgPy1y3KuvtUghEv2Poi0PzaaVHopH0166TXKLs6g,15605
41
+ pymmcore_plus/experimental/unicore/devices/_slm.py,sha256=vfxIhFeJM4K5fo45QgDkfw28wgWcoNt3kbOumbDkJ6k,3013
37
42
  pymmcore_plus/experimental/unicore/devices/_stage.py,sha256=Ab4uibYq1cjIBtwcthCxH2FudGq9UMjub-qVeRpApQY,7892
43
+ pymmcore_plus/experimental/unicore/devices/_state.py,sha256=8pcm7HUOqz38tI-REdzkySuLu5Radkxz3JOenQjzqz4,6086
38
44
  pymmcore_plus/mda/__init__.py,sha256=7VH-MqOcuK1JNSOG9HhES6Ac-Z-LuT8a0f2xPbGEt7w,344
39
45
  pymmcore_plus/mda/_engine.py,sha256=U83PnmbaWChxUCEskKqHVy-Xa8KAZAMuvwPSVTAwsKg,31205
40
46
  pymmcore_plus/mda/_protocol.py,sha256=10CDJ9H57oX1z0oqK3eShXyQhufHvvu3_8wdaCYpPIg,3254
41
47
  pymmcore_plus/mda/_runner.py,sha256=NSOhpll6_WxDLO19FTs19dASJcHcOoVOCy7q_QzX_Ms,18523
42
48
  pymmcore_plus/mda/_thread_relay.py,sha256=Ww-9gyvLEzwRhnpL1dpze71wL7IRlhH8K3Q1dmJIxgs,6193
43
49
  pymmcore_plus/mda/events/__init__.py,sha256=v7YsVXzd3cTavFs2v3_PEhjqP4CtuRE0nWUoJA3CvYU,1176
44
- pymmcore_plus/mda/events/_protocol.py,sha256=9Q7LjYOgEWQGS8gHMV97UXM9bhoVW2OeyoPyNsQbwzw,1659
50
+ pymmcore_plus/mda/events/_protocol.py,sha256=9xs9sRaCGtOQcAPChsB_NxXs4g8eaEKuJHBzNRRtiII,1739
45
51
  pymmcore_plus/mda/events/_psygnal.py,sha256=TdN1mFGpTPXmEs9iwFKSC1svv87PDZkT2JZvl0tEGrQ,640
46
52
  pymmcore_plus/mda/events/_qsignals.py,sha256=tULQg-e_NX197DxJXaWHn1zLJ-4tzc9QyOAnsobEDtA,554
47
53
  pymmcore_plus/mda/handlers/_5d_writer_base.py,sha256=c9cA0n8DOBoZcy9asue5eV7jW8hFVC0XEewroFgDNHA,11925
@@ -49,7 +55,7 @@ pymmcore_plus/mda/handlers/__init__.py,sha256=TbgpRdcs3BRdCf6uXJlwo_IIbxM6xXaLoc
49
55
  pymmcore_plus/mda/handlers/_img_sequence_writer.py,sha256=XUJovvdWViTkn2VZr4XcovNIuBNZF4J4cCHIdwAs1WE,11639
50
56
  pymmcore_plus/mda/handlers/_ome_tiff_writer.py,sha256=pqqdl3KQd0tH5Gp4rHVgYqqh2Y8iwoKRXTjwq1JLy1E,6239
51
57
  pymmcore_plus/mda/handlers/_ome_zarr_writer.py,sha256=cKg3kJR7TId6M2qC1nJMLlxkv5vlfA5XEAlTIr9kt_E,12275
52
- pymmcore_plus/mda/handlers/_tensorstore_handler.py,sha256=rgLyuTJjV1m5j-O5tLm-BggIblJpdrHa_FB17_S7rug,15282
58
+ pymmcore_plus/mda/handlers/_tensorstore_handler.py,sha256=YrKwahypq1yoXP3cOcsJTGF-f4LOLrp4KuNHYzPBK64,15321
53
59
  pymmcore_plus/mda/handlers/_util.py,sha256=pZydpKAXtQ_gjq5x1yNK1D0hfS7NUL2nH9ivOBg4abc,1600
54
60
  pymmcore_plus/metadata/__init__.py,sha256=0o_v53kwR4U_RLlCnr7GD1G6OdFlVuUByIqXiaaM5uk,699
55
61
  pymmcore_plus/metadata/functions.py,sha256=Nw2zMbJx0c6aJs6I_uaLGz6cop0IIPfRZOR-qx-SQbc,12937
@@ -64,8 +70,8 @@ pymmcore_plus/model/_device.py,sha256=AX3rO2gbY7AXJyMN3FfI_n2jl2V0IAPuBh7MiDA5Sq
64
70
  pymmcore_plus/model/_microscope.py,sha256=69VV6cuevinOK_LhYEkQygHGesvCZefdn9YNt3mV618,11353
65
71
  pymmcore_plus/model/_pixel_size_config.py,sha256=RXk8AAwARe8clsXue0GZfOTb1bxyXIsO0ibcDLHM4_s,3889
66
72
  pymmcore_plus/model/_property.py,sha256=NQzNtnEzSCR9ogwx1cfi8X-qbJ_cBSJKdSBAaoKoPQ0,3720
67
- pymmcore_plus-0.13.7.dist-info/METADATA,sha256=Xf0FN1PVDxE4QgDL3JaKGuGutrKAnTOm1nfb0OUdFDU,9765
68
- pymmcore_plus-0.13.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
69
- pymmcore_plus-0.13.7.dist-info/entry_points.txt,sha256=NtFyndrQzBpUNJyil-8e5hMGke2utAf7mkGavTLcLOY,51
70
- pymmcore_plus-0.13.7.dist-info/licenses/LICENSE,sha256=OHJjRpOPKKRc7FEnpehNWdR5LRBdBhUtIFG-ZI0dCEA,1522
71
- pymmcore_plus-0.13.7.dist-info/RECORD,,
73
+ pymmcore_plus-0.15.0.dist-info/METADATA,sha256=uOZY3c9ikWAQJKo81cQ_8c7OahWGBsMyHqAFahPAyuE,8835
74
+ pymmcore_plus-0.15.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
75
+ pymmcore_plus-0.15.0.dist-info/entry_points.txt,sha256=NtFyndrQzBpUNJyil-8e5hMGke2utAf7mkGavTLcLOY,51
76
+ pymmcore_plus-0.15.0.dist-info/licenses/LICENSE,sha256=OHJjRpOPKKRc7FEnpehNWdR5LRBdBhUtIFG-ZI0dCEA,1522
77
+ pymmcore_plus-0.15.0.dist-info/RECORD,,