软件包需求检查器,flake8插件

flake8-requirements的Python项目详细描述


此模块为flake8提供一个插件,用于检查/验证 包导入要求。它报告缺少和/或未使用项目直接依赖项。

此插件添加了新的flake8警告:

  • I900:包未列为要求。
  • I901:需要但未使用包。

重要注意事项

为了收集项目的依赖项,这个检查器从 setup.py文件存储在项目的根目录中。代码评估是用 eval()函数。作为退步 方法,此检查程序还尝试从requirements.txt文件加载依赖项。

在这一点上,非常重要的是要意识到上述做法的后果。一个 可能会将恶意代码注入setup.py文件,此检查程序将执行该文件。 因此,此检查器决不能用于检查来自未知源的代码!然而,在大多数情况下 例如,一个验证来自已知源的代码(例如自己的代码),另一个运行存储在 反正是setup.py文件。最坏的情况是,这个检查程序将执行 相当于python setup.py,它应该是等幂的(这是一个可怕的设计 setup.py如果不是的话。

如果您在检查flake8时注意到一些副作用,那么您的setup.py文件是 以标准方式(例如pypa-sampleproject)编写,请填写错误报告。

安装

您可以使用以下命令安装、升级或卸载flake8-requirements

$ pip install flake8-requirements
$ pip install --upgrade flake8-requirements
$ pip uninstall flake8-requirements

定制

对于具有自定义(私有)依赖项的项目,可以提供项目名称和 提供的模块。这样的映射可以在flake8调用期间在命令行上设置 --known-modules选项,或者在配置的[flake8]部分中 文件,例如setup.cfg。自定义映射的语法如下:

1st-project-name:[module1,module2,...],2nd-project-name:[moduleA,moduleB,...],...

如果某些本地项目在setup.py文件中缺少“name”属性(强烈建议 但是,如果不提供“name”属性,则可以在映射中省略项目名,然后 如下所示:

:[localmodule1,localmodule2,...],1st-local-library:[moduleA,moduleB,...],...

现实生活示例:

$ cat setup.cfg
[flake8]
max-line-length = 100
known-modules = my-lib:[mylib.drm,mylib.encryption]

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

推荐PyPI第三方库


热门话题
JavaSpringBootHibernate5忽略@Table和@Column   java readLine是如何工作的?   java除了Oracle的JVM(windows)之外,还有什么BSD许可的替代方案吗?   javascript处理程序执行导致异常:所需的MultipartFile参数“file”不存在   java如何检查url是否与标识符匹配?   java在对象创建之后实现一个接口   java安卓:如何将github库放入项目中   java如何制作自定义文本组件?   如何在java中更新属性文件   java Hibernate持久映射   JavaSpring批处理如何从postgres读取数据,然后在步骤中写入数据   java应用程序已在Android Emulator Eclipse中停止   java找不到参数[org.jetbrains.kotlin:kotlinstdlibjdk7:1.3.50]的方法实现()   java AWS DynamoDB如何从数据库中获取只有一个字段的对象   在使用ajax进行表单提交时,java无法阻止默认表单提交   集合如何在Java中定义基于两个变量进行比较的比较器   多线程基准测试Java中的多线程集合   java如何通过浏览器运行终端程序?