Tool Wrappers
pyrig wraps external tools in type-safe Python classes. Each Tool class constructs command arguments that can be inspected, modified, and executed.
Start Here
Architecture - Understand the design philosophy, the
.I pattern, subclasses(), and when customizations propagate
automatically vs when they require explicit overrides.
Tools
Each tool page shows subclassing examples. For method details, see the source docstrings.
| Tool | Wraps | Purpose |
|---|---|---|
| PackageManager | uv | Dependencies, building, publishing |
| PackageIndex | pypi | Package URLs and version badges |
| VersionController | git | Version control |
| RemoteVersionController | GitHub | Repository URLs and badges |
| Linter | ruff | Linting and formatting |
| TypeChecker | ty | Type checking |
| ProjectTester | pytest | Running tests |
| ProjectCoverageTester | pytest-cov | Code coverage analysis |
| PreCommitter | prek | Git hooks |
| SecurityChecker | bandit | Security scanning |
| DependencyAuditor | pip-audit | Dependency vulnerability scanning |
| MDLinter | rumdl | Markdown linting |
| DocsBuilder | mkdocs | Documentation |
| ContainerEngine | podman | Container builds |
| Pyrigger | pyrig | CLI wrapper |
Quick Example
from pyrig.rig.tools.linter import Linter
# Get command arguments
args = Linter.I.check_args()
print(args) # ruff check
# Execute
args.run()
See Also
- Tooling - Why pyrig chose each tool
- Trade-offs - What you sacrifice and gain