Skip to main content

Argparse code generator.

Project description

Argparse Code Generator

A simple utility meant to generate the skeleton for the argparse interface of your CLI scripts.

Content

  1. Intro
  2. Installation
  3. Usage
  4. CLI arguments

Intro

This package provides a simple utility to generate basic argparse interface for CLI scripts. It works by analysing the callable that you wish your script to call based on CLI arguments.

More precisely, it gets:

  1. the list of arguments from callable's signature;

  2. help hints from the callable's docstring;

  3. types, if possible, from callable's type annotation.

In some cases, it can do a bit more. For example, if the type of an argument is bool, the script will add action to its add_argument call, and if it is a Literal or an enum.Enum, it will create choices.

Installation

Just install it from PyPI:

$ pip install argparse_gen

This'll make argparse_gen script and package available to you.

Usage

If you run

$ argparse_gen -h

you'll get the full help for it, but essentially, it's used by calling

$ argparse_gen path/to/your/package/ name_of_callable_in_that_package

or

$ argparse_gen path/to/your/module.py name_of_callable_in_that_module

The output of the script is Python code that you can copy paste to your script's main file, and then adjust to your needs (the autogenerated version is unlikely to be perfect, except maybe for really trivial stuff).

If you wish to create your own custom scripts to prepare this code, use the package argparse_gen which exposes ArgparseGen class (which implements the whole thing), ParamDef (which implements one parameter), and main function (which wraps the class for convenient calls).

CLI arguments

The script recognizes the following CLI arguments:

  • -p PARAM_REGEX, --param_regex PARAM_REGEX: A regular expression to recognise parameters in the callable's docstring. The default recognizes rST (reStructuredText) format.
  • -i INDENT, --indent INDENT: Additional indentation for the generated code.
  • -s, --skip_private: Skip private (those with names starting with an underscore) arguments.
  • -c, --call_args: Instead of generating a call with all of the available arguments, use call_args (from the call-args package). This loses some transparency, but it's quite convenient if you frequently change the arguments.

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

argparse_gen-1.0.1.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

argparse_gen-1.0.1-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file argparse_gen-1.0.1.tar.gz.

File metadata

  • Download URL: argparse_gen-1.0.1.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.27.0

File hashes

Hashes for argparse_gen-1.0.1.tar.gz
Algorithm Hash digest
SHA256 f6956326589f1603b819bfe0b466bd9c2d11c0532223b8d08a839c92b3f47e79
MD5 79056e03e5e44f6afba93797b62e905c
BLAKE2b-256 d2e40b889365813e198897767eaa0f5bcdb0595df858bd3c8c4885f7c952ede2

See more details on using hashes here.

File details

Details for the file argparse_gen-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for argparse_gen-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9d5abbd96c58ef99da44d1ab122880ad2201583ae2da792653556319d8a2945e
MD5 fe31c24beca6f0c6111eb8225d65b689
BLAKE2b-256 e3b7e068de17f51d1761841a1cc15ab7b97e12923a3ebd10ecd7074b1d10ec82

See more details on using hashes here.

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