Skip to main content

CLI Command Parser

Project description

downloads py_version coverage_badge build_status Blue

Command Parser is a class-based CLI argument parser that defines parameters with descriptors. It provides the tools to quickly and easily get started with basic CLIs, and it scales well to support even very large and complex CLIs while remaining readable and easy to maintain.

The primary goals of this project:
  • Make it easy to define subcommands and actions in an clean and organized manner

  • Allow for inheritance so that common parameters don’t need to be repeated

  • Make it easy to handle common initialization tasks for all actions / subcommands once

  • Reduce the amount of boilerplate code that is necessary for setting up parsing and handling argument values

Example Program

from cli_command_parser import Command, Option, main

class Hello(Command, description='Simple greeting example'):
    name = Option('-n', default='World', help='The person to say hello to')
    count: int = Option('-c', default=1, help='Number of times to repeat the message')

    def main(self):
        for _ in range(self.count):
            print(f'Hello {self.name}!')

if __name__ == '__main__':
    main()
$ hello_world.py --name Bob -c 3
Hello Bob!
Hello Bob!
Hello Bob!

$ hello_world.py -h
usage: hello_world.py [--name NAME] [--count COUNT] [--help]

Simple greeting example

Optional arguments:
  --name NAME, -n NAME        The person to say hello to (default: 'World')
  --count COUNT, -c COUNT     Number of times to repeat the message (default: 1)
  --help, -h                  Show this help message and exit (default: False)

Installing CLI Command Parser

CLI Command Parser can be installed and updated via pip:

$ pip install -U cli-command-parser

There are no required dependencies. Support for formatting wide characters correctly in help text descriptions can be included by adding wcwidth to your project’s requirements, and/or by installing with optional dependencies:

$ pip install -U cli-command-parser[wcwidth]

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

cli_command_parser-2022.9.24.tar.gz (91.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cli_command_parser-2022.9.24-py3-none-any.whl (111.7 kB view details)

Uploaded Python 3

File details

Details for the file cli_command_parser-2022.9.24.tar.gz.

File metadata

  • Download URL: cli_command_parser-2022.9.24.tar.gz
  • Upload date:
  • Size: 91.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for cli_command_parser-2022.9.24.tar.gz
Algorithm Hash digest
SHA256 e3e0ab24ff741a7cdfd26948ad8a26b220e768d1ec37aa9f990e62c6f8e46bbf
MD5 c4a1e41189bf737d5f479f67d3e7a00d
BLAKE2b-256 5e28fa27d9181b93feeb2452029da5e3ff8e12370b247cadee022f2b26629b1a

See more details on using hashes here.

File details

Details for the file cli_command_parser-2022.9.24-py3-none-any.whl.

File metadata

File hashes

Hashes for cli_command_parser-2022.9.24-py3-none-any.whl
Algorithm Hash digest
SHA256 aa1b62bd4b9011e6298555c2e44e09ca63db7cfd73bc98ce44f473005b4b752c
MD5 ff344eaa1ba744f4fc4acdf552fd0078
BLAKE2b-256 8b880239f9959b2c87f3afd6631772605cfede160292bffb76555cf5a5233d09

See more details on using hashes here.

Supported by

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