检查requirement.txt中的python包并报告问题

liccheck的Python项目详细描述


https://badge.fury.io/py/liccheck.svghttps://travis-ci.org/dhatim/python-license-check.svg?branch=master

python许可证检查器

检查requirements.txt文件中列出的python包并报告许可证问题。

关于

您可以定义授权许可证、未授权许可证和授权包的列表

该工具将检查requirements.txt文件,检查包及其 依赖项,如果某些包不兼容,则返回错误 违反既定策略。

该工具有三个级别的检查可供选择:

标准(默认):
当包的至少一个许可证是 在授权许可证列表中,或者如果包在 授权套餐。
谨慎:
Standard相同,但当 或更多的许可证在未经授权的许可证列表中,即使 在授权许可证列表中也有许可证。一个包裹还在 如果存在于授权软件包列表中,则符合要求。
偏执狂
为包列出的所有许可证都必须在授权许可证列表中 使包被视为符合要求。一个包裹还在 如果存在于授权软件包列表中,则符合要求。

如何安装

$ pip install liccheck

如何使用

liccheck将读取requirements.txt,并根据ini文件中定义的策略验证包的符合性。 如果未在命令行中指定该文件,则它将在当前文件夹中搜索requirements.txt。 必须使用授权许可证列表、未授权许可证列表和授权包列表来设置ini文件。

下面是strategy.ini文件的示例:

# Authorized and unauthorized licenses in LOWER CASE
[Licenses]
authorized_licenses:
        bsd
        new bsd
        bsd license
        new bsd license
        simplified bsd
        apache
        apache 2.0
        apache software license
        gnu lgpl
        lgpl with exceptions or zpl
        isc license
        isc license (iscl)
        mit
        mit license
        python software foundation license
        zpl 2.1

unauthorized_licenses:
        gpl v3

[Authorized Packages]
# Python software license (see http://zesty.ca/python/uuid.README.txt)
uuid: 1.30

注意:授权包的版本可以使用PEP-0440 version specifiers定义,例如>=1.3,<1.4。实现使用漂亮的包semantic_version

为了演示,假设您的requirements.txt文件包含以下内容:

Flask>=0.12.1
flask_restful
jsonify
psycopg2>=2.7.1
nose
scipy
scikit-learn
pandas
numpy
argparse
uuid
sqlbuilder
proboscis
pyyaml>=3.12

执行将输出此消息:

$ liccheck -s my_strategy.ini -r my_project/required.txt
gathering licenses...23 packages and dependencies.
check forbidden packages based on licenses...none
check authorized packages based on licenses...19 packages.
check authorized packages...4 packages.
check unknown licenses...none

如果某些依赖项未知或与策略不匹配,则输出如下:

$ liccheck -s my_strategy.ini -r my_project/requirements.txt
    gathering licenses...32 packages and dependencies.
    check forbidden packages based on licenses...1 forbidden packages :
        Unidecode (0.4.21) : GPL ['GNU General Public License v2 or later (GPLv2+)']
          dependency:
              Unidecode << python-slugify << yoyo-migrations

    check authorized packages based on licenses...24 packages.
    check authorized packages...6 packages.
    check unknown licenses...1 unknown packages :
        feedparser (5.2.1) : UNKNOWN []
          dependency:
              feedparser

许可

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

推荐PyPI第三方库


热门话题
iOS MDM注册配置文件请求/Profile使用java对证书进行签名   java如何调试GWT项目中的PHP文件   Mac和Windows之间的Java文件getFreeSpace差异   java从ArrayList进入JComboBox   ApacheKafka如何执行zookeeperserverstart。我的java程序中的bat文件?   JAXRS应用程序的java初始化   java如何为double覆盖compareTo方法?   使用进程动态运行java代码   sockets java。网SocketException:权限被拒绝openshift   java PorterduffXfermode:清除位图的一部分   其他线程中变量的java更改侦听器   java如何初始化接口实例以与父片段中的子片段通信   java Cordova插件在构建时出错,源代码1.6中不支持菱形运算符使用源代码7   java是学习编程的教育游戏吗?   在不同机器上使用JasperReports API运行代码时出现java问题   java Spring引导延迟Flyway序列化循环依赖   未为加密/解密初始化java密码