python第三方许可证文件生成器旨在将一个或多个pip“需求”文件的适当许可证提取为单个文件;它支持python2.7和python3。

third-party-license-file-generator的Python项目详细描述


#python第三方许可证文件生成器是为了将一个或多个pip"需求"文件的适当许可证提取到一个文件中;它支持python2.7和python3。



$pip安装第三方许可证文件生成器



$python-m第三方许可证文件生成器-h



无参数(pip"requirements"文件和安装了这些需求的python可执行路径除外),过程如下:

-遍历给定python可执行文件的site package s文件夹并构建包元数据(和许可证文件,
-按pip"requirements"文件中列出的包(以及那些包依赖项、它们的依赖项和它们的依赖项)筛选…要点如下)
-注意:下面是"-r在pip"requirements"文件中找到的"some_file.txt"引用
-如果无法保护包的许可证名称,尝试从程序包的pypi网页中收集这些信息
-如果许可证名称仍然不安全,并且程序包列出了github主页,请尝试从中查找许可证
-否则,假设软件包是商业许可的(法律上是这样理解的)
-如果软件包的许可文件不安全,并且软件包列出了github主页,请尝试从中查找许可证
-否则,请从许可证的本地集合(在python第三方许可证生成器中)
-向用户显示针对许可证的包摘要
-在当前文件夹中生成第三方许可证文件
-成功时返回零,失败时返回非零(例如gpl licensed当指定为不允许GPL时检测到的包)

值得注意的是,有关包的信息是缓存的-因此,如果必须为具有许多依赖项(但有些重叠)的组件的大型项目生成一个第三方许可证文件,则最好指定所有这些pip"requirements"文件和python可执行路径在一次调用python第三方许可证文件生成器时占用的时间较少。

多个pip"requirements"文件
-处理多个python可执行路径
-是否允许gpl许可的包(默认为否)
-特定的gpl许可的包异常(例如,如果某个包列出了可能适合您的需要但仍然是gpl许可的gpl异常)
-是否允许商业许可软件包(默认为否)
-特定的商业许可软件包例外情况(例如,如果您有软件包的许可证或拥有软件包)
-一个"跳过前缀"(例如,如果您想跳过以某个字符串开头的所有软件包)
-禁用Internet查找(如果不想从Pypi和Github中提取数据)

两个不同的python路径(virtualenvs)和一个跳过前缀:

-r requirements-py.txt \
-p~/.virtualenvs/后端py/bin/python \
-r requirements-py pypy.txt \
-p~/.virtualenvs/backend_pypypy/bin/python\
-s ims-


GPL异常和自定义输出文件:

python-m第三方许可证文件生成器ts.txt\
-p~/.virtualenvs/api-py py py/bin/python\
-r cpython-requirements.txt\
-p~/.virtualenvs/api-py/bin/python\
-x uwsgi\
-o thirdpartylicens.txt

3个不同的pip"requirements"文件,两个不同的python路径(需要重复),一个GPL异常,一个自定义输出文件和一个许可覆盖文件:

python-m第三方许可证文件生成器~/.virtualenvs/api_py/bin/python\
-x uwsgi\
-o thirdpartylicenses.txt\
-l license_override_file.yml

生成的第三方许可证文件的结构示例如下:

Python第三方许可证生成器,2018-04-19 12:36:58.627421


----------


包:django
许可证:bsd-3-clause
要求:pytz
作者:django software foundation<;foundation@djangoproject.com>;
主页:https://www.djangoproject.com/

(许可证内容全部显示在此处)

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

推荐PyPI第三方库


热门话题
javascript问题:通过URL用网站数据填充Textview   java TabLayout Android,如何用几个标签填充整个屏幕宽度,并用大量标签滚动?   Eclipse Java运行的文件不再存在于我的工作区中   安装两个Java版本时,使用Java的windows链接不起作用   java将多个图形添加到单个JPanel   java Kafka ConsumerFactory,带有两个Desiarizer   使用反射更改java类超类   当一致性测试失败时,java有没有办法让堆栈跟踪显示在控制台中   java映射到基元类型的HashMap的快速替代方案是什么?   java关闭一个jframe所有剩余的打开jframe都将关闭。   java为什么不推荐“使用getString()获取设备标识符”?   java值比较和值赋值之间有什么性能差异吗?   Java实体数组到JavaScript数组   java使用流将一个列表转换为另一个列表   在JTree中保存对象,但更改显示的名称(java swing)?   java“Hello world”Android应用程序,文件尽可能少,没有IDE,只有文本编辑器   java在方法之间传递值   java如何为项目数组创建ParseQuery?