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
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:
-
the list of arguments from callable's signature;
-
help hints from the callable's docstring;
-
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, usecall_args(from thecall-argspackage). This loses some transparency, but it's quite convenient if you frequently change the arguments.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f6956326589f1603b819bfe0b466bd9c2d11c0532223b8d08a839c92b3f47e79
|
|
| MD5 |
79056e03e5e44f6afba93797b62e905c
|
|
| BLAKE2b-256 |
d2e40b889365813e198897767eaa0f5bcdb0595df858bd3c8c4885f7c952ede2
|
File details
Details for the file argparse_gen-1.0.1-py3-none-any.whl.
File metadata
- Download URL: argparse_gen-1.0.1-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.27.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d5abbd96c58ef99da44d1ab122880ad2201583ae2da792653556319d8a2945e
|
|
| MD5 |
fe31c24beca6f0c6111eb8225d65b689
|
|
| BLAKE2b-256 |
e3b7e068de17f51d1761841a1cc15ab7b97e12923a3ebd10ecd7074b1d10ec82
|