Skip to main content

Bootstrap extensible single-module python CLIs

Project description

module-cli

Bootstrap extensible single-module python CLIs

PyPI Version codecov Tests Code Style Type Check

Installation

With pipx

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

With pip

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

Installing your CLI

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"
    

Contributing

  1. Have or install a recent version of poetry (version >= 1.1)
  2. Fork the repo
  3. Setup a virtual environment (however you prefer)
  4. Run poetry install
  5. Run pre-commit install
  6. Add your changes (adding/updating tests is always nice too)
  7. Commit your changes + push to your fork
  8. Open a PR

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

module-cli-22.4.2.tar.gz (4.1 kB view hashes)

Uploaded Source

Built Distribution

module_cli-22.4.2-py3-none-any.whl (4.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page