Skip to content

An SPDX tag/values (and RDF) library to parse, validate and create SPDX documents in Python.

License

Notifications You must be signed in to change notification settings

avirlrma/tools-python

 
 

Repository files navigation

Python SPDX Library to parse, validate and create SPDX documents

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

This library implements an SPDX tag/value and RDF parser, validator and handler in Python. 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.

Home: https://github.com/spdx/tools-python

Issues: https://github.com/spdx/tools-python/issues

Pypi: https://pypi.python.org/pypi/spdx-tools

License

Apache-2.0

Features

  • API to create and manipulate SPDX documents.
  • Parse and create Tag/Value format SPDX files
  • Parse and create RDF format SPDX files

TODOs

  • Update to full SPDX v2.1
  • Add to full license expression support

How to use

Example tag/value parsing usage:

    from spdx.parsers.tagvalue import Parser
    from spdx.parsers.tagvaluebuilders import Builder
    from spdx.parsers.loggers import StandardLogger
    p = Parser(Builder(), StandardLogger())
    p.build()
    # data is a string containing the SPDX file.
    document, error = p.parse(data)

The examples directory contains several code samples:

  • parse_tv.py is an example tag/value parsing usage. Try running python parse_tv.py '../data/SPDXSimpleTag.tag'

  • write_tv.py provides an example of writing tag/value files. Run python write_tv.py sample.tag to test it.

  • pp_tv.py demonstrates how to pretty-print a tag/value file. To test it run python pp_tv.py ../data/SPDXTagExample.tag pretty.tag.

  • parse_rdf.py demonstrates how to parse an RDF file and print out document information. To test it run python parse_rdf.py ../data/SPDXRdfExample.rdf

  • rdf_to_tv.py demonstrates how to convert an RDF file to a tag/value one. To test it run python rdf_to_tv.py ../data/SPDXRdfExample.rdf converted.tag

  • pp_rdf.py demonstrates how to pretty-print an RDF file, to test it run python pp_rdf.py ../data/SPDXRdfExample.rdf pretty.rdf

Installation

Clone or download the repository and run python setup.py install. (In a virtualenv, of course)

or install from Pypi with pip install spdx-tools

How to run tests

From the project root directory run: python setup.py test. You can use another test runner such as pytest or nose at your preference.

Dependencies

Support

About

An SPDX tag/values (and RDF) library to parse, validate and create SPDX documents in Python.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%