1 from typing import Any, Callable, ContextManager, Iterable, Mapping, NoReturn, Optional, Sequence, Tuple, TypeVar, Union
3 from click.formatting import HelpFormatter
4 from click.parser import OptionParser
6 _CC = TypeVar("_CC", bound=Callable[[], Any])
8 def invoke_param_callback(
9 callback: Callable[[Context, Parameter, str | None], Any], ctx: Context, param: Parameter, value: str | None
11 def augment_usage_errors(ctx: Context, param: Parameter | None = ...) -> ContextManager[None]: ...
12 def iter_params_for_processing(
13 invocation_order: Sequence[Parameter], declaration_order: Iterable[Parameter]
14 ) -> Iterable[Parameter]: ...
17 parent: Context | None
20 params: dict[Any, Any]
22 protected_args: list[str]
24 default_map: Mapping[str, Any] | None
25 invoked_subcommand: str | None
26 terminal_width: int | None
27 max_content_width: int | None
28 allow_extra_args: bool
29 allow_interspersed_args: bool
30 ignore_unknown_options: bool
31 help_option_names: list[str]
32 token_normalize_func: Callable[[str], str] | None
33 resilient_parsing: bool
34 auto_envvar_prefix: str | None
37 _close_callbacks: list[Any]
42 parent: Context | None = ...,
43 info_name: str | None = ...,
44 obj: Any | None = ...,
45 auto_envvar_prefix: str | None = ...,
46 default_map: Mapping[str, Any] | None = ...,
47 terminal_width: int | None = ...,
48 max_content_width: int | None = ...,
49 resilient_parsing: bool = ...,
50 allow_extra_args: bool | None = ...,
51 allow_interspersed_args: bool | None = ...,
52 ignore_unknown_options: bool | None = ...,
53 help_option_names: list[str] | None = ...,
54 token_normalize_func: Callable[[str], str] | None = ...,
55 color: bool | None = ...,
58 def meta(self) -> dict[str, Any]: ...
60 def command_path(self) -> str: ...
61 def scope(self, cleanup: bool = ...) -> ContextManager[Context]: ...
62 def make_formatter(self) -> HelpFormatter: ...
63 def call_on_close(self, f: _CC) -> _CC: ...
64 def close(self) -> None: ...
65 def find_root(self) -> Context: ...
66 def find_object(self, object_type: type) -> Any: ...
67 def ensure_object(self, object_type: type) -> Any: ...
68 def lookup_default(self, name: str) -> Any: ...
69 def fail(self, message: str) -> NoReturn: ...
70 def abort(self) -> NoReturn: ...
71 def exit(self, code: int | str = ...) -> NoReturn: ...
72 def get_usage(self) -> str: ...
73 def get_help(self) -> str: ...
74 def invoke(self, callback: Command | Callable[..., Any], *args: Any, **kwargs: Any) -> Any: ...
75 def forward(self, callback: Command | Callable[..., Any], *args: Any, **kwargs: Any) -> Any: ...
78 allow_extra_args: bool
79 allow_interspersed_args: bool
80 ignore_unknown_options: bool
82 context_settings: dict[Any, Any]
83 def __init__(self, name: str, context_settings: dict[Any, Any] | None = ...) -> None: ...
84 def get_usage(self, ctx: Context) -> str: ...
85 def get_help(self, ctx: Context) -> str: ...
86 def make_context(self, info_name: str, args: list[str], parent: Context | None = ..., **extra: Any) -> Context: ...
87 def parse_args(self, ctx: Context, args: list[str]) -> list[str]: ...
88 def invoke(self, ctx: Context) -> Any: ...
91 args: list[str] | None = ...,
92 prog_name: str | None = ...,
93 complete_var: str | None = ...,
94 standalone_mode: bool = ...,
97 def __call__(self, *args: Any, **kwargs: Any) -> Any: ...
99 class Command(BaseCommand):
100 callback: Callable[..., Any] | None
101 params: list[Parameter]
104 short_help: str | None
106 add_help_option: bool
107 no_args_is_help: bool
113 context_settings: dict[Any, Any] | None = ...,
114 callback: Callable[..., Any] | None = ...,
115 params: list[Parameter] | None = ...,
116 help: str | None = ...,
117 epilog: str | None = ...,
118 short_help: str | None = ...,
119 options_metavar: str = ...,
120 add_help_option: bool = ...,
121 no_args_is_help: bool = ...,
123 deprecated: bool = ...,
125 def get_params(self, ctx: Context) -> list[Parameter]: ...
126 def format_usage(self, ctx: Context, formatter: HelpFormatter) -> None: ...
127 def collect_usage_pieces(self, ctx: Context) -> list[str]: ...
128 def get_help_option_names(self, ctx: Context) -> set[str]: ...
129 def get_help_option(self, ctx: Context) -> Option | None: ...
130 def make_parser(self, ctx: Context) -> OptionParser: ...
131 def get_short_help_str(self, limit: int = ...) -> str: ...
132 def format_help(self, ctx: Context, formatter: HelpFormatter) -> None: ...
133 def format_help_text(self, ctx: Context, formatter: HelpFormatter) -> None: ...
134 def format_options(self, ctx: Context, formatter: HelpFormatter) -> None: ...
135 def format_epilog(self, ctx: Context, formatter: HelpFormatter) -> None: ...
138 _F = TypeVar("_F", bound=Callable[..., Any])
140 class MultiCommand(Command):
141 no_args_is_help: bool
142 invoke_without_command: bool
143 subcommand_metavar: str
145 result_callback: Callable[..., Any]
148 name: str | None = ...,
149 invoke_without_command: bool = ...,
150 no_args_is_help: bool | None = ...,
151 subcommand_metavar: str | None = ...,
153 result_callback: Callable[..., Any] | None = ...,
156 def resultcallback(self, replace: bool = ...) -> Callable[[_F], _F]: ...
157 def format_commands(self, ctx: Context, formatter: HelpFormatter) -> None: ...
158 def resolve_command(self, ctx: Context, args: list[str]) -> tuple[str, Command, list[str]]: ...
159 def get_command(self, ctx: Context, cmd_name: str) -> Command | None: ...
160 def list_commands(self, ctx: Context) -> Iterable[str]: ...
162 class Group(MultiCommand):
163 commands: dict[str, Command]
164 def __init__(self, name: str | None = ..., commands: dict[str, Command] | None = ..., **attrs: Any) -> None: ...
165 def add_command(self, cmd: Command, name: str | None = ...) -> None: ...
166 def command(self, *args: Any, **kwargs: Any) -> Callable[[Callable[..., Any]], Command]: ...
167 def group(self, *args: Any, **kwargs: Any) -> Callable[[Callable[..., Any]], Group]: ...
169 class CommandCollection(MultiCommand):
170 sources: list[MultiCommand]
171 def __init__(self, name: str | None = ..., sources: list[MultiCommand] | None = ..., **attrs: Any) -> None: ...
172 def add_source(self, multi_cmd: MultiCommand) -> None: ...
177 envvar_list_splitter: str | None
178 def __call__(self, value: str | None, param: Parameter | None = ..., ctx: Context | None = ...) -> Any: ...
179 def get_metavar(self, param: Parameter) -> str: ...
180 def get_missing_message(self, param: Parameter) -> str: ...
181 def convert(self, value: str, param: Parameter | None, ctx: Context | None) -> Any: ...
182 def split_envvar_value(self, rv: str) -> list[str]: ...
183 def fail(self, message: str, param: Parameter | None = ..., ctx: Context | None = ...) -> NoReturn: ...
185 # This type is here to resolve https://github.com/python/mypy/issues/5275
186 _ConvertibleType = Union[
187 type, _ParamType, Tuple[Union[type, _ParamType], ...], Callable[[str], Any], Callable[[Optional[str]], Any]
194 secondary_opts: list[str]
197 callback: Callable[[Context, Parameter, str], Any] | None
204 envvar: str | list[str] | None
207 param_decls: Iterable[str] | None = ...,
208 type: _ConvertibleType | None = ...,
209 required: bool = ...,
210 default: Any | None = ...,
211 callback: Callable[[Context, Parameter, str], Any] | None = ...,
212 nargs: int | None = ...,
213 metavar: str | None = ...,
214 expose_value: bool = ...,
215 is_eager: bool = ...,
216 envvar: str | list[str] | None = ...,
219 def human_readable_name(self) -> str: ...
220 def make_metavar(self) -> str: ...
221 def get_default(self, ctx: Context) -> Any: ...
222 def add_to_parser(self, parser: OptionParser, ctx: Context) -> None: ...
223 def consume_value(self, ctx: Context, opts: dict[str, Any]) -> Any: ...
224 def type_cast_value(self, ctx: Context, value: Any) -> Any: ...
225 def process_value(self, ctx: Context, value: Any) -> Any: ...
226 def value_is_missing(self, value: Any) -> bool: ...
227 def full_process_value(self, ctx: Context, value: Any) -> Any: ...
228 def resolve_envvar_value(self, ctx: Context) -> str: ...
229 def value_from_envvar(self, ctx: Context) -> str | list[str]: ...
230 def handle_parse_result(self, ctx: Context, opts: dict[str, Any], args: list[str]) -> tuple[Any, list[str]]: ...
231 def get_help_record(self, ctx: Context) -> tuple[str, str]: ...
232 def get_usage_pieces(self, ctx: Context) -> list[str]: ...
233 def get_error_hint(self, ctx: Context) -> str: ...
235 class Option(Parameter):
237 confirmation_prompt: bool
244 allow_from_autoenv: bool
252 param_decls: Iterable[str] | None = ...,
253 show_default: bool = ...,
254 prompt: bool | str = ...,
255 confirmation_prompt: bool = ...,
256 hide_input: bool = ...,
257 is_flag: bool | None = ...,
258 flag_value: Any | None = ...,
259 multiple: bool = ...,
261 allow_from_autoenv: bool = ...,
262 type: _ConvertibleType | None = ...,
263 help: str | None = ...,
265 show_choices: bool = ...,
266 show_envvar: bool = ...,
269 def prompt_for_value(self, ctx: Context) -> Any: ...
271 class Argument(Parameter):
272 def __init__(self, param_decls: Iterable[str] | None = ..., required: bool | None = ..., **attrs: Any) -> None: ...