Skip to main content

Typed Argument Parsing with Pydantic

Project description

pydantic-argparse

pypi downloads versions license

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


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.1.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

pydantic_argparse-0.3.1-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file pydantic-argparse-0.3.1.tar.gz.

File metadata

  • Download URL: pydantic-argparse-0.3.1.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.10.1 Darwin/21.1.0

File hashes

Hashes for pydantic-argparse-0.3.1.tar.gz
Algorithm Hash digest
SHA256 0ea99b34f35c6446c5f9be7d5af76e5d93ab3aab8fea3e87647f67f8459c8ea0
MD5 9c1bec334b86bd3bd23b2808fab57e3f
BLAKE2b-256 9b3b8c0df6232157b99905d2e07517048d80c3b9557f1ed559de8aa3755cbb5a

See more details on using hashes here.

File details

Details for the file pydantic_argparse-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: pydantic_argparse-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 14.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.10.1 Darwin/21.1.0

File hashes

Hashes for pydantic_argparse-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4f59cc6434574491fb5642eebab4f6f772442d7f37d4abfa70a3907700fadfa6
MD5 9ec8633f59df7159bfd384e74d095c0f
BLAKE2b-256 680b4ec7bd94ee5c861c6fabc23de2d70107c83b25f5a25acf753dc8bc26cb20

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page