Typed Argument Parsing with Pydantic
Project description
pydantic-argparse
Typed Argument Parsing with Pydantic
Help
Documentation coming soon.
Installation
Install using:
pip3 install pydantic-argparse
Example
import pydantic
import pydantic_argparse
class Arguments(pydantic.BaseModel):
"""Arguments for CLI"""
# Required Args
aaa: str = pydantic.Field(description="I'm a required string")
bbb: int = pydantic.Field(description="I'm a required integer")
ccc: bool = pydantic.Field(description="I'm a required bool")
# Optional Args
ddd: bool = pydantic.Field(False, description="I'm an optional bool (default False)")
eee: bool = pydantic.Field(True, description="I'm an optional bool (default True)")
def main() -> None:
"""Main example function."""
# Create Parser and Parse Args
parser = pydantic_argparse.ArgumentParser(
model=Arguments,
prog="Example",
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 [-h] [-v] --aaa AAA --bbb BBB --ccc | --no-ccc [--ddd] [--no-eee]
Example Description
required arguments:
--aaa AAA I'm a required string
--bbb BBB I'm a required integer
--ccc, --no-ccc I'm a required bool
optional arguments:
--ddd I'm an optional bool (default False)
--no-eee I'm an optional bool (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 --aaa hello --bbb 123 --no-ccc
aaa='hello' bbb=123 ccc=False ddd=False eee=True
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.3.0.tar.gz
(11.9 kB
view details)
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 pydantic-argparse-0.3.0.tar.gz.
File metadata
- Download URL: pydantic-argparse-0.3.0.tar.gz
- Upload date:
- Size: 11.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.9.7 Darwin/21.1.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d16a06ab83bdbd2eecd4ec8cb04e1408e835eb2fcdf6905277fd1f6819a705f
|
|
| MD5 |
c8bb25f194e40d678302b67a3008f66c
|
|
| BLAKE2b-256 |
baf7f33d6aedbca71c75155aff05778b5e630cfb50516b6d311136e82cb4116e
|
File details
Details for the file pydantic_argparse-0.3.0-py3-none-any.whl.
File metadata
- Download URL: pydantic_argparse-0.3.0-py3-none-any.whl
- Upload date:
- Size: 15.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.9.7 Darwin/21.1.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d33e77b19bf8d1bcf3682b21a200038e2646d41710129f2e14028097204c234
|
|
| MD5 |
c691c919da2296716abb22e55e9a43d5
|
|
| BLAKE2b-256 |
7de08cf4b132a69164609b966dedae54c4f7815fa2a2da459f9bff1c842aad0c
|