SPDX parser and tools.
Project description
Python library to parse, validate and create SPDX documents
Linux | macOS | Windows |
---|---|---|
Information
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-hypernode.com/pypi/spdx-tools
History
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.
License
Features
- API to create and manipulate SPDX v2.3 documents.
- Parse, convert, create and validate Tag/Value, RDF, JSON, YAML, XML format SPDX files
Known Limitations
- No full 2.3 support for RDF format #295
- No full license expression support #10
- Output of the CLI parser is incomplete #268
TODOs
- Include specialized validation for SPDX v2.2.1(ISO 5962:2021)
How to use
Command-line usage:
- PARSER (for parsing any format):
-
Use
pyspdxtools_parser --file <filename>
where<filename>
is the location of the file.
If you are using a source distribution, try running:pyspdxtools_parser --file tests/data/formats/SPDXRdfExample.rdf
. -
Or you can use
pyspdxtools_parser
only, and it will automatically prompt/ask forfilename
. -
For help use
pyspdxtools_parser --help
- CONVERTOR (for converting one format to another):
-
If I/O formats are known:
- Use
pyspdxtools_convertor --infile/-i <input_file> --outfile/-o <output_file>
where<input_file>
is the location of the file to be converted and<output_file>
is the location of the output file.
If you are using a source distribution, try running :pyspdxtools_convertor --infile tests/data/formats/SPDXRdfExample.rdf --outfile output.json
- Use
-
If I/O formats are not known:
- Use
pyspdxtools_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 and<out_format>
is the manually entered format of the output file. If you are using a source distribution, try running :pyspdxtools_convertor --from tag tests/data/formats/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 (if you are using a source distribution):pyspdxtools_convertor -f rdf tests/data/formats/SPDXRdfExample.xyz -o output.xml
-
For help use
pyspdxtools_convertor --help
Installation
As always you should work in a virtualenv (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
.
Dependencies
- PLY: https://pypi-hypernode.com/pypi/ply/ used for parsing.
- rdflib: https://pypi-hypernode.com/pypi/rdflib/ for handling RDF.
- PyYAML: https://pypi-hypernode.com/project/PyYAML/ for handling YAML.
- xmltodict: https://pypi-hypernode.com/project/xmltodict/ for handling XML.
- click: https://pypi-hypernode.com/project/click/ for creating the CLI interface.
Support
- 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/
Contributing
Contributions are very welcome! See CONTRIBUTING.md for instructions on how to contribute to the codebase.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for spdx_tools-0.7.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 400080a00fb024327a05a3e637b83490764b82f0c6e22a2033267603b842b0ea |
|
MD5 | 5182145483106bc71eaac00dee035b67 |
|
BLAKE2b-256 | c02cbfa9682e316db82e27cb4c2c16be54771e1b85d95424c3dbc10118ca982a |