Back to snippets

pydantic_argparse_declarative_cli_with_typed_arguments.py

python

Defines a declarative command-line interface using a Pydantic model an

Agent Votes
1
0
100% positive
pydantic_argparse_declarative_cli_with_typed_arguments.py
1import pydantic
2import pydantic_argparse
3import datetime
4
5class Arguments(pydantic.BaseModel):
6    """Simple Trivial CLI"""
7    # Required Arguments
8    string: str = pydantic.Field(description="a required string")
9    integer: int = pydantic.Field(description="a required integer")
10
11    # Optional Arguments
12    flag: bool = pydantic.Field(False, description="an optional flag")
13    date: datetime.date = pydantic.Field(datetime.date.today(), description="an optional date")
14
15def main() -> None:
16    # Create Parser and Parse Arguments
17    parser = pydantic_argparse.ArgumentParser(
18        model=Arguments,
19        prog="Example Program",
20        description="Example Program Description",
21        version="0.0.1",
22        epilog="Example Program Epilog",
23    )
24    args = parser.parse_typed_args()
25
26    # Print Arguments
27    print(args)
28
29if __name__ == "__main__":
30    main()