Skip to main content

Typed Argument Parsing with Pydantic

Project description

Pydantic Argparse

Typed Argument Parsing with Pydantic


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


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)

Uploaded Source

Built Distribution

pydantic_argparse-0.10.0-py3-none-any.whl (25.3 kB view details)

Uploaded Python 3

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

Hashes for pydantic_argparse-0.10.0.tar.gz
Algorithm Hash digest
SHA256 d57eb0a84c8f0af6605376157d3f445cfd786700f2e596ba9d48d15d557185eb
MD5 b21ae3949360d229d013edd6223f53e0
BLAKE2b-256 94eae63d587294c20d3b83e9c312b5d577c9ec28962ee8490839ca9996672849

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydantic_argparse-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e317f001208d77a5600ece6f7ac78d768d8221a7d64a958980705e9630c2e299
MD5 5e2349e2253d1065ea675e5fb8782b3a
BLAKE2b-256 be149ee71e3a183f76ff93e46b36157d6ddbf29ec2547b7d2c57931cd5d3aecc

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