Installation
PyCCAPT requires Python >=3.9.
Recommended Conda Workflow
For most users, the smoothest setup is a conda environment with a pip install:
conda create -n pyccapt python=3.11
conda activate pyccapt
python -m pip install --upgrade pip
pip install "pyccapt[full]"
For a local checkout of this repository:
git clone https://github.com/mmonajem/pyccapt.git
cd pyccapt
conda activate pyccapt
pip install -e ".[full]"
PyPI Installation (Online)
Default installation (core dependencies only):
pip install pyccapt
Install optional dependency groups:
pip install "pyccapt[calibration]"
pip install "pyccapt[control]"
pip install "pyccapt[full]"
[full] installs both control and calibration dependency sets.
Local Development Installation
From the project root:
pip install -e ".[full]"
Module-specific editable installs:
pip install -e ".[control]"
pip install -e ".[calibration]"
Faster Local Installs
The editable (-e) step itself is fast; the time goes into resolving and
downloading dependencies. A few of the scientific dependencies are heavy to
resolve or build:
numbapulls inllvmlite(a large binary). If your Python is newer than the latestnumbasupports, pip backtracks through many versions or tries to buildllvmlitefrom source.tables(PyTables) andh5pydepend on the HDF5 C library and build from source when no matching wheel is available.The dependencies are unpinned, so pip downloads metadata for many candidate versions to find a set that satisfies the
numpyranges thatnumba,tables, andh5pyeach require.
Options to speed this up:
Use uv, which resolves and downloads in parallel:
uv pip install -e ".[full]"
Let conda provide the binaries, then install PyCCAPT without re-resolving them:
conda install -c conda-forge numpy scipy pandas h5py pytables numba matplotlib pip install -e . --no-deps
Skip dependency resolution during iterative development, once the environment already has the dependencies:
pip install -e . --no-deps
Keep pip current (older resolvers backtrack more slowly):
python -m pip install --upgrade pip
Conda Installation
If PyCCAPT is available on your selected conda channel:
conda install -c conda-forge pyccapt
Build and install locally from this repository:
conda install -c conda-forge conda-build
conda build conda-recipe
conda install --use-local pyccapt
If you need both optional dependency sets in that environment:
pip install "pyccapt[full]"
You can also create predefined environments:
conda env create -f environment.yml
conda env create -f environment.full.yml
Running PyCCAPT Control
After installation:
pyccapt
Alternative entrypoint:
python -m pyccapt.control
Running Tutorials
Start JupyterLab:
jupyter lab
Then open notebooks under pyccapt/calibration/tutorials.
Testing
Run module-specific test suites:
pytest -q --run-calibration
pytest -q --run-control
Run all discoverable tests with currently installed optional dependencies:
pytest -q