jasinner / tools-python

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

Home Page:http://spdx.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 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 it will automatically prompt/ask for filename.

  • For help use parser --help

  1. 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 formatted supported) and <output_file> is the location of the output file.
      Try running : convertor --infile data/SPDXRdfExample.rdf --outfile output.json
  • 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 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. Try running : convertor --from tag data/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: 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 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.

About

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

http://spdx.org

License:Apache License 2.0


Languages

Language:Python 100.0%