Skip to main content

A tool that standardizes and automates Python project setup, configuration, development, and maintenance.

Project description

pyrig

CI CD

CoverageTester ProjectTester

DependencyAuditor DependencyChecker MarkdownLinter PythonLinter SecurityChecker SpellChecker TypeChecker VersionControlHookManager

PackageManager Pyrigger RemoteVersionController VersionController

DocsBuilder PackageIndex ProgrammingLanguage License


A tool 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

pyrig-17.1.10.tar.gz (80.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyrig-17.1.10-py3-none-any.whl (125.7 kB view details)

Uploaded Python 3

File details

Details for the file pyrig-17.1.10.tar.gz.

File metadata

  • Download URL: pyrig-17.1.10.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

Hashes for pyrig-17.1.10.tar.gz
Algorithm Hash digest
SHA256 dd8b3efd6a6b7ccd9d8e5c7318e9ee64db9923237c11d555f7b333ce5e6421aa
MD5 4854d5122b3b74756fa81b225e809fe0
BLAKE2b-256 8b3e5a58307e6d776f9d32823f9f8d33ef8ffd5f7cf663b3f952479fa5560943

See more details on using hashes here.

File details

Details for the file pyrig-17.1.10-py3-none-any.whl.

File metadata

  • Download URL: pyrig-17.1.10-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

Hashes for pyrig-17.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 23fa3521639b071c88608a2b31f9a3541b3035852224a8c699f9f8ae4e500f96
MD5 99cceceac29217c0c8425560acdfcaff
BLAKE2b-256 52b039044247c940df232f18eb09975e893badfc404932caf1898d18a1e741d6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page