Contributing to pymmcore-plus¶
All development for this library happens in the
pymmcore-plus/pymmcore-plus
repo on GitHub. The general setup (cloning, uv sync, prek, running the
tests) is the same as for the other packages, and is described on the main
Contributing page. This page has a few notes that
are specific to pymmcore-plus.
Without uv¶
If you're using a different virtual environment manager (like conda) instead of uv, you can install the package and its development dependencies with:
This requires a newer version of
pip(>= 25.1) to work.
Device adapters for the tests¶
Most of the tests use Micro-Manager's demo devices, so you'll need a compatible set of device adapters:
On Linux and Apple Silicon this installs just the test adapters (which is all the
tests need). Alternatively, pip install mm-test-adapters puts them in your
environment, where pymmcore-plus will find them (this can be handy on CI).
You can confirm that everything works by running:
from pymmcore_plus import CMMCorePlus
core = CMMCorePlus()
core.loadSystemConfiguration()
core.snap()
If you want to test against device adapters built from the current
mmCoreAndDevices source (on macOS or Linux), run uv run mmcore build-dev.
This will download the micro-manager repo, build it, and drop the DemoCamera,
Utilities and SequenceTester devices into the pymmcore-plus user data folder
(by default ~/Library/Application Support/pymmcore-plus/mm on macOS), which is
on the default search path. (On macOS you must have homebrew
installed.)
Contributing documentation¶
These docs live in the docs/ folder of this repository (and in docstrings), but
the site itself is built by
pymmcore-plus.github.io,
which combines the docs of all the pymmcore-plus packages. See
How these docs work to preview your changes locally.
The CMMCorePlus method table and the CLI reference are generated by
docs/_gen.py.