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

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydantic_argparse-0.3.0-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

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

Hashes for pydantic-argparse-0.3.0.tar.gz
Algorithm Hash digest
SHA256 8d16a06ab83bdbd2eecd4ec8cb04e1408e835eb2fcdf6905277fd1f6819a705f
MD5 c8bb25f194e40d678302b67a3008f66c
BLAKE2b-256 baf7f33d6aedbca71c75155aff05778b5e630cfb50516b6d311136e82cb4116e

See more details on using hashes here.

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

Hashes for pydantic_argparse-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1d33e77b19bf8d1bcf3682b21a200038e2646d41710129f2e14028097204c234
MD5 c691c919da2296716abb22e55e9a43d5
BLAKE2b-256 7de08cf4b132a69164609b966dedae54c4f7815fa2a2da459f9bff1c842aad0c

See more details on using hashes here.

Supported by

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