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第三方库


热门话题
面向批处理的java非阻塞队列   java如何基于HttpComponent获取html内容   java为什么我的程序会显示此错误?   java spring控制器如何处理应用程序/octetstream请求?   尝试将数据插入数据库时出现java常规错误   无法在java多线程处理中维护生产者任务的顺序   java为什么JSON数据无法访问ViewPager?   java获取Maven中特定分支的SVN buildnumber   java客户端无法从服务器接收信息   java等轴测地图绘制,生成   java无法调试ProcessBuilder   java热点JVM阵列分配   在数组中存储“inputdialog”数据的java   saml Java Inflater引发DataFormatException“无效代码长度集”   从集合(爬虫、Jsoup、Java)写入文件