Skip to main content

Command-line generator from a dictionary.

Project description

License Versions PyPi Code repo Documentation Code Health

This module is a wrapper to argparse module. Its goal is to generate a custom and advanced command-line from a formatted dictionary. As python dictionnaries are easily exportable to configuration files (like YAML or JSON), the idea is to outsource the command-line definition to a file instead of writing dozens or hundreds lines of code.

Code is available on Github (

Documentation is available on readthedocs (

Release notes

2.3.1 (2017-01-19)

  • Add some additionnal checks (for the main configuration and types; bbcff61, dd21371).
  • Correct a bug where some commands number in the resulted Namespace were skipped (6ec1abc).

2.3.0 (2016-10-20)

  • Add subparsers after args and options for improved behaviour (4c4471c).
  • Add a ‘-p/–page’ option to the help command (added by the add_help_cmd parameter) allowing to page the output (8b2d9fd).
  • Remove obsolete script for generating bash and zsh completion (b7a06fb).
  • Fix a bug that prevented the completion (using argcomplete) to work when print_help is used (d2590f7).
  • Fix a bug that prevented paging of the help (behaviour induced by the page_help parameter) when the help option was not defined manually (0a1a0b4).
  • Add the completer parameter for options and arguments allowing to manage argcomplete completers (20c8461).
  • Update documentation for argcomplete (66ad52a).

2.2.0 (2016-06-09)

  • Add a negative_value parameter for parsers allowing to redefine how negatives values are distinguished from options (4c7e7be).

2.1.1 (2016-05-08)

  • print_help parameter is not anymore a root parameter but a per command parameter and simulate the use of the –help option if no arguments are supplied (6bee4d9). This allows flexibiliy for (sub)commands that do not require any input.

2.1.0 (2016-05-08)

  • Remove empty list for default value when nargs is set to * or + (4102816).
  • Allows to add custom actions by updating ACTIONS dictionnary (65d7480).
  • Add a page_help action allowing to page help (818383b, f788f35).
  • Add the parameter page_help at the root of the configuration allowing to page the help of all commands (by replacing the default help action by the page_help action; 9454f7a).
  • Add the parameter print_help at the root of the configuration allowing to print help when no arguments is set (also work for subcommands; 5ea6fe8)

2.0.0 (2015-06-25)

  • Change behaviour of groups: groups now act like parsers rather than just referencing previously defined options. It breaks files used by previous versions.
  • Update design and correct bugs of the help command added by the add_help_cmd keyword.
  • Improve control of abbrevations behaviour. When allow_abbrev parameter was activate, it was not possible to concatenate single options or split with an ‘=’ long options. This is now the case.
  • Correct a bug with YAML anchors which causes loss of informations (like the short option).

1.1.1 (2015-02-24)

  • Correct a bug when using version action.

1.1 (2015-02-17)

  • Add a version keyword for options, allowing to use version action.
  • Allow an option add_help_cmd in the root of the configuration that automatically add a help command that show the arborescence of all commands with their descriptions.
  • Allow the use of argparse.SUPPRESS with __SUPPRESS__ “builtin”.
  • Replace the “builtins” __CHOICES__, __MATCH__ and __FILE__ in the help message by the respectives values of those keywords.
  • Add the parameter allow_abbrev in parser configuration, controlling abbrevations behaviour (

1.0 (2014-10-28)

  • Rewrite module for matching at best argparse.
  • Allow bultins.
  • Drop compatibility to python2.6 (because of dict comprehension).

0.5 (2013-11-25)

  • Port code to Python 3 (with compatiblity at least until Python 2.6).

0.4 (2013-11-14)

  • Add description of parser (via desc keyword).

0.3 (2013-08-09)

  • Add an iterable and accessible namespace for arguments.
  • Change behaviour of parse method (now return a namespace with arguments).
  • Set the default value for list type to an empty list.
  • Changes the behaviour of the execution of an external module. It is no longer a python path of a module in ‘sys.path’ but directly the path of a file. In addition, keyword ‘lib’ has be replaced by ‘path’.
  • Replace ‘__FILE__’ in the default value of an option by the directory of the program.
  • Update the license to MIT.

0.2 (2013-07-21)

  • CommandLine object doesn’t take anymore a JSON or YAML file but a dictionary.
  • Add documentation.
  • Updating setup for PyPi.

Project details

Download files

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

Files for clg, version 2.3.1
Filename, size File type Python version Upload date Hashes
Filename, size clg-2.3.1.tar.gz (13.1 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page