更改 — 单击文档
来自菜鸟教程
Click/docs/8.0.x/changes
变化
版本 8.0.3
2021-10-10 发布
- 修复
Path(resolve_path=True)
类型创建无效路径的问题。 :问题:`2088` - 导入
readline
不会导致按退格键时confirm()
提示消失。 :问题:`2092` invoke()
注入的任何默认值都将转换为相应参数的类型。 :问题:`2089, 2090`
版本 8.0.2
发布 2021-10-08
- 如果
is_flag
为False
,则is_bool_flag
不会设置为True
。 :问题:`1925` - Bash 版本检测与区域设置无关。 :问题:`1940`
multiple=True
不显示空default
值。 :问题:`1969`- 修复以正斜杠开头的参数的 shell 完成,例如绝对文件路径。 :问题:`1929`
Path
类型与resolve_path=True
将相对符号链接解析为相对于包含目录。 :问题:`1921`- Completion 在退出时不会跳过 Python 的资源清理,避免了一些意外的警告输出。 :issue:`1738, 2017`
- 修复
prompt
函数中type
参数的类型注释。 :问题:`2062` - 修复添加下划线时错误添加的上划线和斜体样式。 :pr:`2058`
- 带有
count=True
的选项不会在帮助文本中显示“[x>=0]”。 :问题:`2072` - 在处理过程中,默认值不会两次转换为参数类型。 :问题:`2085`
- 带有
multiple
和flag_value
的选项使用标志值而不是保留内部占位符。 :问题:`2001`
版本 8.0.1
发布 2021-05-19
- 将顶级名称标记为导出,以便类型检查理解用户项目中的导入。 :问题:`1879`
- 将
Context.obj
注释为Any
,因此类型检查允许对任意对象进行所有操作。 :问题:`1885` - 修复一些在 Python 3.6.0 中不可用的类型。 :问题:`1882`
- 修复迭代
ProgressBar
对象的类型检查。 :问题:`1892` - 这
importlib_metadata
backport 包安装在 Python < 3.8 上。 :问题:`1889` - 如果没有给出命令行值,带有
nargs=-1
的参数仅使用 env var 值。 :问题:`1903` - 如果给定,标志选项从
flag_value
猜测它们的类型,就像常规选项从default
做的那样。 :问题:`1886` - 添加了自定义参数类型除了字符串之外还可以传递已经有效值的文档。 :问题:`1898`
- 解析命令返回给定的名称,而不是
command.name
,修复了帮助文本和default_map
查找的意外更改。 使用AliasedGroup
等模式时,覆盖resolve_command
以更改返回的名称(如果需要)。 :问题:`1895` - 如果默认值无效,它不会阻止显示帮助文本。 :问题:`1889`
- 在调用主命令时传递
windows_expand_args=False
以禁用 Windows 上的模式扩展。 无法在 CMD 中转义模式,因此如果程序需要按原样传递它们,则必须禁用扩展。 :问题:`1901`
版本 8.0.0
发布 2021-05-11
- 放弃对 Python 2 和 3.5 的支持。
- Colorama 始终安装在 Windows 上以提供样式和颜色支持。 :pr:`1784`
- 向 Command 添加一个 repr,显示命令名称以进行更友好的调试。 :issue:`1267`, :pr:`1295`
- 添加对区分命令行参数来源的支持。 :issue:`1264`, :pr:`1329`
- 在
ProgressBar.update
中增加一个可选参数来设置current_item
。 :issue:`1226`, :pr:`1332` version_option
使用importlib.metadata
(或importlib_metadata
向后移植)而不是pkg_resources
。 版本是根据包名称检测的,而不是入口点名称。 Python 包名称必须与已安装的包名称匹配,或者使用package_name=
传递。 :问题:`1582`- 如果提示
hide_input=True
的验证失败,则错误消息中不会显示该值。 :问题:`1460` IntRange
或FloatRange
选项在其帮助文本中显示可接受的范围。 :issue:`1525`, :pr:`1303`IntRange
和FloatRange
边界可以通过设置min_open
和max_open
来打开(<
)而不是关闭(<=
) ]。 错误消息已更改以反映这一点。 :问题:`1100`- 使用重复标志名称 (
"--foo/--foo"
) 定义的选项会引发ValueError
。 :问题:`1465` echo()
在 Windows 上使用 pytest 的capsys
装置时不会失败。 :问题:`1590`- 解析命令返回规范命令名称而不是匹配的名称。 这使得在使用
AliasedGroup
等模式时,帮助文本和Context.invoked_subcommand
等行为保持一致。 :问题:`1422` BOOL
类型接受值“on”和“off”。 :问题:`1629`- 带有
invoke_without_command=True
的Group
将始终调用其结果回调。 :问题:`1178` nargs == -1
和nargs > 1
被解析和验证来自环境变量和默认值的值。 :问题:`729`- 使用
python -m name
执行模块或包时检测程序名称。 :问题:`1603` - 在子命令的帮助概要中包含必需的父参数。 :问题:`1475`
show_default=True
布尔标志的帮助显示标志名称而不是True
或False
。 :问题:`1538`- 传递给
style()
和secho()
的非字符串对象将被转换为字符串。 :pr:`1146` edit(require_save=True)
将检测在文件系统上以 1 秒分辨率快速退出的编辑器的保存。 :pr:`1050`- 新的类属性使在整个应用程序中使用自定义核心对象变得更加容易。 :pr:`938`
Command.context_class
控制运行命令时创建的上下文。Context.invoke
创建相同类型的新上下文,因此自定义类型将持续调用子命令。Context.formatter_class
控制用于生成帮助和用法的格式化程序。Group.command_class
使用@group.command()
更改子命令的默认类型。Group.group_class
使用@group.group()
更改子组的默认类型。 将其设置为type
将创建与组本身类型相同的子组。- 核心对象始终使用
super()
以更好地支持子类化。
- 使用
Context.with_resource()
管理通常在with
语句中使用的资源,允许它们跨子命令和回调使用,然后在上下文结束时清除。 :pr:`1191` - 测试运行器的
invoke()
方法返回的结果对象具有return_value
属性,其值由调用的命令返回。 :pr:`1312` Choice
类型的必需参数显示大括号中的选项,以指示需要一个选项 ({a|b|c}
)。 :问题:`1272`- 如果仅将名称传递给
option()
,则 Click 建议将其重命名为--name
。 :pr:`1355` - 上下文的
show_default
参数默认为来自父上下文的值。 :问题:`1565` click.style()
可以输出256和RGB色码。 大多数现代终端都支持这些代码。 :pr:`1429`- 使用
CliRunner.invoke()
时,替换后的stdin
文件具有name
和mode
属性。 这让File
选项与-
值匹配非测试行为。 :问题:`1064` - 创建
Group
时,允许传递命令列表而不是 dict。 :问题:`1339` - 当长选项名称无效时,使用
difflib
为可能的更正提供更好的建议。 :问题:`1446` - 核心对象有一个
to_info_dict()
方法。 这会收集有关对象结构的信息,这些信息可能对生成面向用户的文档的工具有用。 要获得整个 CLI 的结构,请使用Context(cli).to_info_dict()
。 :问题:`461` - 重新设计外壳补全系统。 :issue:`1484`, :pr:`1622`
- 支持 Bash >= 4.4、Zsh 和 Fish,具有扩展功能以添加对其他 shell 的支持。
- 允许命令、组、参数和类型覆盖其完成建议。
- 组完成注册命令的名称,这可能与创建它们的名称不同。
- 选项和参数的
autocompletion
参数重命名为shell_complete
。 该函数必须采用ctx, param, incomplete
,必须进行匹配而不是返回所有值,并且必须返回字符串列表或CompletionItem
列表。 旧名称和行为已弃用,并将在 8.1 中删除。 - 用于开始完成的 env var 值已更改顺序。 现在 shell 先出现,例如
{shell}_source
而不是source_{shell}
,并且始终是必需的。
- 完成正确解析带有不完整引用或转义序列的命令行字符串。 :问题:`1708`
- 额外的上下文设置(
obj=...
等)被传递到完成系统。 :问题:`942` - 在完成中包含
--help
选项。 :pr:`1504` ParameterSource
是enum.Enum
子类。 :问题:`1530`- Boolean 和 UUID 类型在转换之前剥离周围的空间。 :问题:`1605`
- 调整了来自参数类型验证的错误消息,使其更加一致。 引号用于区分无效值。 :问题:`1605`
nargs
> 1 和multiple=True
参数的默认值必须是元组列表。 :问题:`1649`- 获取参数值时,会在与其他来源相同的部分中尝试默认值,以确保处理一致。 :问题:`1649`
- 所有参数类型都接受一个已经是正确类型的值。 :问题:`1649`
- 对于 shell 补全,如果一个参数的值不是来自命令行参数,则该参数被认为是不完整的。 :问题:`1649`
- 添加了
ParameterSource.PROMPT
以跟踪提示的参数值。 :问题:`1649` - 如果未给出默认值,
nargs
> 1 的选项不再引发错误。nargs
> 1 的参数默认为None
,multiple=True
或nargs=-1
的参数默认为空元组。 :问题:`472` - 处理空的 env vars,就好像没有传递选项一样。 这将 7.1 中引入的更改扩展到在更多情况下保持一致。 :问题:`1285`
Parameter.get_default()
检查Context.default_map
以一致地处理帮助文本、invoke()
和提示中的覆盖。 :问题:`1548`- 将
prompt_required
参数添加到Option
。 当设置为False
时,只有在未传递任何值时才会提示用户输入。 :问题:`736` - 可以通过
is_flag=False
将值提供给选项是可选的,并且该值可以被提示输入或作为默认值传入。 :问题:`549、736、764、921、1015、1618` - 修复
Command.options_metavar
为空时的格式。 :pr:`1551` - 恢复在换行的选项帮助文本之间添加空格。 :问题:`1831`
- 传递给
prompt
的默认值将被转换为正确的类型,就像输入值一样。 :pr:`1517` - 自动生成的简短帮助消息将在短语或双换行符的第一个结尾处停止。 :问题:`1082`
- 通过设置
update_min_steps
,跳过进度条渲染步骤以使用非常快的迭代器提高效率。 :问题:`676` - 在为
Choice
执行 shell 补全时尊重case_sensitive=False
:问题:`1692` - 在寻呼机实现中使用
mkstemp()
代替mktemp()
。 :问题:`1752` Option.show_default
为字符串时,即使default
为None
也显示。 :问题:`1732`click.get_terminal_size()
已弃用,将在 8.1 中删除。 请改用shutil.get_terminal_size()
。 :问题:`1736`- 通过传递
temp_dir
来控制CLIRunner.isolated_filesystem
创建的临时目录的位置。 自定义目录不会自动删除。 :问题:`395` - 如果用
default=None
调用,click.confirm()
将提示直到给出输入。 :问题:`1381` - 除了类型之外,选项提示还使用选项的回调来验证值。 :问题:`457`
confirmation_prompt
可以设置为自定义字符串。 :问题:`723`- 在 Windows 上的 Jupyter 中允许样式输出。 :问题:`1271`
style()
支持strikethrough
、italic
和overline
样式。 :问题:`805, 1821`- 从简短的帮助文本中删除了多行标记。 :问题:`1597`
- 如果文件不是 TTY,则恢复仅回显标签的进度条行为。 :问题:`1138`
- 即使执行时间小于 0.5 秒,也会显示进度条输出。 :问题:`1648`
- 进度条
item_show_func
显示当前项目,而不是上一个项目。 :问题:`1353` Path
参数类型可以通过path_type=pathlib.Path
返回路径对象而不是字符串。 :问题:`405`TypeError
当参数multiple=True
或nargs > 1
具有不可迭代的默认值时引发。 :问题:`1749`- 添加
pass_meta_key
装饰器,用于从Context.meta
传递密钥。 这对于使用meta
存储信息的扩展很有用。 :问题:`1739` Path
resolve_path
resolves symlinks on Windows Python < 3.8. :问题:`1813`- 命令弃用通知出现在帮助文本的开头以及简短的帮助中。 该通知并非全部大写。 :问题:`1791`
- 在 Windows 上从
sys.argv
获取参数时,glob 模式、用户目录和环境变量被扩展。 :问题:`1096` - 用
gettext()
标记 CLI 显示的消息,以允许应用程序翻译 Click 的内置字符串。 :问题:`303` - 使用测试运行器时将无效字符写入
stderr
不会引发UnicodeEncodeError
。 :问题:`848` - 修复了在按下退格键时
readline
将清除整个prompt()
行而不是仅输入的问题。 :问题:`665` - 将所有传递给
Context.invoke()
的 kwargs 添加到ctx.params
。 修复了嵌套Context.forward()
调用时的不一致问题。 :问题:`1568` MultiCommand.resultcallback
装饰器重命名为result_callback
。 旧名称已弃用。 :问题:`1160`- 修复使用
echo_stdin=True
时CliRunner
输出的问题。 :问题:`1101` - 修复
click.utils.make_default_short_help
返回字符串可能与max_width + 3
一样长的问题。 :问题:`1849` - 定义参数时,
default
与multiple
和nargs
一起验证。 还对正在处理的值进行了更多验证。 :问题:`1806` HelpFormatter.write_text
换行时使用全线宽。 :问题:`1871`
版本 7.1.2
发布 2020-04-27
- 恢复将 shell 引用应用于
echo_with_pager
和edit
的命令。 这旨在允许命令中有空格,但如果字符串实际上是命令和参数,或在 Windows 上,则会导致问题。 相反,必须手动引用该字符串,因为它应该出现在命令行中。 :问题:`1514`
7.1 版
发布 2020-03-09
- 修复 PyPI 包名,“click”再次小写。
- 修复
unicode_literals
错误消息中的链接。 :pr:`1151` - 在 UNIX Jupyter 笔记本上添加对彩色输出的支持。 :问题:`1185`
- 剥离 ANSI 控件的操作将剥离光标隐藏/显示序列。 :问题:`1216`
- 移除
bytes
未使用的兼容垫片。 :pr:`1195` - 围绕 termui 展开测试,尤其是 Windows 上的 getchar。 :问题:`1116`
- 修复使用 MSVC 14 构建的 Windows Python 2.7 上的输出。 :pr:`1342`
- 在 MSYS2 中运行时修复
OSError
。 :问题:`1338` - 在 Windows 上重定向到
NUL
流时修复OSError
。 :问题:`1065` - 在 Windows 上解析 Unicode 参数时修复内存泄漏。 :问题:`1136`
- 修复新 AppEngine 环境中的错误。 :问题:`1462`
- 始终为
click.Choice
返回传递的选项之一:issue:`1277`, :pr:`1318` - 将
no_args_is_help
选项添加到click.Command
,默认为 False :pr:`1167` - 将
show_default
参数添加到Context
以启用全局显示默认值。 :问题:`1018` - 处理
env MYPATH=
就好像选项没有通过一样。 :问题:`1196` - 再次可以在活动进度条实例上调用
next(bar)
。 :问题:`1125` open_file
和atomic=True
保留现有文件的权限并尊重新文件的当前 umask。 :问题:`1376`- 当使用测试
CliRunner
和mix_stderr=False
时,如果result.stderr
为空,则不会引发ValueError
。 :问题:`1193` - 从
CliRunner.invoke
中删除未使用的mix_stderr
参数。 :问题:`1435` - 修复
TypeError
在使用 bool 标志并指定type=bool
时引发的问题。 :问题:`1287` - 选项帮助文本中的换行符在重新换行之前用空格替换以避免不均匀的换行符。 :问题:`834`
MissingParameter
异常可在 Python 解释器中打印。 :问题:`1139`- 修复在提示期间如何显示文件类型选项的默认值。 :问题:`914`
- 修复包含
-
的命令的环境变量自动生成。 :问题:`1253` - 选项帮助文本在重新换行时用空格替换换行符,但保留分段符,修复多行格式。 :问题:`834、1066、1397`
- 换行的选项帮助文本在末尾添加了一个额外的换行符,以将其与下一个选项区分开来。 :问题:`1075`
- 在确定用于
click.edit()
的编辑器时,请考虑sensible-editor
。 :pr:`1469` - 系统调用的参数(例如传递给
click.edit
的可执行路径)可以包含空格。 :pr:`1470` - 添加 ZSH 完成自动加载和错误处理。 :问题:`1348`
- 为
Command
、Group
、Option
和Argument
添加一个repr,显示更友好调试的名称。 :问题:`1267` - 如果值在
--
分隔符后以-
开头,则完成不考虑选项名称。 :问题:`1247` - ZSH 完成转义值中的特殊字符。 :pr:`1418`
- 添加对 Fish shell 的完成支持。 :pr:`1423`
- 在更多情况下,解码字节选项值回退到 UTF-8。 :pr:`1468`
- 使有关旧的 2-arg 参数回调的警告成为弃用警告,将在 8.0 中删除。 这是自 Click 2.0 以来的警告。 :pr:`1492`
- 调整错误消息以标准化所使用的引号类型,使其与来自 Python 的错误消息匹配。
版本 7.0
发布 2018-09-25
- 放弃对 Python 2.6 和 3.3 的支持。 :pr:`967, 976`
- 包裹
click.Choice
丢失的消息。 :issue:`202`, :pr:`1000` - 添加本机 ZSH 自动完成支持。 :issue:`323`, :pr:`865`
- 记录未从 Python 2 中的字节数组解析 ANSI 颜色信息。 :问题:`334`
- 记录
CliRunner
的字节剥离行为。 :issue:`334`, :pr:`1010` - 使用错误现在提示
--help
选项。 :issue:`393`, :pr:`557` - 实现流式寻呼机。 :issue:`409`, :pr:`889`
- 将条形格式提取到它自己的方法。 :pr:`414`
- 添加
DateTime
类型以转换给定日期时间格式的输入。 :pr:`423` secho
的第一个参数现在可以是None
,就像在echo
中一样。 :pr:`424`- 修复
ProgressBar.make_step
中的ZeroDivisionError
,当传递给ProgressBar.update
的第一次调用的参数为 0 时。 :issue:`447`, :pr:`1012` - 仅当总执行时间可见时才显示进度条。 :pr:`487`
- 添加了从帮助中隐藏命令和选项的功能。 :pr:`500`
- 记录选项可以是
required=True
。 :issue:`514`, :pr:`1022` - 对
Context.exit
的非独立调用返回退出代码,而不是调用sys.exit
。 :issue:`667`, :pr:`533, 1098` click.getchar()
在 Windows 上的 Python 3 中返回 Unicode,与其他平台一致。 :问题:`537, 821, 822, 1088`, :pr:`1108`- 添加了
FloatRange
类型。 :pr:`538, 553` - 为
Options
和Arguments
添加了对type=click.Choice
的 bash 补全的支持。 :issue:`535`, :pr:`681` Argument
参数声明只允许一个位置参数。 :issue:`568, 574`, :pr:`1014`- 添加
case_sensitive=False
作为选项的选项。 :问题:`569` click.getchar()
在 Linux 上的“^C”上正确提升KeyboardInterrupt
,在“^D”上正确提升EOFError
。 :issue:`583`, :pr:`1115`- 修复 Linux 上
click.getchar(echo=True)
的编码问题。 :pr:`1115` param_hint
中的错误现在源自参数本身。 :issue:`598, 704`, :pr:`709`- 添加一个测试,以确保当一个参数被格式化为使用错误时,使用它的元变量,而不是它的名称。 :pr:`612`
- 允许在
CliRunner.invoke
中将prog_name
设置为额外。 :issue:`616`, :pr:`999` - 从文档字符串中提取的帮助文本在
\f
换页符处截断,这对于隐藏 Sphinx 样式的参数文档很有用。 :pr:`629, 1091` launch
现在可以在 Cygwin 下正常工作。 :pr:`650`- 迭代后更新进度。 :issue:`651`, :pr:`706`
CliRunner.invoke
现在可以接收args
作为代表 Unix shell 命令的字符串。 :pr:`664`- 使
Argument.make_metavar()
默认输入元变量。 :pr:`675` - 添加
ignore_unknown_options
的文档。 :pr:`684` - 为
click.style
添加亮色支持,并修复参数fg
和bg
的重置选项。 :issue:`703`, :pr:`809` - 添加
show_envvar
用于在帮助中显示环境变量。 :pr:`710` - 当 stdout 或 stderr 是封闭管道时,在解释器关闭期间避免
BrokenPipeError
。 :issue:`712`, :pr:`1106` - 记录自定义选项名称。 :issue:`725`, :pr:`1016`
- 在不支持它的 Python 解释器上禁用
sys._getframes()
。 :pr:`728` - 修复了使用
None
调用sys.exit
时测试运行器中的错误。 :pr:`739` - 澄清有关命令行选项的文档。 :issue:`741`, :pr:`1003`
- 修复 Windows 控制台崩溃。 :问题:`744`
- 修复导致 bash 完成对链式命令不正确完成的错误。 :issue:`754`, :pr:`774`
- 添加了对来自用户提供的回调的动态 bash 完成的支持。 :pr:`755`
- 添加了对包含空格的 bash 补全的支持。 :pr:`773`
- 允许自动完成功能确定是否返回以不完整参数开头的完成。 :issue:`790`, :pr:`806`
- 修复选项命名例程以匹配文档并具有确定性。 :issue:`793`, :pr:`794`
- 修复路径验证错误。 :issue:`795`, :pr:`1020`
- 添加
Option
命名的测试和文档:功能。 :pr:`799` - 更新文档以匹配
path_type
的 arg 名称。 :pr:`801` - 添加了原始字符串,以便发生正确的转义。 :pr:`807`
- 修复 Windows 上
click.echo
的 16k 字符限制。 :issue:`816`, :pr:`819` - 在 Windows 7 上写入二进制流时克服 64k 字符限制。 :issue:`825`, :pr:`830`
- 为“t”和“f”添加布尔转换。 :pr:`842`
NoSuchOption
错误采用ctx
以便在错误输出中打印--help
提示。 :pr:`860`- 修复了 2.x 和 3.x 上关于 Unicode 的 Click 错误消息的行为。 Message 现在始终是 Unicode,并且 str 和 Unicode 特殊方法在该平台上按您的预期工作。 :问题:`862`
- 进度条现在默认使用 stderr。 :pr:`863`
- 添加对自动完成文档的支持。 :issue:`866`, :pr:`869`
- 允许
CliRunner
将 stdout 和 stderr 分开。 :pr:`868` - 修复变量优先级。 :issue:`873`, :pr:`874`
- 修复无效的转义序列。 :pr:`877`
- 修复在某些测试中出现的
ResourceWarning
。 :pr:`878` - 检测错误配置的区域设置时,如果
locale
命令失败,请不要失败。 :pr:`880` - 将
case_sensitive=False
作为选项添加到Choice
类型。 :pr:`887` - 强制 stdout/stderr 可写。 这可以解决像 Jupyter 这样的标准流打补丁严重的问题。 :pr:`918`
- 修复最后一个参数 后子命令选项的完成:问题:`919`,:pr:`930`
_AtomicFile
现在使用原始文件名的realpath
,因此更改工作目录不会影响它。 :pr:`920`- 修复存在默认值时不正确的补全 :issue:`925`, :pr:`930`
- 添加复制选项 attrs 以便可以重用自定义类。 :issue:`926`, :pr:`994`
- 当文件为
"-"
时,“x”和“a”文件模式现在使用标准输出。 :pr:`929` - 修复
__all__
列表中缺少的逗号。 :pr:`935` - 阐明参数的命名方式。 :issue:`949`, :pr:`1009`
- Stdout 现在自动设置为非阻塞。 :pr:`954`
- 不要设置选项两次。 :pr:`962`
- 移动
fcntl
导入。 :pr:`965` - 修复 Google App Engine
ImportError
。 :pr:`995` - 更好地处理动态默认选项值的帮助文本。 :pr:`996`
- 修复
get_winter_size()
使其正确返回(0,0)
。 :pr:`997` - 添加测试用例检查自定义参数类型。 :pr:`1001`
- 允许使用短宽度来解决 cmd 格式问题。 :pr:`1002`
- 添加有关 Python 版本支持的详细信息。 :pr:`1004`
- 向命令添加了弃用标志。 :pr:`1005`
- 修复了
fd
未定义的问题。 :pr:`1007` - 修复格式以获取简短帮助。 :pr:`1008`
- 记录
auto_envvar_prefix
如何与命令组一起工作。 :pr:`1011` - 默认情况下不要为进度条添加换行符。 :pr:`1013`
- 使用 Python 排序顺序进行 ZSH 补全。 :issue:`1047`, :pr:`1059`
- 记录参数名称默认转换为小写。 :pr:`1055`
- 由函数命名的子命令现在自动将下划线替换为破折号。 如果您注册一个名为
my_command
的函数,它会在命令行界面中变成my-command
。 - 在完成时隐藏隐藏的命令和选项。 :issue:`1058`, :pr:`1061`
- 修复绝对导入阻止 Click 被供应到 Windows 上的项目。 :issue:`1068`, :pr:`1069`
- 修复小写
auto_envvar_prefix
不会转换为大写的问题。 :pr:`1105`
版本 6.7
发布 2017-01-06
- 使
click.progressbar
与codecs.open
文件一起工作。 :pr:`637` - 使用嵌套子命令修复 bash 完成中的错误。 :pr:`639`
- 修复测试运行器没有正确保存调用者环境。 :pr:`644`
- 修复 SIGPIPE 的处理。 :pr:`62`
- 处理损坏的 Windows 环境,例如 Google App Engine。 :问题:`711`
版本 6.3
发布 2016-02-22
- 在 Windows 上使用
-m
和-c
修复解释器调用的参数检查。 - 修复了在 Python 3 上导致区域设置检测出错的错误。
版本 6.2
发布 2015-11-27
- 正确修复隐藏的进度条。
版本 6.1
发布 2015-11-27
- 解决了不可见进度条不再呈现的问题。
- 禁用带有子命令的链命令,因为它们本身就已损坏。
- 修复
MissingParameter
在没有传递参数的情况下无法工作。
版本 6.0
2015-11-24 发布,代号“pow pow”
- 优化进度条渲染,当它没有实际改变时不渲染。
- 使用设置的默认值明确禁止
nargs=-1
。 - 上下文现在在从堆栈中弹出之前关闭。
- 添加了对切换时 false 标志的短别名的支持。
- Click 现在将尝试通过在操作系统的帮助下列出可用的语言环境来帮助您更好地调试语言环境错误。
- 单击用于在某些单元测试情况下返回 Python 2 上的字节字符串。 这已被修复,现在可以正确返回 unicode 字符串。
- 对于使用 Python 2 的 Windows 用户,Click 现在可以更正确地处理来自系统的 Unicode。 这也有一个令人失望的副作用,即默认情况下,
Path
类型的文件名现在将始终为 unicode,这意味着这可能会为不知道这一点的代码引入小错误。 - 将
type
参数添加到Path
以强制对值使用特定的字符串类型。 - 对于在 Windows 上运行 Python 的用户,
echo
和prompt
函数现在通过模拟输出流在 Python Windows 控制台中使用完整的 unicode 功能。 这也适用于通过click.get_text_stream(...)
获取虚拟输出和输入流。 - 单元测试现在总是强制一定的虚拟终端宽度。
- 添加了允许破折号将标准流指示为
Path
类型的支持。 - 链模式下的多命令不再将解析剩下的参数传播到回调。 如果启用链模式,当可选参数附加到多命令时,现在也不允许通过异常。
- 放宽限制,不允许链式命令将其他链式命令作为子命令。
- 现在可以实现具有正 nargs 的参数的默认值。 以前,此配置通常会导致返回稍微意外的值。
版本 5.1
发布 2015-08-17
- 修复
pass_obj
中会意外传递上下文的错误。
5.0 版
2015-08-16 发布,代号“tok tok”
- 删除了各种已弃用的功能。
- 原子文件现在只接受
w
模式。 - 对于很长的命令,更改帮助输出的使用部分,将它们的参数包装到下一行,缩进 4 个空格。
- 修复使用
CliRunner
时返回代码和错误消息不正确的错误。 - 添加了
get_current_context
。 - 向上下文添加了
meta
字典,该字典在上下文链接列表中共享,以允许单击实用程序将状态放置在那里。 - 介绍了
Context.scope
。 echo
函数现在是线程安全的:它只调用底层对象的write
方法一次。prompt(hide_input=True)
现在在^C
上打印一个换行符。- 如果用户正在使用
unicode_literals
,单击现在将发出警告。 - 如果
PAGER
环境变量为空或仅包含空格,则 Click 现在将忽略该环境变量。 click-contrib
GitHub 组织已创建。
版本 4.1
发布 2015-07-14
- 修复错误消息将包含尾随
None
字符串的错误。 - 修复了一个错误,即 Click 会在带有尾随换行符的文档字符串上崩溃。
- 支持在 Python 3 上将编码设置为
None
的流,因为它会出现更好的错误。 - 在 less-pager 中正确处理 ^C。
- 处理
None
从sys.getfilesystemencoding
的返回值 - 修复使用
click.echo
写入 unicode 文件时崩溃的问题。 - 使用多个选项修复类型推断。
版本 4.0
2015-03-31 发布,代号“zoom zoom”
- 为大量直接或间接调用回显的接口添加了
color
参数。 这以前总是自动检测(echo_via_pager
功能除外)。 现在您可以强制启用或禁用它,覆盖 Click 的自动检测。 - 添加了
UNPROCESSED
类型,该类型不执行任何类型更改,从而在某些特殊的高级用例中简化了 2.x / 3.x 上的文本处理。 - 添加了
NoSuchOption
和BadOptionUsage
异常,用于更通用的错误处理。 - 添加了对处理未处理选项的支持,这在参数被转发到底层工具的情况下很有用。
- 在上下文中添加了
max_content_width
参数,可用于更改帮助输出的最大宽度。 默认情况下,Click 不会格式化超过 80 个字符宽度的内容。 - 添加了对向 stderr 写入提示的支持。
- 修复显示多个参数的默认值时的错误。
- 添加了对
option
和argument
的自定义子类的支持。 - 修复安装 colorama 时 Windows 上
clear()
中的错误。 - 正确拒绝
nargs=-1
选项。 选项不能是可变参数。 - 修复了 bash 补全对于非 ASCII 字符或破折号的命令无法正常工作的问题。
- 添加了一种手动更新进度条的方法。
- 更改了缺失参数的格式。 以前内部参数名称显示在错误消息中,现在如果传递则显示元变量。 如果选择了自动元变量,首先会去除额外的格式。
版本 3.3
发布 2014-09-08
- 修复了在 Python 3 上报告无效命令转发错误的问题。
版本 3.2
发布 2014-08-22
- 添加了缺少的
err
参数转发到secho
功能。 - 修复了上下文调用方法未正确处理的默认参数。 如果函数使用不当,这是向后不兼容的更改。 有关详细信息,请参阅 升级到 3.2。
- 大幅移除了
invoked_subcommands
属性。 由于解析的工作方式,无法使其无错误地工作,因此该 API 已被弃用。 有关详细信息,请参阅 升级到 3.2。 - 恢复了
invoked_subcommand
的功能,该功能在 3.1 中作为回归被破坏。
版本 3.1
发布 2014-08-13
- 修复了导致在调用父命令之前创建子命令上下文的回归,这是早期 Click 版本的回归。
版本 3.0
2014-08-12 发布,代号“clonk clonk”
- 格式化程序现在不再尝试适应小于 50 个字符的终端。 如果发生这种情况,它只是假设一个最小的宽度。
- 在测试系统中添加了一种不吞下异常的方法。
- 添加了对带有寻呼机的颜色的更好支持以及覆盖自动检测的方法。
- CLI 运行程序的结果对象现在附加了回溯。
- 改进了自动简短帮助检测,以更好地处理不终止句子的点。
- 现在在定义没有实际有效选项字符串的选项时,Click 将给出错误消息而不是静默传递。 这应该会捕获用户想要创建参数而不是选项的情况。
- 内部重组 Click 以支持销售。
- 添加了对多命令链接的支持。
- 添加了对
multiple
选项的默认值以及nargs != 1
选项和参数的支持。 - 传递给
progressbar
的标签不再呈现为去除空白。 - 添加了一种在 Click 命令上禁用
main
方法的独立模式的方法,以便能够更好地处理错误。 - 添加了对从命令回调返回值的支持。
- 添加了从
echo
打印到 stderr 的简化。 - 为组添加了结果回调。
- 多次进入上下文会推迟清理直到最后一次退出。
- 添加了
open_file
。
版本 2.6
发布 2014-08-11
- 修复了 Python 3 上的包装流会报告不正确的可查找值的问题。
版本 2.5
发布 2014-07-28
- 修复了 Python 3 上文本换行的错误。
版本 2.4
发布 2014-07-04
- 更正了 2.3 中帮助选项更改中的错误。
版本 2.3
发布 2014-07-03
- 修复了计数选项的格式错误的帮助记录。
- 如果 colorama 不可用,则在 Windows 上添加对 ansi 代码剥离的支持。
- 恢复了 Click 1.0 处理某些边缘情况的帮助参数。
版本 2.2
发布 2014-06-26
- 修复了 PyPy 上的 tty 检测。
- 修复了进入上下文管理器时未呈现进度条的问题。
版本 2.1
发布 2014-06-14
- 修复了 Windows 上的 launch() 函数。
- 改进了 Windows 上的 colorama 支持,以便在应用程序中断时尽量不搞砸控制台。
- 修复了 Windows 终端错误地报告为 80 个字符而不是 79 个字符的问题
- 如果可用,请使用 colorama win32 绑定来获取 Windows 终端的正确尺寸。
- 修复了 Python 3 上自定义函数类型的问题。
- 修复了错误消息中错误报告未知选项的问题。
2.0版
2014-06-06 发布,代号“tap tap tap”
- 添加了对以二进制模式在 Windows 上正确打开 stdin/stdout 的支持。
- 通过临时文件添加了对文件原子写入的支持。
- 引入了 BadParameter,它可用于轻松地使用与类型系统中相同的错误消息执行自定义验证。
- 添加了 progressbar(); 显示进度条的功能。
- 添加 get_app_dir(); 计算配置的主文件夹的函数。
- 通过
colorama
将 ANSI 代码的透明处理添加到 echo() 函数中。 - 添加了 clear() 函数。
- 重大变化:参数回调现在获取作为第二个参数传递的参数对象。 旧回调有遗留支持,它会发出警告但仍会执行脚本。
- 为 ANSI 样式添加了 style()、unstyle() 和 secho()。
- 添加了调用默认编辑器的 edit() 函数。
- 添加了启动浏览器和应用程序的 launch() 函数。
- 现在可以通过 required 标志将参数的 -1 的 Nargs 强制为单个项目。 它默认为不需要。
- 现在为参数设置默认值使其不再需要。
- 将确认提示中的“yN”/“Yn”更改为“y/N”和“Y/n”。
- 添加了对 bash 完成的基本支持。
- 添加了 getchar() 以从终端获取单个字符。
- 错误现在按预期转到 stderr。
- 修复了更奇特的参数格式(如 DOS/Windows 样式参数)的各种问题。
- 添加了 pause(),它的工作方式类似于内置的 Windows
pause
cmd,但如果应用程序不是通过终端运行的,则会变成自动 noop。 - 添加了一些关于缺少选择参数的额外信息。
- 更改了帮助功能的实现方式,以允许全局覆盖帮助选项。
- 添加了对令牌规范化的支持以实现不区分大小写的处理。
- 添加了对提供上下文设置默认值的支持。
版本 1.1
发布 2014-05-23
- 修复了导致 Python 2 中的文本文件不接受本机字符串的错误。
版本 1.0
发布 2014-05-21
- 初始版本。