Skip to main content

SPDX parser and tools.

Project description

Python library to parse, validate and create SPDX documents

Linux macOS Windows
Linux build status macOS build status Windows build status

Information

This library implements SPDX parsers, convertors, validators and handlers in Python.

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

Apache-2.0

Features

  • API to create and manipulate SPDX documents.
  • Parse, convert and create Tag/Value, RDF, JSON, YAML, XML format SPDX files

TODOs

  • Update to full SPDX v2.2.1(ISO 5962:2021)
  • Update to full SPDX v2.3
  • Add full license expression support

How to use

Command-line usage:

  1. 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 for filename.

  • For help use pyspdxtools_parser --help

  1. 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 (Note: only RDF and Tag formatted supported) 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
  • 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 (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. If you are using a source distribution, try running : pyspdxtools_convertor --from tag tests/data/formats/SPDXTagExample.in --to yaml output.out
  • 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 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.

Dependencies

Support

Contributing

Contributions are very welcome! See CONTRIBUTING.md for instructions on how to contribute to the codebase.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spdx-tools-0.7.0rc0.tar.gz (283.6 kB view details)

Uploaded Source

Built Distribution

spdx_tools-0.7.0rc0-py3-none-any.whl (130.0 kB view details)

Uploaded Python 3

File details

Details for the file spdx-tools-0.7.0rc0.tar.gz.

File metadata

  • Download URL: spdx-tools-0.7.0rc0.tar.gz
  • Upload date:
  • Size: 283.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.12

File hashes

Hashes for spdx-tools-0.7.0rc0.tar.gz
Algorithm Hash digest
SHA256 650dd0786eb5012ec5fb267228f1cf226e9d53a31be59a4f2e2a840942c1402f
MD5 1ace044ca7306d8da1265ee238738797
BLAKE2b-256 cbaa777899a68f3d8a5e892edab835687ed245feb9f819809c4bfe6c2bd41d75

See more details on using hashes here.

File details

Details for the file spdx_tools-0.7.0rc0-py3-none-any.whl.

File metadata

File hashes

Hashes for spdx_tools-0.7.0rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 cf950dc92e916a0097f3cef3aaa6632462d2e0312561244a3f7640d018749a01
MD5 672d969515bc15c5b1d05a7fabd63ed9
BLAKE2b-256 4f60c9fdd6bacad33ff9f6871f4f6e30e4d35ba9c91f2ff0847f0f7d27eb2b0c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page