Skip to content

Home

CI CD ProjectTester

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

PackageManager Pyrigger RemoteVersionController VersionControlHookManager VersionController

DocsBuilder PackageIndex ProgrammingLanguage License


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


In principle, pyrig is a Convention-Over-Configuration tool for Python projects regarding the project itself. Just like frameworks such as Django or Flask that implement the "convention over configuration" principle for web development, pyrig does the same for Python project setup and management.

Philosophy

Pyrig derives its conventions according to its philosophy and then configures them for you.

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. Learn more about how plugins work, some available plugins, and how to create your own 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.

Drawbacks

pyrig's opinionated, no-toggles approach has real trade-offs, and undoing it later takes more than removing one dependency. See the Drawbacks Documentation for an honest list of the downsides and a full checklist for removing pyrig from your project.

Comparisons

pyrig isn't the only tool in this field. See the Comparisons Documentation to see how pyrig compares to other tools.