Linux | macOS | Windows |
---|---|---|
|
This library implements SPDX parsers, convertors, validators and handlers in Python.
- Home: https://github.com/spdx/tools-python
- Issues: https://github.com/spdx/tools-python/issues
- Pypi: https://pypi.python.org/pypi/spdx-tools
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.
- API to create and manipulate SPDX documents.
- Parse, convert and create Tag/Value, RDF, JSON, YAML, XML format SPDX files
- Update to full SPDX v2.2.1(ISO 5962:2021)
- Update to full SPDX v2.3
- Add full license expression support
- PARSER (for parsing any format):
-
Use
parser --file <filename>
where<filename>
is the location of the file.
Try running:parser --file data/SPDXRdfExample.rdf
. -
Or you can use
parser
only, and it will automatically prompt/ask forfilename
. -
For help use
parser --help
- CONVERTOR (for converting one format to another):
-
If I/O formats are known:
- Use
convertor --infile/-i <input_file> --outfile/-o <output_file>
where<input_file>
is the location of the file to be converted (Note: only RDF and Tag formatted supported) and<output_file>
is the location of the output file.
Try running :convertor --infile data/SPDXRdfExample.rdf --outfile output.json
- Use
-
If I/O formats are not known:
- Use
convertor --from/-f <input_format> <input_file> --to/-t <output_format> <output_file>
where<input_format>
is the manually entered format of the input file (can be either rdf or tag) and<out_format>
(can be tag, rdf, json, yaml, xml) is the manually entered format of the output file. Try running :convertor --from tag data/SPDXTagExample.in --to yaml output.out
- Use
-
If one of the formats is known and the other is not, you can use a mixture of the above two points.
Example:convertor -f rdf data/SPDXRdfExample.xyz -o output.xml
-
For help use
convertor --help
As always you should work in a virtualenv or venv. You can install a local clone
of this repo with yourenv/bin/pip install .
or install it from PyPI with
yourenv/bin/pip install spdx-tools
. Note that on Windows it would be Scripts
instead of bin
.
- PLY: https://pypi.python.org/pypi/ply/ used for parsing.
- rdflib: https://pypi.python.org/pypi/rdflib/ for handling RDF.
- PyYAML: https://pypi.org/project/PyYAML/ for handling YAML.
- xmltodict: https://pypi.org/project/xmltodict/ for handling XML.
- click: https://pypi.org/project/click/ for creating the CLI interface.
- Submit issues, questions or feedback at https://github.com/spdx/tools-python/issues
- Join the chat at https://gitter.im/spdx-org/Lobby
- Join the discussion on https://lists.spdx.org/g/spdx-tech and https://spdx.dev/participate/tech/
Contributions are very welcome! See CONTRIBUTING.md for instructions on how to contribute to the codebase.