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
.L pattern, get_all_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 |
| VersionController | git | Version control |
| RemoteVersionController | GitHub | Repository URLs and badges |
| Linter | ruff | Linting and formatting |
| TypeChecker | ty | Type checking |
| ProjectTester | pytest | Running tests |
| PreCommitter | pre-commit | 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.dev.management.linter import Linter
# Get command arguments
args = Linter.L.get_check_args()
print(args) # ruff check
# Execute
args.run()
See Also
- Tooling - Why pyrig chose each tool
- Trade-offs - What you sacrifice and gain