Skip to main content

pyrig

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.


What is pyrig?

pyrig is a package and tool that rigs up Python projects with Convention-over-Configuration. 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 and validates project files via classes, where every file is treated as a data structure (dict or list), the content is loaded and validated against the declared state in the class. This makes it possible to override and adjust any and all behavior of pyrig via subclassing said classes. 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 command 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. They also 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

Release files for pyrig 18.85.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 18.85.0
File Size Uploaded
pyrig-18.85.0.tar.gz 105.8 kB Details

Built distribution (wheel)

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

Total release size: 276.9 kB

Release files / pyrig-18.85.0.tar.gz

Download URL pyrig-18.85.0.tar.gz
Size 105.8 kB
Tags Source
SHA-256 checksum
How to use checksums
98d867b16f58533150028ca6e2e14bc0742e3119ae0856b6c19abe4df802a3dc
BLAKE2b-256 checksum
How to use checksums
5f429a2932fb3258a047d5628a353b007c8b3e5e74941da1ee4a5227c93b2a01
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","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}

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

Download URL pyrig-18.85.0-py3-none-any.whl
Size 171.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
355eabfb143c04bfc1eb2032052e64e6957477cf11e6cb2c0fbeed7c991e6446
BLAKE2b-256 checksum
How to use checksums
799ebebc0958eb7e8343c8d58d552acc6981b5fa496bffccc30376ac13bd3c54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","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}

Release history Release notifications | RSS feed

This release

18.85.0 This release

2 release files

18.9.0

2 release files

18.8.0

2 release files

18.7.0

2 release files

18.6.0

2 release files

18.5.0

2 release files

18.3.6

2 release files

18.3.4

2 release files

18.3.3

2 release files

18.3.1

2 release files

18.2.0

2 release files

18.1.0

2 release files

18.0.3

2 release files

18.0.2

2 release files

18.0.1

2 release files

18.0.0

2 release files

17.9.1

2 release files

15.9.0

2 release files

15.8.0

2 release files

15.6.0

2 release files

15.5.0

2 release files

15.4.1

2 release files

15.4.0

2 release files

15.3.1

2 release files

15.3.0

2 release files

15.2.0

2 release files

15.1.0

2 release files

15.0.1

2 release files

15.0.0

2 release files

14.9.0

2 release files

14.8.0

2 release files

14.7.0

2 release files

14.6.0

2 release files

14.4.0

2 release files

14.3.0

2 release files

14.2.0

2 release files

14.1.0

2 release files

14.0.0

2 release files

13.2.0

2 release files

13.1.1

2 release files

13.1.0

2 release files

13.0.0

2 release files

12.9.1

2 release files

12.9.0

2 release files

11.4.9

2 release files

11.4.8

2 release files

11.4.7

2 release files

11.4.6

2 release files

11.4.5

2 release files

11.4.4

2 release files

11.4.3

2 release files

11.4.2

2 release files

11.4.1

2 release files

11.3.9

2 release files

11.3.8

2 release files

11.3.7

2 release files

11.3.6

2 release files

11.3.5

2 release files

11.3.4

2 release files

11.3.3

2 release files

11.3.2

2 release files

11.3.1

2 release files

11.2.7

2 release files

11.2.6

2 release files

11.2.5

2 release files

11.2.4

2 release files

11.2.3

2 release files

11.2.2

2 release files

11.2.1

2 release files

11.1.8

2 release files

11.1.7

2 release files

11.1.6

2 release files

11.1.5

2 release files

11.1.4

2 release files

11.1.3

2 release files

11.1.2

2 release files

10.3.1

2 release files

10.2.8

2 release files

10.2.7

2 release files

10.2.6

2 release files

10.2.5

2 release files

10.1.9

2 release files

10.1.8

2 release files

10.1.7

2 release files

10.1.6

2 release files

10.1.5

2 release files

10.1.4

2 release files

10.1.3

2 release files

10.1.2

2 release files

10.1.1

2 release files

10.0.1

2 release files

9.2.1

2 release files

9.1.1

2 release files

9.0.1

2 release files

8.2.5

2 release files

8.2.4

2 release files

8.2.3

2 release files

8.2.2

2 release files

8.2.1

2 release files

8.1.5

2 release files

8.1.4

2 release files

8.1.3

2 release files

8.1.2

2 release files

8.1.1

2 release files

8.0.2

2 release files

8.0.1

2 release files

7.1.1

2 release files

7.0.14

2 release files

7.0.13

2 release files

7.0.12

2 release files

7.0.11

2 release files

7.0.10

2 release files

7.0.9

2 release files

7.0.8

2 release files

7.0.7

2 release files

7.0.6

2 release files

7.0.5

2 release files

7.0.4

2 release files

7.0.3

2 release files

7.0.2

2 release files

7.0.1

2 release files

6.0.1

2 release files

5.0.6

2 release files

5.0.5

2 release files

5.0.4

2 release files

5.0.3

2 release files

5.0.2

2 release files

5.0.1

2 release files

4.3.1

2 release files

4.2.27

2 release files

4.2.26

2 release files

4.2.25

2 release files

4.2.24

2 release files

4.2.23

2 release files

4.2.22

2 release files

4.2.21

2 release files

4.2.20

2 release files

4.2.19

2 release files

4.2.18

2 release files

4.2.17

2 release files

4.2.16

2 release files

4.2.15

2 release files

4.2.14

2 release files

4.2.13

2 release files

4.2.12

2 release files

4.2.11

2 release files

4.2.10

2 release files

4.2.9

2 release files

4.2.8

2 release files

4.2.7

2 release files

4.2.6

2 release files

4.2.5

2 release files

4.2.4

2 release files

4.2.3

2 release files

4.2.2

2 release files

4.2.1

2 release files

4.1.4

2 release files

4.1.3

2 release files

4.1.2

2 release files

4.1.1

2 release files

4.0.9

2 release files

4.0.8

2 release files

4.0.7

2 release files

4.0.6

2 release files

4.0.5

2 release files

4.0.4

2 release files

4.0.3

2 release files

4.0.2

2 release files

4.0.1

2 release files

3.2.9

2 release files

3.2.8

2 release files

3.2.7

2 release files

3.2.6

2 release files

3.2.5

2 release files

3.2.4

2 release files

3.2.3

2 release files

3.2.1

2 release files

3.1.25

2 release files

3.1.24

2 release files

3.1.23

2 release files

3.1.22

2 release files

3.1.21

2 release files

3.1.20

2 release files

3.1.19

2 release files

3.1.18

2 release files

3.1.17

2 release files

3.1.16

2 release files

3.1.15

2 release files

3.1.14

2 release files

3.1.13

2 release files

3.1.12

2 release files

3.1.11

2 release files

3.1.10

2 release files

3.1.9

2 release files

3.1.8

2 release files

3.1.7

2 release files

3.1.6

2 release files

3.1.5

2 release files

3.1.4

2 release files

3.1.3

2 release files

3.1.2

2 release files

3.1.1

2 release files

3.0.10

2 release files

3.0.9

2 release files

3.0.8

2 release files

3.0.7

2 release files

3.0.6

2 release files

3.0.5

2 release files

3.0.4

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

2.2.37

2 release files

2.2.36

2 release files

2.2.35

2 release files

2.2.34

2 release files

2.2.33

2 release files

2.2.32

2 release files

2.2.30

2 release files

2.2.29

2 release files

2.2.28

2 release files

2.2.27

2 release files

2.2.26

2 release files

2.2.25

2 release files

2.2.24

2 release files

2.2.23

2 release files

2.2.22

2 release files

2.2.21

2 release files

2.2.20

2 release files

2.2.19

2 release files

2.2.18

2 release files

2.2.17

2 release files

2.2.16

2 release files

2.2.15

2 release files

2.2.14

2 release files

2.2.13

2 release files

2.2.12

2 release files

2.2.11

2 release files

2.2.10

2 release files

2.2.9

2 release files

2.2.8

2 release files

2.2.7

2 release files

2.2.6

2 release files

2.2.5

2 release files

2.2.4

2 release files

2.2.3

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.1.55

2 release files

2.1.54

2 release files

2.1.53

2 release files

2.1.52

2 release files

2.1.51

2 release files

2.1.50

2 release files

2.1.49

2 release files

2.1.48

2 release files

2.1.47

2 release files

2.1.46

2 release files

2.1.45

2 release files

2.1.44

2 release files

2.1.43

2 release files

2.1.42

2 release files

2.1.41

2 release files

2.1.40

2 release files

2.1.39

2 release files

2.1.38

2 release files

2.1.37

2 release files

2.1.36

2 release files

2.1.35

2 release files

2.1.34

2 release files

2.1.33

2 release files

2.1.32

2 release files

2.1.31

2 release files

2.1.30

2 release files

2.1.29

2 release files

2.1.28

2 release files

2.1.27

2 release files

2.1.26

2 release files

2.1.25

2 release files

2.1.22

2 release files

2.1.21

2 release files

2.1.20

2 release files

2.1.19

2 release files

2.1.18

2 release files

2.1.17

2 release files

2.1.16

2 release files

2.1.15

2 release files

2.1.14

2 release files

2.1.13

2 release files

2.1.12

2 release files

2.1.11

2 release files

2.1.10

2 release files

2.1.9

2 release files

2.1.8

2 release files

2.1.7

2 release files

2.1.6

2 release files

2.1.5

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.0.9

2 release files

2.0.8

2 release files

2.0.7

2 release files

2.0.6

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

1.1.36

2 release files

1.1.35

2 release files

1.1.34

2 release files

1.1.33

2 release files

1.1.32

2 release files

1.1.31

2 release files

1.1.30

2 release files

1.1.29

2 release files

1.1.28

2 release files

1.1.27

2 release files

1.1.26

2 release files

1.1.25

2 release files

1.1.24

2 release files

1.1.23

2 release files

1.1.22

2 release files

1.1.20

2 release files

1.1.19

2 release files

1.1.18

2 release files

1.1.17

2 release files

1.1.16

2 release files

1.1.15

2 release files

1.1.14

2 release files

1.1.13

2 release files

1.1.12

2 release files

1.1.11

2 release files

1.1.10

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

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