{ "info": { "author": "Ahmed H. Ismail", "author_email": "ahm3d.hisham@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 2.7" ], "description": "# Python SPDX Library to parse, validate and create SPDX documents\n\n| Linux | macOS | Windows |\n| :---- | :------ | :---- |\n[ ![Linux build status][1]][2] | [![macOS build status][3]][4] | [![Windows build status][5]][6] |\n\n[1]: https://travis-ci.org/spdx/tools-python.svg?branch=master\n[2]: https://travis-ci.org/spdx/tools-python\n[3]: https://circleci.com/gh/spdx/tools-python/tree/master.svg?style=shield&circle-token=36cca2dfa3639886fc34e22d92495a6773bdae6d\n[4]: https://circleci.com/gh/spdx/tools-python/tree/master\n[5]: https://ci.appveyor.com/api/projects/status/0bf9glha2yg9x8ef/branch/master?svg=true\n[6]: https://ci.appveyor.com/project/spdx/tools-python/branch/master\n\nThis library implements an SPDX tag/value and RDF parser, validator and handler in Python.\nThis is the result of an initial GSoC contribution by @[ah450](https://github.com/ah450) (or https://github.com/a-h-i) and \nis maintained by a community of SPDX adopters and enthusiasts.\n\nHome: https://github.com/spdx/tools-python\n\nIssues: https://github.com/spdx/tools-python/issues\n\nPypi: https://pypi.python.org/pypi/spdx-tools\n\n\n# License\n\n[Apache-2.0](LICENSE)\n\n\n# Features\n\n* API to create and manipulate SPDX documents.\n* Parse and create Tag/Value, RDF, JSON, YAML, XML format SPDX files\n\n\n# TODOs\n\n* Update to full SPDX v2.1\n* Add to full license expression support\n\n\n# How to use\n\nExample tag/value parsing usage:\n```Python\n from spdx.parsers.tagvalue import Parser\n from spdx.parsers.tagvaluebuilders import Builder\n from spdx.parsers.loggers import StandardLogger\n p = Parser(Builder(), StandardLogger())\n p.build()\n # data is a string containing the SPDX file.\n document, error = p.parse(data)\n\n```\n\nThe `examples` directory contains several code samples. Here some of them:\n\n* `parse_tv.py` is an example tag/value parsing usage.\n Try running `python parse_tv.py ../data/SPDXSimpleTag.tag `\n\n* `write_tv.py` provides an example of writing tag/value files.\n Run `python write_tv.py sample.tag` to test it.\n\n* `pp_tv.py` demonstrates how to pretty-print a tag/value file.\n To test it run `python pp_tv.py ../data/SPDXTagExample.tag pretty.tag`.\n\n* `parse_rdf.py` demonstrates how to parse an RDF file and print out document \n information. To test it run `python parse_rdf.py ../data/SPDXRdfExample.rdf`\n\n* `rdf_to_tv.py` demonstrates how to convert an RDF file to a tag/value one.\n To test it run `python rdf_to_tv.py ../data/SPDXRdfExample.rdf converted.tag`\n\n* `pp_rdf.py` demonstrates how to pretty-print an RDF file, to test it run \n `python pp_rdf.py ../data/SPDXRdfExample.rdf pretty.rdf`\n\n\n# Installation\n\nAs always you should work in a virtualenv or venv. You can install a local clone\nof this repo with `yourenv/bin/pip install .` or install from PyPI with\n`yourenv/bin/pip install spdx-tools`. Note that on Windows it would be `Scripts`\ninstead of `bin`.\n\n\n# How to run tests\n\nFrom the project root directory run: `python setup.py test`.\nYou can use another test runner such as pytest or nose at your preference.\n\n\n# Development process\n\nWe use the GitHub flow that is described here: https://guides.github.com/introduction/flow/\n\nSo, whenever we have to make some changes to the code, we should follow these steps:\n1. Create a new branch:\n `git checkout -b fix-or-improve-something`\n2. Make some changes and the first commit(s) to the branch: \n `git commit -m 'What changes we did'`\n3. Push the branch to GitHub:\n `git push origin fix-or-improve-something`\n4. Make a pull request on GitHub.\n5. Continue making more changes and commits on the branch, with `git commit` and `git push`.\n6. When done, write a comment on the PR asking for a code review.\n7. Some other developer will review your changes and accept your PR. The merge should be done with `rebase`, if possible, or with `squash`.\n8. The temporary branch on GitHub should be deleted (there is a button for deleting it).\n9. Delete the local branch as well:\n ```\n git checkout master\n git pull -p\n git branch -a\n git branch -d fix-or-improve-something\n ```\n\nBesides this, another requirement is that every change should be made to fix or close an issue: https://guides.github.com/features/issues/\nIf there is no issue for the changes that you want to make, create first an issue about it that describes what needs to be done, assign it to yourself, and then start working for closing it.\n\n\n# Dependencies\n\n* PLY : https://pypi.python.org/pypi/ply/ used for parsing.\n* rdflib : https://pypi.python.org/pypi/rdflib/ for handling RDF. \n* PyYAML: https://pypi.org/project/PyYAML/ for handling YAML.\n* xmltodict: https://pypi.org/project/xmltodict/ for handling XML.\n\n\n# Support\n\n* Submit issues, questions or feedback at: https://github.com/spdx/tools-python/issues\n* Join the dicussion on https://lists.spdx.org/mailman/listinfo/spdx-tech and \n https://spdx.org/WorkgroupTechnical\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/spdx/tools-python", "keywords": "", "license": "Apache-2.0", "maintainer": "Philippe Ombredanne, SPDX group at the Linux Foundation and others", "maintainer_email": "pombredanne@gmail.com", "name": "spdx-tools", "package_url": "https://pypi.org/project/spdx-tools/", "platform": "", "project_url": "https://pypi.org/project/spdx-tools/", "project_urls": { "Homepage": "https://github.com/spdx/tools-python" }, "release_url": "https://pypi.org/project/spdx-tools/0.6.1/", "requires_dist": [ "ply", "rdflib", "six", "pyyaml", "xmltodict" ], "requires_python": "", "summary": "SPDX parser and tools.", "version": "0.6.1" }, "last_serial": 5743834, "releases": { "0.3": [ { "comment_text": "", "digests": { "md5": "29cdb6e3167742638d4d27c9cda7077e", "sha256": "0af60f93af823f81ce6ecfac0fad5f628544c5d29e825c377a3b2d9e3c46ec04" }, "downloads": -1, "filename": "spdx_tools-0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "29cdb6e3167742638d4d27c9cda7077e", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 61358, "upload_time": "2017-01-04T21:37:43", "url": "https://files.pythonhosted.org/packages/d9/85/d6ef92c78efd1440f42fe0e3df6ca1e838d8b75d9a249968778bc5c2040f/spdx_tools-0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9ca321cbd06d41b2cca0d8eaa2a1f6b9", "sha256": "3970b7b7778096d47dca86d4f7d8403f0c1ae7c752de90a004f846903c7e3beb" }, "downloads": -1, "filename": "spdx-tools-0.3.zip", "has_sig": false, "md5_digest": "9ca321cbd06d41b2cca0d8eaa2a1f6b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55233, "upload_time": "2017-01-04T21:37:40", "url": "https://files.pythonhosted.org/packages/62/ed/46764d6f6ee3a1d128a8f24c04e99070c1ea342f9b0b01e6d0dc675f06b9/spdx-tools-0.3.zip" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "8ec3fba697ab8f212d5a88afe63c70a4", "sha256": "12901c40fce1c5b4d58229a0e54972f0f10d35e12ac445c4c003473bfffa461d" }, "downloads": -1, "filename": "spdx_tools-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8ec3fba697ab8f212d5a88afe63c70a4", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 61433, "upload_time": "2017-01-16T14:31:17", "url": "https://files.pythonhosted.org/packages/3e/41/6dc2476b4b6a4d33d016aea0d95acc94b409ba68254ff365d23f2a16ab2c/spdx_tools-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "676c50e80a36ad298a7b55d22530b31e", "sha256": "66c0522e6ababa69396db9072687d6bd54645995e4b093e251e5aa4017ef6c44" }, "downloads": -1, "filename": "spdx-tools-0.4.1.zip", "has_sig": false, "md5_digest": "676c50e80a36ad298a7b55d22530b31e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55411, "upload_time": "2017-01-16T14:31:11", "url": "https://files.pythonhosted.org/packages/a6/4a/c0eb1b5b9d35f50b72d591a8bf7f1a8476333786a94cfc85dab3db54ef46/spdx-tools-0.4.1.zip" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "264f9c513adaf7a97015766c925b5047", "sha256": "922f99eebbb795a8ea46e81eb59cb8cad74a163a3c8105b0128b2c0b1d53e64c" }, "downloads": -1, "filename": "spdx_tools-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "264f9c513adaf7a97015766c925b5047", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 66501, "upload_time": "2017-06-13T16:46:08", "url": "https://files.pythonhosted.org/packages/31/b4/d298a950eb8dca99d6ce121949952141d7cbe9832f3f87f0dc5d3a4cbf46/spdx_tools-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "32b8a013ba5912b6a339fd962ecf55c0", "sha256": "6eff49ca3ecb15c1152f8414d87b38f0e0fc4583678ff2b7d1118af99de5214a" }, "downloads": -1, "filename": "spdx-tools-0.5.1.tar.gz", "has_sig": false, "md5_digest": "32b8a013ba5912b6a339fd962ecf55c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43193, "upload_time": "2017-06-13T16:44:01", "url": "https://files.pythonhosted.org/packages/1a/54/9a27a0627e5af46492f98a978fce6e1b41387a895d94ef5598d8e533ff2d/spdx-tools-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "d34655dbf2096cd8a1ccadd774aebb19", "sha256": "cb44cc622cc1e276d0f1401c19c9e1ff1a80608822eca3208875170a78d6b66e" }, "downloads": -1, "filename": "spdx_tools-0.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d34655dbf2096cd8a1ccadd774aebb19", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 66855, "upload_time": "2017-06-15T12:53:02", "url": "https://files.pythonhosted.org/packages/0a/63/c2fc3cc70454d379666b4b3fb7a5ae31145d759cc54c953ec8edae00d465/spdx_tools-0.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5aedb039444352f8841a46b9060495c3", "sha256": "8c8196dade93d576c0807969979a32365875d4c0cbf8b22032551823862e58fb" }, "downloads": -1, "filename": "spdx-tools-0.5.2.tar.gz", "has_sig": false, "md5_digest": "5aedb039444352f8841a46b9060495c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43704, "upload_time": "2017-06-15T12:53:04", "url": "https://files.pythonhosted.org/packages/88/a3/6455963dc7398fbeec4400833209a99a1751149897b8220b6bb05be0ef40/spdx-tools-0.5.2.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "320a448d7384e27bb2f2cc89482a55fb", "sha256": "36e5b61adb9dcf6d7b906d3b14a2065c0edf3662fef642bdd86106a6e7f2e956" }, "downloads": -1, "filename": "spdx_tools-0.5.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "320a448d7384e27bb2f2cc89482a55fb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 124675, "upload_time": "2017-06-15T16:19:24", "url": "https://files.pythonhosted.org/packages/c5/9f/bdf686b4d323a97a4cb920eba345dbb266d9d23d64322950d4cb59043c96/spdx_tools-0.5.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b9d1fc0e3cc23f10419f77e6065e40ed", "sha256": "e5f9f808ff0deb7b930bcce61fb29be12bc1434cd1a08292d9f01be3c336aa4a" }, "downloads": -1, "filename": "spdx-tools-0.5.3.tar.gz", "has_sig": false, "md5_digest": "b9d1fc0e3cc23f10419f77e6065e40ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 136885, "upload_time": "2017-06-15T16:19:28", "url": "https://files.pythonhosted.org/packages/d8/df/68fd64c654ec57fac0e71b6c43d0246668c3707bc19099eb1bb7ce849f12/spdx-tools-0.5.3.tar.gz" } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "f5601278d0dda170e5e5bd49e32a4704", "sha256": "76e39adc445ebdcf2f73d5151ddf1ccbf330971270bf6cf88035b821c9186364" }, "downloads": -1, "filename": "spdx_tools-0.5.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f5601278d0dda170e5e5bd49e32a4704", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 124919, "upload_time": "2017-07-31T17:26:10", "url": "https://files.pythonhosted.org/packages/ed/55/489f189b0516bf70be3830572331da3311ef8713e476af40dccb6ee11b1d/spdx_tools-0.5.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "68f6c3466179bc8a5e767fd2455e69ae", "sha256": "3de4d499a9182a63ba9bb8a08b394cc9c618067095212cb51addb201bfeac202" }, "downloads": -1, "filename": "spdx-tools-0.5.4.tar.gz", "has_sig": false, "md5_digest": "68f6c3466179bc8a5e767fd2455e69ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 140247, "upload_time": "2017-07-31T17:26:20", "url": "https://files.pythonhosted.org/packages/17/30/f75c94de6fad694ae3fc954c0aaa8606b4083ac4f6d7bbdede8db0f42b05/spdx-tools-0.5.4.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "a76cb10e31e28937cfc25f12c40e110c", "sha256": "aec2af65b4f1d9aaa79376133e9f2b8e1cde5530e90b1aa42495ae2945274998" }, "downloads": -1, "filename": "spdx_tools-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a76cb10e31e28937cfc25f12c40e110c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 206766, "upload_time": "2019-08-28T10:17:16", "url": "https://files.pythonhosted.org/packages/2b/89/6d86482a84e57729cd743ac5a7e93bb4ec2cd569886eead881c47bdd045b/spdx_tools-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c4eee62eb775776734405d7f453825a", "sha256": "37ef1be3ea3da9f81a7980f1e06ede10d2f04b1f0bd24e4da4c2f356612ce00e" }, "downloads": -1, "filename": "spdx-tools-0.6.0.tar.gz", "has_sig": false, "md5_digest": "4c4eee62eb775776734405d7f453825a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 227648, "upload_time": "2019-08-28T10:17:18", "url": "https://files.pythonhosted.org/packages/a5/45/86771982b1a69bd256e2069911b094d5429894ada49cc0383c7660a36515/spdx-tools-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "1e0cfec3ce506002ff7612ba5d6f3e35", "sha256": "45fa09d43534772ca63bff2dccf1fbde88e1fc9b9515fc7a34ae50540d7ad29c" }, "downloads": -1, "filename": "spdx_tools-0.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1e0cfec3ce506002ff7612ba5d6f3e35", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 206818, "upload_time": "2019-08-28T16:47:46", "url": "https://files.pythonhosted.org/packages/d4/7e/2095401a2d78b2be90f5f295dcc47c16189b212e8c705daee94dc5c24703/spdx_tools-0.6.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b2cf5b6ae46f0a1c5ac60ffc88097d3a", "sha256": "9a1aaae051771e865705dd2fd374c3f73d0ad595c1056548466997551cbd7a81" }, "downloads": -1, "filename": "spdx-tools-0.6.1.tar.gz", "has_sig": false, "md5_digest": "b2cf5b6ae46f0a1c5ac60ffc88097d3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 237766, "upload_time": "2019-08-28T16:47:49", "url": "https://files.pythonhosted.org/packages/79/66/c016ff763bd171240b80bda06ae3ec3a848aa8d006a8c6b79c0d9a369e81/spdx-tools-0.6.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1e0cfec3ce506002ff7612ba5d6f3e35", "sha256": "45fa09d43534772ca63bff2dccf1fbde88e1fc9b9515fc7a34ae50540d7ad29c" }, "downloads": -1, "filename": "spdx_tools-0.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1e0cfec3ce506002ff7612ba5d6f3e35", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 206818, "upload_time": "2019-08-28T16:47:46", "url": "https://files.pythonhosted.org/packages/d4/7e/2095401a2d78b2be90f5f295dcc47c16189b212e8c705daee94dc5c24703/spdx_tools-0.6.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b2cf5b6ae46f0a1c5ac60ffc88097d3a", "sha256": "9a1aaae051771e865705dd2fd374c3f73d0ad595c1056548466997551cbd7a81" }, "downloads": -1, "filename": "spdx-tools-0.6.1.tar.gz", "has_sig": false, "md5_digest": "b2cf5b6ae46f0a1c5ac60ffc88097d3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 237766, "upload_time": "2019-08-28T16:47:49", "url": "https://files.pythonhosted.org/packages/79/66/c016ff763bd171240b80bda06ae3ec3a848aa8d006a8c6b79c0d9a369e81/spdx-tools-0.6.1.tar.gz" } ] }