Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

cli-command-parser

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cli-command-parser

CLI Command Parser

  • 2024.11.2
  • Source
  • PyPI
  • Socket score

Maintainers
1

CLI Command Parser ##################

|downloads| |py_version| |coverage_badge| |build_status| |Ruff|

.. |py_version| image:: https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12%20%7C%203.13%20-blue :target: https://pypi.org/project/cli-command-parser/

.. |coverage_badge| image:: https://codecov.io/gh/dskrypa/cli_command_parser/branch/main/graph/badge.svg :target: https://codecov.io/gh/dskrypa/cli_command_parser

.. |build_status| image:: https://github.com/dskrypa/cli_command_parser/actions/workflows/run-tests.yml/badge.svg :target: https://github.com/dskrypa/cli_command_parser/actions/workflows/run-tests.yml

.. |Ruff| image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json :target: https://docs.astral.sh/ruff/

.. |downloads| image:: https://img.shields.io/pypi/dm/cli-command-parser :target: https://pypistats.org/packages/cli-command-parser

CLI 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


.. code-block:: python

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()

.. code-block:: shell-session

$ 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

Installing CLI Command Parser


CLI Command Parser can be installed and updated via pip <https://pip.pypa.io/en/stable/getting-started/>__::

$ 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 <https://wcwidth.readthedocs.io>__ to your project's requirements, and/or by installing with optional dependencies::

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

Python Version Compatibility

Python versions 3.9 and above are currently supported. The last release of CLI Command Parser that supported 3.8 was 2024-09-07. Support for Python 3.8 officially ended on 2024-10-07 <https://devguide.python.org/versions/>__.

Links


FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc