Skip to content

Latest commit

 

History

History
118 lines (78 loc) · 2.63 KB

BaseUsage.md

File metadata and controls

118 lines (78 loc) · 2.63 KB

Basic usage.

Example 1:

from pydantic import BaseModel
from typing import Optional
import pydantic_argparse_next as pa


class Temp(BaseModel):
    a: str  # This is required keyword argument
    b: str | None  # This is optional keyword argument
    c: Optional[str]  # This is optional keyword argument


cliargs = pa.parse(Temp, program_name="Example program", description="The example program description")

print(cliargs)

Input:

appname --a "example1" --b "example2"

Output:

a='example1' b='example2' c=None

Help:

img

Example 2:

from pydantic import BaseModel, Field
from typing import Optional
import pydantic_argparse_next as pa


class Temp(BaseModel):
    a: str = Field()  # This is a required keyword argument
    b: str = Field(..., description="This is a required keyword argument")
    c: str | None = Field(description="This is a optional keyword argument")
    d: Optional[str] = Field(description="This is a optional keyword argument")
    e: str = Field(None, description="This is a optional keyword argument with alias", alias="eee")
    f: str = Field("default", description="This is a optional keyword argument")
    g: str = Field("default", description="This is a optional keyword argument with alias", alias="-G")


cliargs = pa.parse(Temp, program_name="Example program", description="The example program description")

print(cliargs)

Input:

appname --a "example1" --b "example2" --eee "example3"

Output:

a='example1' b='example2' c=None d=None e='example3' f='default' g='default'

Help:

img

Example 3:

from pydantic import BaseModel
import pydantic_argparse_next as pa


class Temp(BaseModel):
    a: str = pa.Arg(..., description="This is a required positional argument")
    b: str = pa.Arg("default", description="This is a optional positional argument")

    # The pa.KwArg object is the same as just pydantic.Field.
    # Either one can always be used, it makes no difference.
    c: str = pa.KwArg(..., description="This is a required keyword argument")
    d: str = pa.KwArg(None, description="This is a optional keyword argument")


cliargs = pa.parse(
    Temp,
    program_name="Example program",
    description="The example program description",
    epilog="The example program epilog"
)

print(cliargs)

Input:

appname "test_a" "test_b" --c "test_c" --d "test_d"

Output:

a='test_a' b='test_b' c='test_c' d='test_d'

Help:

img