yapx.ArgumentParser¶
Bases: ArgumentParser
Functions¶
add_arguments ¶
add_arguments(
args_model: Union[
Callable[..., Any],
type[Dataclass],
dict[str, Field],
],
) -> None
Add arguments that are derived from the given function or dataclass.
PARAMETER | DESCRIPTION |
---|---|
args_model
|
a function or dataclass from which to derive arguments.
TYPE:
|
Examples:
import yapx
from dataclasses import dataclass
@dataclass
class AddNums:
x: int
y: int
parser = yapx.ArgumentParser()
parser.add_arguments(AddNums)
parsed = parser.parse_args(["-x", "1", "-y", "2"])
assert (parsed.x, parsed.y) == (1, 2)
import yapx
def add_nums(x: int, y: int):
return x + y
parser = yapx.ArgumentParser()
parser.add_arguments(add_nums)
parsed = parser.parse_args(["-x", "1", "-y", "2"])
assert (parsed.x, parsed.y) == (1, 2)
add_command ¶
add_command(
args_model: Union[Callable[..., Any], type[Dataclass]],
name: Optional[str] = None,
**kwargs: Any
) -> ArgumentParser
Create a new subcommand and populate it with arguments derived from the given function or dataclass.
PARAMETER | DESCRIPTION |
---|---|
args_model
|
a function or dataclass from which to derive arguments.
TYPE:
|
name
|
name of the command
TYPE:
|
**kwargs
|
passed to
TYPE:
|
RETURNS | DESCRIPTION |
---|---|
ArgumentParser
|
the new subparser |
Examples:
import yapx
from dataclasses import dataclass
@dataclass
class AddNums:
x: int
y: int
parser = yapx.ArgumentParser()
subparser_1 = parser.add_command(AddNums, name="add")
subparser_2 = parser.add_command(AddNums, name="subtract")
parsed = parser.parse_args(["add", "-x", "1", "-y", "2"])
assert (parsed.x, parsed.y) == (1, 2)
import yapx
def add_nums(x: int, y: int):
return x + y
def subtract_nums(x: int, y: int):
return x - y
parser = yapx.ArgumentParser()
subparser_1 = parser.add_command(add_nums, name="add")
subparser_2 = parser.add_command(subtract_nums, name="subtract")
parsed = parser.parse_args(["subtract", "-x", "1", "-y", "2"])
assert (parsed.x, parsed.y) == (1, 2)
parse_args_to_model ¶
parse_args_to_model(
args: Optional[Sequence[str]] = None,
args_model: Optional[type[Dataclass]] = None,
skip_pydantic_validation: bool = False,
) -> Dataclass
Use parsed args to instantiate the given data model.
PARAMETER | DESCRIPTION |
---|---|
args
|
...
TYPE:
|
args_model
|
...
TYPE:
|
skip_pydantic_validation
|
...
TYPE:
|
RETURNS | DESCRIPTION |
---|---|
Dataclass
|
... |
Examples:
import yapx
from dataclasses import dataclass
@dataclass
class AddNums:
x: int
y: int
parser = yapx.ArgumentParser()
parser.add_arguments(AddNums)
parsed = parser.parse_args_to_model(["-x", "1", "-y", "2"])
assert (parsed.x, parsed.y) == (1, 2)
parse_known_args_to_model ¶
parse_known_args_to_model(
args: Optional[Sequence[str]] = None,
args_model: Optional[type[Dataclass]] = None,
skip_pydantic_validation: bool = False,
) -> tuple[Dataclass, list[str]]
Use parsed args to instantiate the given data model.
PARAMETER | DESCRIPTION |
---|---|
args
|
...
TYPE:
|
args_model
|
...
TYPE:
|
skip_pydantic_validation
|
...
TYPE:
|
RETURNS | DESCRIPTION |
---|---|
tuple[Dataclass, list[str]]
|
... |
Examples:
import yapx
from dataclasses import dataclass
@dataclass
class AddNums:
x: int
y: int
parser = yapx.ArgumentParser()
parser.add_arguments(AddNums)
parsed, unknown = parser.parse_known_args_to_model([
"-x",
"1",
"-y",
"2",
"-z",
"3",
])
assert (parsed.x, parsed.y) == (1, 2)
assert unknown == ["-z", "3"]
print_help ¶
print_help(
file: Optional[IO[str]] = None,
include_commands: bool = False,
_console: Any = None,
) -> None
Print CLI help.
PARAMETER | DESCRIPTION |
---|---|
file
|
...
TYPE:
|
include_commands
|
if True, also print help for each command.
TYPE:
|
Examples:
import yapx
from dataclasses import dataclass
@dataclass
class AddNums:
x: int
y: int
parser = yapx.ArgumentParser()
parser.add_arguments(AddNums)
parser.print_help(include_commands=True)