| Linux | macOS | Windows |
|---|---|---|
| |
This library implements an SPDX tag/value and RDF parser, validator and handler in Python. This is the result of an initial GSoC contribution by @ah450 (or https://github.com/a-h-i) and is maintained by a community of SPDX adopters and enthusiasts.
Home: https://github.com/spdx/tools-python
Issues: https://github.com/spdx/tools-python/issues
Pypi: https://pypi.python.org/pypi/spdx-tools
- API to create and manipulate SPDX documents.
- Parse and create Tag/Value format SPDX files
- Parse and create RDF format SPDX files
- Update to full SPDX v2.1
- Add to full license expression support
Example tag/value parsing usage:
from spdx.parsers.tagvalue import Parser from spdx.parsers.tagvaluebuilders import Builder from spdx.parsers.loggers import StandardLogger p = Parser(Builder(), StandardLogger()) p.build() # data is a string containing the SPDX file. document, error = p.parse(data)The examples directory contains several code samples:
-
parse_tv.pyis an example tag/value parsing usage. Try runningpython parse_tv.py '../data/SPDXSimpleTag.tag' -
write_tv.pyprovides an example of writing tag/value files. Runpython write_tv.py sample.tagto test it. -
pp_tv.pydemonstrates how to pretty-print a tag/value file. To test it runpython pp_tv.py ../data/SPDXTagExample.tag pretty.tag. -
parse_rdf.pydemonstrates how to parse an RDF file and print out document information. To test it runpython parse_rdf.py ../data/SPDXRdfExample.rdf -
rdf_to_tv.pydemonstrates how to convert an RDF file to a tag/value one. To test it runpython rdf_to_tv.py ../data/SPDXRdfExample.rdf converted.tag -
pp_rdf.pydemonstrates how to pretty-print an RDF file, to test it runpython pp_rdf.py ../data/SPDXRdfExample.rdf pretty.rdf
Clone or download the repository and run python setup.py install. (In a virtualenv, of course)
or install from Pypi with pip install spdx-tools
From the project root directory run: python setup.py test. You can use another test runner such as pytest or nose at your preference.
- PLY : https://pypi.python.org/pypi/ply/ used for parsing.
- rdflib : https://pypi.python.org/pypi/rdflib/ for for handling RDF.
- Submit issues, questions or feedback at: https://github.com/spdx/tools-python/issues
- Join the dicussion on https://lists.spdx.org/mailman/listinfo/spdx-tech and https://spdx.org/WorkgroupTechnical