Pyrig is a toolkit that standardizes and automates Python project setup, configuration, development, and maintenance.
Project description
pyrig
Pyrig is a toolkit that standardizes and automates Python project setup, configuration, development, and maintenance.
What is pyrig?
pyrig is a package and tool that rigs up your project. It scaffolds and initializes a complete, fully configured, installed and working Python project with one command and makes the process of developing and maintaining it more seamless and efficient by automating things like configuration management, CLI generation, testing infrastructure, and more.
Requirements
- Python 3.12+
- Git
- uv
Quick Start
uv init my-project --python 3.12
cd my-project
uv add pyrig --dev
uv run pyrig init
See the Getting Started Guide for detailed setup instructions to also fully integrate with GitHub and CI/CD from the start.
Features
Project Scaffolding & Initialization
pyrig init generates a complete project in one command that works out of the box.
This includes everything a modern python project needs:
- Standardized directory structure
- Fully configured dev tools (linters, formatters, type checkers, test frameworks, git hooks, etc.)
- End-to-end CI/CD pipeline with GitHub Actions and integrated repository protection
- Complete and working CLI
- And much more...
File & Configuration Management
Every generated file is backed by a Python class that validates and merges
automatically. Override any config by subclassing, or define entirely new
config files — pyrig discovers and manages them for you.
Run pyrig sync to create or update all config files at once.
Run pyrig mk subcls to generate a subclass for overriding a specific file.
Automatic CLI
pyrig init sets up a CLI for your project that works immediately.
Generate and add new commands by running pyrig mk cmd <name>.
An automatic version command is included that shows the version of your project.
Run my-project version to see it in action.
Mirror Test Generation & Maintenance
Generate test skeletons with pyrig sync.
This will generate test skeletons for all source modules
and update them automatically as your project evolves.
Multi-Package Inheritance and Extensibility Architecture
Override and customize any and all behaviour to suit your project's needs.
pyrig's classes are designed for inheritance and composition, allowing you to
create custom configurations, tools, and more by subclassing and simply
overriding methods. pyrig will automatically discover and use your custom classes
without any additional configuration.
Run pyrig mk subcls to generate a subclass for any pyrig class.
CI/CD & Repository Protection
Pyrig generates GitHub Actions workflows for CI/CD which automatically configure and apply repository protection settings and branch protection rules when they run to ensure your repository is protected. Push your code to GitHub after initialization and see it in action.
Commands
Run pyrig --help to see a list of all available commands and their usage.
Run pyrig <command> --help for more information about a specific command and
its usage.
Run my-project --help to see the automatically generated CLI for your project.
Documentation
| Full Documentation | The manually written documentation |
| CodeWiki | AI-generated documentation |
| Tutorials | YouTube tutorials for pyrig |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyrig-17.1.0.tar.gz.
File metadata
- Download URL: pyrig-17.1.0.tar.gz
- Upload date:
- Size: 80.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64a3fc3cf60fa00445894b03d37f4dbd3d3028d216f3d89462b760bc37d82037
|
|
| MD5 |
3a0aafaf81d04b88f058e221b6b00002
|
|
| BLAKE2b-256 |
846d8adce554e8a43f600f11626a0b2354568076f6488d8ba60b490a5a9ff486
|
File details
Details for the file pyrig-17.1.0-py3-none-any.whl.
File metadata
- Download URL: pyrig-17.1.0-py3-none-any.whl
- Upload date:
- Size: 125.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
901e21c30a4402fbe69731edd655dc12d3c8a007e4a06a14523d9b7ce91271b4
|
|
| MD5 |
0217117769096dc714e409bd9ef16e14
|
|
| BLAKE2b-256 |
f79690b42c1e8273e3a1582f8daa3e3e88df396908381cfefc527e4375fd6de4
|