Project Setup¶
This page describes how to set up a development environment for the GPP Client.
The project uses uv for dependency
management and execution. When running uv run, a temporary environment is
created automatically based on the dependency groups defined in
pyproject.toml. No virtual environment activation is required.
Cloning the Repository¶
git clone https://github.com/gemini-hlsw/gpp-client.git
cd gpp-client
Installing Dependencies¶
For full development (testing, docs, codegen, linting):
uv sync --locked --all-groups
To install only development tools:
uv sync --locked --dev
To install documentation tooling:
uv sync --locked --group docs
To install schema-related tools:
uv sync --locked --group schema
Pre-commit Hooks¶
Install pre-commit using uv:
uv tool install pre-commit --with pre-commit-uv
Install the repository hooks:
pre-commit install
Run hooks manually:
pre-commit run --all-files
These hooks validate:
Ruff formatting and linting
Python docstring rules via
numpydocYAML/TOML/JSON correctness
Test naming conventions
No accidental commits to
main
Testing¶
uv run pytest
Tests run with asyncio enabled and use isolated import mode to ensure that
generated API code behaves correctly under real import conditions.