Typed Argument Parsing with Pydantic
Project description
Help
See documentation for help.
Requirements
Requires Python 3.8+, and is compatible with the Pydantic v1 API.
Installation
Installation with pip
is simple:
$ pip install pydantic-argparse
Example
import pydantic.v1 as pydantic
import pydantic_argparse
class Arguments(pydantic.BaseModel):
# Required Args
string: str = pydantic.Field(description="a required string", aliases=["-s"])
integer: int = pydantic.Field(description="a required integer", aliases=["-i"])
flag: bool = pydantic.Field(description="a required flag", aliases=["-f"])
# Optional Args
second_flag: bool = pydantic.Field(False, description="an optional flag")
third_flag: bool = pydantic.Field(True, description="an optional flag")
def main() -> None:
# Create Parser and Parse Args
parser = pydantic_argparse.ArgumentParser(
model=Arguments,
prog="Example Program",
description="Example Description",
version="0.0.1",
epilog="Example Epilog",
)
args = parser.parse_typed_args()
# Print Args
print(args)
if __name__ == "__main__":
main()
$ python3 example.py --help
usage: Example Program [-h] [-v] [-s STRING] [-i INTEGER] [-f | --flag | --no-flag]
[--second-flag] [--no-third-flag]
Example Description
required arguments:
-s STRING, --string STRING
a required string
-i INTEGER, --integer INTEGER
a required integer
-f, --flag, --no-flag
a required flag
optional arguments:
--second-flag an optional flag (default: False)
--no-third-flag an optional flag (default: True)
help:
-h, --help show this help message and exit
-v, --version show program's version number and exit
Example Epilog
$ python3 example.py --string hello -i 42 -f
string='hello' integer=42 flag=True second_flag=False third_flag=True
License
This project is licensed under the terms of the MIT license.
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
pydantic_argparse-0.10.0.tar.gz
(15.9 kB
view details)
Built Distribution
File details
Details for the file pydantic_argparse-0.10.0.tar.gz
.
File metadata
- Download URL: pydantic_argparse-0.10.0.tar.gz
- Upload date:
- Size: 15.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d57eb0a84c8f0af6605376157d3f445cfd786700f2e596ba9d48d15d557185eb |
|
MD5 | b21ae3949360d229d013edd6223f53e0 |
|
BLAKE2b-256 | 94eae63d587294c20d3b83e9c312b5d577c9ec28962ee8490839ca9996672849 |
File details
Details for the file pydantic_argparse-0.10.0-py3-none-any.whl
.
File metadata
- Download URL: pydantic_argparse-0.10.0-py3-none-any.whl
- Upload date:
- Size: 25.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e317f001208d77a5600ece6f7ac78d768d8221a7d64a958980705e9630c2e299 |
|
MD5 | 5e2349e2253d1065ea675e5fb8782b3a |
|
BLAKE2b-256 | be149ee71e3a183f76ff93e46b36157d6ddbf29ec2547b7d2c57931cd5d3aecc |