Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Tomperez98/pyrgo

Python project manager inspired in Cargo.
https://github.com/Tomperez98/pyrgo

cargo dead-code documentation linter mypy package-manager pytest python ruff styleguide testing type-checking uv

Last synced: 7 days ago
JSON representation

Python project manager inspired in Cargo.

Awesome Lists containing this project

README

        

# pyrgo

[![PyPI downloads](https://img.shields.io/pypi/dm/pyrgo.svg)](https://pypistats.org/packages/pyrgo)

Python project manager inspired in [Cargo](https://doc.rust-lang.org/cargo/).

**`pyrgo` does not reinvent the wheel**. It's just a unified API that leverages popular libraries to improve your development experience.

- Testing:
- [pytest](https://docs.pytest.org/en/7.3.x/)
- Code formatting:
- [ruff](https://beta.ruff.rs/docs/)
- Code checking:
- [ruff](https://beta.ruff.rs/docs/)
- [mypy](https://mypy.readthedocs.io/en/stable/config_file.html)
- [vulture](https://github.com/jendrikseipp/vulture)
- Artifacts building:
- [build](https://pypa-build.readthedocs.io/en/stable/)
- Package management:
- [uv](https://github.com/astral-sh/uv)

All behind a unified API.

```
Usage: pyrgo [OPTIONS] COMMAND [ARGS]...

pyrgo. Python package manager.

Options:
-v, --version Show the version and exit.
-h, --help Show this message and exit.

Commands:
add Add dependency to env.
audit Audit locked dependencies with `pip_audit`.
build Build project with `build`.
check Check code with `mypy`, `ruff` and `vulture`.
clean Clean project repository.
doc Build a package's documentation with `pdoc`.
fix Automatically fix lint warnings reported by `ruff`.
fmt Format code with `ruff`.
lock Lock project dependencies with `uv`.
new Create a project.
remove Remove dependency from env.
sync Sync current python environment to locked deps using `uv`.
test Run tests with `pytest`.
```

The minimal pyrgo project structure, as well as python project structure is this one:

```bash
.
├── README.md
├── pkg
│ └── __init__.py
├── pyproject.toml
└── tests
└── test_something.py
```

Few extra configurations

```toml
[tool.pyrgo]
extra-paths = ["scripts"]
extra-caches = [".coverage"]
vulture-allowlist = ".allowlist"
```