Home
A tool that standardizes and automates Python project setup, configuration, development, and maintenance.
Philosophy
pyrig provides as modern as possible, as best practice as possible, as strict as possible, as complete as possible, and as simple as possible, defaults and automations for everything any Python project should have.
This includes but is not limited to:
- Standardized project structure and file layout (src/my_project, tests/, docs/, etc.)
- Standardized configuration files and formats (pyproject.toml, .gitignore, README.md, etc.)
- Standardized development and maintenance tooling (prek, ruff, pytest, etc...)
- Standardized CI/CD pipelines and repository protection (GitHub Actions, branch protection, etc.)
More Detailed Documentation
We are keeping the manual documentation restricted to the essentials, if you want to know more about how pyrig works under the hood or you have more specific questions about how to use it than we explain here, check out the CodeWiki for AI-generated documentation about pyrig's codebase, where you can also ask questions and get more detailed explanations from the AI. If that does not help, feel free to open an issue on GitHub and we will address it as soon as possible.
Architecture Overview
For a high-level description of how pyrig works and some of its key features and capabilities, see the Architecture Overview.
Getting Started
To get started with pyrig, check out the Getting Started Guide for a complete walkthrough of setting up a new python project from scratch with pyrig.
Plugins
pyrig has a range of plugins that extend your project with extra capabilities — publishing to PyPI, building executables, container images, coverage uploads, and more. Just add one as a dev dependency and it wires itself in automatically. Check them out in the Plugins Documentation.
Scaffolding
To see the full file tree of a project scaffolded by pyrig and get detailed descriptions of each file and configuration, see the Scaffolding Documentation.
Config File System
pyrig's config file system is built around the ConfigFile base class, which defines
how pyrig creates and validates files.
See the Config File System Documentation for details.
Tool System
Every external CLI tool pyrig interacts with is wrapped in a Tool subclass with
typed command builders, badge metadata, and full override support.
See the Tool System Documentation for details.
CLI System
pyrig provides a fully functional, inheritable and automatically extensible CLI that every project built on pyrig gets automatically. Check out the CLI System Documentation for more information.
Mirror Test System
pyrig provides a system for automatically generating and maintaining test files that mirror the structure of the source code and ensure everything is tested. Find out more about it in the Mirror Test System Documentation.
CI/CD Pipeline
pyrig provides a complete end-to-end CI/CD pipeline with GitHub Actions and integrated repository protection. See the CI/CD Pipeline Documentation for a walkthrough of how it works and how to customize it.