---
hide:
  - navigation
---

# Development set-up

We use `rye`. You can follow the instructions on the [website](https://rye-up.com) to set it up.

## Install the dev packages, lint, test, typecheck

- Install all the packages with `rye sync --features transformers --features docs --no-lock` (include `--features transformers` if you want to work on the PI detector and `--features docs` if you want to run the docs offline.)
- Lint with `rye lint --fix`
- Format with `rye fmt`
- Test with `rye test`
- Run the static type checker with `rye run pyright`

## What if I don't want to install `rye`?

Then you can set up the dev environment via `uv` or `pip` by running
`[uv] pip install -r requirements-dev.lock`.

Then, you can lint with `ruff check . --fix`, test with `pytest`, and typecheck with `pyright`.

## Running the docs

You can run the docs locally with `mkdocs serve`. The docs will be available at `http://localhost:8000`.
