spdx解析器和工具。

spdx-tools的Python项目详细描述


用于分析、验证和创建spdx文档的python spdx库

LinuxmacOSWindows
Linux build statusmacOS build statusWindows build status

这个库在python中实现了spdx标记/值和rdf解析器、验证器和处理程序。 这是由@ah450(或https://github.com/a-h-i)和 由SPDX使用者和爱好者组成的社区维护。

主页:https://github.com/spdx/tools-python

问题:https://github.com/spdx/tools-python/issues

PYPI:https://pypi.python.org/pypi/spdx-tools

许可证

Apache-2.0

功能

  • 创建和操作spdx文档的api。
  • 分析并创建标记/值、rdf、json、yaml、xml格式的spdx文件

待办事项

  • 更新至完整的SPDX v2.1
  • 添加到完全许可表达式支持中

如何使用

标记/值解析用法示例:

fromspdx.parsers.tagvalueimportParserfromspdx.parsers.tagvaluebuildersimportBuilderfromspdx.parsers.loggersimportStandardLoggerp=Parser(Builder(),StandardLogger())p.build()# data is a string containing the SPDX file.document,error=p.parse(data)

examples目录包含几个代码示例。其中一些:

  • parse_tv.py是一个标记/值解析用法的示例。 尝试运行python parse_tv.py ../data/SPDXSimpleTag.tag

  • write_tv.py提供了一个编写标记/值文件的示例。 运行python write_tv.py sample.tag进行测试。

  • pp_tv.py演示如何漂亮地打印标记/值文件。 要测试它,请运行python pp_tv.py ../data/SPDXTagExample.tag pretty.tag

  • parse_rdf.py演示如何解析rdf文件并打印出文档 信息。要测试它,请运行python parse_rdf.py ../data/SPDXRdfExample.rdf

  • rdf_to_tv.py演示如何将rdf文件转换为标记/值文件。 要测试它,请运行python rdf_to_tv.py ../data/SPDXRdfExample.rdf converted.tag

  • pp_rdf.py演示如何漂亮地打印rdf文件,以测试它是否运行 python pp_rdf.py ../data/SPDXRdfExample.rdf pretty.rdf

安装

像往常一样,你应该在virtualenv或venv工作。您可以安装本地克隆 使用yourenv/bin/pip install .或从pypi安装 yourenv/bin/pip install spdx-tools。请注意,在windows上它是Scripts 而不是bin

如何运行测试

从项目根目录运行:python setup.py test。 您可以根据自己的喜好使用另一个测试运行器,如pytest或nose。

开发过程

我们使用这里描述的github流:https://guides.github.com/introduction/flow/

因此,每当我们需要对代码进行一些更改时,我们应该遵循以下步骤:

  1. 创建新分支: git checkout -b fix-or-improve-something
  2. 对分支进行一些更改和第一次提交: git commit -m 'What changes we did'
  3. 将分支推到github: git push origin fix-or-improve-something
  4. 在github上发出请求。
  5. 继续对分支进行更多的更改和提交,使用git commitgit push
  6. 完成后,写一个公关评论,要求代码审查。
  7. 其他一些开发人员将检查您的更改并接受您的pr。合并应尽可能使用rebase,或者使用squash
  8. 应该删除github上的临时分支(有一个删除它的按钮)。
  9. 同时删除本地分支:
    git checkout master
    git pull -p
    git branch -a
    git branch -d fix-or-improve-something
    

除此之外,另一个要求是每次更改都应该修复或关闭问题:https://guides.github.com/features/issues/ 如果您要进行的更改没有问题,请首先创建一个描述需要执行的操作的问题,将其分配给您自己,然后开始关闭它。

依赖关系

支架

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

推荐PyPI第三方库


热门话题
JavaEclipse巨大的CPU峰值   java如何修复错误“上次成功发送到服务器的数据包是0毫秒前的。驱动程序尚未从服务器接收到任何数据包”   Java算法的C等价加密   java jackson序列化程序在禁用注释时引发NullPointerException   java制作了一种使用星星创建X为正方形的图像的方法   java软键盘切断了EditText/TextInputText控件的底部   java如何在jboss eap 7.3上启用cors?   摆动Java排列不规则形状   java逻辑Maven版本编号   在JShell中,如何评估整个java代码?   servlets对Java war文件进行签名并包含清单是有效的。MF在<warroot>/METAINF中   java在JTable中添加背景图像   java未收到来自服务器的响应   java解析Weblogic依赖项在编译时工作正常,但在运行时失败   带有两个Android应用程序模块的java Gradle项目   java有没有一种方法可以编写一个执行预定义手势和动作的应用程序?   java为什么finish()使所有活动都不能返回到以前的活动?   选项卡窗格的Java Swing makeTextPanel()方法