Skip to main content

Typed Argument Parsing with Pydantic

Project description

Pydantic Argparse

Typed Argument Parsing with Pydantic

Help

See documentation for help.

Installation

Installation with pip is simple:

$ pip install pydantic-argparse

Example

import pydantic
import pydantic_argparse


class Arguments(pydantic.BaseModel):
    # Required Args
    string: str = pydantic.Field(description="a required string")
    integer: int = pydantic.Field(description="a required integer")
    flag: bool = pydantic.Field(description="a required flag")

    # 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] --string STRING --integer INTEGER --flag |
                       --no-flag [--second-flag] [--no-third-flag]

Example Description

required arguments:
  --string STRING    a required string
  --integer INTEGER  a required integer
  --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 --integer 42 --flag
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


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

Uploaded Source

Built Distribution

pydantic_argparse-0.5.0-py3-none-any.whl (19.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pydantic-argparse-0.5.0.tar.gz
  • Upload date:
  • Size: 15.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.10.2 Linux/5.13.0-39-generic

File hashes

Hashes for pydantic-argparse-0.5.0.tar.gz
Algorithm Hash digest
SHA256 70286c91b16ec4aec57b04770d698b37ee769bc61fe944de5b43b89968485900
MD5 a5fcc545e958b6fb334737ae141efaa4
BLAKE2b-256 0a1983872ef9d4fcdc3389ee9e838aaad111e2cdf0629b816be0a6495ca8fec1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pydantic_argparse-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 19.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.10.2 Linux/5.13.0-39-generic

File hashes

Hashes for pydantic_argparse-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 45724434060560732f124473ed8d82eb65bb6cc91c8a124c0bad042d8a12de47
MD5 2d1fda51991b908aeffe0414c2fabdf6
BLAKE2b-256 82975abb3e931c8c6f6196ccd3d0c3e581e497992ed5485deef11db03217c0bc

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