Flake8插件的Polyfill包
项目描述
flake8-polyfill 是一个包,为打算同时支持Flake8 2.x和3.x的插件提供一些兼容性辅助工具。
安装
pip install flake8-polyfill
使用方法
选项处理
与Flake8 2.x和3.x兼容性的一个问题领域是与注册选项和接收解析值。
Flake8 3.0向 add_option 方法添加了额外的参数,这些参数在Flake8 2.x上没有相同的效果。为了适应这种变化,此polyfill模块允许您这样做
from flake8_polyfill import options
class MyFlake8Plugin(object):
@classmethod
def add_options(cls, parser):
options.register(parser, '--my-long-option-name',
parse_from_config=True,
comma_separated_list=True,
default='...',
help='...')
options.register(parser, '-m', '--my-other-long-option-name',
parse_from_config=True,
normalize_paths=True,
default='...',
help='...')
@classmethod
def parse_options(cls, values):
cls.my_long_option_name = values.my_long_option_name
cls.my_other_long_option_name = values.my_other_long_option_name
并且代码在两个版本上以相同的方式工作。
检索标准输入
在Flake8 2.6之前,从插件获取标准输入上的代码很简单
import pep8
stdin = pep8.get_stdin_value()
在2.6中,您现在必须知道是使用 pep8 还是 pycodestyle,因为Flake8 2.6对 pycodestyle 进行了硬变更。
您需要知道哪个模块要使用的原因是标准输入可能会耗尽,Flake8进行了一些工作来缓存值,以确保调用总是返回所需的数据。
在3.0中,Flake8不再对这些模块进行猴子补丁。
为了适应这一点,这个包提供了
from flake8_polyfill import stdin
stdin.monkey_patch('all')
stdin.monkey_patch('pep8')
stdin.monkey_patch('pycodestyle')
这允许您使用polyfill模块猴子补丁您想要的任何内容,使其始终被猴子补丁。它也会以智能的方式这样做。
版本比较
Flake8 2.x 版本中没有包含用于轻松进行版本比较的对象。然而,Flake8 3.0 版本添加了 __version_info__ 属性。为了保持一致性,Flake8 Polyfill 将 2.x 的版本字符串转换为适合比较的元组。
from flake8_polyfill import version
if (2, 4) <= version.version_info < (2, 6):
# ...
elif (2, 6) <= version.version_info < (3, 0):
# ...
elif (3, 0) <= version.version_info < (4, 0):
# ...
许可证
MIT 协议
创建者
Ian Cordasco
项目详情
关闭
flake8-polyfill-1.0.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e44b087597f6da52ec6393a709e7108b2905317d0c0b744cdca6208e670d8eda |
|
MD5 | 076110bed47814d27019a0db25ad481b |
|
BLAKE2b-256 | e6671c26634a770db5c442e361311bee73cb3a177adb2eb3f7af8953cfd9f553 |
关闭
flake8_polyfill-1.0.2-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 12be6a34ee3ab795b19ca73505e7b55826d5f6ad7230d31b18e106400169b9e9 |
|
MD5 | 67d8b1752874fb120358ca7766717651 |
|
BLAKE2b-256 | 86b5a43fed6fd0193585d17d6faa7b85317d4461f694aaed546098c69f856579 |