Skip to content

A Python library to parse, validate and create SPDX documents.

License

Notifications You must be signed in to change notification settings

DanBeard/tools-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python SPDX Parser Library

This library provides an implementation of an SPDX tag/value and RDF v1.2 parser in Python.

Official repository: http://git.spdx.org/?p=spdx-tools-python.git

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

Pypi: https://pypi.python.org/pypi/spdx-tools (not yet there, see issue #2)

License:

Apache-2.0

Expected Features:

  • API for creating and manipulating SPDX documents.
  • Parse Tag/Value format SPDX files
  • Parse RDF format SPDX files
  • Create Tag/Value files.
  • Create RDF files.

Current Status:

  • RDF Parser implemented.
  • Tag/value parser implemented
  • Tag/value writer implemented.
  • RDF/Writer implemented.

Plans:

  • Update to SPDX v2.1

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/vlue parsing uage. 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.

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

A Python library to parse, validate and create SPDX documents.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%