用于Flake8插件的PolyFill包
flake8-polyfill的Python项目详细描述
flake8-polyfill是一个包,它为 Flake8插件打算同时支持Flake8 2.x和3.x。
安装
pip install flake8-polyfill
用法
选项处理
与flake8 2.x和3.x兼容的一个问题是注册 选项和接收解析的值。
flake8 3.0向add_option方法添加了额外的参数,但是 对flake8 2.x也有同样的效果。为了适应变化,这个polyfill 模块允许您执行以下操作:
fromflake8_polyfillimportoptionsclassMyFlake8Plugin(object):@classmethoddefadd_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='...')@classmethoddefparse_options(cls,values):cls.my_long_option_name=values.my_long_option_namecls.my_other_long_option_name=values.my_other_long_option_name
并让代码在两个版本上以相同的方式工作。
检索
中的标准在flake8 2.6之前,从插件获取标准的代码 简单:
importpep8stdin=pep8.get_stdin_value()
在2.6中,您现在必须知道是使用pep8还是pycodestyle,因为 flake8 2.6对pycodestyle进行了硬更改。
您需要知道使用哪个模块的原因是 筋疲力尽,flake8做了一些工作来缓存该值,以便调用始终 返回所需的数据。
在3.0中,flake8不再对这些模块进行monkey补丁。
为了适应这种情况,此软件包提供:
fromflake8_polyfillimportstdinstdin.monkey_patch('all')stdin.monkey_patch('pep8')stdin.monkey_patch('pycodestyle')
这允许你有你想要的polyfill模块猴子补丁,所以 总是猴子打补丁。它还将以一种明智的方式这样做。
版本比较
flake8 2.x没有包含允许轻松版本的对象 比较。但是,flake8 3.0添加了一个__version_info__属性。为了 一致性,flake8 polyfill会将2.x版本的字符串转换为元组 适合比较。
fromflake8_polyfillimportversionif(2,4)<=version.version_info<(2,6):# ...elif(2,6)<=version.version_info<(3,0):# ...elif(3,0)<=version.version_info<(4,0):# ...
许可证
麻省理工学院
创建者
伊恩·科达斯科