--- icon: lucide/wrench --- # Change piighost's code This page is for whoever changes the code of `piighost`. For each common change, it points first to the page of the domain documentation that describes the rules involved, then to the files and tests to open. Read the rule before touching the code that applies it. ## Start locally - **Stack**: Python 3.11 or later, `uv` package manager. The core depends only on `typing-extensions`. Everything else is an extra of `pyproject.toml` (`langchain`, `redis`, `gliner2`, `config`…), and `all` gathers them. - **Install**: `uv sync` at the root of the repository. - **Test**: `uv run pytest`, then `make lint` before any merge. Details in [Run and write tests](../../../openwiki/en/tests/run-and-write-tests.md). - **Try**: `uv run piighost anonymize "Write to claire.dubois@example.com"`. The first run downloads the catalog group `catalog:piighost/generic`. - **Services**: none for the tests. Redis, an SQL database or `piighost-api` are used only in operation. See [Store conversations](../../../openwiki/en/operations/storage-and-encryption.md) and [Configure a pipeline](../../../openwiki/en/operations/configuration-and-catalog.md). - **Examples**: standalone scripts in `examples/`, run with `uv run examples/