Skip to main content

Alternative python bindings for MMCore, Micro-Manager's device control layer

Project description

pymmcore-nano

License PyPI Python Version CI codecov

Experimental python bindings for CMMCore (the device abstraction layer for micro-manager) using nanobind.

This package can be used as a (mostly) drop-in replacement for pymmcore. There are a few slight differences in behavior. You are encouraged to try it where you might use pymmcore; and let us know if you run into any issues!

Installation

pip install pymmcore-nano

# optionally include device adapters commonly used for demos and testing
# (DemoCamera, Utilities, etc...)
pip install 'pymmcore-nano[test-devices]'

Versioning is the same as for pymmcore.

MMCoreMajor.MMCoreMinor.MMCorePatch.DeviceInterface.pymmcore-nano-build

For example, the version 11.3.0.71.2 refers to:

  • MMCore version 11.3.0
  • Device interface 71
  • pymmcore-nano build number of 2 (this is a zero indexed version that resets each time the MMCore or Device Interface versions increment)

For Developers

Clone repo

git clone https://github.com/pymmcore-plus/pymmcore-nano.git
git submodule update --init

Setup dev environment (editable install)

Make sure you have uv installed: https://docs.astral.sh/uv/getting-started/installation/

This project uses just as a task runner. If you have just installed (e.g. brew install just), you can fully setup the project with:

just install

If you prefer not to install just globally, you can install it with the rest of the project dependencies using uv. Then activate the environment and call just install

uv sync --no-install-project
. .venv/bin/activate  # Windows: .venv\Scripts\activate
just install

This repo contains a few device adapters that are useful for testing, in src/mmCoreAndDevices/DeviceAdapters. These adapters are built as a part of the installation.

On windows, in order to build the SequenceTester device (optional) you will also need boost installed (e.g. choco install boost-msvc-14.3, or similar version according to your version of visual studio)

Test

Regardless of whether the environment is active, you can run:

just test

or, if the environment is active and you have already run just install

pytest

Releasing

To release a new version:

  • update the PYMMCORE_NANO_VERSION value in _pymmcore_nano.cc
  • run just version
  • commit changes to main
  • run just release

Updating mmCoreAndDevices source code

Rather than using git submodules, this repository checks in the mmCoreAndDevices source code. This makes measuring C++ code coverage easier, as the mmCoreAndDevices code is included in the same repository (see codecov results here), and it also makes it easier to make changes to the mmCoreAndDevices code directly from this repository (e.g., to fix bugs or add features that are pending in the upstream repo).

To bring in new changes from the upstream mmCoreAndDevices repository, you can run:

python scripts/update_sources.py

After updating, you can test the build and python code as usual.

just build
pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymmcore_nano-11.10.0.74.0.tar.gz (158.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pymmcore_nano-11.10.0.74.0-cp313-cp313-win_amd64.whl (409.7 kB view details)

Uploaded CPython 3.13Windows x86-64

pymmcore_nano-11.10.0.74.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (679.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pymmcore_nano-11.10.0.74.0-cp313-cp313-macosx_11_0_arm64.whl (462.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pymmcore_nano-11.10.0.74.0-cp313-cp313-macosx_10_14_x86_64.whl (486.0 kB view details)

Uploaded CPython 3.13macOS 10.14+ x86-64

pymmcore_nano-11.10.0.74.0-cp312-cp312-win_amd64.whl (409.7 kB view details)

Uploaded CPython 3.12Windows x86-64

pymmcore_nano-11.10.0.74.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (679.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pymmcore_nano-11.10.0.74.0-cp312-cp312-macosx_11_0_arm64.whl (462.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pymmcore_nano-11.10.0.74.0-cp312-cp312-macosx_10_14_x86_64.whl (486.0 kB view details)

Uploaded CPython 3.12macOS 10.14+ x86-64

pymmcore_nano-11.10.0.74.0-cp311-cp311-win_amd64.whl (410.0 kB view details)

Uploaded CPython 3.11Windows x86-64

pymmcore_nano-11.10.0.74.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (681.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pymmcore_nano-11.10.0.74.0-cp311-cp311-macosx_11_0_arm64.whl (462.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pymmcore_nano-11.10.0.74.0-cp311-cp311-macosx_10_14_x86_64.whl (484.9 kB view details)

Uploaded CPython 3.11macOS 10.14+ x86-64

pymmcore_nano-11.10.0.74.0-cp310-cp310-win_amd64.whl (409.8 kB view details)

Uploaded CPython 3.10Windows x86-64

pymmcore_nano-11.10.0.74.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (681.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pymmcore_nano-11.10.0.74.0-cp310-cp310-macosx_11_0_arm64.whl (462.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pymmcore_nano-11.10.0.74.0-cp310-cp310-macosx_10_14_x86_64.whl (484.8 kB view details)

Uploaded CPython 3.10macOS 10.14+ x86-64

pymmcore_nano-11.10.0.74.0-cp39-cp39-win_amd64.whl (410.1 kB view details)

Uploaded CPython 3.9Windows x86-64

pymmcore_nano-11.10.0.74.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (681.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pymmcore_nano-11.10.0.74.0-cp39-cp39-macosx_11_0_arm64.whl (462.6 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

pymmcore_nano-11.10.0.74.0-cp39-cp39-macosx_10_14_x86_64.whl (485.0 kB view details)

Uploaded CPython 3.9macOS 10.14+ x86-64

File details

Details for the file pymmcore_nano-11.10.0.74.0.tar.gz.

File metadata

  • Download URL: pymmcore_nano-11.10.0.74.0.tar.gz
  • Upload date:
  • Size: 158.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for pymmcore_nano-11.10.0.74.0.tar.gz
Algorithm Hash digest
SHA256 5e733aa0960d52f4a798fe5694012f9bf54d0f6eeedc1890c7bcd441e630ccd9
MD5 eb4ba74b63f82cac427815177c502ece
BLAKE2b-256 6ded16b4a488963b8392ba5ce945bd24ec2e0cd303e874adca840a4026a013a0

See more details on using hashes here.

File details

Details for the file pymmcore_nano-11.10.0.74.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pymmcore_nano-11.10.0.74.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a530e177b4b2d34eaae2da7cabf36ee7c4dbe4a0366945f1c24598ca6781e213
MD5 bb7abf153627be078f652bba8fc2cae9
BLAKE2b-256 22be88dc100be5e7338b81753dbb3e04ef7ab09568b07504e4d591ad5fcfab1e

See more details on using hashes here.

File details

Details for the file pymmcore_nano-11.10.0.74.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pymmcore_nano-11.10.0.74.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 055af73447c6f137be2a578c70ae0fb31995ecee4ff2b4814ea6ee804be312e1
MD5 dc2b8e93770e0f379a50f8d5758ec88f
BLAKE2b-256 0febfa0d729bfb76281d3bb5bdf7dc9a9c163e68645932e859012ac72ac3c6d7

See more details on using hashes here.

File details

Details for the file pymmcore_nano-11.10.0.74.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pymmcore_nano-11.10.0.74.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4263b94d623a0a66ba4478c47f3518d28c8aa8b909a0f97cfd5d5eaf1659029d
MD5 b196b1b12065e825cae1716b686c55f7
BLAKE2b-256 195e966780910f1478f66472953ecd094f2bd596e96695587ee2038ee5a52ca2

See more details on using hashes here.

File details

Details for the file pymmcore_nano-11.10.0.74.0-cp313-cp313-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for pymmcore_nano-11.10.0.74.0-cp313-cp313-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 a2ca3637ebc4a32da325cf9ed94dcbc4c00c20f3876ee784ea54499f62990cf9
MD5 7f4dad8035e79b00ca3eebe4b1efc1da
BLAKE2b-256 92e7e489c8f31d1d4b439a17ab4642dfa89bdf4fd524b4dc81cdc0ded0d09012

See more details on using hashes here.

File details

Details for the file pymmcore_nano-11.10.0.74.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pymmcore_nano-11.10.0.74.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 714e600397007edb5e63a29e6f7e2c1849f84537c1c67c38771801c3c8e40f5e
MD5 0dc1d53cdfc5a3c689fdcf8b497dfea3
BLAKE2b-256 ac39a3afd554b65aec20089f356bc8091b56fe367f2c5effafc379e72f82938b

See more details on using hashes here.

File details

Details for the file pymmcore_nano-11.10.0.74.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pymmcore_nano-11.10.0.74.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7c5c024dde7380b26c2dcaec636bf33ee2326bf4c37dae53e6f88c8041e64e15
MD5 94f6c5fc63eea94a0017ec593577ffae
BLAKE2b-256 6e68bf74ad51eef77c0ff0dc3b222ed3da0690baa19710ff220dcd3ab8be523e

See more details on using hashes here.

File details

Details for the file pymmcore_nano-11.10.0.74.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pymmcore_nano-11.10.0.74.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 02f1aba30d88fdd72f7e218dba6abc9eaef9df0792e86b38f1ed180bf4352374
MD5 0f2b5f677231aa2d1dd091739e4d7963
BLAKE2b-256 776192a0d4d9ddd033d1e39024538dc6601e6093ccd2442f9e09568ad9863218

See more details on using hashes here.

File details

Details for the file pymmcore_nano-11.10.0.74.0-cp312-cp312-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for pymmcore_nano-11.10.0.74.0-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 4aced5504ad182d86d05e4718c9b61a5c92ec3ffc0578dba9224e15bd6ce4b1c
MD5 9695e61034ce78a9aa70cd51cae534d2
BLAKE2b-256 2c898a92fbd0ea482822253b59cb1436207c2c982b9314b4a045496d5d37e793

See more details on using hashes here.

File details

Details for the file pymmcore_nano-11.10.0.74.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pymmcore_nano-11.10.0.74.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 911f429335ab2a53bc89d45d7caca2ce724b367f16adc79226d6dbca11f643b4
MD5 7430820088f6d575aea2b2092529b960
BLAKE2b-256 b28695b3be5654317ba3f4ff0226652fc8606b014cd7d8b80ffded5e9d1fc634

See more details on using hashes here.

File details

Details for the file pymmcore_nano-11.10.0.74.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pymmcore_nano-11.10.0.74.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e27110cea014781ba906c18775fa3cd4f772e94db950fae4872972f15d65e3c0
MD5 708eaf8e45d48a838103331f153413e4
BLAKE2b-256 08f049381a1237b5103f0d207cdf6e5dc5acef85dce753aa74d6472788b46bc7

See more details on using hashes here.

File details

Details for the file pymmcore_nano-11.10.0.74.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pymmcore_nano-11.10.0.74.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d04ca2628facae9daa8d9e5c8ce89f4e738292dc78b3aa71fbf790b6c20b9e1d
MD5 916c56e26fa500164aa4857042db33d6
BLAKE2b-256 02996a3e11d845bb1189aba4df61e42f4c32937924f9960f85c771d00ad7f4b8

See more details on using hashes here.

File details

Details for the file pymmcore_nano-11.10.0.74.0-cp311-cp311-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for pymmcore_nano-11.10.0.74.0-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 1cb618b5b9f8d20b18741b10a298cf8e1057bb77cc19115f61ec56fa0609bc9f
MD5 6f2885cd4b6f184a49ccb6b535457f8d
BLAKE2b-256 7a55d5fc79b81bf3fd94d0e36ba9025227c9836dfbee56390f0b8b25782035fe

See more details on using hashes here.

File details

Details for the file pymmcore_nano-11.10.0.74.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pymmcore_nano-11.10.0.74.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 81ea293356a68edd235a9c554b6c7cf92d6b5c13ea1885d5fcdebd9b7774490f
MD5 013d99fe7e69f987bfb4540d5ff4fd9a
BLAKE2b-256 b38e114491eccef2543b56ff516cf1e107949ff8f9244e67d29475f7c526c4fe

See more details on using hashes here.

File details

Details for the file pymmcore_nano-11.10.0.74.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pymmcore_nano-11.10.0.74.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 328115bf97ace674825c4119e326ddbf8e198755287f7f900bacace939dda7be
MD5 a5251efcb096f94c20eea573c6edc026
BLAKE2b-256 08c08caf068be943a56e42d6b34d933b200c013f5b265561fc757e4ce8227d35

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymmcore_nano-11.10.0.74.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: deploy.yml on pymmcore-plus/pymmcore-nano

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pymmcore_nano-11.10.0.74.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pymmcore_nano-11.10.0.74.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3eb6c1a15af9d8a5f279d013175479e2f5dce37509ba66e4c8d1cb9326042f86
MD5 1fb2cf7a1f8df38498d128f197b7e9e4
BLAKE2b-256 2acf6a2289e81d4c2a02dc428c1b639c2dad6ac336e06db1662a09a1e0c7fa09

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymmcore_nano-11.10.0.74.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: deploy.yml on pymmcore-plus/pymmcore-nano

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pymmcore_nano-11.10.0.74.0-cp310-cp310-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for pymmcore_nano-11.10.0.74.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 a62a7f2c598dd567dc2953018dd860e0a5adfbc56e2dc6b727517802754a4c61
MD5 28b5c4b92dbb3af62af08d71bda8f6c8
BLAKE2b-256 84cbc561a67cc6513d657d34567f832bff63f263461b1987f71fe403049bc727

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymmcore_nano-11.10.0.74.0-cp310-cp310-macosx_10_14_x86_64.whl:

Publisher: deploy.yml on pymmcore-plus/pymmcore-nano

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pymmcore_nano-11.10.0.74.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for pymmcore_nano-11.10.0.74.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 94586958ede9435820196dd42e707b94d08219cf8a3cd3883cef61b8e3b4a193
MD5 fb5e02900671a931667b866372ed4497
BLAKE2b-256 81b0cbafb5d715e420881ff4ba65ddd7f5af81d81b2e72a4bc9509cb9ef1d2c3

See more details on using hashes here.

File details

Details for the file pymmcore_nano-11.10.0.74.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pymmcore_nano-11.10.0.74.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 57046401cf13327762059566a26545b59f12734daa31e1bc9faec66b4adbf57d
MD5 a1cb603596ca69ce6a07acb86e84bb73
BLAKE2b-256 52ddc3ad7199f093667ac3d4bae717e879a9138b60239e578eb61935a21eb4b9

See more details on using hashes here.

File details

Details for the file pymmcore_nano-11.10.0.74.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pymmcore_nano-11.10.0.74.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 45859ac683beb670b5b3eae450c8b21deb2570b4fbabda41055f54e5e66d8021
MD5 a7301f60184a7e6daf7038c612df5fa0
BLAKE2b-256 c74c6e3f782c9b26079211ff9fcfbf81385428323bdd7643def89a78f4ebe3e0

See more details on using hashes here.

File details

Details for the file pymmcore_nano-11.10.0.74.0-cp39-cp39-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for pymmcore_nano-11.10.0.74.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 ec33ef0855553a2351d54bc39c1d9e782225bd9bcfec1f59853303d9a9f67ade
MD5 6339a566354a1543233334c6688f103f
BLAKE2b-256 60c529cd64dcc82a0ab524cd7fdb337c1b75ffc3cf9d213eef2f83541346a89b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page