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
File details
Details for the file spdx-tools-0.7.1rc1.tar.gz
.
File metadata
- Download URL: spdx-tools-0.7.1rc1.tar.gz
- Upload date:
- Size: 200.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82d959d482f033d79bfaf32d2771cdffb3a57396e53c264d82d66366f9a55782 |
|
MD5 | d8aefc67963cad9a486969c79bbf0a7b |
|
BLAKE2b-256 | 24db8c895665aeb0bcfa83b82a055bf61a6dc7cc0b55d867e9675adfa4c70969 |
Provenance
File details
Details for the file spdx_tools-0.7.1rc1-py3-none-any.whl
.
File metadata
- Download URL: spdx_tools-0.7.1rc1-py3-none-any.whl
- Upload date:
- Size: 143.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7bf7a2e075535cf05e91db62df61d744ed1523ac837310850fc025b65b79fd0 |
|
MD5 | 5ad9e02238ee5d1decdabf74e0ff93cb |
|
BLAKE2b-256 | 7a46e671e6a01229703854edbe63af41eb58089e1464ae9db1fb9a3c92c08fc0 |