Bootstrap extensible single-module python CLIs
This package is intended to generate python modules that function as CLIs and therefore shouldn't be a dependency of any module/package that it generates. Because of this it's recommended to use this package via pipx
:
pipx run module-cli /path/to/module.py
If you really want this package as one of your package's dependencies, then install via pip
in the usual way:
pip install module-cli
Which you can then use the CLI:
$ module-cli -h
usage: module-cli [-h] [-v] [-D] [out]
Bootstrap a single-module python CLI
positional arguments:
out File to write to. (default: -)
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-D, --debug run program in debug mode
The modules generated by module-cli
contain a function cli()
. This function is the one you'll likely want to point to if you intend to turn your module into an installable command-line application.
-
setup.cfg
:[options.entry_points] console_scripts = my_cli = my_pkg.my_module:cli
-
setup.py
:setup( entry_points = { 'console_scripts': ['my_cli=my_pkg.my_module:cli'], } )
-
pyproject.toml
(poetry):[tool.poetry.scripts] my_cli = "my_pkg.my_module:cli"
- Have or install a recent version of
poetry
(version >= 1.1) - Fork the repo
- Setup a virtual environment (however you prefer)
- Run
poetry install
- Run
pre-commit install
- Add your changes (adding/updating tests is always nice too)
- Commit your changes + push to your fork
- Open a PR