spdx解析器和工具。
spdx-tools的Python项目详细描述
用于分析、验证和创建spdx文档的python spdx库
Linux | macOS | Windows |
---|---|---|
这个库在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
许可证
功能
- 创建和操作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/
因此,每当我们需要对代码进行一些更改时,我们应该遵循以下步骤:
- 创建新分支:
git checkout -b fix-or-improve-something
- 对分支进行一些更改和第一次提交:
git commit -m 'What changes we did'
- 将分支推到github:
git push origin fix-or-improve-something
- 在github上发出请求。
- 继续对分支进行更多的更改和提交,使用
git commit
和git push
。 - 完成后,写一个公关评论,要求代码审查。
- 其他一些开发人员将检查您的更改并接受您的pr。合并应尽可能使用
rebase
,或者使用squash
。 - 应该删除github上的临时分支(有一个删除它的按钮)。
- 同时删除本地分支:
git checkout master git pull -p git branch -a git branch -d fix-or-improve-something
除此之外,另一个要求是每次更改都应该修复或关闭问题:https://guides.github.com/features/issues/ 如果您要进行的更改没有问题,请首先创建一个描述需要执行的操作的问题,将其分配给您自己,然后开始关闭它。
依赖关系
- 层:https://pypi.python.org/pypi/ply/用于解析。
- rdflib:https://pypi.python.org/pypi/rdflib/用于处理rdf。
- pyyaml:https://pypi.org/project/PyYAML/用于处理yaml。
- xmltodict:用于处理xml的https://pypi.org/project/xmltodict/。
支架
- 提交问题、问题或反馈,网址:https://github.com/spdx/tools-python/issues
- 参加关于https://lists.spdx.org/mailman/listinfo/spdx-tech的讨论 https://spdx.org/WorkgroupTechnical