poethepoet.task.args

src/poethepoet/task/args.pyi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from argparse import ArgumentParser
from collections.abc import Mapping, Sequence
from typing import Any, Literal

from poethepoet.env.manager import EnvVarsManager
from poethepoet.options import PoeOptions

ArgParams = dict[str, Any]
ArgsDef = list[str] | list[ArgParams] | dict[str, ArgParams]
arg_param_schema: dict[str, type | tuple[type, ...]]
arg_types: dict[str, type]

class ArgSpec(PoeOptions):
    default: str | int | float | bool | None
    help: str
    name: str
    options: list[Any] | tuple[Any, ...]
    positional: bool | str
    required: bool
    type: Literal['string', 'float', 'integer', 'boolean']
    multiple: bool | int
    @classmethod
    def parse(
        cls, source: Mapping[str, Any] | list[Any], strict: bool = True, extra_keys: Sequence[str] = ...
    ) -> None: ...
    def validate(self) -> None: ...

class PoeTaskArgs:
    def __init__(self, args_def: ArgsDef, task_name: str) -> None: ...
    @classmethod
    def get_help_content(cls, args_def: ArgsDef | None) -> list[tuple[tuple[str, ...], str, str]]: ...
    def build_parser(self, env: EnvVarsManager, program_name: str) -> ArgumentParser: ...
    def parse(
        self, args: Sequence[str], env: EnvVarsManager, program_name: str
    ) -> tuple[dict[str, str], tuple[str, ...]]: ...