SPDX parser and tools.
Project description
Python library to to parse, validate and create SPDX documents
Linux | macOS | Windows |
---|---|---|
Information
This library implements SPDX tag/value and RDF parsers, 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
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 documents.
- Parse and create Tag/Value, RDF, JSON, YAML, XML format SPDX files
TODOs
- Update to full SPDX v2.1
- Add to full license expression support
How to use
Command-line usage:
- 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 then 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 formated 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 enterred format of the input file (can be either rdf or tag) and<out_format>
(can be tag, rdf, json, yaml, xml) is the manually enterred format of the output file. Try running :convertor --from tag data/SPDXTagExample.in --to yaml output.out
- Use
-
If anyone format is known and other is not, you can use the mixture of the above two points.
Ex. :convertor -f rdf data/SPDXRdfExample.xyz -o output.xml
-
for help - use
convertor --help
Installation
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 from PyPI with
yourenv/bin/pip install spdx-tools
. Note that on Windows it would be Scripts
instead of bin
.
How to run tests
Tests framework is using pytest
pip install pytest
pytest -vvs
Development process
We use the GitHub flow that is described here: https://guides.github.com/introduction/flow/
So, whenever we have to make some changes to the code, we should follow these steps:
- Create a new branch:
git checkout -b fix-or-improve-something
- Make some changes and the first commit(s) to the branch:
git commit --signoff -m 'What changes we did'
- Push the branch to GitHub:
git push origin fix-or-improve-something
- Make a pull request on GitHub.
- Continue making more changes and commits on the branch, with
git commit --signoff
andgit push
. - When done, write a comment on the PR asking for a code review.
- Some other developer will review your changes and accept your PR. The merge should be done with
rebase
, if possible, or withsquash
. - The temporary branch on GitHub should be deleted (there is a button for deleting it).
- Delete the local branch as well:
git checkout master git pull -p git branch -a git branch -d fix-or-improve-something
Besides this, another requirement is that every change should be made to fix or close an issue: https://guides.github.com/features/issues/ If there is no issue for the changes that you want to make, create first an issue about it that describes what needs to be done, assign it to yourself, and then start working for closing it.
Dependencies
- 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.
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 dicussion on https://lists.spdx.org/g/spdx-tech and https://spdx.dev/participate/tech/
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 Distributions
Built Distribution
File details
Details for the file ws_spdx_tools-0.7.0a4.post6-py3-none-any.whl
.
File metadata
- Download URL: ws_spdx_tools-0.7.0a4.post6-py3-none-any.whl
- Upload date:
- Size: 125.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea55a919b32f57f975a8a323718324379372768daba38f92438f6c6f22e0c29b |
|
MD5 | c08307fcba21e671d4a046e558b6b2d1 |
|
BLAKE2b-256 | 42696294bc2ab990cf57d48c8b1b0a316336320e4184aa3b79b89b35ed0451f2 |