变化¶
版本8¶
未发布的
放弃对Python2和3.5的支持。
version_option
usesimportlib.metadata
(or theimportlib_metadata
backport) instead ofpkg_resources
. #1582如果验证失败,提示
hide_input=True
,则该值不会显示在错误消息中。 #1460IntRange
andFloatRange
bounds can be open (<
) instead of closed (<=
) by settingmin_open
andmax_open
. Error messages have changed to reflect this. #1100用重复的标志名定义的选项 (
"--foo/--foo"
)引发ValueError
. #1465echo()
will not fail when using pytest'scapsys
fixture on Windows. #1590解析命令返回规范的命令名,而不是匹配的名称。这使得诸如帮助文本和
Context.invoked_subcommand
使用模式时保持一致AliasedGroup
. #1422这个
BOOL
接受“打开”和“关闭”值。 #1629A
Group
具有invoke_without_command=True
将始终调用其结果回调。 #1178nargs == -1
andnargs > 1
is parsed and validated for values from environment variables and defaults. #729使用执行模块或包时检测程序名
python -m name
. #1603在子命令的帮助摘要中包含必需的父参数。 #1475
布尔标志的帮助
show_default=True
显示标志名而不是True
或False
. #1538传递给的非字符串对象
style()
和secho()
将转换为字符串。 #1146edit(require_save=True)
will detect saves for editors that exit very fast on filesystems with 1 second resolution. #1050新的类属性使在整个应用程序中使用自定义核心对象变得更加容易。 #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
语句,允许它们在子命令和回调之间使用,然后在上下文结束时进行清理。 #1191测试运行程序的
invoke()
方法具有return_value
属性,该属性的值由调用的命令返回。 #1312带的必需参数
Choice
键入show the choices in大括号以指示需要一个选项 ({{a|b|c}}
) #1272如果只把名字传给
option()
,单击建议将其重命名为--name
. #1355上下文的
show_default
参数默认为父上下文中的值。 #1565click.style()
can output 256 and RGB color codes. Most modern terminals support these codes. #1429使用时
CliRunner.invoke()
,被替换stdin
文件有name
和mode
属性。这让File
选项-
值匹配非测试行为。 #1064创建一个
Group
,允许传递命令列表而不是dict。 #1339如果长选项名称无效,请使用
difflib
为可能的更正提出更好的建议。 #1446核心对象具有
to_info_dict()
方法。这将收集有关对象结构的信息,这些信息对于生成面向用户的文档的工具非常有用。要获取整个CLI的结构,请使用Context(cli).to_info_dict()
. #461-
支持Bash>=4.4、Zsh和Fish,并能够扩展以添加对其他shell的支持。
允许命令、组、参数和类型覆盖其完成建议。
组完成命令注册时使用的名称,该名称可能与创建命令时使用的名称不同。
这个
autocompletion
选项和参数的参数重命名为shell_complete
。该函数必须采用ctx, param, incomplete
必须进行匹配,而不是返回所有值,并且必须返回字符串列表或ShellComplete
。旧名称和行为已弃用,将在8.1中删除。用于开始完成的环境变量值已更改顺序。现在,shell放在第一位,例如
{{shell}}_source
而不是source_{{shell}}
,并且始终是必需的。
完成功能可正确解析引号或转义序列不完整的命令行字符串。 #1708
额外的上下文设置 (
obj=...
等)传递给完井系统。 #942包括
--help
完成选项。 #1504ParameterSource
is anenum.Enum
subclass. #1530布尔和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处理空的环境变量,就像没有传递选项一样。这扩展了7.1中引入的更改,使其在更多情况下保持一致。 #1285
Parameter.get_default()
checksContext.default_map
to handle overrides consistently in help text,invoke()
, and prompts. #1548添加
prompt_required
参数为Option
. 当设置为False
,则只会在没有传递任何值的情况下提示用户输入。 #736向选项提供值可通过以下方式设置为可选
is_flag=False
,则可以提示输入该值或将其作为默认值传入。 #549, #736, #764, #921, #1015, #1618修复以下情况下的格式设置
Command.options_metavar
是空的。 #1551传递给
prompt
将像输入值一样强制转换为正确的类型。 #1517自动生成的简短帮助消息将在短语或双换行符的第一个结尾处停止。 #1082
通过设置非常快速的迭代器,跳过进度条渲染步骤以提高效率
update_min_steps
. #676尊重
case_sensitive=False
在为以下对象执行shell完成时Choice
#1692使用
mkstemp()
而不是mktemp()
在寻呼机实现中。 #1752
版本7.1.2¶
发布日期:2020-04-27
恢复将shell引用应用于的命令
echo_with_pager
和edit
. 这是为了在命令中允许空格,但是如果字符串实际上是一个命令和参数,或者在Windows上,则会导致问题。相反,必须手动引用字符串,因为它应该出现在命令行上。 #1514
版本7.1¶
发布日期:2020-03-09
修复PyPI包名,“click”又是小写。
固定链接
unicode_literals
错误消息。 #1151在UNIX Jupyter笔记本电脑上添加对彩色输出的支持。 #1185
剥离ANSI控件的操作将删除光标隐藏/显示序列。 #1216
拆下未使用的兼容垫片
bytes
. #1195围绕termui展开测试,尤其是Windows上的getchar。 #1116
修复用MSVC 14构建的windowspython2.7上的输出。 #1342
固定
OSError
在MSYS2中运行时。 #1338固定
OSError
当重定向到NUL
Windows上的流。 #1065在Windows上解析Unicode参数时修复内存泄漏。 #1136
修复新AppEngine环境中的错误。 #1462
添加
no_args_is_help
选择权click.Command
,默认为False #1167添加
show_default
参数到Context
启用全局显示默认值。 #1018把手
env MYPATH=''
好像这个选项没有通过。 #1196又可以打电话了
next(bar)
在活动进度条实例上。 #1125open_file
withatomic=True
retains permissions of existing files and respects the current umask for new files. #1376使用测试时
CliRunner
具有mix_stderr=False
如果result.stderr
是空的它不会升起一个ValueError
. #1193移除未使用的
mix_stderr
参数从CliRunner.invoke
. #1435固定
TypeError
使用布尔标志并指定type=bool
. #1287在重新换行之前,选项帮助文本中的换行将替换为空格,以避免换行不均匀。 #834
MissingParameter
exceptions are printable in the Python interpreter. #1139修复在提示期间如何显示文件类型选项的默认值。 #914
修复环境变量自动生成包含
-
. #1253换行的选项帮助文本在末尾添加一个额外的换行符,以区别于下一个选项。 #1075
考虑
sensible-editor
确定要用于的编辑器时click.edit()
. #1469系统调用的参数,例如传递给
click.edit
可以包含空格。 #1470添加ZSH完成自动加载和错误处理。 #1348
添加代表
Command
,Group
,Option
和Argument
,显示更友好调试的名称。 #1267如果值以开头,则补全不考虑选项名
-
后--
分隔符。 #1247ZSH补全将转义值中的特殊字符。 #1418
添加对鱼壳的完成支持。 #1423
在更多情况下,解码字节选项值会回到UTF-8。 #1468
将有关旧的2-arg参数回调的警告设置为弃用警告,将在8.0中删除。这是一个警告,因为点击2.0。 #1492
调整错误消息以标准化所使用的引号类型,以便它们与Python中的错误消息匹配。
版本7¶
发布日期:2018-09-25
说明在python 2中没有从bytearray解析ansi颜色信息。 #334
将条形图格式提取为自己的方法。 #414
添加
DateTime
用于转换给定日期时间格式的输入的类型。 #423secho
's first argument can now beNone
, like inecho
. #424修复一个
ZeroDivisionError
在里面ProgressBar.make_step
,当arg传递给ProgressBar.update
是0。 #447 , #1012仅当总执行时间可见时显示ProgressBar。 #487
添加了从帮助中隐藏命令和选项的功能。 #500
非独立调用
Context.exit
返回退出代码,而不是调用sys.exit
. #667 , #533, #1098click.getchar()
returns Unicode in Python 3 on Windows, consistent with other platforms. #537, #821, #822, #1088, #1108增加了对bash完成的支持
type=click.Choice
对于Options
和Arguments
. #535 , #681添加
case_sensitive=False
作为一种选择。 #569click.getchar()
correctly raisesKeyboardInterrupt
on "^C" andEOFError
on "^D" on Linux. #583, #1115修复编码问题
click.getchar(echo=True)
在Linux上。 #1115param_hint
in errors now derived from param itself. #598, #704, #709添加一个测试,以确保当参数格式化为用法错误时,使用它的metavar,而不是它的名称。 #612
从docstrings获取的帮助文本在
\f
表单提要字符,用于隐藏sphinx样式的参数文档。 #629, #1091launch
now works properly under Cygwin. #650CliRunner.invoke
now may receiveargs
as a string representing a Unix shell command. #664制作
Argument.make_metavar()
默认为类型metavar。 #675为添加文档
ignore_unknown_options
. #684添加
show_envvar
用于在帮助中显示环境变量。 #710避免
BrokenPipeError
在解释器关闭期间,当stdout或stderr是关闭的管道时。 #712 , #1106禁用
sys._getframes()
在不支持它的python解释器上。 #728在调用时修复测试运行程序中的错误
sys.exit
具有None
. #739修复Windows控制台上的崩溃。 #744
从用户提供的回调中添加了对动态bash完成的支持。 #755
增加了对包含空格的bash完成的支持。 #773
添加测试和文档
Option
命名:功能。 #799更新文档以匹配参数名称
path_type
. #801添加了原始字符串,因此发生了正确的转义。 #807
为“t”和“f”添加bool转换。 #842
NoSuchOption
errors takectx
so that--help
hint gets printed in error output. #860修正了2.x和3.x上与unicode相关的click错误消息的行为。现在message始终是unicode,str和unicode特殊方法在该平台上按预期工作。 #862
默认情况下,进度条现在使用stderr。 #863
允许
CliRunner
分离stdout和stderr。 #868修复无效的转义序列。 #877
固定
ResourceWarning
在某些测试中发生。 #878当检测到错误配置的区域设置时,如果
locale
命令失败。 #880添加
case_sensitive=False
作为一种选择Choice
类型。 #887强制stdout/stderr可写。这可以解决像Jupyter那样的标准流修补不好的问题。 #918
_AtomicFile
now uses therealpath
of the original filename so that changing the working directory does not affect it. #920“x”和“a”文件模式现在在文件为
"-"
. #929修复中缺少的逗号
__all__
名单。 #935stdout现在自动设置为非阻塞。 #954
不要设置两次选项。 #962
移动
fcntl
进口。 #965修复谷歌应用引擎
ImportError
. #995更好地处理动态默认选项值的帮助文本。 #996
固定
get_winter_size()
所以它正确地返回(0,0)
. #997添加自定义参数类型的测试用例检查。 #1001
允许短宽度处理命令格式。 #1002
添加有关Python版本支持的详细信息。 #1004
向命令添加了取消预测标志。 #1005
解决了以下问题:
fd
是未定义的。 #1007修复简短帮助的格式设置。 #1008
文档如何
auto_envvar_prefix
使用命令组。 #1011默认情况下,不为进度条添加换行符。 #1013
默认情况下,将参数名称转换为小写的文档。 #1055
由函数命名的子命令现在自动将下划线替换为短划线。如果注册一个名为
my_command
它变成my-command
在命令行界面中。修复小写的问题
auto_envvar_prefix
不会转换为大写。 #1105
版本6.7¶
发布日期:2017-01-06
版本6¶
发布日期:2015-11-24,代号“pow-pow”
已优化ProgressBar渲染,使其在实际未更改时不进行渲染。
明确禁止
nargs=-1
设置默认值。上下文现在在从堆栈中弹出之前关闭。
增加了对切换错误标志的短别名的支持。
Click将尝试通过在操作系统的帮助下列出可用的区域设置来帮助您更好地调试区域设置错误。
在某些单元测试情况下,单击used返回python2上的字节字符串。已经修复了这个问题,现在可以正确返回unicode字符串。
对于python2上的Windows用户,Click现在可以更正确地处理来自系统的Unicode。这还有一个令人失望的副作用,即文件名现在在
Path
类型,这意味着这可能会为不知道这一点的代码引入小错误。增加了一个
type
参数到Path
对值强制指定字符串类型。对于在Windows上运行python的用户,
echo
和prompt
通过模拟输出流,函数现在可以在pythonwindows控制台中使用完整的unicode功能。这也适用于通过click.get_text_stream(...)
.UnitTests现在总是强制某个虚拟终端宽度。
添加了允许破折号指示标准流的支持
Path
类型。链模式下的多个命令不再将解析过程中遗留的参数传播给回调。如果启用了链模式,那么当可选参数附加到多个命令时,它现在也被禁止了。
不允许链接命令将其他链接命令作为子命令的宽松限制。
带有正NARG的参数现在可以实现默认值。以前,此配置通常会导致返回稍微意外的值。
版本5¶
2015-08-16发布,代号“tok-tok”
删除了各种不推荐使用的功能。
原子文件现在只接受
w
模式。对于非常长的命令,更改帮助输出的用法部分,将其参数换行到下一行,缩进4个空格。
修复使用时返回代码和错误消息不正确的错误
CliRunner
.补充
get_current_context
.增加了一个
meta
字典到上下文,该上下文在上下文的链接列表中共享,以允许单击实用程序在其中放置状态。介绍
Context.scope
.这个
echo
函数现在是threadsafe:它调用write
基础对象的方法仅一次。prompt(hide_input=True)
现在打印新行^C
.如果用户正在使用
unicode_literals
.Click将忽略
PAGER
环境变量,如果它为空或仅包含空白。这个
click-contrib
已创建Github组织。
版本4.1¶
发布日期:2015-07-14
修复错误消息将包含尾随的错误
None
字符串。修复一个bug,在这个bug中,Click将在带有尾随换行符的docstring上崩溃。
支持编码设置为的流
None
在python 3上,用更好的错误重击。在less-pager中正确处理^C。
处理返回值
None
从sys.getfilesystemencoding
修复写入Unicode文件时的崩溃
click.echo
.使用多个选项修复类型推断。
版本4¶
发布日期:2015-03-31,代号“zoom-zoom”
补充
color
直接或间接调用回显的许多接口的参数。以前总是自动检测(除了echo_via_pager
功能)。现在可以强制启用或禁用它,覆盖Click的自动检测。增加了一个
UNPROCESSED
在某些特殊的高级用例中,不执行简化2.x/3.x上文本处理的任何类型更改的类型。补充
NoSuchOption
和BadOptionUsage
更一般性地处理错误的异常。增加了对处理未处理选项的支持,在参数被转发到基础工具的情况下,这些选项很有用。
补充
max_content_width
可用于更改帮助输出的最大宽度的上下文的参数。默认情况下,单击不会格式化宽度超过80个字符的内容。增加了对向stderr写入提示的支持。
在显示多个参数的默认值时修复错误。
添加了对自定义子类的支持
option
和argument
.修复错误
clear()
在安装了Colorama的窗口上。拒绝
nargs=-1
正确的选择。选项不能是可变的。修复了bash completion在使用非ASCII字符或短划线的命令时不能正常工作的问题。
添加了一种手动更新进度条的方法。
已更改缺少参数的格式。以前内部参数名显示在错误消息中,现在如果传递了,则显示元变量。如果选择了一个自动的metavar,它首先会去掉额外的格式。
版本3.2¶
发布日期:2014-08-22
版本3¶
发布日期:2014-08-12,代号“clonk-clonk”
格式化程序现在不再试图容纳小于50个字符的终端。如果发生这种情况,它只假设最小宽度。
在测试系统中添加了一种不吞噬异常的方法。
添加了更好的颜色支持与寻呼机和方式覆盖自动检测。
CLI运行程序的result对象现在附加了一个回溯。
改进了自动短帮助检测,更好地处理不终止句子的点。
现在定义没有实际有效选项字符串的选项时,单击将给出错误消息,而不是静默传递。这将捕捉到用户希望创建参数而不是选项的情况。
重组后的内部Click支持自动售货。
增加了对多命令链接的支持。
添加了对选项默认值的支持
multiple
和选项和参数nargs != 1
.标签传递给
progressbar
不再呈现空白。添加了一种方法来禁用
main
方法在单击命令上能够更好地处理错误。增加了对从命令回调返回值的支持。
添加了打印到stderr的简化
echo
.添加了组的结果回调。
多次输入上下文会将清理延迟到最后一次退出时。
补充
open_file
.
版本2.3¶
发布日期:2014-07-03
修复了计数选项的格式不正确的帮助记录。
如果Colorama不可用,请在Windows上添加对ANSI代码剥离的支持。
恢复了某些边缘情况下帮助参数的Click 1.0处理。
版本2.1¶
发布日期:2014-06-14
修正了
launch()
在Windows上运行。改进了windows上的colorama支持,在应用程序被中断的情况下尽量不让控制台出错。
修正了windows终端错误地被报告为80个字符宽而不是79个字符
如果可以,请使用colorama win32绑定来获取windows终端的正确尺寸。
修正了Python3上自定义函数类型的问题。
修复了错误消息中错误报告未知选项的问题。
版本2¶
发布日期:2014-06-06,代号“tap-tap-tap”
添加了对在Windows上以二进制模式正确打开stdin/stdout的支持。
通过临时文件添加对文件的原子写入的支持。
介绍
BadParameter
它可用于使用与类型系统中相同的错误消息轻松执行自定义验证。补充
progressbar()
;显示进度条的函数。补充
get_app_dir()
;用于计算配置主文件夹的函数。增加了对ANSI代码的透明处理
echo()
通过功能colorama
.补充
clear()
功能。中断更改:参数回调现在获取作为第二个参数传递的参数对象。旧回调的旧版支持会发出警告,但仍会执行脚本。
增加了一个
edit()
调用默认编辑器的函数。增加了一个
launch()
启动浏览器和应用程序的函数。参数的-1的Nargs现在可以通过所需的标志强制为单个项。默认为不需要。
现在隐式地为参数设置默认值将使其不需要。
将确认提示中的“yN”/“yN”更改为“y/N”和“y/N”。
增加了对bash完成的基本支持。
补充
getchar()
从终端提取单个字符。错误现在按预期转到stderr。
修正了不同的参数格式,如DOS/Windows风格的参数的各种问题。
补充
pause()
它的工作原理和窗户相似pause
cmd内置,但如果应用程序不通过终端运行,它将成为自动noop。添加了一些关于缺少选择参数的额外信息。
更改了帮助函数的实现方式,以允许全局重写帮助选项。
增加了对令牌规范化的支持,以实现不区分大小写的处理。
增加了对提供上下文设置默认值的支持。