This is a Python 3.14 package template called pytemplate. The project uses uv for dependency management, ruff for linting and formatting, ty for type checking, pytest with coverage for tests, prek for repository checks, and Sphinx for docs.
The extremely fast Python package and project manager, uv, is required.
Project Structure
The source code lives in src/pytemplate, and the tests live in tests.
Project configuration is centralized in pyproject.toml.
The project includes Docker with a Dockerfile in the repository root.
The project includes ty for static type checking, typos for spell checking, ruff for linting and formatting, and prek for repository checks before commits and in CI. Tool configuration lives in pyproject.toml and .pre-commit-config.yaml.
The project includes Sphinx documentation in docs.
The project includes GitHub Actions CI in .github/workflows/python-app.yml.
- Replace all mentions of
pytemplatewith your package name. - Rename
src/pytemplateto your package name and update imports intests/. - Update package metadata in
pyproject.toml, including name, description, authors, and repository URL. - Update the console script name in
pyproject.tomlif you do not want to keeppytemplate. - Update Sphinx metadata in
docs/source/conf.py, then runmake docs. - Review
.github/workflows/python-app.ymland align it with your intended CI triggers and install commands. - Agentic coding tools should follow the repository guidance in
AGENTS.md.
Install dependencies and tooling with:
uv sync --all-groups
uv run prek installThe package also exposes a console entry point:
uv run pytemplateSee Makefile for the common workflows.
Use make test or uv run pytest.
Use make lint to run ruff, ty, and prek.
Use make audit or uv run pip-audit to scan the environment for known vulnerable packages.