跳转到主要内容

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 (7.6 kB 查看哈希值)

上传时间 源代码

构建分发

flake8_polyfill-1.0.2-py2.py3-none-any.whl (7.3 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下提供支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面