Skip to main content

render CLI arguments (sub-commands friendly) defined by argparse module

Project description

sphinx-argparse-cli

PyPI PyPI - Implementation PyPI - Python Version Downloads PyPI - License check

Render CLI arguments (sub-commands friendly) defined by the argparse module. For live demo checkout the documentation of tox, pypa-build and mdpo.

Installation

python -m pip install sphinx-argparse-cli

Enable in conf.py

# just add it to your list of extensions to load within conf.py
extensions = ["sphinx_argparse_cli"]

use

Within the reStructuredText files use the sphinx_argparse_cli directive that takes, at least, two arguments:

Name Description
module the module path to where the parser is defined
func the name of the function that once called with no arguments constructs the parser
prog (optional) when provided, overwrites the <prog> name.
hook (optional) hook argparse to retrieve the parser if func uses a parser instead of returning it.
title (optional) when provided, overwrites the <prog> - CLI interface title added by default and when empty, will not be included
description (optional) when provided, overwrites the description and when empty, will not be included
epilog (optional) when provided, overwrites the epilog and when empty, will not be included
usage_width (optional) how large should usage examples be - defaults to 100 character
usage_first (optional) show usage before description
group_title_prefix (optional) groups subsections title prefixes, accepts the string {prog} as a replacement for the program name - defaults to {prog}
group_sub_title_prefix (optional) subcommands groups subsections title prefixes, accepts replacement of {prog} and {subcommand} for program and subcommand name - defaults to {prog} {subcommand}
no_default_values (optional) suppresses generation of default entries
force_refs_lower (optional) Sphinx :ref: only supports lower-case references. With this, any capital letter in generated reference anchors are lowered and given an _ prefix (i.e. A becomes _a)

For example:

.. sphinx_argparse_cli::
  :module: a_project.cli
  :func: build_parser
  :prog: my-cli-program

If you have code that creates and uses a parser but does not return it, you can specify the :hook: flag:

.. sphinx_argparse_cli::
  :module: a_project.cli
  :func: main
  :hook:
  :prog: my-cli-program

Refer to generated content

The tool will register reference links to all anchors. This means that you can use the sphinx ref role to refer to both the (sub)command title/groups and every flag/argument. The tool offers a configuration flag sphinx_argparse_cli_prefix_document (change by setting this variable in conf.py - by default False). This option influences the reference ids generated. If it's false the reference will be the anchor id (the text appearing after the '# in the URI once you click on it). If it's true the anchor id will be prefixed by the document name (this is useful to avoid reference label clash when the same anchors are generated in multiple documents).

For example in case of a tox command, and sphinx_argparse_cli_prefix_document=False (default):

  • to refer to the optional arguments group use :ref:`tox-optional-arguments` ,
  • to refer to the run subcommand use :ref:`tox-run` ,
  • to refer to flag --magic of the run sub-command use :ref:`tox-run---magic` .

For example in case of a tox command, and sphinx_argparse_cli_prefix_document=True, and the current document name being cli:

  • to refer to the optional arguments group use :ref:`cli:tox-optional-arguments` ,
  • to refer to the run subcommand use :ref:`cli:tox-run` ,
  • to refer to flag --magic of the run sub-command use :ref:`cli:tox-run---magic` .

Due to Sphinx's :ref: only supporting lower-case values, if you need to distinguish mixed case program names or arguments, set the :force_refs_lower: argument. With this flag, captial-letters in references will be converted to their lower-case counterpart and prefixed with an _. For example:

  • A prog name SampleProgram will be referenced as :ref:`_sample_program...` .
  • To distinguish between mixed case flags -a and -A use :ref:`_sample_program--a` and :ref:`_sample_program--_a` respectively

Note that if you are not concerned about using internal Sphinx :ref: cross-references, you may choose to leave this off to maintain mixed-case anchors in your output HTML; but be aware that later enabling it will change your anchors in the output HTML.

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

sphinx_argparse_cli-1.20.1.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

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

sphinx_argparse_cli-1.20.1-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file sphinx_argparse_cli-1.20.1.tar.gz.

File metadata

  • Download URL: sphinx_argparse_cli-1.20.1.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sphinx_argparse_cli-1.20.1.tar.gz
Algorithm Hash digest
SHA256 ce21821c5961de24f52d4f78b01be02b693a5bd3d7df7ce920facb9708f983a5
MD5 fa87c89aacf32b654e0bf5a6b79b6c16
BLAKE2b-256 3586e64bef5ee47bbb0bdb2415b9cabcbf03cbc270eca4ba46c6060fa0977313

See more details on using hashes here.

Provenance

The following attestation bundles were made for sphinx_argparse_cli-1.20.1.tar.gz:

Publisher: release.yaml on tox-dev/sphinx-argparse-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sphinx_argparse_cli-1.20.1-py3-none-any.whl.

File metadata

File hashes

Hashes for sphinx_argparse_cli-1.20.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a4592b1cc2c07dcdd6d6b58e41b79d032bd48588e68a6b057272f75f87f904ed
MD5 7150c2faad147f14d37dce559d5e454c
BLAKE2b-256 ce40da6d8044c0f27f0bffd0656f77eceef6ac7cd29b1bea21222f34c3c54784

See more details on using hashes here.

Provenance

The following attestation bundles were made for sphinx_argparse_cli-1.20.1-py3-none-any.whl:

Publisher: release.yaml on tox-dev/sphinx-argparse-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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