Skip to main content

pyrig

pyrig

CI CD ProjectTester

ByteOrderMarkerFormatter CICDLinter CICDSecurityChecker CaseConflictChecker DeadCodeChecker DependencyChecker EndOfFileFormatter EndOfLineFormatter JSONFormatter JSONLinter LargeFileChecker MarkdownLinter MergeConflictChecker ModuleTestNamingChecker PythonLinter PythonOrderLinter SecretsChecker SecurityChecker ShellFormatter ShellLinter SpellChecker TOMLLinter TrailingWhitespaceFormatter TypeChecker XMLLinter YAMLLinter

PackageManager Pyrigger RemoteVersionController VersionControlHookManager VersionController

DocsBuilder PackageIndex ProgrammingLanguage License


A Python project setup and management tool built on infrastructure as code and convention over configuration.


What is pyrig?

pyrig is a package and tool that rigs up Python projects with Convention-over-Configuration via Infrastructure as Code. It scaffolds a complete, fully configured, installed and working Python project with everything a modern Python project should have 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

The pyrig init command generates a complete project, this includes, but is not limited to:

  • 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

pyrig manages the project as code: each managed file is represented by a class that declares its desired state, and pyrig sync validates or updates the file. Files are treated as data structures (dict or list), so user additions can be preserved while required content is kept in sync. Subclass these classes to override and adjust pyrig's behavior; 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. Run pyrig sync to create or update all config files at once.

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 flag is included that shows the version of your project. Run my-project --version to see it in action.

Mirror Test Structure

Generate test skeletons with pyrig sync. This will generate test skeletons for all source modules and update them automatically as your project evolves.

Plugin Architecture

Override and customize any and all behavior 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. Create your own plugins this way to extend pyrig's functionality.

CI/CD & Repository Protection

Pyrig generates GitHub Actions workflows for CI/CD which automatically test and release your code, and configure and apply repository protection settings and protection rulesets. 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.

Comparisons

pyrig isn't the only tool in this field. See how it compares to other popular tools like cookiecutter, copier or pyscaffold.

Documentation

Full Documentation The manually written documentation
CodeWiki AI-generated documentation
Tutorials YouTube tutorials for pyrig

Metadata

Release files for pyrig 19.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyrig 19.8.0
File Size Uploaded Provenance Actions
pyrig-19.8.0.tar.gz 113.5 kB Without provenance Details for pyrig-19.8.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pyrig 19.8.0
File Interpreter ABI Platform Actions
pyrig-19.8.0-py3-none-any.whl Python 3 none any Details for pyrig-19.8.0-py3-none-any.whl

Total release size: 285.7 kB

Release files / pyrig-19.8.0.tar.gz

Download URL pyrig-19.8.0.tar.gz
Size 113.5 kB
Tags Source
SHA-256 checksum
How to use checksums
2d014b7dde53a8c412217f02f2c160a9a13ccafa338973aa75295bdec2076421
BLAKE2b-256 checksum
How to use checksums
bfa04edade9d6e59360b1a20c2524239317b2a03cf8bb4a68afa6f7223d188ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / pyrig-19.8.0-py3-none-any.whl

Download URL pyrig-19.8.0-py3-none-any.whl
Size 172.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f29ef41666e9abc4845c176faa2315382391d6cf2bfe8687b9bd52b2c3679947
BLAKE2b-256 checksum
How to use checksums
6f25df18802f45b68932c54ba31a8228dc0ea696efcd4a516f4cbc9128a3e199
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for pyrig 19.8.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

19.8.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page