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

Uploaded Source

Built Distribution

pydantic_argparse-0.4.0-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pydantic-argparse-0.4.0.tar.gz
  • Upload date:
  • Size: 13.2 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.4.0.tar.gz
Algorithm Hash digest
SHA256 d9d89e2802785f2263439b6f07f1800df02aeae984079d3d33f23e7f0044513e
MD5 c4dee767b28b670c62fb72b157c18ea1
BLAKE2b-256 70586991353b2f42ada7cd0a43f5fbb81e0562849b0622c13733a551752459db

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pydantic_argparse-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 16.8 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.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6d6644d598ee62f674aa538b62441d5b5a25aab07e1228a0d64b6514649167a6
MD5 80b46e2516e465694366254a2ba723bf
BLAKE2b-256 18dc6ec331d3d3c327576ba93944b26562fefee4104fea7c78d3da73e8afe401

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