开发商须知

源代码

源代码当前为 available on GitHub 根据 Expat license . 叉开!

方向

一些高层次的目标和方向应铭记在心,以便作出贡献:

  • pycodestyle 目的是尽可能快。使用 ast 模块破坏了这一目的。这个 pep8-naming 插件存在于此类功能中。

  • 如果要提供扩展性/插件,请参见 flake8 - pycodestyle 不需要或不需要插件架构。

  • pycodestyle 目标是没有外部依赖。

贡献

您可以通过编写插件向该程序添加检查。每个插件都是一个简单的函数,对每一行源代码(物理代码或逻辑代码)进行调用。

物理线:

  • 输入文件中的原始文本行。

逻辑线:

  • 多行语句转换为单行。

  • 从左到右剥离。

  • 字符串内容替换为 "xxx" 长度相同。

  • 注释已删除。

check函数按第一个参数的名称请求物理或逻辑行:

def maximum_line_length(physical_line)
def extraneous_whitespace(logical_line)
def blank_lines(logical_line, blank_lines, indent_level, line_number)

上面的最后一个例子演示了check插件如何通过额外的参数请求额外的信息。的所有属性 Checker 对象可用。一些例子:

  • lines :输入文件中的原始行列表

  • tokens :构成此逻辑行的标记

  • line_number :输入文件中的行号

  • total_lines :输入文件中的行数

  • blank_lines :在此之前为空行

  • indent_char :此文件中的缩进字符( " ""\t"

  • indent_level :缩进(制表符展开为8的倍数)

  • previous_indent_level :上一行缩进

  • previous_logical :上一个逻辑行

检查插件还可以保持每个文件的状态。如果需要,请声明一个名为 checker_state . 您将被传递一个dict,对于同一个文件中的所有行,该dict是相同的,但是对于不同的文件,该dict是不同的。每个检查插件都有自己的dict,所以您不必担心会破坏其他插件的状态。

每个检查功能的docstring应是来自 PEP 8 . 如果用户启用 --show-pep8 . 几个docstring直接包含来自 PEP 8 文件。

Okay: spam(ham[1], {eggs: 2})
E201: spam( ham[1], {eggs: 2})

这些示例通过以下方式进行自动验证 test_self_doctest.py 。您可以为自己的检查函数添加示例。格式很简单: "Okay" 或错误/警告代码,后跟冒号和空格,该行的其余部分是示例源代码。如果你把 'r' 在文档字符串之前,可以使用 \n 换行符和 \t 用于选项卡。

然后确保通过测试:

$ pytest tests
$ python pycodestyle.py --verbose pycodestyle.py

当对PycodeStyle作出贡献时,请遵守我们的 Code of Conduct .

为了运行测试,核心开发团队和GitHub操作使用tox::

$ pip install -r dev-requirements.txt
$ tox

所有可用口译员的测试都应通过,总结如下:

congratulations :)

变化

2.11.0(2023-07-29)

变化:

  • 丢弃EOL python3.6/3.7。公关#1129,#1160。

  • 增加了对python3.12的支持。PR#1147、#1148、#1152、#1153、#1154、#1163、#1164、#1165、#1166、#1176、#1177、#1182。

  • E721、调整类型比对处理。允许的表单现在是 isinstance(x, t)type(x) is t 。PR#1086,#1167。

  • 删除对python2的处理 <> 接线员。公关#1161。

  • W606:已删除。 async / await 始终是关键字。公关号1162。

  • 内部:将测试移至PYST。PR#1168、#1169、#1171、#1173、#1174、#1175。

  • 删除对python2的处理 ur'' 弦乐。公关#1181。

2.10.0(2022-11-23)

变化:

  • E231:允许在1元组中使用尾随逗号 [] 。公关#1108。

  • W601、W602、W603、W604:已移除(在Python3中不再相关)。公关#1111。

  • E741:也适用于lambdas。公关#1106。

  • E741:修复比较运算符假阳性。公关#1118。

2.9.1(2022-08-03)

变化:

  • E275:修复Year表达式的误报。公关1091号。

2.9.0(2022-07-30)

变化:

  • E221、e222、e223、e224:添加对 := 接线员。公关号码1032。

  • 去掉python2.7/3.5。

  • E262:考虑不间断空格 (\xa0 )作为空格。公关号码1035。

  • 提高性能 _is_binary_operator 。公关号码1052。

  • E275:关键字周围需要空格。公关号码1063。

  • 增加了对python3.11的支持。公关号码1070。

2.8.0(2021-10-10)

变化:

  • 丢弃python3.4。公关号码982。

  • E712:通过多次比较修复假阴性。公关号987。

  • E211:修复误报 match 。989号公关。

  • E772:提高Bare的性能,但Check除外。公关编号992。

  • Backport令人信服地实现了对Python3.10的性能改进。公关编号993。

  • E225:修复了包含仅位置参数的lambdas。公关1012号。

  • 移除 indent_size_str “设置”。公关编号995。

  • E402:允许 __all__ 要打字。公关1019号。

  • E225:修复误报 * 在……里面 case 。公关号1003。

  • E201:将制表符检测为空白。公关号码1015。

2.7.0(2021-03-14)

变化:

  • 修复文件末尾的物理检查(如W191)。公关编号961。

  • 增列 --indent-size 选项(默认为 4 )。970号公关。

  • W605:修复Windows上转义的crlf假阳性。976号公关。

2.6.0(2020-05-11)

公告:

  • Anthony Sottile(@asottile)作为核心开发人员加入了团队。:塔达:

变化:

  • E306:内部固定检测 async def . PR#929。

  • E301:修复回归不允许装饰的一行程序。公共关系927。

  • E714:用链式修正假阳性 is not . 公关#931。

2.6.0a1(2020-04-23)

新支票:

  • E225:需要空格 and in isor . 公关847。

变化:

  • E117:使用制表符固定缩进,方法是将缩进视为8空格。公关837。

  • E721:修复名称包含的假阳性 istype . PR#850。

  • E741:允许 l 作为函数调用中的命名参数。PR#853。

  • E302:用修饰函数修复假阴性。第859页。

  • W504:省略号 (... )不再被视为二进制运算符。PR#875。

  • E402:允许 withifelifelse 保护进口。公关834。

  • 添加对赋值表达式的支持 := (政治公众人物572)。PR#879。

  • 添加对仅位置参数的支持 / (PEP 570)。PR#872,#918。

  • 添加对python3.8的支持。

  • 增加对矩阵乘法运算符的支持 @ (政治公众人物465)。PR#897。

  • 支持连续行的可视缩进 with / assert / raise . PR#912。

  • E302:在一个衬垫块之后允许两个空行。公关部#913。

  • E302:在文件顶部允许两行或更少的换行符。公共关系919。

2.5.0(2019年1月29日)

新支票:

  • E117:过缩进代码块

  • W505:仅当配置为--最大文档长度时,最大文档字符串长度

变化:

  • 拆下eol python 2.6和3.3的支架。PR 720。

  • 为过度缩进的代码块添加E117错误。

  • 允许w605被“noqa”静音,并固定w605报告的位置。

  • 允许用户在类和函数的一个线性定义周围省略空行

  • 包括函数返回注释( -> )因为只在python 3上需要周围的空白

  • 确认只有名字可以跟在后面 await . 以前我们允许数字和字符串。

  • 添加对python 3.7的支持

  • 修正了E252注释参数默认值的检测

  • 修正W504报告的位置

2.4.0(2018年4月10日)

新支票:

  • 添加W504警告,检查二进制运算符后是否没有中断。默认情况下,此检查被忽略。PR 502。

  • 为字符串文本中的无效转义序列添加W605警告。PR 676。

  • 为python 3.7中引入的“async”和“await”保留关键字添加w606警告。PR 684。

  • 添加E252错误,因为等号周围缺少带默认值的带注释的函数参数。PR 717。

变化:

  • 为了提高搜索效率,内部对分搜索取代了线性搜索。PR 648。

  • pycodestyle现在使用pypi-trove分类器来记录pypi上支持的python版本。PR 654。

  • “setup.cfg”“[wheel]”部分已重命名为“[bdist_wheel]”,因为前者是遗留的。PR 653。

  • pycodeStyle现在可以更有效地处理python 3.2+中非常长的行。修正643。PR 644。

  • 现在可以编写“pycodestyle.styleguide(verbose=true)”而不是“pycodestyle.styleguide(verbose=true,path=['-v'])”来实现冗长性。PR 663。

  • PycodeStyle的发行版现在包括许可证文本,以符合开源许可证的要求。PR 694。

  • “最大线长度”现在忽略shebang(“!”)线。PR 736。

  • 为允许的空行数添加配置选项。它是作为一个顶级字典实现的,很容易被覆盖。修正732。PR 733。

漏洞:

  • 防止将来的python中出现由无效转义序列导致的“deprecationwarning”和“syntaxerror”。PR 625。

  • 当docstring的第一行太长时,正确报告e501。解决第622题。PR 630。

  • 当变量以关键字开头时支持变量注释,例如python 3.6中的类变量类型注释。PR 640。

  • 为了让“python3-m cprofile”报告正确的度量,pycodestyle内部结构已经被更改。PR 647。

  • 修正E722描述中的拼写错误。PR 697。

  • 如果“gitconfig”启用“助记键前缀”,则“pycodestyle--diff”现在不会中断。PR 706。

2.3.1(2017-01-31)

漏洞:

  • 修正e302和e306检测中的回归;618,620

2.3.0(2017-01-30)

新支票:

  • 为裸机添加E722警告 except 条款

  • 异步函数定义的报告E704( async def

漏洞:

  • 为以“class”或“def”开头的变量修复另一个e305误报

  • 固定检测之间的多个空格 asyncdef

  • 修复变量注释的处理。停止在python 3.6上报告E701以获取变量注释。

2.2.0(2016-11-14)

公告:

  • 添加make target以获得适当的tarball文件权限;599

漏洞:

  • 修正了由400;593引起的E305回归

2.1.0(2016年11月4日)

公告:

  • 将对PEP8项目的所有引用更改为pycodestyle;530

变化:

  • 对于“异步定义”前的空白行,报告e302;556

  • 更新我们的测试和支持的python版本列表,包括2.6、2.7、3.2、3.3、3.4和3.5,以及夜间python构建和pypy。

  • 报告e742和e743,查找名称错误为“l”、“o”或“i”的函数和类。

  • 关于“全局”和“非本地”声明以及禁止的单字母变量的报告E741。

  • 不赞成使用`[pep8]`节名称而赞成使用`[pycodestyle]`;591

  • 报告E722,使用裸除外条款时;579

漏洞:

  • 使用flake8 2.6.2和pycodestyle时修复opt_类型断言错误;561

  • 在顶级def之后需要两行空白,class;536

  • 根据冒号的数目删除意外的二次计算。这将使pycodestyle在某些情况下更快;314

2.0.0(2016年5月31日)

公告:

  • 存储库已重命名为 pycodestyle; 发行466/481。

  • 增加了作为Pycqa成员的联合行为准则;483

变化:

  • 为python 3.5和pypy3添加了毒性测试支持

  • 添加了E275复选框,用于“发件人…”导入…`lines;489/491

  • 将w503添加到默认忽略列表忽略的代码列表中;498

  • 删除了对项目级`.pep8`配置文件的使用;364

漏洞:

  • 修复了将`~`运算符视为二进制的错误;383/384

  • 将二进制运算符标识为一元;484/485

1.7.0(2016-01-12)

公告:

变化:

  • 已恢复368中的修复,“在命令行上传递的选项仅被接受”功能。这在PEP8和flake8中有许多意想不到的结果,当我有更多的时间时需要重新处理。

  • 增加了对python 3.5的支持。(第420和459版)

  • 增加了对多行配置文件选项解析的支持。(第429题)

  • 改进了参数分析。(第420和456期)

漏洞:

  • 修正了python 3上的字节警告。(第459题)

1.6.2(2015年2月15日)

变化:

  • 增加了对二元运算符的断开检查。(发行197,拉动305)

漏洞:

  • 已还原process_options()中的config_文件参数。(第380题)

1.6.1(2015年2月8日)

变化:

  • 在引用之前分配变量。(第287题)

漏洞:

  • 由于未分配而引发异常 local_dir 变量。(第377题)

1.6.0(2015年2月6日)

新闻:

变化:

  • lambda分配报告E731。(第277题)

  • 报告E704中的一个衬里DEF而不是E701。不要在默认配置中报告此错误。(第277题)

  • 将代码E111、E112和E113替换为代码E114、E115和E116,以防注释缩进错误。(第274题)

  • 当块注释以多个开头时,报告E266而不是E265 # . (第270题)

  • 对于不在文件顶部的import语句,报告e402。(第264题)

  • 不要在周围强制使用空格 ** 操作员。(第292题)

  • 在规范化过程中从路径周围去除空白。(发行339/343)

  • 更新 --format 文档。(发布198/拉式请求310)

  • 添加 .tox/ 默认排除。(第335题)

  • 不要在默认配置中报告E121或E126。(发行256/316)

  • 在带批注的函数中,允许等号周围有空格。(第357题)

  • 如果在内联注释中,则允许尾随反斜杠。(第374题)

  • 如果 --config 只处理该配置。否则,合并用户和本地配置。(发行368/369)

错误修复:

  • 如果checker.build_tokens_line()返回none,则不要崩溃。(第306题)

  • 如果os.path.expanduser()引发importError,不要崩溃。(第297题)

  • 关键字参数“equal not always reported”周围缺少空格,E251。(第323题)

  • 固定假阳性E711/E712/E713。(发行330和336)

  • 如果换行符被转义,不要跳过物理检查。(第319题)

  • 冲洗sys.stdout以避免打印时出现竞争情况。有关详细信息,请参阅flake8 bug:https://gitlab.com/pycqa/flake8/issues/17。(第363题)

1.5.7(2014-05-29)

错误修复:

  • 跳过“断管”信号的回溯。(第275题)

  • 当选项进入时不退出 setup.cfgtox.ini 无法识别。

  • 检查最后一行,即使它没有以换行符结尾。(第286题)

  • 总是在python 2中以通用换行模式打开文件。(第288题)

1.5.6(2014年4月14日)

错误修复:

  • 检查最后一行,即使它没有行尾。(第273题)

1.5.5(2014年4月10日)

错误修复:

  • 使用e22检查和内联注释修复回归。(第271题)

1.5.4(2014年4月7日)

错误修复:

  • 在多行docstring之前用e303修正负偏移。(第269题)

1.5.3(2014年4月4日)

错误修复:

  • 当错误在物理行的最后一个字符上时,修复错误的偏移量计算。(第268题)

1.5.2(2014年4月4日)

变化:

  • 分发通用车轮文件。

错误修复:

  • 报告E303的正确行号和注释。(第60题)

  • 参数等于后不允许换行。(第252题)

  • 为多行字符串报告的固定行号。(第220题)

  • 用多行字符串修复假阳性E121/E126。(第265题)

  • 用python 2.5在注释中未检测到修复e501。

  • 用固定插入符号位置 --show-source 当行包含制表符时。

1.5.1(2014年3月27日)

错误修复:

  • 使用E125修复多行字符串上的崩溃。(第263题)

1.5(2014年3月26日)

变化:

  • 对于与下一逻辑行具有相同缩进的可视缩进行,报告E129而不是E125。(第126题)

  • 报告E265获取块注释前的空间。(第190题)

  • 操作员报告E713和E714 not inis not 建议。(第236题)

  • 如果无法换行,则允许多行字符串和注释中的长行。(第224题)。

  • (可选)禁用多行字符串内的物理行检查,使用 # noqa . (第242题)

  • 将E121的文本更改为报告“缩进下的续行用于挂起缩进”,而不是缩进不是4的倍数。

  • 如果悬挂缩进在同一连续块内不一致,则报告E131而不是E121/E126。当错误E121或E126出现在 ignore 名单。

  • 当连续行挂有额外的缩进时,即使缩进不是4的倍数,也要报告E126而不是E121。

错误修复:

  • 允许检查程序报告空文件的错误。(第240题)

  • 修复忽略过多检查的情况 --select 与flake8扩展中声明的代码一起使用。(第216题)

  • 用多个括号固定回归。(第214题)

  • 固定 StyleGuide 如果关键字参数 paths 指定。(第246题)

  • 修复假阳性E124以悬挂缩进。(第254题)

  • 用嵌入结肠修复假阳性E126。(第144题)

  • 使用制表符缩进时修复假阳性E126。(第204题)

  • 修正行为 exclude 在配置文件中,而当前目录不是项目目录。(第247题)

  • 逻辑检查可以返回 None 而不是空的迭代器。(第250题)

  • 如果只有第一个缩进以制表符开头,则不要报告多个E101。(第237题)

  • 修复罕见的假阳性W602。(第34题)

1.4.6(2013年7月2日)

变化:

  • 荣誉 # noqa 对于错误E711和E712。(第180题)

  • 当两个 tox.ini 和A setup.cfg 存在于项目目录中,合并其内容。这个 tox.ini 文件优先(与以前相同)。(第182题)

  • 优先考虑 --select 结束 --ignore . (第188题)

  • 排除文件时比较完整路径。(第186题)

  • 新选项 --hang-closing 切换到关闭括号缩进的可选样式,以便悬挂缩进。为缺少缩进的右括号添加错误E133。(第103题)

  • 接受两种样式的右括号缩进,以便悬挂缩进。不要在默认配置中报告错误E123。(第103题)

错误修复:

  • 当运行AST检查且文档包含空字节时,不要崩溃。(第184题)

  • 忽略E123时,正确报告其他E12错误。(第103题)

  • 当文件包含物料清单时,修复假阳性E261/E262。(第193题)

  • 修复E701、E702和E703,有时未检测到。(第196题)

  • 在某些情况下未检测到修复E122。(版本201和208)

  • 用多个支架固定假阳性E121。(第203题)

1.4.5(2013年3月6日)

  • 当没有指定路径时,不要尝试从stdin读取。该功能已在1.4.3中添加,但Windows不支持。使用 - 要从stdin读取的文件名参数。自1.3.4起支持此用法。(第170题)

  • 不要求 setuptools 在StupUp.Py中。它解决了一个问题 pip 和Python 3。(第172题)

  • 添加 __pycache__ 到忽略列表。

  • 更改E251的误导信息。(第171题)

  • 当源文件的第一行有编码cookie或注释时,不要报告错误的e302。(第174题)

  • 重新组织测试并为API和命令行用法和选项添加测试。(第161和162期)

  • 忽略在以下情况下未显式选择的所有检查: select 传递给 StyleGuide 建造师。

1.4.4(2013年2月24日)

  • 对于位、移位或模运算符周围的空白,报告e227或e228而不是e225。(第166题)

  • 更改E226的消息,以明确它是关于算术运算符的。

  • 用制表符修复连续行缩进的假阳性E128。

  • 用修正回归 --diff 选择权。(第169题)

  • 修复 TestReport 类以打印意外的警告和错误。

1.4.3(2013年2月22日)

  • 隐藏 --doctest--testsuite 安装时的选项。

  • 修复语法无效时与ast checkers的崩溃。(第160题)

  • 如果没有指定路径,则从标准输入读取。

  • 启动正常关机 Control+C .

  • 允许更改 checker_class 对于 StyleGuide .

1.4.2(2013年2月10日)

  • 支持第三方应用程序提供的AST检查程序。

  • 注册新的支票 register_check(func_or_cls, codes) .

  • 允许构造 StyleGuide 使用自定义分析器。

  • 接受不带括号的可视缩进 if 语句。(第151题)

  • 使用时修复未绑定的本地错误 # noqa 用连续的线条。(第158题)

  • 重新订购的行 StandardReport .

  • 检查E12续行时展开选项卡。(第155题)

  • 重构测试类 TestReport 具体的测试功能分为单独的测试模块。

1.4.1(2013-01-18)

  • 允许对注释使用sphinx.ext.autodoc语法。(第110题)

  • 对于尾随分号,报告E703而不是E702。(第117题)

  • 荣誉 # noqa 除了 # nopep8 . (第149题)

  • 揭露 OptionParser 工厂提供更好的扩展性。

1.4(2012年12月22日)

  • 对于常见运算符周围的可选空白区域,报告E226而不是E225( ***/+- )在默认配置中忽略这个新的错误代码,因为PEP8建议“使用您自己的判断”。(第96题)

  • A线 # nopep8 最后将不会在行长E501或连续行缩进E12*上发出错误。(第27题)

  • 修复源文件包含无效行尾时的断言错误 "\r\r\n" . (第119题)

  • 阅读 [pep8] 截面 tox.inisetup.cfg 如果存在。(第93版和第141版)

  • 添加基于sphinx的文档,并在https://pycodestyle.readthedocs.io/上发布。(第105题)

1.3.4(2012-12-18)

  • 用注释修复假阳性E124和E128。(第100题)

  • 修复使用bpython运行时stdin上的错误。(第101题)

  • 固定假阳性E401。(第104题)

  • 列表中嵌套字典的报告E231。(第142题)

  • 在行首捕获E271。(第133题)

  • 修复多行注释的假阳性E126。(第138题)

  • 当运算符前面有逗号时,修复假阳性E221。(第135题)

  • 固定 --diff 在一条线上失败了。(第137题)

  • 修复 --exclude 切换目录路径。(第111题)

  • 使用 - 从标准输入读取的文件名。(第128题)

1.3.3(2012年6月27日)

  • 使用续行检查程序修复回归。(第98题)

1.3.2(2012年6月26日)

  • 恢复以前的行为 --show-pep8 不要暗示 --first . (第89题)

  • 为IO错误添加E902。(第87题)

  • 修复E121的假阳性,并丢失E124。(第92题)

  • 在Windows上为配置文件设置合理的默认路径。(第95题)

  • 允许 verbose 在配置文件中。(第91题)

  • 显示强制 max-line-length 在错误消息中。(第86题)

1.3.1(2012年6月18日)

  • 解释需要哪些配置选项。接受并建议选项名称使用连字符而不是下划线。(第82题)

  • 当用作模块时,不要读取用户配置(除非 config_file=True 传递给 StyleGuide 构造函数)。

  • 修复E12系列的错误或丢失案例。

  • 修复E122丢失的案例。(第81题)

1.3(2012年6月15日)

警告

内部API向后不兼容。

  • 删除全局配置并围绕 StyleGuide 类;添加配置各种报告程序的能力。(发行35和66)

  • 从读取用户配置 ~/.config/pep8 和本地配置 ./.pep8 . (第22题)

  • 修正E502中嵌入多行字符串的反斜杠。(第68题)

  • 为python 3 iterable解包(pep 3132)修复e225。(第72题)

  • 在默认配置中启用E12系列的新检查程序。

  • 针对E712错误建议较少出错的备选方案。

  • 重写跳棋以更快地运行(e22、e251、e27)。

  • 修正了解析代码无效时的崩溃(右括号太多)。

  • 固定E127和E128以进行连续线缩进。(第74题)

  • 新选项 --format 自定义错误格式。(第23题)

  • 新选项 --diff 只检查修改后的代码。从stdin读取统一diff。例子: hg diff | pep8 --diff (第39题)

  • 正确报告失败计数,并将退出代码设置为1 --doctest--testsuite 失败。

  • 正确检测python 3中的编码。(第69题)

  • 放弃对python 2.3、2.4和3.0的支持。(第78题)

1.2(2012年6月1日)

  • 添加E121到E128作为连续行缩进。默认情况下禁用这些检查。如果要强制执行所有检查,请使用开关 --select=E,W . Sam Vilain的补丁。(第64题)

  • 添加E721进行直接类型比较。(第47题)

  • 添加e711和e712与单件进行比较。(第46题)

  • 修复函数注释的伪E225和E701。(第29题)

  • 为括号之间的显式行连接添加e502。

  • 使用打印源时修复e901 --show-source .

  • 报告每个检查器的所有错误,而不是只报告每行的第一次出现。

  • 期权 --show-pep8 暗示 --first .

1.1(2012年5月24日)

  • 为语法错误添加e901。(第63和30期)

  • 在关键字周围添加e271、e272、e273和e274作为外部空白。(第57题)

  • 添加 tox.ini 测试的配置文件。(第61题)

  • 添加 .travis.yml 用于持续集成的配置文件。(第62题)

1.0.1(2012年4月6日)

  • 修复不一致的版本号。

1.0(2012年4月4日)

  • 修正W602 raise 处理多字符名称。(第53题)

0.7.0(2012年3月26日)

  • 现在 --first 只打印每个错误的第一次出现。这个 --repeat 标志将变得过时,因为它是默认行为。(第6题)

  • 允许指定 --max-line-length . (第36题)

  • 使shebang更灵活。(第26题)

  • 将testsuite添加到包中。(第25题)

  • 修复Jython。(第49题)

  • 添加PYPI分类器。(第43题)

  • 修复 --exclude 选择权。(第48题)

  • 固定W602,接受 raise 有3个参数。(第34题)

  • 正确选择所有测试,如果 DEFAULT_IGNORE == '' .

0.6.1(2010年10月3日)

  • 修复不一致的版本号。(第21题)

0.6.0(2010年9月19日)

  • 为了用更少的测试文件检查更多的失败,测试套件进行了重新组织和增强。阅读 run_tests 有关语法的详细信息。

  • 固定E225:接受 print >>sys.stderr, "..." 语法。

  • 对于包含多字节编码字符的行,修复e501。(第7题)

  • 修复在某些情况下未检测到的E221、E222、E223、E224。(第16题)

  • 修正e211以拒绝 v = dic['a'] ['b'] . (第17题)

  • 如果发现任何错误或警告,则退出代码始终为1。(第10题)

  • --ignore 检查现在真的被忽略了,特别是与 --count . (第8题)

  • 空格的空行产生W29而不是W29:有些开发人员希望忽略此警告并缩进空白行,以便在Python解释器中轻松地粘贴代码。

  • 修正E301:在缩进块之前不需要空行。(第14题)

  • 修正e203以接受numpy slice表示法 a[0, :] . (第13题)

  • 性能改进。

  • 修复了在python 3中解码和检查非utf8文件的问题。

  • 修正E225:拒绝 True+False 在python 3上运行时。

  • 当行以运算符开始时修复异常。

  • 关闭前允许新行 )}}] . (第5题)

0.5.0(2010-02-17)

  • 改变了 --count 切换到打印到sys.stderr,如果发现任何错误或警告,则将退出代码设置为1。

  • 从标准检查中删除E241和E242。如果要包括这些检查,请使用开关 --select=E,W . (第4题)

  • 在第一类方法或嵌套函数定义之前,空行不是必需的,即使有docstring。(第1题)

  • 添加开关 --version .

  • 使用python 3修复解码错误。(第13题) [1]

  • 添加 --select 选项是镜像 --ignore .

  • 在内联注释之前添加检查e261和e262中的空格。

  • 新的检查W604警告不推荐使用backticks。

  • 新检查W603警告不推荐使用的运算符 <> .

  • 由于重写了E225,性能得到了提高。

  • E225现在接受:

    • 一元运算符或类似运算符后没有空格。(第9题) [1]

    • 具有参数解包或关键字默认值的lambda函数。

  • 为模块级逻辑块保留“2空行”。(E303)

  • 允许多行注释。(E302,第10版) [1]

0.4.2(2009年10月22日)

  • 类和类方法上的修饰符现在可以了。

0.4(2009年10月20日)

  • 支持从2.3到3.1的所有版本的python。

  • 新的和大大扩展的自我测试。

  • 补充 --count 用于打印错误和警告总数的选项。

  • 对注释和空白行处理的进一步改进。(第1题) [1] 其他变化。)

  • 传递目录时检查目录中的所有py文件(问题2 [1] )这还可以防止在使用非 *.py 文件夹。

  • E231应允许逗号后接 ) . (第3题) [1]

  • 关键字参数或默认参数值的等号周围不再需要空格。

0.3.1(2009年9月14日)

  • 修改注释:检查项目之间的空行时不计算注释。

  • 添加了用于pypi上传和易于安装的setup.py。

0.2(2007年10月16日)

  • 大量的修复和改进。

0.1(2006年10月1日)

  • 第一次发布。