{ "info": { "author": "ScanCode", "author_email": "info@aboutcode.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: CC0 1.0 Universal (CC0 1.0) Public Domain Dedication", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6", "Topic :: Utilities" ], "description": "================\nScanCode toolkit\n================\nA typical software project often reuses hundreds of third-party packages.\nLicense and origin information is not always easy to find and not normalized:\nScanCode discovers and normalizes this data for you.\n\nWhy use ScanCode?\n=======================\n\n- As a **standalone command line tool**, ScanCode is **easy to install**, run\n and embed in your CI/CD processing pipeline. It runs on **Windows, macOS and Linux**.\n\n- ScanCode is **used by several projects and organizations** such as the `Eclipse\n Foundation `_, `OpenEmbedded.org `_,\n the `FSF `_, `OSS Review Toolkit `_, \n `ClearlyDefined.io `_,\n `RedHat Fabric8 analytics `_ and many more.\n\n- ScanCode detects licenses, copyrights, package manifests and direct dependencies\n and more both in **source code** and **binary** files.\n\n- ScanCode provides the **most accurate license detection engine** and does a\n full comparison (aka. diff or red line) between a database of license texts\n and your code instead of relying only on regex patterns or probabilistic\n search, edit distance or machine learning.\n\n- Written in Python, ScanCode is **easy to extend with plugins** to contribute new\n and improved scanners, data summarization, package manifest parsers and new\n outputs.\n\n- You can save your scan results as **JSON, HTML, CSV or SPDX**. And you can use the\n companion `ScanCode workbench GUI app `_\n to review and display scan results, statistics and graphics.\n\n- ScanCode is **actively maintained**, has a **growing community of users**.\n\n- ScanCode is heavily **tested** with an automated test suite of over **8000 tests**.\n\nSee our roadmap for upcoming features:\nhttps://github.com/nexB/scancode-toolkit/wiki/Roadmap\n\nBuild and tests status\n======================\n\n+-------+--------------+-----------------+--------------+\n|Branch | **Coverage** | **Linux/macOS** | **Windows** |\n+=======+==============+=================+==============+\n|Master | |master-cov| | |master-posix| | |master-win| |\n+-------+--------------+-----------------+--------------+\n|Develop| |devel-cov| | |devel-posix| | |devel-win| |\n+-------+--------------+-----------------+--------------+\n\n\nQuick Start\n===========\n\nInstall Python 2.7 then download and extract the latest ScanCode release from\nhttps://github.com/nexB/scancode-toolkit/releases/ \n\nThen run ``./scancode -h`` for help.\n\n\nInstallation\n============\n\nPre-requisites:\n\n* On Windows, please follow the `Comprehensive Installation instructions\n `_.\n Make sure you use Python 2.7 32 bits from\n https://www.python.org/ftp/python/2.7.15/python-2.7.15.msi\n\n* On macOS, install Python 2.7 from\n https://www.python.org/ftp/python/2.7.15/python-2.7.15-macosx10.6.pkg\n\n Next, download and extract the latest ScanCode release from\n https://github.com/nexB/scancode-toolkit/releases/\n\n* On Linux install the Python 2.7 \"devel\" and these packages using your\n distribution package manager:\n\n * On Ubuntu 14, 16 and 18 use:\n ``sudo apt-get install python-dev xz-utils zlib1g libxml2-dev libxslt1-dev bzip2``\n\n * On Debian and Debian-based distros use:\n ``sudo apt-get install python-dev xz-utils zlib1g libxml2-dev libxslt1-dev libbz2-1.0``\n\n * On RPM distros use:\n ``sudo yum install python-devel xz-libs zlib libxml2-devel libxslt-devel bzip2-libs``\n\n * On Fedora 22 and later use:\n ``sudo dnf install python-devel xz-libs zlib libxml2-devel libxslt-devel bzip2-libs``\n\n* See also the `Comprehensive Installation instructions \n `_\n for additional instructions.\n\n\nNext, download and extract the latest ScanCode release from\nhttps://github.com/nexB/scancode-toolkit/releases/\n\n\nOpen a terminal window and then `cd` to the extracted ScanCode directory and run\nthis command to display help. ScanCode will self-configure if needed::\n\n ./scancode --help\n\nYou can run an example scan printed on screen as JSON::\n\n ./scancode -clip --json-pp - samples\n\nSee more command examples::\n\n ./scancode --examples\n\n\nArchive extraction\n===================\n\nThe archives that exist in a codebase must be extracted before running a scan:\nScanCode does not extract files from tarballs, zip files, etc. as part of the\nscan. The bundled utility `extractcode` is a mostly-universal archive extractor.\nFor example, this command will recursively extract the mytar.tar.bz2 tarball in\nthe mytar.tar.bz2-extract directory::\n\n ./extractcode mytar.tar.bz2\n\n\nDocumentation & FAQ\n===================\n\nhttps://github.com/nexB/scancode-toolkit/wiki\n\nSee also https://aboutcode.org for related companion projects and tools.\n\n\nSupport\n=======\n\nIf you have a problem, a suggestion or found a bug, please enter a ticket at:\nhttps://github.com/nexB/scancode-toolkit/issues\n\nFor discussions and chats, we have:\n\n* an official Gitter channel for web-based chats at https://gitter.im/aboutcode-org/discuss\n Gitter is also accessible via an IRC bridge at https://irc.gitter.im/\n\n* an official `#aboutcode` IRC channel on freenode (server chat.freenode.net). \n This channel receives build and commit notifications and can be a tad noisy.\n You can use your favorite IRC client or use the web chat at\n https://webchat.freenode.net/\n\n\nSource code and downloads\n=========================\n\n* https://github.com/nexB/scancode-toolkit.git\n* https://github.com/nexB/scancode-toolkit/releases\n* https://pypi.org/project/scancode-toolkit/\n* https://github.com/nexB/scancode-thirdparty-src.git\n\n\nLicense\n=======\n\n* Apache-2.0 with an acknowledgement required to accompany the scan output.\n* Public domain CC-0 for reference datasets.\n* Multiple licenses (GPL2/3, LGPL, MIT, BSD, etc.) for third-party components.\n\nSee the NOTICE file and the .ABOUT files that document the origin and license of\nthe third-party code used in ScanCode for more details.\n\n\n.. |master-cov| image:: https://codecov.io/gh/nexB/scancode-toolkit/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/nexB/scancode-toolkit/branch/master\n :alt: Master branch test coverage (Linux)\n.. |devel-cov| image:: https://codecov.io/gh/nexB/scancode-toolkit/branch/develop/graph/badge.svg\n :target: https://codecov.io/gh/nexB/scancode-toolkit/branch/develop\n :alt: Develop branch test coverage (Linux)\n\n.. |master-posix| image:: https://api.travis-ci.org/nexB/scancode-toolkit.png?branch=master \n :target: https://travis-ci.org/nexB/scancode-toolkit\n :alt: Linux Master branch tests status\n.. |devel-posix| image:: https://api.travis-ci.org/nexB/scancode-toolkit.png?branch=develop\n :target: https://travis-ci.org/nexB/scancode-toolkit\n :alt: Linux Develop branch tests status\n\n.. |master-win| image:: https://ci.appveyor.com/api/projects/status/4webymu0l2ip8utr/branch/master?png=true\n :target: https://ci.appveyor.com/project/nexB/scancode-toolkit\n :alt: Windows Master branch tests status\n.. |devel-win| image:: https://ci.appveyor.com/api/projects/status/4webymu0l2ip8utr/branch/develop?png=true\n :target: https://ci.appveyor.com/project/nexB/scancode-toolkit\n :alt: Windows Develop branch tests status\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nexB/scancode-toolkit", "keywords": "open source,scan,license,package,dependency,copyright,filetype,author,extract,licensing", "license": "Apache-2.0 with ScanCode acknowledgment and CC0-1.0 and others", "maintainer": "", "maintainer_email": "", "name": "scancode-toolkit", "package_url": "https://pypi.org/project/scancode-toolkit/", "platform": "", "project_url": "https://pypi.org/project/scancode-toolkit/", "project_urls": { "Homepage": "https://github.com/nexB/scancode-toolkit" }, "release_url": "https://pypi.org/project/scancode-toolkit/3.1.1/", "requires_dist": [ "nltk (<4.0,>=3.2)", "publicsuffix2", "fingerprints (<1.0.0,>=0.6.0)", "patch (<1.20,>=1.15)", "extractcode-libarchive", "extractcode-7z", "future (>=0.16.0)", "text-unidecode (<2.0,>=1.0)", "saneyaml", "path.py", "bitarray (<1.0.0,>=0.8.1)", "intbitset (<3.0,>=2.3.0)", "boolean.py (<4.0,>=3.5)", "license-expression (<1.0,>=0.99)", "pyahocorasick (<1.5,>=1.4)", "lxml (<5.0.0,>=4.0.0)", "Beautifulsoup4 (<5.0.0,>=4.0.0)", "html5lib", "six", "pdfminer.six (>=20170720)", "pycryptodome (>=3.4)", "binaryornot (>=0.4.0)", "chardet (<4.0.0,>=3.0.0)", "pygments (<2.3,>=2.2.0)", "typecode-libmagic", "pefile (>=2018.8.8)", "pymaven-patch (>=0.2.8)", "requests (<3.0.0,>=2.7.0)", "packageurl-python (>=0.7.0)", "xmltodict (>=0.11.0)", "javaproperties (>=0.5)", "toml (>=0.10.0)", "pkginfo (>=1.5.0.1)", "dparse (>=0.4.1)", "click (<7.0.0,>=6.0.0)", "colorama (>=0.3.9)", "pluggy (<1.0,>=0.4.0)", "attrs (<20.0,>=18.1)", "typing (<3.7,>=3.6)", "jinja2 (<3.0.0,>=2.7.0)", "MarkupSafe (>=0.23)", "simplejson", "spdx-tools (>=0.6.0)", "unicodecsv", "yg.lockfile (<3.0.0,>=2.3)", "contextlib2", "pytz", "tempora", "jaraco.functools", "zc.lockfile (<3.0.0,>=2.0.0)", "py2-ipaddress (<3.5,>=2.0) ; python_version < \"3\"", "url (<0.1.6,>=0.1.4) ; python_version < \"3\"", "bz2file (>=0.98) ; python_version < \"3\"", "backports.os (==0.1.1) ; python_version < \"3\"", "more-itertools (<6.0.0) ; python_version == \"2.7\"", "ftfy (<5.0.0) ; python_version == \"2.7\"", "ftfy (>=5.0.0) ; python_version > \"3\"", "url (<1.0.0,>=0.4.2) ; python_version >= \"3\"" ], "requires_python": ">=3.6", "summary": "ScanCode is a tool to scan code for license, copyright, package and their documented dependencies and other interesting facts.", "version": "3.1.1" }, "last_serial": 5983412, "releases": { "2.0.0": [ { "comment_text": "", "digests": { "md5": "7536e723d8fd1744ad0638b6749ca950", "sha256": "414aed034d98d47115e3b371459c94e506855b7b5f8ef388ce69d500d11dbd5d" }, "downloads": -1, "filename": "scancode_toolkit-2.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "7536e723d8fd1744ad0638b6749ca950", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 17804083, "upload_time": "2017-06-23T08:35:20", "url": "https://files.pythonhosted.org/packages/41/31/ec6c58f3fa60181803265410b4ddb3abae1214c946e36969fa0ce9fab014/scancode_toolkit-2.0.0-py2-none-any.whl" } ], "2.0.0rc3": [ { "comment_text": "", "digests": { "md5": "4c2b7baa8cbf43b278d996765e03292c", "sha256": "e15239e90b23f648934dc981ee4520ad4364282a388d9f9680ef784d5cfb3380" }, "downloads": -1, "filename": "scancode_toolkit-2.0.0rc3-py2-none-any.whl", "has_sig": false, "md5_digest": "4c2b7baa8cbf43b278d996765e03292c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 17798516, "upload_time": "2017-06-16T16:24:02", "url": "https://files.pythonhosted.org/packages/cb/83/6f91c93c0277e20dab09fd55b5861f8d8e27aa5395e74acdeb75e04496f0/scancode_toolkit-2.0.0rc3-py2-none-any.whl" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "ab4946e2da53333db1b01fd00a0b2c24", "sha256": "2d01df081ad74d58f092b2e4609ed0b00939e5d3fbc116ccf3692380ffc3b65e" }, "downloads": -1, "filename": "scancode_toolkit-2.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "ab4946e2da53333db1b01fd00a0b2c24", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 17811217, "upload_time": "2017-07-03T16:09:09", "url": "https://files.pythonhosted.org/packages/e8/5d/f9e123c3fa1a900f181732b9ad800a63b0fb29ee5dc0e324c3ec6fe51ea3/scancode_toolkit-2.0.1-py2-none-any.whl" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "5801edc80662356a3f5a903a3e94674d", "sha256": "6780e7b9c815354b3ebdc862688b3d6e4060894bc7633f986d31243a3b4760f3" }, "downloads": -1, "filename": "scancode_toolkit-2.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "5801edc80662356a3f5a903a3e94674d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 18564550, "upload_time": "2017-09-22T20:01:15", "url": "https://files.pythonhosted.org/packages/a7/2f/0559e0d7719ebd60ea80a93f4cc1e7d8529916fb7ee3f39bfd31bbaea60a/scancode_toolkit-2.1.0-py2-none-any.whl" } ], "2.2.1": [ { "comment_text": "", "digests": { "md5": "f28185a99a85382fee506693c993e49d", "sha256": "14c73351d65de5668ba953f3f760dfdc6055a5630e1f54ab073fa5c8640270a2" }, "downloads": -1, "filename": "scancode_toolkit-2.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "f28185a99a85382fee506693c993e49d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 18614929, "upload_time": "2017-10-05T23:04:22", "url": "https://files.pythonhosted.org/packages/6e/79/f03db4df98f7b0edbf5a10774d03295de431bcc2b964b98dab4602ad46fc/scancode_toolkit-2.2.1-py2-none-any.whl" } ], "2.9.0b1": [ { "comment_text": "", "digests": { "md5": "3823810443729f9723bdd3c517835177", "sha256": "fdc87743669cbc8fd026453626bd6911d83114977bb49388b5e11c68012b21e8" }, "downloads": -1, "filename": "scancode_toolkit-2.9.0b1-py2-none-any.whl", "has_sig": false, "md5_digest": "3823810443729f9723bdd3c517835177", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 18918158, "upload_time": "2018-03-02T21:29:35", "url": "https://files.pythonhosted.org/packages/5d/32/0b142edca54b2ab2c12f4e5d1ef7a818440b51097c76bf55c8f0e044817d/scancode_toolkit-2.9.0b1-py2-none-any.whl" } ], "2.9.1": [ { "comment_text": "", "digests": { "md5": "2d5206257b30b45b8290d623039a5de9", "sha256": "9df7d40b3bfbfc9cf7978d465b293372c2a95cd89bfed5932902a89513773982" }, "downloads": -1, "filename": "scancode_toolkit-2.9.1-py2-none-any.whl", "has_sig": false, "md5_digest": "2d5206257b30b45b8290d623039a5de9", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 19045471, "upload_time": "2018-03-22T16:25:05", "url": "https://files.pythonhosted.org/packages/5f/43/b7883d417211fb0149e9f193cf24038a254b44029042be139880c80a4ff3/scancode_toolkit-2.9.1-py2-none-any.whl" } ], "2.9.2": [ { "comment_text": "", "digests": { "md5": "253d0f3cdf3783f5a0f5baf4e71b52b3", "sha256": "afc535d82fa8ecbf0876bf64e6c0e634756c0a8e0bf40b9512e5a56083ba8746" }, "downloads": -1, "filename": "scancode_toolkit-2.9.2-py2-none-any.whl", "has_sig": false, "md5_digest": "253d0f3cdf3783f5a0f5baf4e71b52b3", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 19293882, "upload_time": "2018-05-08T14:57:00", "url": "https://files.pythonhosted.org/packages/60/dc/790e3ed38b7dc5e0d6479f79f9c737cfcc49fa9832f0287cc4fcc5bc137e/scancode_toolkit-2.9.2-py2-none-any.whl" } ], "2.9.3": [ { "comment_text": "", "digests": { "md5": "6275bce1cfb579a758cc47805866a93e", "sha256": "123d9147e5cf0c0b21899e9dfd5f44c70cb3ea8f153bdedcfd8a6b91d9a03de3" }, "downloads": -1, "filename": "scancode_toolkit-2.9.3-py2-none-any.whl", "has_sig": false, "md5_digest": "6275bce1cfb579a758cc47805866a93e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11368649, "upload_time": "2018-09-27T21:23:59", "url": "https://files.pythonhosted.org/packages/ed/17/041a2dbf97f56e3da01341af1359f0f75be002717f5d2727bee8fc1727a7/scancode_toolkit-2.9.3-py2-none-any.whl" } ], "2.9.4": [ { "comment_text": "", "digests": { "md5": "d3bb3553220ead78b910b79084baccfd", "sha256": "f5dc06b7fa23ea68c9e689eae55fd469f33d13e0783ccccb7e4ae55704a984bb" }, "downloads": -1, "filename": "scancode_toolkit-2.9.4-py2-none-any.whl", "has_sig": false, "md5_digest": "d3bb3553220ead78b910b79084baccfd", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11578553, "upload_time": "2018-10-19T15:13:48", "url": "https://files.pythonhosted.org/packages/4f/02/47bb014631ef15f7a5f90262c6148cfc3723e737e9af91284eb32495ac77/scancode_toolkit-2.9.4-py2-none-any.whl" } ], "2.9.5": [ { "comment_text": "", "digests": { "md5": "c3ea0f4eef70207ec99cbac446c1a92f", "sha256": "465402bfb6f72b9e658da3883178fefc124a07807a1c2facfdf4149188a4ddbb" }, "downloads": -1, "filename": "scancode_toolkit-2.9.5-py2-none-any.whl", "has_sig": false, "md5_digest": "c3ea0f4eef70207ec99cbac446c1a92f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11578635, "upload_time": "2018-10-22T23:11:51", "url": "https://files.pythonhosted.org/packages/73/d3/1c18e09622575caac16ab07efe85666748d7c0efc9bcd7179f04dac84880/scancode_toolkit-2.9.5-py2-none-any.whl" } ], "2.9.7": [ { "comment_text": "", "digests": { "md5": "0a3760f9a6990bc8fddfbfab48cae86f", "sha256": "21e9c83f9644ee618a477a193742f1aba994399e8e29e3bdf5c45c2ff2a1673b" }, "downloads": -1, "filename": "scancode_toolkit-2.9.7-py2-none-any.whl", "has_sig": false, "md5_digest": "0a3760f9a6990bc8fddfbfab48cae86f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11590709, "upload_time": "2018-10-26T01:58:24", "url": "https://files.pythonhosted.org/packages/7c/fb/a8b4a31579329477fd49102f267075c11aeacfc2b529dc202b1a36f44dbe/scancode_toolkit-2.9.7-py2-none-any.whl" } ], "2.9.9": [ { "comment_text": "", "digests": { "md5": "c5923f90d932e046a78c668ed8a8e05e", "sha256": "7cc66ea26c93c3c1974abb73b905b344a96e128eb5c6e9b8178475ece7be392c" }, "downloads": -1, "filename": "scancode_toolkit-2.9.9-py2-none-any.whl", "has_sig": false, "md5_digest": "c5923f90d932e046a78c668ed8a8e05e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 12154545, "upload_time": "2019-01-07T14:29:38", "url": "https://files.pythonhosted.org/packages/a5/39/bff15622b5f21fd1bcdf650d00a61ddfb835faf6b98f91d1db0e2b31659d/scancode_toolkit-2.9.9-py2-none-any.whl" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "205fc6811d4dfd09ddbbb8fe497eb8fd", "sha256": "43d70c8aec2a707c89c05424cc78a4ff76c62f22700dbd1854c4d40a59f06cc7" }, "downloads": -1, "filename": "scancode_toolkit-3.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "205fc6811d4dfd09ddbbb8fe497eb8fd", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 12707600, "upload_time": "2019-02-14T19:48:27", "url": "https://files.pythonhosted.org/packages/a2/36/35893da3d08a386868454b9ddb9100314b34977679c1f1cc236d1dfa6f2a/scancode_toolkit-3.0.0-py2-none-any.whl" } ], "3.0.2": [ { "comment_text": "", "digests": { "md5": "ff12cd26849cf9bb68b4ea86819815ba", "sha256": "6189a9c31e0a853abebaacb0cc9965e03afd7b3290701f40166ae6a747473840" }, "downloads": -1, "filename": "scancode_toolkit-3.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "ff12cd26849cf9bb68b4ea86819815ba", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 12707662, "upload_time": "2019-02-15T14:41:03", "url": "https://files.pythonhosted.org/packages/91/d9/bfbcbd923fe5d7ead7811ba6da028c8df91cbec9fbb516276869c9e38500/scancode_toolkit-3.0.2-py2-none-any.whl" } ], "3.1.1": [ { "comment_text": "", "digests": { "md5": "bf05dcc19d191f57e82b36882b2714e0", "sha256": "8a9b0ae734c6fc9a1da4034a808e6ab5cde67672f6fa1492b9a630483f2eeba1" }, "downloads": -1, "filename": "scancode_toolkit-3.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bf05dcc19d191f57e82b36882b2714e0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 16852736, "upload_time": "2019-09-04T21:09:01", "url": "https://files.pythonhosted.org/packages/96/77/0926b5623a3588b57e048970f363cbf6adb7f8359afb5d79b64f10d6dfee/scancode_toolkit-3.1.1-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bf05dcc19d191f57e82b36882b2714e0", "sha256": "8a9b0ae734c6fc9a1da4034a808e6ab5cde67672f6fa1492b9a630483f2eeba1" }, "downloads": -1, "filename": "scancode_toolkit-3.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bf05dcc19d191f57e82b36882b2714e0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 16852736, "upload_time": "2019-09-04T21:09:01", "url": "https://files.pythonhosted.org/packages/96/77/0926b5623a3588b57e048970f363cbf6adb7f8359afb5d79b64f10d6dfee/scancode_toolkit-3.1.1-py2.py3-none-any.whl" } ] }