1from typing import Any, Callable, ContextManager, Iterable, Mapping, NoReturn, Optional, Sequence, Tuple, TypeVar, Union 2 3from click.formatting import HelpFormatter 4from click.parser import OptionParser 5 6_CC = TypeVar("_CC", bound=Callable[[], Any]) 7 8def invoke_param_callback( 9 callback: Callable[[Context, Parameter, str | None], Any], ctx: Context, param: Parameter, value: str | None 10) -> Any: ... 11def augment_usage_errors(ctx: Context, param: Parameter | None = ...) -> ContextManager[None]: ... 12def iter_params_for_processing( 13 invocation_order: Sequence[Parameter], declaration_order: Iterable[Parameter] 14) -> Iterable[Parameter]: ... 15 16class Context: 17 parent: Context | None 18 command: Command 19 info_name: str | None 20 params: dict[Any, Any] 21 args: list[str] 22 protected_args: list[str] 23 obj: Any 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 35 color: bool | None 36 _meta: dict[str, Any] 37 _close_callbacks: list[Any] 38 _depth: int 39 def __init__( 40 self, 41 command: Command, 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 = ..., 56 ) -> None: ... 57 @property 58 def meta(self) -> dict[str, Any]: ... 59 @property 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: ... 76 77class BaseCommand: 78 allow_extra_args: bool 79 allow_interspersed_args: bool 80 ignore_unknown_options: bool 81 name: str 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: ... 89 def main( 90 self, 91 args: list[str] | None = ..., 92 prog_name: str | None = ..., 93 complete_var: str | None = ..., 94 standalone_mode: bool = ..., 95 **extra: Any, 96 ) -> Any: ... 97 def __call__(self, *args: Any, **kwargs: Any) -> Any: ... 98 99class Command(BaseCommand): 100 callback: Callable[..., Any] | None 101 params: list[Parameter] 102 help: str | None 103 epilog: str | None 104 short_help: str | None 105 options_metavar: str 106 add_help_option: bool 107 no_args_is_help: bool 108 hidden: bool 109 deprecated: bool 110 def __init__( 111 self, 112 name: str, 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 = ..., 122 hidden: bool = ..., 123 deprecated: bool = ..., 124 ) -> None: ... 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: ... 136 137_T = TypeVar("_T") 138_F = TypeVar("_F", bound=Callable[..., Any]) 139 140class MultiCommand(Command): 141 no_args_is_help: bool 142 invoke_without_command: bool 143 subcommand_metavar: str 144 chain: bool 145 result_callback: Callable[..., Any] 146 def __init__( 147 self, 148 name: str | None = ..., 149 invoke_without_command: bool = ..., 150 no_args_is_help: bool | None = ..., 151 subcommand_metavar: str | None = ..., 152 chain: bool = ..., 153 result_callback: Callable[..., Any] | None = ..., 154 **attrs: Any, 155 ) -> 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]: ... 161 162class 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]: ... 168 169class 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: ... 173 174class _ParamType: 175 name: str 176 is_composite: bool 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: ... 184 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] 188] 189 190class Parameter: 191 param_type_name: str 192 name: str 193 opts: list[str] 194 secondary_opts: list[str] 195 type: _ParamType 196 required: bool 197 callback: Callable[[Context, Parameter, str], Any] | None 198 nargs: int 199 multiple: bool 200 expose_value: bool 201 default: Any 202 is_eager: bool 203 metavar: str | None 204 envvar: str | list[str] | None 205 def __init__( 206 self, 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 = ..., 217 ) -> None: ... 218 @property 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: ... 234 235class Option(Parameter): 236 prompt: str # sic 237 confirmation_prompt: bool 238 hide_input: bool 239 is_flag: bool 240 flag_value: Any 241 is_bool_flag: bool 242 count: bool 243 multiple: bool 244 allow_from_autoenv: bool 245 help: str | None 246 hidden: bool 247 show_default: bool 248 show_choices: bool 249 show_envvar: bool 250 def __init__( 251 self, 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 = ..., 260 count: bool = ..., 261 allow_from_autoenv: bool = ..., 262 type: _ConvertibleType | None = ..., 263 help: str | None = ..., 264 hidden: bool = ..., 265 show_choices: bool = ..., 266 show_envvar: bool = ..., 267 **attrs: Any, 268 ) -> None: ... 269 def prompt_for_value(self, ctx: Context) -> Any: ... 270 271class Argument(Parameter): 272 def __init__(self, param_decls: Iterable[str] | None = ..., required: bool | None = ..., **attrs: Any) -> None: ... 273