This project uses A | B syntax for type unions in type annotations, which requires Python 3.10+.
Some Python packages assume that corresponding native dependencies are already present.
brew install freetype imagemagick
You should use a virtualenv, through your preferred version management tool, for example pyenv or uv.
uv is an all-in-one Python environment manager. Our current configuration permits, but does not require, the use of uv. To use uv, prefix Python-related commands with:
uv run
For example:
uv run python
uv pip install --editable '.[dev]'
source .venv/bin/activate
pip install --editable '.[dev]'
flask --app main.app run
or
gunicorn -w 4 'main:app'
Pano depends on service dependencies Postgres and MinIO. For your convenience, we provide a Docker Compose configuration that contains all service dependencies.
docker compose --file ./dev/docker-compose.yml up --detach
docker compose --file ./dev/docker-compose.yml down
pytest tests/unit/