Skip to content

ah450/spdx-tools-python

Repository files navigation

Python SPDX Parser Library.

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

GitHub mirror: https://github.com/ah450/sdpx-tools-python

This library provides an implementation of a tag/value and RDF SPDX parser in python.

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.

How to use:

Sample 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 file parse_tv_ex.py has a working example.

Try running python parse_tv_ex.py 'Examples/SPDXSimpleTag.tag'

The file write_tv_ex.py provides an example of writing tag/value files.

Run python write_tv_ex.py sample.tag to test it.

The file pp_tv.py demonstrates how to parse a tag/value file and print it out. To test it run python pp_tv.py Examples/SPDXTagExample.tag pretty.tag.

The file parse_rdf.py demonstrates how to parse a RDF/xml file and print out document information. To test it run python parse_rdf.py Examples/SPDXRdfExample.rdf

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

The file rdf_pp.py demonstrates how to pretty print a RDF file, to test it run python rdf_pp.py Examples/SPDXRdfExample.rdf pretty.rdf

Installation:

Clone the repository and run python setup.py install on windows the command should be setup.py install

How to run tests:

From the project root directory.

run: nosetests

Dependencies:

nose : https://pypi.python.org/pypi/nose/1.3.3

PLY : https://pypi.python.org/pypi/ply/3.4

rdflib : https://pypi.python.org/pypi/rdflib/4.1.2