Shell Commands with
make is an orchestrator — it doesn't do much work itself, it calls other commands which do the work. That's what we recommend doing with
jeeves as well. Among numerous ways to call other programs from Python we recommend a library named, quite concisely,
It will be installed as an optional dependency of
See shell cobminators to check out other available tools.
By default, it is bundled as a dependency for
jeeves, and here is a simple example.
import typer from sh import grep, pip def list_flake8_plugins(): """List installed plugins for Flake8.""" typer.echo( grep( # (1)! 'flake8-', _in=pip.freeze(), ), )
- Equivalent to:
pip freeze | grep flake8-
Shall we execute it?
flake8-bandit==3.0.0 flake8-broken-line==0.5.0 flake8-bugbear==22.12.6 flake8-commas==2.1.0 flake8-comprehensions==3.14.0 flake8-debugger==4.1.2 flake8-docstrings==1.7.0 flake8-eradicate==1.4.0 flake8-isort==4.2.0 flake8-polyfill==1.0.2 flake8-quotes==3.3.2 flake8-rst-docstrings==0.2.7 flake8-string-format==0.3.0
sh allows to call shell commands with conciseness and readability of Pythonic syntax. See the package docs for more detail.