检查requirement.txt中的python包并报告问题
liccheck的Python项目详细描述
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