Getting Started#
Installing requirements#
Poetry Installation and Setup#
imap-processing uses Poetry for dependency management. Check out our style guide for more information on specific IMAP Poetry usage. If you are upgrading from Poetry 1.x, see Upgrading Poetry 1.x to 2.x.
If you’re running locally, you can install the Python requirements with Poetry.
To setup versioning (recommended for developers)
poetry self add "poetry-dynamic-versioning[plugin]"
To install without the extras
poetry install
To install all extras
poetry install --all-extras
This will install the dependencies from poetry.lock, ensuring that consistent versions are used. Poetry manages a virtual environment for the project, which you will need to activate.
Note
poetry shell was removed in Poetry 2. Use one of the following to activate
the virtual environment instead:
# Activate via Poetry (outputs the activation command)
source $(poetry env info --path)/bin/activate
# Or on Windows (PowerShell)
& (poetry env info --path)\Scripts\activate.ps1
Alternatively, you can use the venv module to create and manage your
own virtual environment independently:
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev,test,tools]"
Note
Some dependencies include compiled extensions and require system libraries if no pre-built wheel is available for your platform. If installation fails with a PEP 517 build error, install the relevant system libraries below and then re-run the install command.
netcdf4 requires the NetCDF-C and HDF5 libraries:
# Debian/Ubuntu
sudo apt-get install -y libnetcdf-dev libhdf5-dev
# macOS (Homebrew)
brew install netcdf hdf5
scipy provides pre-built wheels for Python 3.10–3.13. If you are using Python 3.14 or later, no wheel is available yet and scipy must be compiled from source, which requires a Fortran compiler and BLAS/LAPACK. The simplest fix is to use Python 3.12 or 3.13.
If you need to build from source, install the following:
# Debian/Ubuntu
sudo apt-get install -y gfortran libopenblas-dev pkg-config
# macOS (Homebrew)
brew install openblas
On Apple Silicon (M1/M2/M3), Homebrew installs to /opt/homebrew rather
than /usr/local, so pkg-config cannot find OpenBLAS automatically. Set
PKG_CONFIG_PATH before running the install:
export PKG_CONFIG_PATH="/opt/homebrew/opt/openblas/lib/pkgconfig:$PKG_CONFIG_PATH"
If you do not need the test extras, you can avoid these system
dependencies entirely by installing without them:
poetry install --extras "dev"
In summary, the expected setup of Poetry for a development environment is:
poetry self add "poetry-dynamic-versioning[plugin]"
poetry install --all-extras
source $(poetry env info --path)/bin/activate
Using IMAP processing#
The main way to run IMAP processing locally is through the CLI.
Our tests are run using pytest:
source $(poetry env info --path)/bin/activate
pytest