flake8插件,用于检查是否正确地保护了输入导入

flake8-typing-imports的Python项目详细描述


Build StatusAzure DevOps coverage

flake8输入导入

flake8插件,用于检查输入导入是否受到适当保护

安装

pip install flake8-typing-imports

flake8代码

CodeDescription
TYP001guard import by ^{}
TYP002^{} is broken in <3.5.2

基本原理

不幸的是,typing模块非常不稳定——它看到了api 3.5.0、3.5.2、3.5.3、3.5.4、3.6.0、3.6.1、3.6.2、3.7.0和3.7.2中的更改!

根据您支持的python版本,您可能需要保护 通过if TYPE_CHECKING:(3.5.2+)或if False:导入 导入在您支持的所有python中都不可用。

因为很难跟踪什么版本的东西发生了变化 不能总是针对python的特定补丁版本进行测试,这个插件 帮助您自动静态检查!

# default / --min-python-version 3.5.0fromtypingimportType# TYP001
# default / --min-python-version 3.5.0ifFalse:fromtypingimportType# OK!
# default / --min-python-version 3.5.0fromtypingimportoverload# TYP002
# default / --min-python-version 3.5.0importsysfromtypingimportoverload# OK!ifsys.version_info<(3,5,2):defoverload(f):returnf
# --min-python-version 3.7.0fromtypingimportTYPE_CHECKINGifTYPE_CHECKING:fromtypingimportOrderedDict# OK!

配置

这个插件只有一个配置点(超出flake8提供的配置点) 这是--min-python-version选项。

默认情况下,此选项为3.5.0。这包括python的所有版本 它们有typing模块。

如果不需要,也可以在flake8配置中设置此选项 使用命令行:

[flake8]min_python_version=3.6.2

如果在setup.cfg中为python_requires设置了>=,则将使用该值:

# setup.cfg setuptools metadata[options]python_requires=>=3.6

作为预提交挂钩

有关说明,请参见pre-commit

样本.pre-commit-config.yaml

-repo:https://gitlab.com/pycqa/flake8rev:3.7.7hooks:-id:flake8additional_dependencies:[flake8-typing-imports==1.3.0]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
异常如何在java中从jar以InputStream的形式加载嵌入式字体?   java如何处理关系0。。1来自uml   java XML解析错误休眠   java如何将数据从一个数据库复制到另一个oracle数据库?   安卓中的java简单选项卡活动   java使用JWT身份验证与用户合作的正确方式是什么?   安卓 Java从队列中检索所有元素,直到队列为空   java Geocoder在Android中经常返回空值   带有删除和添加通知的java自定义arraylist   java是否可以在ingiteRepository中使用“findbyId”方法?   java如何使用ttorrent创建torrent文件?   xml如何从XSL文件中调用Java函数?   java如何模块化长代码   使用节点实现优先级队列时的java nullpointerexception   java My JFrame窗口不会出现   java无法在chrome中运行JavaFXJAR   来自音频文件的java Android基本TTS引擎   java通过传递latlong更新Google地图位置,构造函数抛出空点异常   java如何使用参数创建授权URL请求   java排列数组并将每个结果保存到ArrayList