API
В этой части документации представлена полная справка по API всех публичных классов и функций.
Декораторы
-
click.command(name: Callable[[...], Any]) → Command - click.command(name:str|None, cls:Type[CmdType], **attrs:Any) Callable[[Callable[[...],Any]],CmdType]
- click.command(name:None=None, *, cls:Type[CmdType], **attrs:Any) Callable[[Callable[[...],Any]],CmdType]
- click.command(name:str|None=None, cls:None=None, **attrs:Any) Callable[[Callable[[...],Any]],Command]
Создаёт новый
Commandи использует декорированную функцию в качестве обратного вызова. Также автоматически прикрепляет все декорированныеoption()иargument()в качестве параметров команды.Имя команды по умолчанию соответствует имени функции, заменив подчёркивания на дефисы. Если вы хотите изменить это, вы можете передать желаемое имя в качестве первого аргумента.
Все ключевые аргументы передаются базовому классу команды. Для аргумента
params, все декорированные параметры добавляются в конец списка.После декорирования функция превращается в экземпляр
Command, который можно вызвать как утилиту командной строки или прикрепить к командеGroup.- Parameters:
-
- name – имя команды. По умолчанию соответствует имени функции с заменой подчёркиваний на дефисы.
-
cls – класс команды, который необходимо создать. По умолчанию
Command.
Изменено в версии 8.1: Этот декоратор может быть применён без скобок.
Изменено в версии 8.1: Аргумент
paramsможет быть использован. Декорированные параметры добавляются в конец списка.
-
click.group(name: Callable[[...], Any]) → Group - click.group(name:str|None, cls:Type[GrpType], **attrs:Any) Callable[[Callable[[...],Any]],GrpType]
- click.group(name:None=None, *, cls:Type[GrpType], **attrs:Any) Callable[[Callable[[...],Any]],GrpType]
- click.group(name:str|None=None, cls:None=None, **attrs:Any) Callable[[Callable[[...],Any]],Group]
-
Создаёт новую группу
Groupс функцией в качестве обратного вызова. Это работает аналогичноcommand()с той лишь разницей, что параметрclsустановлен вGroup.Изменено в версии 8.1: Этот декоратор может быть применён без скобок.
-
click.argument(*param_decls, cls=None, **attrs) -
Присоединяет аргумент к команде. Все позиционные аргументы передаются как параметры объявления к
Argument; все именованные аргументы передаются без изменений (кромеcls). Это эквивалентно созданию экземпляраArgumentвручную и его прикреплению к спискуCommand.params.Для стандартного класса аргумента, обратитесь к
ArgumentиParameterдля описания параметров.
-
click.option(*param_decls, cls=None, **attrs) -
Присоединяет опцию к команде. Все позиционные аргументы передаются как параметры объявления к
Option; все именованные аргументы передаются без изменений (кромеcls). Это эквивалентно созданию экземпляраOptionвручную и его прикреплению к спискуCommand.params.Для стандартного класса опции, обратитесь к
OptionиParameterдля описания параметров.
-
click.password_option(*param_decls, **kwargs) -
Добавить параметр
--password, который запрашивает пароль, скрывая ввод и запрашивая повторный ввод для подтверждения.
-
click.confirmation_option(*param_decls, **kwargs) -
Добавить параметр
--yes, который отображает запрос перед продолжением, если он не передан. Если запрос отклонен, программа завершится.
-
click.version_option(version=None, *param_decls, package_name=None, prog_name=None, message=None, **kwargs) -
Добавить параметр
--version, который сразу выводит номер версии и завершает программу.Если
versionне предоставлен, Click попытается определить его, используяimportlib.metadata.version()для получения версииpackage_name. В Python < 3.8 необходимо установить обратную совместимостьimportlib_metadata.Если
package_nameне предоставлен, Click попытается определить его, проанализировав кадры стека. Это будет использоваться для определения версии, поэтому оно должно соответствовать имени установленного пакета.- Параметры:
-
- version (str | None) – Номер версии для отображения. Если не предоставлен, Click попытается определить его.
-
param_decls (str) – Одно или несколько имён параметров. По умолчанию значение
"--version". - package_name (str | None) – Имя пакета для определения версии. Если не предоставлено, Click попытается определить его.
- prog_name (str | None) – Имя командной строки для отображения в сообщении. Если не предоставлено, оно будет определено из команды.
-
message (str | None) – Сообщение для отображения. Доступны значения
%(prog)s,%(package)s, и%(version)s. По умолчанию"%(prog)s, version %(version)s". -
kwargs (Any) – Дополнительные аргументы передаются в
option().
- Исключения:
-
RuntimeError –
versionне удалось определить. - Тип возвращаемого значения:
-
Callable[[FC], FC]
Изменения
Изменено в версии 8.0: Добавлен параметр
package_name, и значение%(package)sдля сообщений.Изменено в версии 8.0: Используйте
importlib.metadataвместоpkg_resources. Версия определяется на основе имени пакета, а не имени точки входа. Имя пакета Python должно соответствовать имени установленного пакета или быть передано сpackage_name=.
-
click.help_option(*param_decls, **kwargs) -
Добавить параметр
--help, который сразу выводит страницу справки и завершает программу.Это обычно не нужно, так как параметр
--helpавтоматически добавляется к каждой команде, если не переданоadd_help_option=False.
-
click.pass_context(f) -
Помечает обратный вызов как желающий получить текущий объект контекста в качестве первого аргумента.
- Параметры:
-
f (t.Callable[te.Concatenate[Context, P], R]) –
- Тип возвращаемого значения:
-
t.Callable[P, R]
-
click.pass_obj(f) -
Аналогично
pass_context(), но передаёт объект только в контекст (Context.obj). Это полезно, если этот объект представляет состояние вложенной системы.- Параметры:
-
f (t.Callable[te.Concatenate[t.Any, P], R]) –
- Тип возвращаемого значения:
-
t.Callable[P, R]
-
click.make_pass_decorator(object_type, ensure=False) -
Принимая тип объекта, создаёт декоратор, который будет работать аналогично
pass_obj(), но вместо передачи объекта текущего контекста, он найдёт самый внутренний контекст типаobject_type().Это генерирует декоратор, который работает примерно так:
from functools import update_wrapper def decorator(f): @pass_context def new_func(ctx, *args, **kwargs): obj = ctx.find_object(object_type) return ctx.invoke(f, obj, *args, **kwargs) return update_wrapper(new_func, f) return decorator
-
click.decorators.pass_meta_key(key, *, doc_description=None) -
Создайте декоратор, который передаёт ключ из
click.Context.metaв качестве первого аргумента декорированной функции.- Параметры:
- Тип возвращаемого значения:
-
t.Callable[[t.Callable[te.Concatenate[t.Any, P], R]], t.Callable[P, R]]
Журнал изменений
Новая версия 8.0.
Утилиты
-
click.echo(message=None, file=None, nl=True, err=False, color=None) -
Выводит сообщение и перевод строки в стандартный вывод или файл. Его следует использовать вместо
print(), так как он обеспечивает лучшую поддержку различных данных, файлов и сред.По сравнению с
print(), это делает следующее:- Обеспечивает, что кодировка вывода не неправильно настроена в Linux.
- Поддерживает Unicode в консоли Windows.
- Поддерживает запись в двоичные выходы и поддержку записи байтов в текстовые выходы.
- Поддерживает цвета и стили в Windows.
- Удаляет ANSI-коды цвета и стиля, если вывод не похож на интерактивную оболочку.
- Всегда сбрасывает вывод.
- Параметры:
-
- сообщение (Any | None) – Строка или байты для вывода. Другие объекты преобразуются в строки.
-
файл (IO[Any] | None) – Файл для записи. По умолчанию
stdout. -
err (bool) – Записать в
stderrвместоstdout. - nl (bool) – Вывести перевод строки после сообщения. Включено по умолчанию.
- цвет (bool | None) – Принудительно отображать или скрывать цвета и другие стили. По умолчанию Click удаляет цвет, если вывод не похож на интерактивную оболочку.
- Тип возвращаемого значения:
-
None
Журнал изменений
Изменено в версии 6.0: Поддержка вывода Unicode в консоли Windows. Click не изменяет
sys.stdout, поэтомуsys.stdout.write()иprint()по-прежнему не будут поддерживать Unicode.Изменено в версии 4.0: Добавлен параметр
color.Новая версия 3.0: Добавлен параметр
err.Изменено в версии 2.0: Поддержка цветов в Windows, если установлен colorama.
-
click.echo_via_pager(text_or_generator, color=None) -
Эта функция принимает текст и отображает его через страницу среды в стандартный вывод.
Журнал изменений
Изменено в версии 3.0: Добавлен флаг
color.- Параметры:
- Тип возвращаемого значения:
-
None
-
click.prompt(text, default=None, hide_input=False, confirmation_prompt=False, type=None, value_proc=None, prompt_suffix=': ', show_default=True, err=False, show_choices=True) -
Запрашивает ввод пользователя. Это удобная функция, которую можно использовать для запроса ввода пользователя позже.
Если пользователь прерывает ввод, отправив сигнал прерывания, эта функция перехватит его и вызовет исключение
Abort.- Параметры:
-
- текст (str) – текст для отображения запроса.
- значение_по_умолчанию (Any | None) – значение по умолчанию для использования, если ввод не происходит. Если это не указано, программа будет запрашивать ввод до его прерывания.
- скрыть_ввод (bool) – если установлено в true, значение ввода будет скрыто.
-
запрос_подтверждения (bool | str) – Запросить повторный ввод для подтверждения значения. Может быть установлено в строку вместо
Trueдля настройки сообщения. - тип (ParamType | Any | None) – тип для проверки значения.
- обработчик_значения (Callable[[str], Any] | None) – если этот параметр указан, это функция, которая вызывается вместо преобразования типа для преобразования значения.
- постфикс_запроса (str) – постфикс, который должен быть добавлен к запросу.
- показывать_значение_по_умолчанию (bool) – отображает или скрывает значение по умолчанию в запросе.
-
err (bool) – если установлено в true, файл по умолчанию перенаправляется в
stderrвместоstdout, как и при использовании echo. - показывать_выбор (bool) – Отображать или скрывать варианты, если тип, который был передан, является Choice. Например, если тип - это Choice "день" или "неделя", show_choices - true и текст - "Сгруппировать по", то запрос будет "Сгруппировать по (день, неделя):".
- Тип возвращаемого значения:
Журнал изменений
Новая версия 8.0:
confirmation_promptможет быть настраиваемой строкой.Новая версия 7.0: Добавлен параметр
show_choices.Новая версия 6.0: Добавлена поддержка Unicode для cmd.exe в Windows.
Новая версия 4.0: Добавлен параметр
err.
-
click.confirm(text, default=False, abort=False, prompt_suffix=': ', show_default=True, err=False) -
Запрашивает подтверждение (вопрос да/нет).
Если пользователь прерывает ввод, отправляя сигнал прерывания, эта функция перехватит его и вызовет исключение
Abort.- Параметры:
-
- text (str) – вопрос, который нужно задать.
-
default (bool | None) – Значение по умолчанию, которое будет использоваться, если ввод не задан. Если
None, повторно запрашивает ввод, пока не будет введен ответ. -
abort (bool) – если установлено в
True, отрицательный ответ прерывает выполнение, вызывая исключениеAbort. - prompt_suffix (str) – суффикс, который нужно добавить к запросу.
- show_default (bool) – отображает или скрывает значение по умолчанию в запросе.
-
err (bool) – если установлено в true, файл по умолчанию использует
stderrвместоstdout, аналогично с параметром echo.
- Тип возвращаемого значения:
Изменения
Изменено в версии 8.0: Повторно запрашивает ввод, пока не будет введен ответ, если
defaultустановлено вNone.Добавлена в версии 4.0: Добавлен параметр
err.
-
click.progressbar(iterable=None, length=None, label=None, show_eta=True, show_percent=None, show_pos=False, item_show_func=None, fill_char='#', empty_char='-', bar_template='%(label)s [%(bar)s] %(info)s', info_sep=' ', width=36, file=None, color=None, update_min_steps=1) -
Эта функция создаёт итерируемый контекстный менеджер, который можно использовать для итерирования по чему-либо, отображая полосу прогресса. Он будет итерироваться по
iterableилиlengthэлементам (которые подсчитываются). Во время итерирования эта функция будет выводить отрисованную полосу прогресса в указанныйfile(по умолчанию стандартный вывод) и попытается рассчитать оставшееся время и многое другое. По умолчанию эта полоса прогресса не будет отрисована, если файл не является терминалом.Контекстный менеджер создаёт полосу прогресса. Когда контекстный менеджер входит, полоса прогресса уже создана. С каждым итерационным шагом по полосе прогресса итерируемый объект, переданный в полосу, перемещается вперёд, и полоса обновляется. Когда контекстный менеджер выходит, печатается новая строка, и полоса прогресса окончательно отображается на экране.
Примечание: В настоящее время полоса прогресса разработана для случаев, когда ожидается, что общий прогресс займёт не менее нескольких секунд. По этой причине объект класса ProgressBar не будет отображать прогресс, который считается слишком быстрым, и прогресс, где время между шагами меньше секунды.
Не должно быть никакого вывода, иначе полоса прогресса будет непреднамеренно уничтожена.
Пример использования:
with progressbar(items) as bar: for item in bar: do_something_with(item)В качестве альтернативы, если итерируемый объект не указан, можно вручную обновить полосу прогресса с помощью метода
update(), вместо непосредственного итерирования по полосе прогресса. Метод update принимает количество шагов для инкремента полосы:with progressbar(length=chunks.total_bytes) as bar: for chunk in chunks: process_chunk(chunk) bar.update(chunks.bytes)Метод
update()также принимает необязательное значение, определяющееcurrent_itemв новой позиции. Это полезно при использовании вместе сitem_show_funcдля настройки вывода на каждый ручной шаг:with click.progressbar( length=total_size, label='Unzipping archive', item_show_func=lambda a: a.filename ) as bar: for archive in zip_file: archive.extract() bar.update(archive.size, archive)- Параметры:
-
- iterable (Iterable[V] | None) – итерируемый объект. Если не указан, требуется длина.
- length (int | None) – количество элементов для итерирования. По умолчанию полоса прогресса попытается узнать длину итерируемого объекта, что может или не может сработать. Если итерируемый объект также указан, этот параметр можно использовать для переопределения длины. Если итерируемый объект не указан, полоса прогресса будет итерироваться по диапазону заданной длины.
- label (str | None) – метка, отображаемая рядом с полосой прогресса.
- show_eta (bool) – включает или отключает отображение оценочного времени. Автоматически отключается, если длина не может быть определена.
-
show_percent (bool | None) – включает или отключает отображение процента. По умолчанию
Trueесли итерируемый объект имеет длину илиFalseесли нет. -
show_pos (bool) – включает или отключает отображение абсолютной позиции. По умолчанию
False. -
item_show_func (Callable[[V | None], str | None] | None) – Функция, вызываемая с текущим элементом, которая может вернуть строку для отображения рядом с полосой прогресса. Если функция возвращает
None, ничего не отображается. Текущий элемент может бытьNone, например, при входе и выходе из полосы. - fill_char (str) – символ для отображения заполненной части полосы прогресса.
- empty_char (str) – символ для отображения незаполненной части полосы прогресса.
-
bar_template (str) – строка форматирования, используемая в качестве шаблона для полосы. Параметрами в ней являются
labelдля метки,barдля полосы прогресса иinfoдля секции информации. - info_sep (str) – разделитель между несколькими элементами информации (eta и т.д.).
- width (int) – ширина полосы прогресса в символах, 0 означает полную ширину терминала.
- file (TextIO | None) – файл для записи. Если это не терминал, печатается только метка.
- color (bool | None) – управляет тем, поддерживает ли терминал ANSI-цвета или нет. По умолчанию автоматическое определение. Это необходимо только если ANSI-коды включены где-либо в выводе полосы прогресса, что по умолчанию не так.
- update_min_steps (int) – Отображать только тогда, когда завершено заданное количество обновлений. Это позволяет настроить для очень быстрых итераторов.
- Тип возвращаемого значения:
-
ProgressBar[V]
Изменения
Изменено в версии 8.0: Вывод отображается, даже если время выполнения меньше 0,5 секунды.
Изменено в версии 8.0:
item_show_funcпоказывает текущий элемент, а не предыдущий.Изменено в версии 8.0: Метки дублируются, если вывод не является TTY. Возвращает изменения, внесенные в 7.0, которые удалили весь вывод.
Добавлена в версии 8.0: Добавлен параметр
update_min_steps.Изменено в версии 4.0: Добавлен параметр
color. Добавлен методupdateк объекту.Новая в версии 2.0.
-
click.clear() -
Очищает экран терминала. Это приведет к очистке всего видимого пространства терминала и перемещению курсора в верхний левый угол. Ничего не делает, если не подключён к терминалу.
Изменения
Новая в версии 2.0.
- Тип возвращаемого значения:
-
None
-
click.style(text, fg=None, bg=None, bold=None, dim=None, underline=None, overline=None, italic=None, blink=None, reverse=None, strikethrough=None, reset=True) -
Стилезует текст с помощью ANSI-стилей и возвращает новую строку. По умолчанию стилизация является самодостаточной, что означает, что в конце строки выводится код сброса. Это можно предотвратить, передав
reset=False.Примеры:
click.echo(click.style('Hello World!', fg='green')) click.echo(click.style('ATTENTION!', blink=True)) click.echo(click.style('Some things', reverse=True, fg='cyan')) click.echo(click.style('More colors', fg=(255, 12, 128), bg=117))Поддерживаемые имена цветов:
-
black(возможно, серый) redgreen-
yellow(возможно, оранжевый) bluemagentacyan-
white(возможно, светло-серый) bright_blackbright_redbright_greenbright_yellowbright_bluebright_magentabright_cyanbright_white-
reset(сбросить только код цвета)
Если терминал его поддерживает, цвет также можно указать как:
- Целое число в интервале [0, 255]. Терминал должен поддерживать 8-битный/256-цветной режим.
- Кортеж RGB из трёх целых чисел в [0, 255]. Терминал должен поддерживать 24-битный/полноцветный режим.
См. https://en.wikipedia.org/wiki/ANSI_color и https://gist.github.com/XVilka/8346728 для получения дополнительной информации.
- Параметры:
- Тип возвращаемого значения:
Изменения
Изменено в версии 8.0: Нестроковый
messageпреобразуется в строку.Изменено в версии 8.0: Добавлена поддержка кодов цвета 256 и RGB.
Изменено в версии 8.0: Добавлены параметры
strikethrough,italic, иoverline.Изменено в версии 7.0: Добавлена поддержка ярких цветов.
Добавлено в версии 2.0.
-
-
click.unstyle(text) -
Удаляет информацию об ANSI-стилизации из строки. Обычно нет необходимости использовать эту функцию, так как функция echo Click автоматически удалит стилизацию при необходимости.
Изменения
Добавлено в версии 2.0.
-
click.secho(message=None, file=None, nl=True, err=False, color=None, **styles) -
Эта функция объединяет
echo()иstyle()в один вызов. Таким образом, следующие два вызова эквивалентны:click.secho('Hello World!', fg='green') click.echo(click.style('Hello World!', fg='green'))Все ключевые аргументы передаются в подлежащие функции в зависимости от того, к какой они относятся.
Типы, не являющиеся строками, будут преобразованы в
str. Однако,bytesпередаются непосредственно вecho()без применения стиля. Если вы хотите стилизовать байты, представляющие текст, сначала вызовитеbytes.decode().Изменения
Изменено в версии 8.0: Нестроковый
messageпреобразуется в строку. Байты передаются без применения стиля.Добавлено в версии 2.0.
- Параметры:
-
- message (Любой тип | None) –
- … (и так далее)
- Тип возвращаемого значения:
-
None
-
click.edit(text=None, editor=None, env=None, require_save=True, extension='.txt', filename=None) -
Редактирует заданный текст в определённом редакторе. Если указан редактор (должен быть полным путём к исполняемому файлу, но используется стандартный путь поиска операционной системы для нахождения исполняемого файла), он переопределяет обнаруженный редактор. Необязательно, можно использовать некоторые переменные окружения. Если редактор закрыт без изменений,
Noneвозвращается. В случае прямого редактирования файла значение возврата всегдаNone, иrequire_saveиextensionигнорируются.Если редактор не может быть открыт, возникает
UsageError.Примечание для Windows: для упрощения кроссплатформенного использования новые строки автоматически преобразуются из POSIX в Windows и наоборот. Таким образом, в сообщении здесь будут
\nв качестве разделителей строк.- Параметры:
-
- text (AnyStr | None) – текст для редактирования.
- editor (str | None) – необязательно, редактор для использования. По умолчанию используется автоматическое определение.
- env (Mapping[str, str] | None) – переменные окружения, передаваемые редактору.
- require_save (bool) – если это True, то отсутствие сохранения в редакторе приведёт к возвращаемому значению %%%CODE_BLOCK_175%%.
-
extension (str) – расширение, чтобы сообщить редактору. По умолчанию
.txt, но изменение может повлиять на подсветку синтаксиса. - filename (str | None) – если указано, будет отредактирован этот файл вместо предоставленного содержимого текста. В этом случае временный файл не будет использоваться как косвенное обращение.
- Тип возвращаемого значения:
-
AnyStr | None
-
click.launch(url, wait=False, locate=False) -
Эта функция запускает указанный URL (или имя файла) в приложении-просмотрщике по умолчанию для этого типа файла. Если это исполняемый файл, он может запустить исполняемый файл в новой сессии. Возвращаемое значение — код завершения запущенного приложения. Обычно
0указывает на успех.Примеры:
click.launch('https://click.palletsprojects.com/') click.launch('/my/downloaded/file', locate=True)Изменения
Введено в версии 2.0.
- Параметры:
-
- url (str) – URL или имя файла для запуска.
-
wait (bool) – Дожидаться завершения программы перед возвратом. Это работает только если запущенная программа блокируется. В частности,
xdg-openв Linux не блокируется. -
locate (bool) – если установлено в
True, вместо запуска приложения, связанного с URL, будет попытка запуска файлового менеджера с указанным файлом. Это может иметь странные эффекты, если URL не указывает на файловую систему.
- Тип возвращаемого значения:
-
click.getchar(echo=False) -
Извлекает один символ из терминала и возвращает его. Это всегда возвращает юникод-символ, и в некоторых редких случаях может вернуть более одного символа. Ситуации, когда возвращаются несколько символов, возникают, когда по какой-либо причине несколько символов оказываются в буфере терминала или стандартный ввод фактически не был терминалом.
Обратите внимание, что это всегда читает из терминала, даже если что-то передано в стандартный ввод.
Примечание для Windows: в редких случаях при вводе не-ASCII символов эта функция может подождать второго символа, а затем вернуть оба сразу. Это происходит потому, что некоторые символы Unicode похожи на маркеры специальных клавиш.
Изменения
Введено в версии 2.0.
-
click.pause(info=None, err=False) -
Эта команда останавливает выполнение и ждёт нажатия любой клавиши пользователем для продолжения. Это аналогично команде «pause» в командных файлах Windows. Если программа не запускается через терминал, эта команда ничего не сделает.
Изменения
Введено в версии 4.0: Добавлен параметр
err.Введено в версии 2.0.
-
click.get_binary_stream(name) -
Возвращает системный поток для обработки байтов.
- Параметры:
-
name (te.Literal['stdin', 'stdout', 'stderr']) – имя потока для открытия. Допустимые имена —
'stdin','stdout'и'stderr' - Тип возвращаемого значения:
-
click.get_text_stream(name, encoding=None, errors='strict') -
Возвращает системный поток для обработки текста. Обычно возвращает обернутый поток над бинарным потоком, возвращённым из
get_binary_stream(), но также может использовать сокращения для уже корректно настроенных потоков.- Параметры:
- Тип возвращаемого значения:
-
click.open_file(filename, mode='r', encoding=None, errors='strict', lazy=False, atomic=False) -
Открыть файл с дополнительным поведением для обработки
'-'для указания стандартного потока, леничного открытия при записи и атомарной записи. Аналогично поведению параметраFile.Если
'-'используется для открытияstdoutилиstdin, поток обернётся, чтобы его использование в контекстном менеджере не закрывало его. Это позволяет использовать функцию без случайного закрытия стандартного потока:with open_file(filename) as f: ...- Параметры:
-
-
filename (str | PathLike[str]) – Имя или путь к файлу для открытия, или
'-'дляstdin/stdout. - mode (str) – Режим открытия файла.
- encoding (str | None) – Кодировка для декодирования или кодирования файла, открытого в текстовом режиме.
- errors (str | None) – Режим обработки ошибок.
- lazy (bool) – Отложить открытие файла до его использования. Для режима чтения файл временно открывается для поднятия ошибок доступа, затем закрывается до повторного чтения.
- atomic (bool) – Запись в временный файл и замена исходного файла при закрытии.
-
filename (str | PathLike[str]) – Имя или путь к файлу для открытия, или
- Тип возвращаемого значения:
Изменения
Новое в версии 3.0.
-
click.get_app_dir(app_name, roaming=True, force_posix=False) -
Возвращает папку конфигурации приложения. По умолчанию возвращает наиболее подходящую папку для операционной системы.
Например, для приложения
"Foo Bar", могут быть возвращены следующие папки:- Mac OS X:
-
~/Library/Application Support/Foo Bar - Mac OS X (POSIX):
-
~/.foo-bar - Unix:
-
~/.config/foo-bar - Unix (POSIX):
-
~/.foo-bar - Windows (роуминг):
-
C:\Users\<user>\AppData\Roaming\Foo Bar - Windows (не роуминг):
-
C:\Users\<user>\AppData\Local\Foo Bar
Изменения
Новое в версии 2.0.
- Параметры:
-
- app_name (str) – имя приложения. Должно быть должным образом прописным и может содержать пробелы.
- roaming (bool) – определяет, должна ли папка быть роуминговой на Windows. Не имеет эффекта в других системах.
-
force_posix (bool) – если это установлено в
True, то в любой POSIX-системе папка будет храниться в домашней папке с ведущей точкой вместо XDG config home или darwin’s application support folder.
- Тип возвращаемого значения:
-
click.format_filename(filename, shorten=False) -
Форматирует имя файла как строку для отображения. Гарантирует возможность отображения имени файла, заменяя любые недопустимые байты или суррогатные экраны в имени на символ замены
�.Недопустимые байты или суррогатные экраны вызовут ошибку при записи в поток с
errors="strict". Это обычно происходит сstdout, когда локаль, например,en_GB.UTF-8.Однако многие сценарии безопасны для записи суррогатов благодаря PEP 538 и PEP 540, включая:
- Запись в
stderr, использующуюerrors="backslashreplace". - Система имеет
LANG=C.UTF-8,C, илиPOSIX. Python открывает stdout и stderr сerrors="surrogateescape". - Никто из
LANG/LC_*не установлен. Python предполагаетLANG=C.UTF-8. - Python запускается в режиме UTF-8 с
PYTHONUTF8=1или-X utf8. Python открывает stdout и stderr сerrors="surrogateescape".
- Параметры:
- Тип возвращаемого значения:
- Запись в
Команды
-
class click.BaseCommand(name, context_settings=None) -
Базовая команда реализует минимальный API-контракт для команд. Большинство кода никогда не будет использовать её, так как она не реализует много полезных функций, но она может служить прямым подклассом альтернативных методов парсинга, не зависящих от парсера Click.
Например, она может использоваться для связи Click с другими системами, такими как argparse или docopt.
Поскольку базовые команды не реализуют много API, на котором полагаются другие части Click, они не поддерживаются для всех операций. Например, они не могут использоваться с декораторами и не имеют встроенной системы обратного вызова.
Журнал изменений
Изменено в версии 2.0: Добавлен параметр
context_settings.- Параметры:
-
- name (str | None) – имя команды для использования, если группа не переопределяет его.
- context_settings (MutableMapping[str, Any] | None) – необязательный словарь с значениями по умолчанию, передаваемыми объекту контекста.
-
context_class -
псевдоним
Context
-
allow_extra_args = False -
значение по умолчанию для флага
Context.allow_extra_args.
-
allow_interspersed_args = True -
значение по умолчанию для флага
Context.allow_interspersed_args.
-
ignore_unknown_options = False -
значение по умолчанию для флага
Context.ignore_unknown_options.
-
name -
имя, которое считает команда. При регистрации команды в
Groupгруппа установит имя команды по умолчанию с этой информацией. Вместо этого следует использовать атрибутContextinfo_name.
-
context_settings: MutableMapping[str, Any] -
необязательный словарь с значениями по умолчанию, передаваемый в контекст.
-
to_info_dict(ctx) -
Собрать информацию, которая может быть полезна инструменту, генерирующему документацию для пользователя. Это обходит всю структуру ниже этой команды.
Используйте
click.Context.to_info_dict()для обхода всей структуры CLI.- Параметры:
- Тип возвращаемого значения:
Журнал изменений
Добавлено в версии 8.0.
-
make_context(info_name, args, parent=None, **extra) -
Эта функция, получив имя информации и аргументы, запускает парсинг и создаёт новый
Context. Она, однако, не вызывает фактическую функцию обратного вызова команды.Чтобы быстро настроить используемый класс контекста, не переопределяя этот метод, установите атрибут
context_class.- Параметры:
-
- info_name (строка | None) – имя информации для данного вызова. Как правило, это наиболее описательное имя для скрипта или команды. Для скрипта верхнего уровня, как правило, это имя скрипта; для команд ниже это имя команды.
- args (список[строка]) – аргументы для парсинга в виде списка строк.
- parent (Контекст | None) – родительский контекст, если доступен.
- extra (любой) – дополнительные ключевые аргументы, передаваемые конструктору контекста.
- Тип возвращаемого значения:
Журнал изменений
Изменено в версии 8.0: Добавлен атрибут
context_class.
-
parse_args(ctx, args) -
Принимая контекст и список аргументов, это создаёт парсер и анализирует аргументы, а затем изменяет контекст по мере необходимости. Это автоматически вызывается
make_context().
-
invoke(ctx) -
Принимая контекст, это вызывает команду. Реализация по умолчанию вызывает ошибку нереализованной операции.
-
shell_complete(ctx, incomplete) -
Возвращает список дополнений для неполного значения. Рассматривает имена связанных многокоманд.
Любая команда может быть частью связанной многокоманды, поэтому команды-сводные являются допустимыми в любой момент во время завершения команды. Другие классы команд будут возвращать больше дополнений.
- Параметры:
- Тип возвращаемого значения:
Журнал изменений
Добавлено в версии 8.0.
-
main(args: Sequence[str] | None = None, prog_name: str | None = None, complete_var: str | None = None, standalone_mode: te.Literal[True] = True, **extra: Any) → te.NoReturn - main(args:Sequence[str]|None=None, prog_name:str|None=None, complete_var:str|None=None, standalone_mode:bool=True, **extra:Any) Any
-
Это способ вызова скрипта со всеми функциями как командной строки. Это всегда завершит приложение после вызова. Если этого не требуется, необходимо перехватить
SystemExit.Этот метод также доступен, вызывая экземпляр
Commandнапрямую.- Параметры:
-
-
args – аргументы, которые должны быть использованы для разбора. Если не предоставлены, используется
sys.argv[1:]. -
prog_name – имя программы, которое должно быть использовано. По умолчанию имя программы строится, взяв имя файла из
sys.argv[0]. -
complete_var – переменная среды, которая управляет поддержкой завершения ввода bash. По умолчанию это
"_<prog_name>_COMPLETE"с prog_name в верхнем регистре. -
standalone_mode – поведение по умолчанию — вызов скрипта в автономном режиме. Click затем обработает исключения и преобразует их в сообщения об ошибках, и функция никогда не вернётся, но завершит интерпретатор. Если это значение установлено в
False, они будут переданы вызывающей стороне, и возвращаемое значение этой функции — возвращаемое значениеinvoke(). - windows_expand_args – Расширять шаблоны glob, пользовательский каталог и переменные среды в аргументах командной строки в Windows.
-
extra – дополнительные ключевые аргументы передаются конструктору контекста. Дополнительную информацию см. в
Context.
-
args – аргументы, которые должны быть использованы для разбора. Если не предоставлены, используется
Changelog
Изменено в версии 8.0.1: Добавлен параметр
windows_expand_argsдля отключения расширения аргументов командной строки в Windows.Изменено в версии 8.0: При получении аргументов из
sys.argvв Windows шаблоны glob, пользовательский каталог и переменные среды расширяются.Изменено в версии 3.0: Добавлен параметр
standalone_mode.
-
-
class click.Command(name, context_settings=None, callback=None, params=None, help=None, epilog=None, short_help=None, options_metavar='[OPTIONS]', add_help_option=True, no_args_is_help=False, hidden=False, deprecated=False) -
Команды являются основным строительным блоком командных интерфейсов в Click. Базовая команда обрабатывает разбор командной строки и может перенаправлять дополнительный разбор командам, вложенным ниже.
- Параметры:
-
- name (str | None) – имя команды для использования, если группа не переопределяет его.
- context_settings (MutableMapping[str, Any]) – необязательный словарь с параметрами по умолчанию, которые передаются объекту контекста.
- callback (Callable[[...], Any] | None) – вызываемая функция. Это необязательно.
-
params (List[Parameter] | None) – параметры для регистрации с этой командой. Это могут быть объекты
OptionилиArgument. - help (str | None) – строка справки для этой команды.
- epilog (str | None) – как строка справки, но выводится в конце страницы справки после всего остального.
- short_help (str | None) – короткая справка для этой команды. Она отображается в списке команд родительской команды.
-
add_help_option (bool) – по умолчанию каждая команда регистрирует опцию
--help. Это можно отключить с помощью этого параметра. -
no_args_is_help (bool) – управляет тем, что происходит, если не указаны аргументы. Этот параметр отключён по умолчанию. Если включён, он добавит
--helpкак аргумент, если не переданы аргументы. - hidden (bool) – скрыть эту команду из вывода справки.
- deprecated (bool) – выводит сообщение, указывающее, что команда устарела.
- options_metavar (str | None) –
Изменено в версии 8.1:
help,epilog, иshort_helpхранятся необработанными, вся форматирование выполняется при выводе текста справки, а не при инициализации, и выполняется даже если не используется декоратор@command.Изменения
Изменено в версии 8.0: Добавлен
reprдля отображения имени команды.Изменено в версии 7.1: Добавлен параметр
no_args_is_help.Изменено в версии 2.0: Добавлен параметр
context_settings.-
callback -
функция обратного вызова для выполнения при запуске команды. Это может быть
None, в этом случае ничего не происходит.
-
params: List[Parameter] -
список параметров для этой команды в порядке их отображения на странице справки и выполнения. Параметры eager будут обрабатываться автоматически перед не-eager параметрами.
-
to_info_dict(ctx) -
Собирает информацию, которая может быть полезна инструменту, генерирующему документацию для пользователя. Эта функция обходит всю структуру под этой командой.
Используйте
click.Context.to_info_dict()для обхода всей структуры CLI.- Параметры:
- Тип возвращаемого значения:
Изменения
Добавлена в версии 8.0.
-
get_usage(ctx) -
Форматирует строку использования в строку и возвращает её.
Внутренне вызывает
format_usage().
-
format_usage(ctx, formatter) -
Записывает строку использования в форматировщик.
Этот метод низкого уровня вызывается
get_usage().- Параметры:
-
- ctx (Context) –
- formatter (HelpFormatter) –
- Тип возвращаемого значения:
-
None
-
collect_usage_pieces(ctx) -
Возвращает все фрагменты, которые входят в строку использования, и возвращает их как список строк.
-
get_help_option_names(ctx) -
Возвращает имена опции справки.
-
get_help_option(ctx) -
Возвращает объект опции справки.
-
make_parser(ctx) -
Создаёт основной парсер опций для этой команды.
- Параметры:
-
ctx (Context) –
- Тип возвращаемого значения:
-
get_help(ctx) -
Форматирует справку в строку и возвращает её.
Внутренне вызывает
format_help().
-
get_short_help_str(limit=45) -
Получает краткую справку для команды или создаёт её, сокращая длинную строку справки.
-
format_help(ctx, formatter) -
Записывает справку в форматировщик, если он существует.
Этот метод является низкоуровневым и вызывается методом
get_help().Вызывает следующие методы:
- Параметры:
-
- ctx (Context) –
- formatter (HelpFormatter) –
- Тип возвращаемого значения:
-
None
-
format_help_text(ctx, formatter) -
Записывает текст справки в форматировщик, если он существует.
- Параметры:
-
- ctx (Context) –
- formatter (HelpFormatter) –
- Тип возвращаемого значения:
-
None
-
format_options(ctx, formatter) -
Записывает все опции в форматировщик, если они существуют.
- Параметры:
-
- ctx (Context) –
- formatter (HelpFormatter) –
- Тип возвращаемого значения:
-
None
-
format_epilog(ctx, formatter) -
Записывает эпилог в форматировщик, если он существует.
- Параметры:
-
- ctx (Context) –
- formatter (HelpFormatter) –
- Тип возвращаемого значения:
-
None
-
parse_args(ctx, args) -
Принимая контекст и список аргументов, создаёт парсер и анализирует аргументы, затем изменяет контекст по необходимости. Автоматически вызывается
make_context().
-
invoke(ctx) -
Принимая контекст, вызывает прикреплённый обработчик (если он существует) правильным способом.
-
shell_complete(ctx, incomplete) -
Возвращает список дополнений для неполного значения. Рассматривает имена опций и цепочки многокоманд.
- Параметры:
- Тип возвращаемого значения:
Changelog
Новое в версии 8.0.
-
-
class click.MultiCommand(name=None, invoke_without_command=False, no_args_is_help=None, subcommand_metavar=None, chain=False, result_callback=None, **attrs) -
Многокомандное исполнение — это базовая реализация команды, которая перенаправляет вызов подкомандам. Наиболее распространённым вариантом является
Group.- Параметры:
-
- invoke_without_command (bool) – управляет тем, как вызывается сама многокомандная структура. По умолчанию она вызывается только если указана подкоманда.
-
no_args_is_help (bool | None) – управляет тем, что происходит, если не указаны аргументы. Этот параметр включён по умолчанию, если
invoke_without_commandотключен, или выключен, если он включён. Если он включён, то будет добавлен аргумент--helpесли не переданы аргументы. - subcommand_metavar (str | None) – строка, используемая в документации для обозначения места подкоманды.
-
chain (bool) – если установлено в
True, включено объединение нескольких подкоманд. Это ограничивает форму команд, так как они не могут иметь необязательные аргументы, но позволяет объединять несколько команд. -
result_callback (Callable[[...], Any] | None) – обратный вызов результата для прикрепления к этой многокомандной структуре. Его можно установить или изменить позже с помощью декоратора
result_callback(). -
attrs (Any) – Другие аргументы команды, описанные в
Command. - name (str | None) –
-
allow_extra_args = True -
Значение по умолчанию для флага
Context.allow_extra_args.
-
allow_interspersed_args = False -
Значение по умолчанию для флага
Context.allow_interspersed_args.
-
to_info_dict(ctx) -
Сбор информации, которая может быть полезна инструменту, генерирующему пользовательскую документацию. Проходит по всей структуре ниже этой команды.
Используйте
click.Context.to_info_dict(), чтобы пройти по всей структуре командной строки.- Параметры:
- Тип возвращаемого значения:
Изменения
Введено в версии 8.0.
-
collect_usage_pieces(ctx) -
Возвращает все части, которые входят в строку использования, и возвращает их в виде списка строк.
-
format_options(ctx, formatter) -
Записывает все опции в форматировщик, если они существуют.
- Параметры:
-
- ctx (Context) –
- formatter (HelpFormatter) –
- Тип возвращаемого значения:
-
None
-
result_callback(replace=False) -
Добавляет обратный вызов результата к команде. По умолчанию, если уже зарегистрирован обратный вызов результата, он будет объединяться, но это можно отключить с помощью параметра
replace. Обратный вызов результата вызывается со значением возврата подкоманды (или списком значений возврата всех подкоманд, если включено объединение), а также с параметрами, которые были бы переданы в основной обратный вызов.Пример:
@click.group() @click.option('-i', '--input', default=23) def cli(input): return 42 @cli.result_callback() def process_result(result, input): return result + input- Параметры:
-
replace (bool) – если установлено в
True, уже существующий обратный вызов результата будет удалён. - Тип возвращаемого значения:
-
Callable[[F], F]
Изменения
Изменено в версии 8.0: Переименовано из
resultcallback.Введено в версии 3.0.
-
format_commands(ctx, formatter) -
Дополнительные методы форматирования для многокомандных методов, которые добавляют все команды после опций.
- Параметры:
-
- ctx (Context) –
- formatter (HelpFormatter) –
- Тип возвращаемого значения:
-
None
-
parse_args(ctx, args) -
На основе контекста и списка аргументов создаёт парсер и анализирует аргументы, затем изменяет контекст по мере необходимости. Это вызывается автоматически
make_context().
-
get_command(ctx, cmd_name) -
По заданному контексту и имени команды возвращает объект
Command, если он существует, илиNone.
-
list_commands(ctx) -
Возвращает список имён подкоманд в порядке их отображения.
-
shell_complete(ctx, incomplete) -
Возвращает список завершений для незавершенного значения. Ищет названия опций, подкоманд и цепочек многокоманд.
- Параметры:
- Тип возвращаемого значения:
Изменения
Новое в версии 8.0.
-
-
class click.Group(name=None, commands=None, **attrs) -
Группа позволяет команде иметь вложенные подкоманды. Это наиболее распространённый способ реализации вложенности в Click.
- Параметры:
-
- name (str | None) – Имя команды группы.
-
commands (MutableMapping[str, Command] | Sequence[Command] | None) – Словарь, сопоставляющий имена с объектами
Command. Также может быть списком объектовCommand, который будет использован для создания словаря с помощьюCommand.name. -
attrs (Any) – Другие аргументы команды, описанные в
MultiCommand,CommandиBaseCommand.
Изменения
Изменено в версии 8.0: Аргумент
commandsможет быть списком объектов команд.-
command_class: Type[Command] | None = None -
Если задано, используется декоратором
command()группы в качестве стандартного классаCommand. Это полезно, чтобы все подкоманды использовали пользовательский класс команды.Изменения
Добавлен в версии 8.0.
-
group_class: Type[Group] | Type[type] | None = None -
Если задано, используется декоратором
group()группы в качестве стандартного классаGroup. Это полезно, чтобы все подгруппы использовали пользовательский класс группы.Если установлено специальное значение
type(буквальноgroup_class = type), класс этой группы будет использоваться в качестве стандартного класса. Это позволяет пользовательскому классу группы продолжать создавать пользовательские группы.Изменения
Добавлен в версии 8.0.
-
commands: MutableMapping[str, Command] -
Зарегистрированные подкоманды по их экспортированным именам.
-
add_command(cmd, name=None) -
Регистрирует другую
Commandс этой группой. Если имя не задано, используется имя команды.
-
command(__func: Callable[[...], Any]) → Command - command(*args:Any, **kwargs:Any) Callable[[Callable[[...],Any]],Command]
-
Короткая декораторная функция для объявления и добавления команды к группе. Принимает те же аргументы, что и
command(), и немедленно регистрирует созданную команду в этой группе, вызвавadd_command().Для настройки класса команды установите атрибут
command_class.Изменено в версии 8.1: Этот декоратор может быть применён без скобок.
Изменения
Изменено в версии 8.0: Добавлен атрибут
command_class.
-
group(__func: Callable[[...], Any]) → Group - group(*args:Any, **kwargs:Any) Callable[[Callable[[...],Any]],Group]
-
Короткая декораторная функция для объявления и добавления группы к группе. Принимает те же аргументы, что и
group(), и немедленно регистрирует созданную группу в этой группе, вызвавadd_command().Для настройки класса группы установите атрибут
group_class.Изменено в версии 8.1: Этот декоратор может быть применён без скобок.
Изменения
Изменено в версии 8.0: Добавлен атрибут
group_class.
-
class click.CommandCollection(name=None, sources=None, **attrs) -
Коллекция команд — это многокомандный объект, объединяющий несколько многокомандных объектов в один. Это простое решение, принимающее список различных многокомандных объектов в качестве источников и предоставляющее все команды для каждого из них.
См.
MultiCommandиCommandдля описанияnameиattrs.- Параметры:
-
- name (строка | None) –
- sources (Список[Многокомандный объект] | None) –
- attrs (любой) –
-
sources: List[MultiCommand] -
Список зарегистрированных многокомандных объектов.
-
add_source(multi_cmd) -
Добавляет новый многокомандный объект в диспетчер цепочки.
- Параметры:
-
multi_cmd (Многокомандный объект) –
- Тип возвращаемого значения:
-
None
-
get_command(ctx, cmd_name) -
Принимая контекст и имя команды, возвращает объект
Command, если он существует, или возвращаетNone.
Параметры
-
class click.Parameter(param_decls=None, type=None, required=False, default=None, callback=None, nargs=None, multiple=False, metavar=None, expose_value=True, is_eager=False, envvar=None, shell_complete=None) -
Параметр команды представлен в двух вариантах:
OptionилиArgument. Другие подклассы в настоящее время не поддерживаются по умолчанию, так как некоторые внутренние компоненты для парсинга преднамеренно не завершены.Некоторые настройки поддерживаются как опциями, так и аргументами.
- Параметры:
-
- param_decls (Sequence[str] | None) – объявления параметров для этой опции или аргумента. Это список флагов или имён аргументов.
-
type (ParamType | Any | None) – тип, который должен быть использован. Либо
ParamType, либо Python-тип. Последний автоматически преобразуется в первый, если это поддерживается. - required (bool) – указывает, является ли параметр обязательным.
- default (Any | Callable[[], Any] | None) – значение по умолчанию, если параметр опущен. Также может быть вызываемой функцией, которая вызывается при необходимости значения по умолчанию без аргументов.
-
callback (Callable[[Контекст, Параметр, Any], Any] | None) – функция для дополнительной обработки или валидации значения после преобразования типа. Она вызывается как
f(ctx, param, value)и должна вернуть значение. Вызывается для всех источников, включая запросы пользователя. -
nargs (int | None) – количество аргументов для сопоставления. Если не
1, возвращаемое значение — кортеж, а не единственное значение. Значение по умолчанию для nargs —1(кроме случая, когда тип — кортеж, тогда это арность кортежа). Еслиnargs=-1, все оставшиеся параметры собираются. - metavar (str | None) – способ отображения значения на странице справки.
-
expose_value (bool) – если это
True, то значение передаётся в обратный вызов команды и сохраняется в контексте, иначе игнорируется. - is_eager (bool) – значения с eager-обработкой обрабатываются до значений с non eager-обработкой. Это не должно устанавливаться для аргументов, или это изменит порядок обработки.
- envvar (Sequence[str] | str | None) – строка или список строк, которые являются переменными окружения, которые должны быть проверены.
-
shell_complete (Callable[[Контекст, Параметр, str], Список[ЭлементЗавершения] | Список[str]] | None) – функция, которая возвращает пользовательские завершения оболочки. Используется вместо завершения типа параметра, если задано. Принимает
ctx, param, incompleteи должна вернуть списокCompletionItemили список строк. - multiple (bool) –
Изменения
Изменено в версии 8.0:
process_valueпроверяет обязательные параметры и ограниченныеnargs, и вызывает обратный вызов параметра перед возвратом значения. Это позволяет обратному вызову проверять запросы пользователя.full_process_valueудалено.Изменено в версии 8.0:
autocompletionпереименовано вshell_completeи имеет новые семантики, описанные выше. Старое имя устарело и будет удалено в 8.1, до тех пор пока не будет обернуто для соответствия новым требованиям.Изменено в версии 8.0: Для
multiple=True, nargs>1, значение по умолчанию должно быть списком кортежей.Изменено в версии 8.0: Установка значения по умолчанию больше не требуется для
nargs>1, оно будет равноNone.multiple=Trueилиnargs=-1будут равны().Изменено в версии 7.1: Пустые переменные окружения игнорируются вместо того, чтобы принимать пустую строку. Это позволяет скриптам очищать переменные, если они не могут их сбросить.
Изменено в версии 2.0: Изменена подпись обратного вызова параметра, чтобы она также принимала параметр. Старый формат обратного вызова по-прежнему будет работать, но он будет выводить предупреждение, чтобы дать вам возможность легче перенести код.
-
to_info_dict() -
Сбор информации, которая может быть полезна инструменту, генерирующему документацию для пользователя.
Используйте
click.Context.to_info_dict()для обхода всей структуры CLI.Изменения
Добавлена в версии 8.0.
-
property human_readable_name: str -
Возвращает имя параметра, понятное человеку. Это то же самое, что и имя для опций, но метапеременная для аргументов.
-
get_default(ctx: Context, call: te.Literal[True] = True) → Any | None - get_default(ctx:Context, call:bool=True) Any|Callable[[],Any]|None
-
Получить значение по умолчанию для параметра. Сначала пытается получить значение с помощью
Context.lookup_default(), затем использует локальное значение по умолчанию.- Параметры:
-
- ctx – Текущий контекст.
- call – Если значение по умолчанию является вызываемым объектом, вызвать его. Выключить для возврата вызываемого объекта вместо его результата.
Изменения
Изменено в версии 8.0.2: Преобразование типов больше не выполняется при получении значения по умолчанию.
Изменено в версии 8.0.1: Преобразование типов может завершиться ошибкой в режиме гибкого разбора. Некорректные значения по умолчанию не помешают отображению текста справки.
Изменено в версии 8.0: Сначала проверяет
ctx.default_map.Изменено в версии 8.0: Добавлен параметр
call.
-
type_cast_value(ctx, value) -
Преобразовать и валидировать значение по отношению к
type,multiple, иnargsпараметра.
-
get_error_hint(ctx) -
Возвращает строковое представление параметра для использования в сообщениях об ошибках, чтобы указать, какой параметр вызвал ошибку.
-
shell_complete(ctx, incomplete) -
Возвращает список завершений для незавершенного значения. Если функция
shell_completeбыла задана во время инициализации, она используется. В противном случае используется функцияtypeshell_complete().- Параметры:
- Тип возвращаемого значения:
Изменения
Добавлено в версии 8.0.
-
-
class click.Option(param_decls=None, show_default=None, prompt=False, confirmation_prompt=False, prompt_required=True, hide_input=False, is_flag=None, flag_value=None, multiple=False, count=False, allow_from_autoenv=True, type=None, help=None, hidden=False, show_choices=True, show_envvar=False, **attrs) -
Параметры обычно являются необязательными значениями в командной строке и имеют некоторые дополнительные функции, которых нет у аргументов.
Все остальные параметры передаются конструктору параметра.
- Параметры:
-
-
show_default (bool | str | None) – Показывать значение по умолчанию для этого параметра в тексте справки. Значения не отображаются по умолчанию, если
Context.show_defaultнеTrue. Если это значение является строкой, то в скобках отображается эта строка вместо фактического значения. Это особенно полезно для динамических параметров. Для одноэлементных логических флагов по умолчанию скрывается, если его значениеFalse. - show_envvar (bool) – Управляет отображением переменной окружения на странице справки. Обычно переменные окружения не отображаются.
-
prompt (bool | str) – Если установлено в
Trueили непустую строку, то пользователя попросят ввести данные. Если установлено вTrue, запрос будет именем параметра, написанным с большой буквы. -
confirmation_prompt (bool | str) – Запрашивает повторное подтверждение значения, если оно было запрошено. Может быть установлено в строку вместо
Trueдля настройки сообщения. -
prompt_required (bool) – Если установлено в
False, пользователь будет запрошен для ввода только тогда, когда параметр указан как флаг без значения. -
hide_input (bool) – Если это
True, вход в запросе будет скрыт от пользователя. Это полезно для ввода паролей. - is_flag (bool | None) – принудительно делает этот параметр флагом. По умолчанию определяется автоматически.
- flag_value (Any | None) – какое значение должно использоваться для этого флага, если он включен. Устанавливается в булево значение автоматически, если строка параметра содержит косую черту для обозначения двух параметров.
-
multiple (bool) – если это установлено в
True, аргумент принимается несколько раз и записывается. Это похоже наnargsпо своему действию, но поддерживает произвольное количество аргументов. - count (bool) – этот флаг заставляет параметр увеличивать целое число.
- allow_from_autoenv (bool) – если это включено, значение этого параметра будет взято из переменной окружения в случае, если префикс определен в контексте.
- help (str | None) – строка справки.
- hidden (bool) – скрыть этот параметр от вывода справки.
-
attrs (Any) – Другие аргументы команд, описанные в
Parameter. - param_decls (Sequence[str] | None) –
- type (ParamType | Any | None) –
- show_choices (bool) –
-
show_default (bool | str | None) – Показывать значение по умолчанию для этого параметра в тексте справки. Значения не отображаются по умолчанию, если
Изменено в версии 8.1.0: Отступы текста справки очищаются здесь вместо только в
@optionдекораторе.Изменено в версии 8.1.0: Параметр
show_defaultпереопределяетContext.show_default.Изменено в версии 8.1.0: Значение по умолчанию для одноэлементного логического флага не отображается, если значение по умолчанию
False.Журнал изменений
Изменено в версии 8.0.1:
typeопределяется изflag_valueпри предоставлении.
-
class click.Argument(param_decls, required=None, **attrs) -
Аргументы — это позиционные параметры команды. Они, как правило, предоставляют меньше функций, чем параметры, но могут иметь бесконечное
nargsи по умолчанию являются обязательными.Все параметры передаются конструктору
Parameter.
Контекст
-
class click.Context(command, parent=None, info_name=None, obj=None, auto_envvar_prefix=None, default_map=None, terminal_width=None, max_content_width=None, resilient_parsing=False, allow_extra_args=None, allow_interspersed_args=None, ignore_unknown_options=None, help_option_names=None, token_normalize_func=None, color=None, show_default=None) -
Контекст — это специальный внутренний объект, который хранит состояние, относящееся к выполнению скрипта на каждом уровне. Он обычно невидим для команд, если они не получат к нему доступ.
Контекст полезен, так как он может передавать внутренние объекты и управлять специальными функциями выполнения, такими как чтение данных из переменных окружения.
Контекст можно использовать как менеджер контекста, в этом случае он вызовет
close()при завершении.- Параметры:
-
- команда (Команда) — класс команды для этого контекста.
- родитель (Контекст | None) — родительский контекст.
- имя_информации (str | None) — имя информации для этого вызова. Обычно это наиболее описательное имя для скрипта или команды. Для скрипта верхнего уровня это обычно имя скрипта, для команд ниже — имя скрипта.
- объект (Любой | None) — произвольный объект пользовательских данных.
-
префикс_автоматической_переменной_окружения (str | None) — префикс для использования в автоматических переменных окружения. Если это
None, чтение из переменных окружения отключено. Это не влияет на вручную заданные переменные окружения, которые всегда считываются. - словарь_по_умолчанию (Изменяемое отображение[str, Любой] | None) — словарь (как объект) с значениями по умолчанию для параметров.
- ширина_терминала (int | None) — ширина терминала. По умолчанию наследуется от родительского контекста. Если контекст не определяет ширину терминала, применяется автоматическое определение.
- максимальная_ширина_содержимого (int | None) — максимальная ширина содержимого, отображаемого Click (в настоящее время это влияет только на страницы справки). По умолчанию составляет 80 символов, если не переопределено. Другими словами: даже если терминал больше, Click не будет форматировать вещи шире 80 символов по умолчанию. Кроме того, форматировщики могут добавить некоторое сопоставление по безопасности справа.
- устойчивое_разбирание (bool) — если этот флаг включен, Click будет парсить без взаимодействия или вызова обратного вызова. Значения по умолчанию также будут игнорироваться. Это полезно для реализации таких функций, как поддержка автодополнения.
-
разрешить_дополнительные_аргументы (bool | None) — если это установлено в
True, дополнительные аргументы в конце не будут вызывать ошибку и будут сохранены в контексте. По умолчанию наследуется от команды. -
разрешить_вмещающиеся_аргументы (bool | None) — если это установлено в
False, опции и аргументы не могут быть смешаны. По умолчанию наследуется от команды. - игнорировать_неизвестные_опции (bool | None) — дает инструкции Click игнорировать опции, которые ему неизвестны, и сохранять их для дальнейшей обработки.
-
имена_опций_справки (Список[str] | None) — необязательно, список строк, определяющих, как называется параметр справки по умолчанию. По умолчанию
['--help']. - функция_нормализации_токен (Вызываемый[[str], str] | None) — необязательная функция, используемая для нормализации токенов (опции, варианты и т. д.). Это, например, может использоваться для реализации поведения, нечувствительного к регистру.
- цвет (bool | None) — управляет тем, поддерживает ли терминал ANSI-цвета или нет. По умолчанию — автоматическое определение. Это необходимо только в том случае, если в текстах, которые печатает Click, используются ANSI-коды, что по умолчанию не так. Это, например, повлияет на вывод справки.
-
показать_значение_по_умолчанию (bool | None) — Показывать значение по умолчанию для команд. Если это значение не установлено, оно по умолчанию соответствует значению из родительского контекста.
Command.show_defaultпереопределяет это значение по умолчанию для конкретной команды.
Изменено в версии 8.1: Параметр
show_defaultпереопределяетсяCommand.show_default, а не наоборот.Журнал изменений
Изменено в версии 8.0: Параметр
show_defaultпо умолчанию принимает значение из родительского контекста.Изменено в версии 7.1: Добавлен параметр
show_default.Изменено в версии 4.0: Добавлены параметры
color,ignore_unknown_options, иmax_content_width.Изменено в версии 3.0: Добавлены параметры
allow_extra_argsиallow_interspersed_args.Изменено в версии 2.0: Добавлены параметры
resilient_parsing,help_option_names, иtoken_normalize_func.-
formatter_class -
псевдоним
HelpFormatter
-
parent -
родительский контекст или
Noneесли его нет.
-
command -
команда
Commandдля данного контекста.
-
info_name -
описательное имя информации
-
params: Dict[str, Any] -
Карта имён параметров и их обработанных значений. Параметры с
expose_value=Falseне сохраняются.
-
args: List[str] -
оставшиеся аргументы.
-
protected_args: List[str] -
защищенные аргументы. Это аргументы, которые добавляются перед
argsв определенных сценариях парсинга, но никогда не передаются другим аргументам. Это используется для реализации вложенного парсинга.
-
obj: Any -
сохранённый пользовательский объект.
-
invoked_subcommand: str | None -
Этот флаг указывает, будет ли выполнена подкоманда. Функция обратного вызова группы может использовать эту информацию, чтобы выяснить, выполняется ли она непосредственно или потому, что поток выполнения передается подкоманде. По умолчанию он None, но может быть именем подкоманды для выполнения.
Если включена цепочка вызовов, это будет
'*'в случае выполнения каких-либо команд. Однако определить, какие именно, невозможно. Если вам нужна эта информация, используйтеresult_callback().
-
terminal_width: int | None -
Ширина терминала (None — автоматическое определение).
-
max_content_width: int | None -
Максимальная ширина форматированного содержимого (None подразумевает разумное значение по умолчанию, которое составляет 80 для большинства случаев).
-
allow_extra_args -
Указывает, разрешает ли контекст дополнительные аргументы или должен ли он завершиться ошибкой при парсинге.
Журнал изменений
Новое в версии 3.0.
-
allow_interspersed_args: bool -
Указывает, разрешает ли контекст смешивание аргументов и опций или нет.
Журнал изменений
Новое в версии 3.0.
-
ignore_unknown_options: bool -
Инструктирует Click игнорировать опции, которые команда не понимает, и сохранит их в контексте для последующей обработки. Это в первую очередь полезно для ситуаций, когда вы хотите вызвать внешние программы. В целом, этот подход крайне не рекомендуется, так как невозможно безошибочно передать все аргументы.
Changelog
Добавлена в версии 4.0.
-
help_option_names: List[str] -
Названия опций справки.
-
token_normalize_func: Callable[[str], str] | None -
Необязательная функция нормализации токенов. Это опции, варианты, команды и т. д.
-
resilient_parsing: bool -
Указывает, включена ли устойчивая обработка. В этом случае Click сделает все возможное, чтобы не возникло ошибок, и значения по умолчанию будут проигнорированы. Полезно для автодополнения.
-
color: bool | None -
Управляет отображением стилизованного вывода.
-
show_default: bool | None -
Показывать значения параметров по умолчанию при форматировании текста справки.
-
to_info_dict() -
Собрать информацию, которая может быть полезна инструменту, генерирующему документацию для пользователя. Проходит по всей структуре командной строки.
with Context(cli) as ctx: info = ctx.to_info_dict()Changelog
Добавлена в версии 8.0.
-
scope(cleanup=True) -
Этот вспомогательный метод можно использовать с объектом контекста, чтобы повысить его до текущего локального объекта потока (см.
get_current_context()). По умолчанию он вызывает функции очистки, которые можно отключить, установивcleanupвFalse. Функции очистки обычно используются для таких задач, как закрытие дескрипторов файлов.Если очистка нужна, объект контекста также можно использовать как контекстный менеджер.
Пример использования:
with ctx.scope(): assert get_current_context() is ctxЭто эквивалентно:
with ctx: assert get_current_context() is ctxChangelog
Добавлена в версии 5.0.
- Параметры:
-
cleanup (bool) – управляет тем, будут ли выполняться функции очистки. По умолчанию эти функции выполняются. В некоторых ситуациях контекст требуется только временно, в таком случае это можно отключить. Вложенные вставки автоматически откладывают очистку.
- Тип возвращаемого значения:
-
property meta: Dict[str, Any] -
Это словарь, который совместно используется всеми вложенными контекстами. Он существует, чтобы утилиты Click могли хранить состояние здесь, если это необходимо. Однако ответственность за правильное управление этим словарем лежит на этом коде.
Ключи должны быть уникальными строками с точками. Например, пути к модулям хорошо подходят для этого. Содержимое, хранящееся там, не имеет значения для работы Click. Важно, что код, который помещает данные сюда, соответствует общим правилам системы.
Пример использования:
LANG_KEY = f'{__name__}.lang' def set_language(value): ctx = get_current_context() ctx.meta[LANG_KEY] = value def get_language(): return get_current_context().meta.get(LANG_KEY, 'en_US')Changelog
Добавлена в версии 5.0.
-
make_formatter() -
Создаёт
HelpFormatterдля вывода справки и использования.Чтобы быстро настроить класс форматирования, без его переопределения, установите атрибут
formatter_class.Changelog
Изменено в версии 8.0: Добавлен атрибут
formatter_class.- Тип возвращаемого значения:
-
with_resource(context_manager) -
Регистрирует ресурс так, как будто он был использован в
withинструкции. Ресурс будет очищен при выходе из контекста.Использует
contextlib.ExitStack.enter_context(). Вызывает метод__enter__()ресурса и возвращает результат. При выходе из контекста, закрывает стек, который вызывает метод__exit__()ресурса.Для регистрации функции очистки для чего-то, что не является контекстным менеджером, используйте
call_on_close(). Или используйте функцию изcontextlib, чтобы сначала преобразовать это в контекстный менеджер.@click.group() @click.option("--name") @click.pass_context def cli(ctx): ctx.obj = ctx.with_resource(connect_db(name))- Параметры:
-
context_manager (ContextManager[V]) – Контекстный менеджер для входа.
- Возвращаемое значение:
-
То, что возвращает
context_manager.__enter__(). - Тип возвращаемого значения:
-
V
Changelog
Добавлена в версии 8.0.
-
call_on_close(f) -
Регистрирует функцию, которая будет вызвана при завершении работы контекста.
Это можно использовать для закрытия ресурсов, открытых во время выполнения скрипта. Ресурсы, которые поддерживают протокол контекстного менеджера Python, которые будут использоваться в
withинструкции, должны быть зарегистрированы с помощьюwith_resource().
-
close() -
Вызывает все функции обратного вызова закрытия, зарегистрированные с помощью
call_on_close(), и выходит из всех контекстных менеджеров, в которые вошли с помощьюwith_resource().- Тип возвращаемого значения:
-
None
-
property command_path: str -
Вычисленный путь к команде. Используется для информации
usageна странице справки. Автоматически создаётся путём объединения имён информации цепочки контекстов до корня.
-
find_root() -
Находит внешний контекст.
- Тип возвращаемого значения:
-
find_object(object_type) -
Находит ближайший объект заданного типа.
- Параметры:
-
object_type (Type[V]) –
- Тип возвращаемого значения:
-
V | None
-
-
ensure_object(object_type) -
Как
find_object(), но устанавливает внутренний объект на новый экземплярobject_typeесли он не существует.- Параметры:
-
object_type (Type[V]) –
- Тип возвращаемого значения:
-
V
-
lookup_default(name: str, call: te.Literal[True] = True) → Any | None - lookup_default(name:str, call:te.Literal[False]=True) Any|Callable[[],Any]|None
-
Получение значения по умолчанию для параметра из
default_map.- Параметры:
-
- name – Название параметра.
- call – Если значение по умолчанию — вызываемый объект, вызвать его. Отключить, чтобы вернуть вызываемый объект вместо его вызова.
Журнал изменений
Изменено в версии 8.0: Добавлен параметр
call.
-
fail(message) -
Прерывает выполнение программы со специфическим сообщением об ошибке.
- Параметры:
-
message (str) – сообщение об ошибке для прерывания.
- Тип возвращаемого значения:
-
te.NoReturn
-
abort() -
Прерывает скрипт.
- Тип возвращаемого значения:
-
te.NoReturn
-
exit(code=0) -
Выходит из приложения с заданным кодом выхода.
- Параметры:
-
code (int) –
- Тип возвращаемого значения:
-
te.NoReturn
-
get_usage() -
Вспомогательный метод для получения отформатированной строки использования для текущего контекста и команды.
- Тип возвращаемого значения:
-
get_help() -
Вспомогательный метод для получения отформатированной страницы справки для текущего контекста и команды.
- Тип возвращаемого значения:
-
invoke(__callback: Callable[[...], V], *args: Any, **kwargs: Any) → V - invoke(__callback:Command, *args:Any, **kwargs:Any) Any
-
Вызывает обратный вызов команды точно так же, как он ожидает. Есть два способа вызвать этот метод:
- Первый аргумент может быть обратным вызовом, а все остальные аргументы и ключевые аргументы передаются напрямую в функцию.
- Первый аргумент — это объект команды Click. В этом случае все аргументы передаются также, но правильные параметры Click (опции и аргументы Click) должны быть ключевыми аргументами, а Click заполнит значения по умолчанию.
Обратите внимание, что до Click 3.2 ключевые аргументы не заполнялись должным образом в соответствии с намерением этого кода, и контекст не создавался. Для получения дополнительной информации об этом изменении и о причинах его внесения в релиз исправления ошибок см. Обновление до 3.2.
-
forward(_Context__cmd, *args, **kwargs) -
Аналогично
invoke(), но заполняет значения по умолчанию для ключевых аргументов из текущего контекста, если другая команда этого требует. Это не может вызывать обратные вызовы напрямую, только другие команды.Журнал изменений
Изменено в версии 8.0: Все
kwargsотслеживаются вparams, поэтому они будут переданы, еслиforwardвызывается на нескольких уровнях.
-
set_parameter_source(name, source) -
Установить источник параметра. Это указывает на местоположение, откуда было получено значение параметра.
- Параметры:
-
- name (str) – Название параметра.
-
source (ParameterSource) – Член
ParameterSource.
- Тип возвращаемого значения:
-
None
-
-
get_parameter_source(name) -
Получить источник параметра. Это указывает на местоположение, откуда было получено значение параметра.
Это может быть полезно для определения того, когда пользователь указал значение в командной строке, которое совпадает со значением по умолчанию. Оно будет
DEFAULTтолько в том случае, если значение было фактически взято из значения по умолчанию.- Параметры:
-
name (str) – Имя параметра.
- Тип возвращаемого значения:
Журнал изменений
Изменено в версии 8.0: Возвращает
Noneесли параметр не был получен из любого источника.
-
-
click.get_current_context(silent: te.Literal[False] = False) → Context - click.get_current_context(silent:bool=False) t.Optional['Context']
-
Возвращает текущий контекст click. Это можно использовать для доступа к текущему объекту контекста из любого места. Это более неявный способ по сравнению с декоратором
pass_context(). Эта функция в первую очередь полезна для помощников, таких какecho(), которые могут быть заинтересованы в изменении своего поведения на основе текущего контекста.Для помещения текущего контекста можно использовать
Context.scope().Журнал изменений
Введено в версии 5.0.
- Параметры:
-
silent – если установлено в
Trueвозвращаемое значениеNoneесли контекст недоступен. По умолчанию возникает исключениеRuntimeError.
-
class click.core.ParameterSource(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None) -
Это
Enumперечисляющее, которое указывает источник значения параметра.Используйте
click.Context.get_parameter_source()для получения источника параметра по имени.Журнал изменений
Изменено в версии 8.0: Используйте
Enumи удалите методvalidate.Изменено в версии 8.0: Добавлен значение
PROMPT.-
COMMANDLINE = 1 -
Значение было предоставлено аргументами командной строки.
-
ENVIRONMENT = 2 -
Значение было предоставлено переменной среды.
-
DEFAULT = 3 -
Использовано значение по умолчанию, указанное для параметра.
-
DEFAULT_MAP = 4 -
Использовано значение по умолчанию, предоставленное
Context.default_map.
-
PROMPT = 5 -
Использовано подсказку для подтверждения значения по умолчанию или для ввода значения.
-
Типы
-
click.STRING = STRING
-
click.INT = INT
-
click.FLOAT = FLOAT
-
click.BOOL = BOOL
-
click.UUID = UUID
-
click.UNPROCESSED = UNPROCESSED
-
class click.File(mode='r', encoding=None, errors='strict', lazy=None, atomic=False) -
Определяет параметр как файл для чтения или записи. Файл автоматически закрывается после завершения контекста (после завершения работы команды).
Файлы можно открывать для чтения или записи. Специальное значение
-указывает на stdin или stdout в зависимости от режима.По умолчанию файл открывается для чтения текстовых данных, но его также можно открыть в двоичном режиме или для записи. Параметр encoding можно использовать для принудительного задания кодировки.
Флаг
lazyуправляет тем, должен ли файл открываться сразу или при первом обращении к вводу-выводу. По умолчанию значение - не ленивый для стандартных потоков ввода-вывода и файлов, открытых для чтения,lazyв противном случае. При открытии файла лениво для чтения, он все же открывается временно для проверки, но не будет оставаться открытым до первого обращения к вводу-выводу. lazy преимущественно полезен при открытии для записи, чтобы избежать создания файла до тех пор, пока он не понадобится.Начиная с Click 2.0, файлы также можно открывать атомарно, в этом случае все записи осуществляются в отдельный файл в той же папке, а по завершении файл будет перемещен в исходное местоположение. Это полезно, если файл, который регулярно читается другими пользователями, изменяется.
См. Аргументы файла для получения дополнительной информации.
-
class click.Path(exists=False, file_okay=True, dir_okay=True, writable=False, readable=True, resolve_path=False, allow_dash=False, path_type=None, executable=False) -
Тип
Pathпохож на типFile, но возвращает имя файла вместо открытого файла. Можно включить различные проверки для валидации типа файла и разрешений.- Параметры:
-
-
exists (bool) – Файл или директория должны существовать для валидности значения. Если это не установлено в
True, и файла не существует, все последующие проверки пропускаются без предупреждений. - file_okay (bool) – Разрешить файл в качестве значения.
- dir_okay (bool) – Разрешить директорию в качестве значения.
- readable (bool) – если true, выполняется проверка на читаемость.
- writable (bool) – если true, выполняется проверка на возможность записи.
- executable (bool) – если true, выполняется проверка на возможность выполнения.
-
resolve_path (bool) – Сделать значение абсолютным и разрешить все символические ссылки.
~не расширяется, так как это должно выполняться только оболочкой. -
allow_dash (bool) – Разрешить одиночный символ тире в качестве значения, что указывает на стандартный поток (но не открывает его). Используйте
open_file()для обработки открытия этого значения. -
path_type (Type[Any] | None) – Преобразуйте входное значение пути к этому типу. Если
None, используйте стандартное поведение Python, которое равноstr. Полезно для преобразования вpathlib.Path.
-
exists (bool) – Файл или директория должны существовать для валидности значения. Если это не установлено в
Изменено в версии 8.1: Добавлен параметр
executable.Изменения
Изменено в версии 8.0: Разрешено передавать
path_type=pathlib.Path.Изменено в версии 6.0: Добавлен параметр
allow_dash.
-
class click.Choice(choices, case_sensitive=True) -
Тип выбора позволяет проверять значение по набору поддерживаемых значений. Все эти значения должны быть строками.
Вы должны передавать только список или кортеж вариантов. Другие итерируемые объекты (например, генераторы) могут привести к неожиданным результатам.
Результирующее значение всегда будет одним из исходно переданных вариантов, независимо от
case_sensitiveили любыхctx.token_normalize_func.Пример см. в Параметры выбора.
-
class click.IntRange(min=None, max=None, min_open=False, max_open=False, clamp=False) -
Ограничьте значение
click.INTдиапазоном допустимых значений. См. Параметры диапазона.Если
minилиmaxне переданы, любое значение принимается в этом направлении. Еслиmin_openилиmax_openвключены, соответствующая граница не включена в диапазон.Если
clampвключен, значение за пределами диапазона обрезается до границы вместо ошибки.Изменения
Изменено в версии 8.0: Добавлены параметры
min_openиmax_open.
-
class click.FloatRange(min=None, max=None, min_open=False, max_open=False, clamp=False) -
Ограничьте значение
click.FLOATдиапазоном допустимых значений. См. Параметры диапазона.Если
minилиmaxне переданы, любое значение принимается в этом направлении. Еслиmin_openилиmax_openвключены, соответствующая граница не включена в диапазон.Если
clampвключен, значение за пределами диапазона обрезается до границы вместо ошибки. Это не поддерживается, если какая-либо граница помеченаopen.Изменения
Изменено в версии 8.0: Добавлены параметры
min_openиmax_open.
-
class click.DateTime(formats=None) -
Тип DateTime преобразует строковые даты в объекты
datetime.Проверяемые форматы строк настраиваются, но по умолчанию используют некоторые распространённые (не учитывающие часовые пояса) форматы ISO 8601.
При указании форматов DateTime вы должны передавать только список или кортеж. Другие итерируемые объекты, такие как генераторы, могут привести к неожиданным результатам.
Строки формата обрабатываются с помощью
datetime.strptime, и это определяет разрешённые строки формата.Разбор выполняется для каждого формата по порядку, и используется первый успешно разобранный формат.
-
class click.Tuple(types) -
По умолчанию Click применяет тип к значению напрямую. Это хорошо работает в большинстве случаев, за исключением случаев, когда
nargsзадан фиксированным количеством, а для разных элементов должны использоваться разные типы. В этом случае можно использовать типTuple. Этот тип можно использовать только еслиnargsзадано фиксированным числом.Для получения дополнительной информации см. Кортежи как многозначные параметры.
Это можно выбрать, используя литерал кортежа Python в качестве типа.
-
class click.ParamType -
Представляет тип параметра. Проверяет и преобразует значения из командной строки или Python в правильный тип.
Для реализации пользовательского типа, необходимо создать подкласс и реализовать по меньшей мере следующее:
- Атрибут класса
nameдолжен быть установлен. - Вызов экземпляра типа с
Noneдолжен возвращатьNone. Это уже реализовано по умолчанию. -
convert()должен преобразовывать строковые значения в правильный тип. -
convert()должен принимать значения, которые уже являются правильного типа. - Он должен уметь преобразовывать значение, если аргументы
ctxиparamявляютсяNone. Это может произойти при преобразовании входных данных запроса.
-
name: str -
описательное имя этого типа
-
envvar_list_splitter: ClassVar[str | None] = None -
Если ожидается список этого типа, а значение взято из переменной окружения в виде строки, это то, что разделяет его на части.
Noneозначает любой пробел. Для всех параметров общим правилом является то, что пробелы их разделяют. Исключение составляют пути и файлы, которые по умолчанию разделяютсяos.path.pathsep(«:» в Unix и «;» в Windows).
-
to_info_dict() -
Собрать информацию, которая может быть полезной для инструмента, генерирующего документацию для пользователя.
Используйте
click.Context.to_info_dict()для обхода всей структуры CLI.Изменения
Добавлена в версии 8.0.
-
get_metavar(param) -
Возвращает значение metavar по умолчанию для этого параметра, если оно предоставляется.
-
get_missing_message(param) -
При необходимости может возвращать дополнительную информацию об отсутствующем параметре.
Изменения
Добавлена в версии 2.0.
-
convert(value, param, ctx) -
Преобразование значения в правильный тип. Это не вызывается, если значение является
None(отсутствующее значение).Это должно принимать строковые значения из командной строки, а также значения, которые уже являются правильного типа. Оно также может преобразовывать и другие совместимые типы.
Аргументы
paramиctxмогут бытьNoneв определенных ситуациях, например, при преобразовании входных данных запроса.Если значение не может быть преобразовано, вызовите
fail()с описательным сообщением.
-
split_envvar_value(rv) -
Учитывая значение из переменной окружения, оно разбивает его на небольшие части в зависимости от определенного разделителя envvar.
Если разделитель установлен на
None, что означает разделение по пробелам, то ведущие и хвостовые пробелы игнорируются. В противном случае ведущие и хвостовые разделители обычно приводят к включению пустых элементов.
-
fail(message, param=None, ctx=None) -
Вспомогательный метод для завершения с сообщением об ошибке некорректного значения.
-
shell_complete(ctx, param, incomplete) -
Возвращает список объектов
CompletionItemдля незавершенного значения. Большинство типов не предоставляют завершений, но некоторые делают, и это позволяет пользовательским типам предоставлять также пользовательские завершения.- Параметры:
- Тип возвращаемого значения:
Изменения
Добавлена в версии 8.0.
- Атрибут класса
Исключения
-
exception click.ClickException(message) -
Исключение, которое Click может обработать и показать пользователю.
- Параметры:
-
message (str) –
- Тип возвращаемого значения:
-
None
-
exception click.Abort -
Внутреннее исключение сигнализации, которое сигнализирует Click об отмене.
-
exception click.UsageError(message, ctx=None) -
Внутреннее исключение, сигнализирующее об ошибке использования. Обычно это приводит к прерыванию дальнейшей обработки.
-
exception click.BadParameter(message, ctx=None, param=None, param_hint=None) -
Исключение, которое формирует стандартное сообщение об ошибке для плохого параметра. Это полезно, когда оно выбрасывается из обратного вызова или типа, так как Click прикрепит к нему контекстную информацию (например, какой параметр это).
Журнал изменений
Новая версия 2.0.
- Параметры:
-
- param (Параметр | None) – объект параметра, который вызвал эту ошибку. Его можно опустить, и Click при необходимости сам прикрепит эту информацию.
-
param_hint (str | None) – строка, отображающая имя параметра. Это можно использовать как альтернативу
paramв случаях, когда должна произойти пользовательская проверка. Если это строка, она используется как есть, если это список, каждый элемент заключается в кавычки и разделяется. - message (str) –
- ctx (Контекст | None) –
- Тип возвращаемого значения:
-
None
-
exception click.FileError(filename, hint=None) -
Выбрасывается, если файл не может быть открыт.
-
exception click.NoSuchOption(option_name, message=None, possibilities=None, ctx=None) -
Выбрасывается, если Click попытался обработать опцию, которой не существует.
Журнал изменений
Новая версия 4.0.
-
exception click.BadOptionUsage(option_name, message, ctx=None) -
Выбрасывается, если опция предоставлена, но ее использование было неправильным. Например, это выбрасывается, если количество аргументов для опции неверное.
Журнал изменений
Новая версия 4.0.
-
exception click.BadArgumentUsage(message, ctx=None) -
Выбрасывается, если аргумент предоставлен, но его использование было неправильным. Например, это выбрасывается, если количество значений для аргумента неверное.
Журнал изменений
Новая версия 6.0.
Форматирование
-
class click.HelpFormatter(indent_increment=2, width=None, max_width=None) -
Этот класс помогает в форматировании текстовых страниц справки. Обычно он нужен только для очень специфических внутренних случаев, но он также предоставляется, чтобы разработчики могли создавать свои собственные варианты вывода.
В настоящее время он всегда записывает данные в память.
- Параметры:
-
write(string) -
Записывает строку Unicode в внутренний буфер.
- Параметры:
-
string (str) –
- Тип возвращаемого значения:
-
None
-
indent() -
Увеличивает отступ.
- Тип возвращаемого значения:
-
None
-
dedent() -
Уменьшает отступ.
- Тип возвращаемого значения:
-
None
-
write_usage(prog, args='', prefix=None) -
Записывает строку использования в буфер.
-
write_heading(heading) -
Записывает заголовок в буфер.
- Параметры:
-
heading (str) –
- Тип возвращаемого значения:
-
None
-
write_paragraph() -
Записывает абзац в буфер.
- Тип возвращаемого значения:
-
None
-
write_text(text) -
Записывает переформатированный текст в буфер. Это переформатирует и сохраняет абзацы.
- Параметры:
-
text (str) –
- Тип возвращаемого значения:
-
None
-
write_dl(rows, col_max=30, col_spacing=2) -
Записывает список определений в буфер. Обычно так форматируются опции и команды.
-
section(name) -
Полезный менеджер контекста, который записывает абзац, заголовок и отступы.
-
indentation() -
Менеджер контекста, увеличивающий отступ.
- Тип возвращаемого значения:
-
Iterator[None]
-
getvalue() -
Возвращает содержимое буфера.
- Тип возвращаемого значения:
-
click.wrap_text(text, width=78, initial_indent='', subsequent_indent='', preserve_paragraphs=False) -
Вспомогательная функция, которая разумно переформатирует текст. По умолчанию она предполагает, что работает с одним абзацем текста, но если указан параметр
preserve_paragraphs, она будет разумно обрабатывать абзацы (определенные двумя пустыми строками).Если обрабатываются абзацы, абзац может быть префиксрован пустой строкой, содержащей символ
\b(\x08) для указания того, что переформатирование в этом блоке не должно происходить.- Параметры:
-
- text (str) – текст, который должен быть переформатирован.
- width (int) – максимальная ширина текста.
- initial_indent (str) – начальный отступ, который должен быть помещен в первой строке в виде строки.
- subsequent_indent (str) – строка отступа, которая должна быть помещена в каждой последующей строке.
- preserve_paragraphs (bool) – если этот флаг установлен, переформатирование будет разумно обрабатывать абзацы.
- Тип возвращаемого значения:
Обработка входных данных
-
class click.OptionParser(ctx=None) -
Парсер опций — внутренний класс, предназначенный для обработки опций и аргументов. Он моделируется по образцу optparse и предлагает аналогичный, но значительно упрощённый API. Обычно его не следует использовать напрямую, так как высокоуровневые классы Click оборачивают его за вас.
Он не так расширяем, как optparse или argparse, так как не реализует функции, реализованные на более высоком уровне (например, типы или значения по умолчанию).
-
ctx -
Контекст
Contextдля этого парсера. Это может бытьNoneв некоторых продвинутых случаях.
-
allow_interspersed_args: bool -
Контролирует, как парсер обрабатывает вложенные аргументы. Если это значение установлено в
False, парсер остановится на первом не являющемся опцией аргументе. Click использует это для безопасной реализации вложенных подкоманд.
-
ignore_unknown_options: bool -
Указывает парсеру, как обрабатывать неизвестные опции. По умолчанию он генерирует ошибку (что разумно), но есть второй режим, в котором он игнорирует её и продолжает обработку после перемещения всех неизвестных опций в результирующие аргументы.
-
add_option(obj, opts, dest, action=None, nargs=1, const=None) -
Добавляет новую опцию с именем
destв парсер. Назначение не выводится (в отличие от optparse) и должно быть явно указано. Действие может быть любым изstore,store_const,append,append_constилиcount.%%CODE_BLOCK_693%% может быть использовано для идентификации опции в списке порядка, возвращаемом парсером.
- Параметры:
-
- obj (CoreOption) —
- opts (Последовательность[строка]) —
- dest (строка | None) —
- action (строка | None) —
- nargs (целое число) —
- const (любой тип | None) —
- Тип возвращаемого значения:
-
None
-
add_argument(obj, dest, nargs=1) -
Добавляет позиционный аргумент с именем
destв парсер.%%CODE_BLOCK_696%% может быть использовано для идентификации опции в порядке списка, возвращаемом парсером.
- Параметры:
-
- obj (CoreArgument) —
- dest (строка | None) —
- nargs (целое число) —
- Тип возвращаемого значения:
-
None
-
parse_args(args) -
Обрабатывает позиционные аргументы и возвращает
(values, args, order)для обработанных опций и аргументов, а также оставшиеся аргументы, если таковые имеются. Порядок — список объектов в том порядке, в котором они появляются в командной строке. Если аргументы появляются несколько раз, они также будут запоминаться несколько раз.
-
Автозаполнение оболочки
См. Автозаполнение оболочки для получения информации об активации и настройке системы автозаполнения оболочки Click.
-
class click.shell_completion.CompletionItem(value, type='plain', help=None, **kwargs) -
Представляет значение автозаполнения и метаданные об этом значении. По умолчанию метаданные —
typeдля обозначения специальной обработки оболочкой, иhelpесли оболочка поддерживает отображение строки справки рядом со значением.При создании объекта можно передавать произвольные параметры, к которым можно получить доступ с помощью
item.attr. Если атрибут не был передан, при обращении к нему будет возвращеноNone.- Параметры:
-
- value (Any) – Предложение автозаполнения.
-
type (str) – Сообщает оболочке о предоставлении специальной поддержки автозаполнения для типа. Click использует
"dir"и"file". - help (str | None) – Строка, отображаемая рядом со значением, если поддерживается.
- kwargs (Any) – Произвольные метаданные. Встроенные реализации не используют это, но пользовательские автозаполнения типов, сопряженные с пользовательской поддержкой оболочки, могут использовать их.
-
class click.shell_completion.ShellComplete(cli, ctx_args, prog_name, complete_var) -
Базовый класс для предоставления поддержки автозаполнения оболочки. Подкласс для заданной оболочки переопределит атрибуты и методы для реализации инструкций автозаполнения (
sourceиcomplete).- Параметры:
-
- cli (BaseCommand) – Вызываемая команда.
- prog_name (str) – Имя исполняемого файла в оболочке.
- complete_var (str) – Имя переменной среды, которая содержит инструкцию автозаполнения.
- ctx_args (MutableMapping[str, Any]) –
Журнал изменений
Введено в версии 8.0.
-
name: ClassVar[str] -
Имя для регистрации оболочки с помощью
add_completion_class(). Оно используется в инструкциях автозаполнения ({name}_sourceи{name}_complete).
-
source_template: ClassVar[str] -
Шаблон скрипта автозаполнения, отформатированный
source(). Он должен быть предоставлен подклассами.
-
property func_name: str -
Имя функции оболочки, определенной скриптом автозаполнения.
-
source_vars() -
Переменные для форматирования
source_template.По умолчанию это предоставляет
complete_func,complete_var, иprog_name.
-
source() -
Создайте скрипт оболочки, определяющий функцию автозаполнения. По умолчанию это использует форматирование
%, чтобы отформатироватьsource_templateсо словарем, возвращаемымsource_vars().- Тип возвращаемого значения:
-
get_completion_args() -
Используйте переменные среды, определенные скриптом оболочки, для возвращения кортежа
args, incomplete. Это должно быть реализовано подклассами.
-
get_completions(args, incomplete) -
Определите контекст и последнюю завершенную команду или параметр из аргументов завершения. Вызовите метод объекта
shell_completeдля получения завершений для незавершенного значения.- Параметры:
- Тип возвращаемого значения:
-
format_completion(item) -
Отформатируйте элемент автозаполнения в формате, распознаваемом скриптом оболочки. Это должно быть реализовано подклассами.
- Параметры:
-
item (CompletionItem) – Элемент автозаполнения для форматирования.
- Тип возвращаемого значения:
-
complete() -
Создайте данные автозаполнения, которые нужно отправить обратно в оболочку.
По умолчанию это вызывает
get_completion_args(), получает автозаполнения, затем вызываетformat_completion()для каждого автозаполнения.- Тип возвращаемого значения:
-
click.shell_completion.add_completion_class(cls, name=None) -
Зарегистрируйте подкласс
ShellCompleteпод заданным именем. Имя будет предоставлено переменной среды с инструкцией автозаполнения во время автозаполнения.- Параметры:
-
- cls (ShellCompleteType) – Класс автозаполнения, который будет обрабатывать автозаполнение для оболочки.
-
name (str | None) – Имя для регистрации класса. По умолчанию используется атрибут
nameкласса.
- Тип возвращаемого значения:
-
ShellCompleteType
Тестирование
-
class click.testing.CliRunner(charset='utf-8', env=None, echo_stdin=False, mix_stderr=True) -
Запускатель командной строки предоставляет функциональность для вызова скрипта командной строки Click для целей тестирования в изолированной среде. Это работает только в однопоточных системах без какой-либо конкуретности, поскольку это изменяет глобальное состояние интерпретатора.
- Параметры:
-
- charset (str) – кодировка символов для входных и выходных данных.
- env (Mapping[str, str | None] | None) – словарь с переменными окружения для переопределения.
-
echo_stdin (bool) – если это установлено в
True, то чтение из stdin записывается в stdout. Это полезно для демонстрации примеров в некоторых случаях. Обратите внимание, что обычные запросы будут автоматически выводить ввод. -
mix_stderr (bool) – если это установлено в
False, то stdout и stderr сохраняются как независимые потоки. Это полезно для приложений с философией Unix, у которых есть предсказуемый stdout и шумный stderr, так что каждый из них может быть измерен независимо.
-
get_default_prog_name(cli) -
Для данного объекта команды возвращает имя программы по умолчанию для нее. По умолчанию используется значение атрибута
nameили"root", если он не задан.- Параметры:
-
cli (BaseCommand) –
- Тип возвращаемого значения:
-
make_env(overrides=None) -
Возвращает переопределения окружения для вызова скрипта.
-
isolation(input=None, env=None, color=False) -
Менеджер контекста, который настраивает изоляцию для вызова утилиты командной строки. Это настраивает stdin с заданными входными данными и
os.environс переопределениями из заданного словаря. Это также перепривязывает некоторые внутренние компоненты в Click для имитации (например, функциональность запроса).Это делается автоматически в методе
invoke().- Параметры:
- Тип возвращаемого значения:
Журнал изменений
Изменено в версии 8.0:
stderrоткрывается сerrors="backslashreplace"вместо значения по умолчанию"strict".Изменено в версии 4.0: Добавлен параметр
color.
-
invoke(cli, args=None, input=None, env=None, catch_exceptions=True, color=False, **extra) -
Вызывает команду в изолированной среде. Аргументы передаются непосредственно скрипту командной строки, а ключевые аргументы
extraпередаются функцииmain()команды.Это возвращает объект
Result.- Параметры:
-
- cli (BaseCommand) – вызываемая команда
-
args (Sequence[str] | str | None) – аргументы вызова. Может быть передан как итерируемый объект или строка. При передаче в виде строки будет интерпретироваться как команда оболочки Unix. Дополнительные сведения см. в
shlex.split(). -
input (str | bytes | IO[Any] | None) – входные данные для
sys.stdin. - env (Mapping[str, str | None] | None) – переопределения окружения.
-
catch_exceptions (bool) – ловить ли любые исключения кроме
SystemExit. -
extra (Any) – ключевые аргументы для передачи в
main(). - color (bool) – использовать ли цвет в выводе. Приложение всё ещё может явно переопределить это.
- Тип возвращаемого значения:
Журнал изменений
Изменено в версии 8.0: У объекта результата есть атрибут
return_valueсо значением, возвращённым вызываемой командой.Изменено в версии 4.0: Добавлен параметр
color.Изменено в версии 3.0: Добавлен параметр
catch_exceptions.Изменено в версии 3.0: У объекта результата есть атрибут
exc_infoсо стеком отладки, если он доступен.
-
isolated_filesystem(temp_dir=None) -
Менеджер контекста, создающий временную директорию и меняющий текущую рабочую директорию на неё. Это изолирует тесты, влияющие на содержимое текущей рабочей директории, предотвращая их взаимное влияние.
- Параметры:
-
temp_dir (str | PathLike[str] | None) – Создать временную директорию в этой директории. Если указано, созданная директория не удаляется при выходе.
- Тип возвращаемого значения:
Журнал изменений
Изменено в версии 8.0: Добавлен параметр
temp_dir.
-
-
class click.testing.Result(runner, stdout_bytes, stderr_bytes, return_value, exit_code, exception, exc_info=None) -
Содержит захваченный результат вызываемого CLI скрипта.
- Параметры:
-
- runner (CliRunner) –
- stdout_bytes (bytes) –
- stderr_bytes (bytes | None) –
- return_value (Any) –
- exit_code (int) –
- exception (BaseException | None) –
- exc_info (Tuple[Type[BaseException], BaseException, TracebackType] | None) –
-
runner -
Запустивший результат runner
-
stdout_bytes -
Стандартный вывод в виде байтов.
-
stderr_bytes -
Стандартная ошибка в виде байтов, или None, если недоступна
-
return_value -
Значение, возвращённое вызываемой командой.
Журнал изменений
Новое в версии 8.0.
-
exit_code -
Код выхода в виде целого числа.
-
exception -
Исключение, которое произошло, если таковое имелось.
-
exc_info -
Трекбэк
-
property output: str -
Стандартный вывод в виде строкового значения Юникод.
-
property stdout: str -
Стандартный вывод в виде строкового значения Юникод.
-
property stderr: str -
Стандартная ошибка в виде строкового значения Юникод.
© Copyright 2014 Pallets.
Licensed under the BSD 3-Clause License.
We are not supported nor endorsed by Pallets.
https://click.palletsprojects.com/en/8.1.x/api/