{ "info": { "author": "InQuest Labs", "author_email": "labs@inquest.net", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet", "Topic :: Software Development :: Libraries" ], "description": "sandboxapi\n==========\n\n.. image:: https://inquest.net/images/inquest-badge.svg\n :target: https://inquest.net/\n :alt: Developed by InQuest\n.. image:: https://travis-ci.org/InQuest/python-sandboxapi.svg?branch=master\n :target: https://travis-ci.org/InQuest/python-sandboxapi\n :alt: Build Status\n.. image:: https://readthedocs.org/projects/sandboxapi/badge/?version=latest\n :target: https://inquest.readthedocs.io/projects/sandboxapi/en/latest/?badge=latest\n :alt: Documentation Status\n.. image:: https://api.codacy.com/project/badge/Grade/7ddb5b4791404aa2a6a9670099fe53ad\n :target: https://www.codacy.com/app/rshipp/python-sandboxapi?utm_source=github.com&utm_medium=referral&utm_content=InQuest/python-sandboxapi&utm_campaign=Badge_Grade\n :alt: Code Health\n.. image:: https://api.codacy.com/project/badge/Coverage/7ddb5b4791404aa2a6a9670099fe53ad\n :target: https://www.codacy.com/app/rshipp/python-sandboxapi?utm_source=github.com&utm_medium=referral&utm_content=InQuest/python-sandboxapi&utm_campaign=Badge_Coverage\n :alt: Test Coverage\n.. image:: http://img.shields.io/pypi/v/sandboxapi.svg\n :target: https://pypi.python.org/pypi/sandboxapi\n :alt: PyPi Version\n\nA minimal, consistent API for building integrations with malware sandboxes.\n\nThis library currently supports the following sandbox systems:\n\n* `Cuckoo Sandbox`_\n* `FireEye AX Series`_\n* `Joe Sandbox`_\n* `VMRay Analyzer`_\n* `Falcon Sandbox`_ (Formerly VxStream)\n\nIt provides at least the following methods for each sandbox:\n\n* ``is_available()``: Check if the sandbox is operable and reachable; returns a boolean\n* ``analyze(handle, filename)``: Submit a file for analysis; returns an ``item_id``\n* ``check(item_id)``: Check if analysis has completed for a file; returns a boolean\n* ``report(item_id, report_format='json')``: Retrieve the report for a submitted file\n* ``score(report)``: Parse out and return an integer score from the report object\n\nSome sandbox classes may have additional methods implemented. See inline\ndocumentation for more details.\n\nNote that the value returned from the ``score`` method may be on the range\n0-10, or 0-100, depending on the sandbox in question, so you should refer to\nthe specific sandbox's documentation when interpreting this value.\n\nInstallation\n------------\n\nInstall through pip::\n\n pip install sandboxapi\n\nSupports Python 2.7+.\n\nUsage\n-----\n\nBasic usage is as follows:\n\n.. code-block:: python\n\n import sys\n import time\n import pprint\n\n from sandboxapi import cuckoo\n\n # connect to the sandbox\n sandbox = cuckoo.CuckooAPI('http://192.168.0.20:8090/')\n\n # verify connectivity\n if not sandbox.is_available():\n print(\"sandbox is down, exiting\")\n sys.exit(1)\n\n # submit a file\n with open('myfile.exe', \"rb\") as handle:\n file_id = sandbox.analyze(handle, 'myfile.exe')\n print(\"file {f} submitted for analysis, id {i}\".format(f=filename, i=file_id))\n\n # wait for the analysis to complete\n while not sandbox.check(file_id):\n print(\"not done yet, sleeping 10 seconds...\")\n time.sleep(10)\n\n # print the report\n print(\"analysis complete. fetching report...\")\n report = sandbox.report(file_id)\n pprint.pprint(report)\n print(\"Score: {score}\".format(score=sandbox.score(report)))\n\nSince the library provides a consistent API, you can treat all sandoxes\nthe same way:\n\n.. code-block:: python\n\n import sys\n import time\n import pprint\n\n from sandboxapi import cuckoo, fireeye, joe\n\n # connect to the sandbox\n sandboxes = [\n cuckoo.CuckooAPI('http://192.168.0.20:8090/'),\n fireeye.FireEyeAPI('myusername', 'mypassword', 'https://192.168.0.21', 'winxp-sp3'),\n joe.JoeAPI('mykey', 'https://jbxcloud.joesecurity.org/api', True)\n ]\n\n for sandbox in sandboxes:\n # verify connectivity\n if not sandbox.is_available():\n print(\"sandbox is down, exiting\")\n sys.exit(1)\n\n # submit a file\n with open('myfile.exe', \"rb\") as handle:\n file_id = sandbox.analyze(handle, 'myfile.exe')\n print(\"file {f} submitted for analysis, id {i}\".format(f=filename, i=file_id))\n\n # wait for the analysis to complete\n while not sandbox.check(file_id):\n print(\"not done yet, sleeping 10 seconds...\")\n time.sleep(10)\n\n # print the report\n print(\"analysis complete. fetching report...\")\n report = sandbox.report(file_id)\n pprint.pprint(report)\n print(\"Score: {score}\".format(score=sandbox.score(report)))\n\nCuckoo Sandbox\n~~~~~~~~~~~~~~\n\nConstructor signature::\n\n CuckooAPI(url, verify_ssl=False)\n\nExample::\n\n CuckooAPI('http://192.168.0.20:8090/')\n\nThis library attempts to support any Cuckoo-like API, including older 1.x\ninstallations (though those without a score won't be able to use the ``.score``\nmethod), compatible forks like spender-sandbox and CAPE, and the latest 2.x\nCuckoo releases. If you find a version that doesn't work, let us know.\n\nThere is an `unofficial Cuckoo library`_ written by @keithjjones with much\nmore functionality. For more information on the Cuckoo API, see the `Cuckoo API\ndocumentation`_.\n\nFireEye AX\n~~~~~~~~~~\n\nConstructor signature::\n\n FireEyeAPI(username, password, url, profile, legacy_api=False, verify_ssl=True)\n\nExample::\n\n FireEyeAPI('myusername', 'mypassword', 'https://192.168.0.20', 'winxp-sp3')\n\nBy default, the ``FireEyeAPI`` class uses v1.2.0 of the FireEye API, which is\navailable on v8.x FireEye AX series appliances. The v1.1.0 API, which is\navailable on v7.x appliances, is also supported - just set ``legacy_api=True``\nto use the older version.\n\nThere is some limited `FireEye API documentation`_ on their blog. For more\ninformation on FireEye's sandbox systems, see the `AX Series product page`_.\nFireEye customers have access to more API documentation.\n\nJoe Sandbox\n~~~~~~~~~~~\n\nConstructor signature::\n\n JoeAPI(apikey, apiurl, accept_tac, timeout=None, verify_ssl=True, retries=3)\n\nExample::\n\n JoeAPI('mykey', 'https://jbxcloud.joesecurity.org/api', True)\n\nThere is an `official Joe Sandbox library`_ with much more functionality.\nThis library is installed as a dependency of sandboxapi, and wrapped by the\n``sandboxapi.joe.JoeSandbox`` class.\n\nVMRay Analyzer\n~~~~~~~~~~~~~~\n\nConstructor signature::\n\n VMRayAPI(api_key, url='https://cloud.vmray.com', verify_ssl=True)\n\nExample::\n\n VMRayAPI('mykey')\n\nVMRay customers have access to a Python library with much more functionality.\nCheck your VMRay documentation for more details.\n\nFalcon Sandbox\n~~~~~~~~~~~~~~\n\nConstructor signature::\n\n FalconAPI(key, url='https://www.reverse.it/api/v2', env=100)\n\nExample::\n\n FalconAPI('mykey')\n\nThis class only supports version 2.0+ of the Falcon API, which is available\nin version 8.0.0+ of the Falcon Sandbox.\n\nThere is an `official Falcon library`_ with much more functionality, that\nsupports the current and older versions of the Falcon API. Note that the\nofficial library only supports Python 3.4+.\n\n\nNotes\n-----\n\nYou may also be interested in `malsub`_, a similar project with support for a\nnumber of online analysis services.\n\n\n.. _Cuckoo Sandbox: https://www.cuckoosandbox.org/\n.. _Fireeye AX Series: https://www.fireeye.com/products/malware-analysis.html\n.. _Joe Sandbox: https://www.joesecurity.org/\n.. _VMRay Analyzer: https://www.vmray.com/\n.. _Falcon Sandbox: https://www.falcon-sandbox.com/\n.. _unofficial Cuckoo library: https://github.com/keithjjones/cuckoo-api\n.. _Cuckoo API documentation: https://cuckoo.sh/docs/usage/api.html\n.. _FireEye API documentation: https://www.fireeye.com/blog/products-and-services/2015/12/restful_apis_thatdo.html\n.. _AX Series product page: https://www.fireeye.com/products/malware-analysis.html\n.. _official Joe Sandbox library: https://github.com/joesecurity/joesandboxcloudapi\n.. _official Falcon library: https://github.com/PayloadSecurity/VxAPI\n.. _malsub: https://github.com/diogo-fernan/malsub\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/InQuest/python-sandboxapi", "keywords": "", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "sandboxapi", "package_url": "https://pypi.org/project/sandboxapi/", "platform": "", "project_url": "https://pypi.org/project/sandboxapi/", "project_urls": { "Homepage": "https://github.com/InQuest/python-sandboxapi" }, "release_url": "https://pypi.org/project/sandboxapi/1.4.3/", "requires_dist": [ "requests", "jbxapi" ], "requires_python": "", "summary": "Minimal, consistent API for building integrations with malware sandboxes.", "version": "1.4.3" }, "last_serial": 4581907, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "38deb0e4e2376595a7100d1b94f9689d", "sha256": "fae0ad96421a7362f36a7c537d0c575bb214cf6dd7f0bbed46c215219c4dec7c" }, "downloads": -1, "filename": "sandboxapi-1.0.0-py2.7.egg", "has_sig": true, "md5_digest": "38deb0e4e2376595a7100d1b94f9689d", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 30398, "upload_time": "2018-01-16T20:22:48", "url": "https://files.pythonhosted.org/packages/02/06/e663917c4fbd8c181352bff1aab5848561aea078bedbd2dc665dff4715ee/sandboxapi-1.0.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "6e9be6608e92c5e1059ec07a5a003718", "sha256": "c04113858e50d8062f0651257c86dabd74c2348ecedd44138be011caecfc86c3" }, "downloads": -1, "filename": "sandboxapi-1.0.0.tar.gz", "has_sig": true, "md5_digest": "6e9be6608e92c5e1059ec07a5a003718", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10726, "upload_time": "2018-01-16T20:23:01", "url": "https://files.pythonhosted.org/packages/81/20/b0d6e2c5f300812c5b40b78d662f8050332369fb99a89567d58bc8aa0980/sandboxapi-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "a4b54ebb88f0c84b04c20bbde3b9193e", "sha256": "4573585110b032ad1e70a50b337286584419264c9e300cf3e13ee88eb4b561e1" }, "downloads": -1, "filename": "sandboxapi-1.1.0-py2.7.egg", "has_sig": true, "md5_digest": "a4b54ebb88f0c84b04c20bbde3b9193e", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 32982, "upload_time": "2018-01-30T17:36:04", "url": "https://files.pythonhosted.org/packages/37/fe/20863cd31a1b22c3cfe47548aeff177c4e647b499208d58afee2ed97d158/sandboxapi-1.1.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "e7cc953d9b189c778b7dbc32d93ae235", "sha256": "0f8289a66f6979ac3c33e7d0a59866e3a4d546514ef4a0f5cc888614a895eb83" }, "downloads": -1, "filename": "sandboxapi-1.1.0.tar.gz", "has_sig": true, "md5_digest": "e7cc953d9b189c778b7dbc32d93ae235", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19072, "upload_time": "2018-01-30T17:36:17", "url": "https://files.pythonhosted.org/packages/6e/f0/ab4407543b73b6342e610b37d57a4500a2a5a180df958b0236a5ad857310/sandboxapi-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "6da68fe6973d9237cf3e5fc94dc943ec", "sha256": "47a2da3aff4bd32987147a392cbd623fdfc98282fc5a9233c5bab851093b4d48" }, "downloads": -1, "filename": "sandboxapi-1.2.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "6da68fe6973d9237cf3e5fc94dc943ec", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20297, "upload_time": "2018-04-12T19:27:04", "url": "https://files.pythonhosted.org/packages/29/bd/4d1271b1af6e3ed89d7737201fb292573b544f327bede74b0edf90135e92/sandboxapi-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a3abc7fed1f317ccddf296da61bcb4c6", "sha256": "91975a57f28e23193aaa16e6ad93e7019bec30a8cfd08e4d50724e0efe44d75d" }, "downloads": -1, "filename": "sandboxapi-1.2.0.tar.gz", "has_sig": true, "md5_digest": "a3abc7fed1f317ccddf296da61bcb4c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20012, "upload_time": "2018-04-12T19:27:05", "url": "https://files.pythonhosted.org/packages/2f/51/51b64aeebcf60811d2fff9297649603b0b6af5d85ebee8132a4749f78ddd/sandboxapi-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "2f3fdcc260b54b524d388199ae4fdf39", "sha256": "462e097a4102117332f53938877789412c0cd5083836f2474664a1210ce08bad" }, "downloads": -1, "filename": "sandboxapi-1.3.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "2f3fdcc260b54b524d388199ae4fdf39", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20918, "upload_time": "2018-06-28T21:39:21", "url": "https://files.pythonhosted.org/packages/85/00/6cb43361d91728d710ef60b39c5af37b1060d866b0e2837d18237814f887/sandboxapi-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9ca355001fa73338a9672ac8392deb6e", "sha256": "70100255736be22fd21cfe9ba5fe11df650b7453d41ec16ffcb8f3aab420eb5c" }, "downloads": -1, "filename": "sandboxapi-1.3.0.tar.gz", "has_sig": true, "md5_digest": "9ca355001fa73338a9672ac8392deb6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20580, "upload_time": "2018-06-28T21:39:23", "url": "https://files.pythonhosted.org/packages/ba/7b/b4950a48fb776f1b58ddf1c3f71376d51b68838e93921f4ef09a6770b8d7/sandboxapi-1.3.0.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "845837a041967bf138fb76e214c9c5de", "sha256": "9c2d8cec265f1ffc1cfc58356a900346779286d4bb3aaec7bf1d9c8f0babaece" }, "downloads": -1, "filename": "sandboxapi-1.3.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "845837a041967bf138fb76e214c9c5de", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20930, "upload_time": "2018-08-01T04:31:01", "url": "https://files.pythonhosted.org/packages/4e/b5/e832099ecbc05b5c4de17ff84bbffe73a22fb88da8e0587faedb07fd88ee/sandboxapi-1.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bae02a5b683a3f6586dc29dab0884f6d", "sha256": "97424256eb02a3d6d9eb90ef9887e12957611bf8a90e68880594a0d700f6a5a2" }, "downloads": -1, "filename": "sandboxapi-1.3.1.tar.gz", "has_sig": true, "md5_digest": "bae02a5b683a3f6586dc29dab0884f6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20602, "upload_time": "2018-08-01T04:31:02", "url": "https://files.pythonhosted.org/packages/19/4e/e7b6e882d0756eae700714294abbcb34f3da46765b1386e4e1eb9b78b314/sandboxapi-1.3.1.tar.gz" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "0d05dade182b8b3c5e3bed02e9a5f389", "sha256": "edd5ea429ba6d8590a5f12c3e9b09bd8d1b54436ddad92a94687c97a3b2f4cbb" }, "downloads": -1, "filename": "sandboxapi-1.3.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "0d05dade182b8b3c5e3bed02e9a5f389", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20945, "upload_time": "2018-08-02T19:15:33", "url": "https://files.pythonhosted.org/packages/c7/b6/5adbd17fd21f361c5cbac32dc46a1924a2875880ccdb8edb113545004155/sandboxapi-1.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eff2d11ecb00d7840a3529d14d7e9681", "sha256": "d1a722fe744df1c7bd2fd9275ea6dff75d2455ac222dc04f2c6aa1673a16319c" }, "downloads": -1, "filename": "sandboxapi-1.3.2.tar.gz", "has_sig": true, "md5_digest": "eff2d11ecb00d7840a3529d14d7e9681", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20616, "upload_time": "2018-08-02T19:15:35", "url": "https://files.pythonhosted.org/packages/72/32/86f8a732ddff99329a9f25526fc8cf848ac120bc421dedc9c7bd9b05661d/sandboxapi-1.3.2.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "250a885c175e9aa2d6f2fd6c04b41ba5", "sha256": "66e9984bc029879009e9089add9f7d7aa8c6e8ff8ef96e83070090508bfe2e22" }, "downloads": -1, "filename": "sandboxapi-1.4.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "250a885c175e9aa2d6f2fd6c04b41ba5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21414, "upload_time": "2018-09-19T19:36:31", "url": "https://files.pythonhosted.org/packages/68/ab/4323c741f9a97a74f8598a867059480f309da15a820a0da54e2d9ff2d646/sandboxapi-1.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2dbc9b85c1ab03e2438f0cb33b25b97a", "sha256": "2e49d22f01cde3f22392e5809b0c59fcb119de98b68906a96b75bba2b5247788" }, "downloads": -1, "filename": "sandboxapi-1.4.0.tar.gz", "has_sig": true, "md5_digest": "2dbc9b85c1ab03e2438f0cb33b25b97a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21136, "upload_time": "2018-09-19T19:36:32", "url": "https://files.pythonhosted.org/packages/18/3e/5e9115a3c3c4be14124f7ca5d95fc13c91a55faa6f5724c8772188b15599/sandboxapi-1.4.0.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "5a55e2c3b6adfc6720f251e74e6c4cd0", "sha256": "095e5a7a731da0ffc9a57bf2ead5fcb37147ee7b92599be95d6a50a0daa68f48" }, "downloads": -1, "filename": "sandboxapi-1.4.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "5a55e2c3b6adfc6720f251e74e6c4cd0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21500, "upload_time": "2018-09-24T19:56:59", "url": "https://files.pythonhosted.org/packages/f1/d1/3fa2325c3c155a2c31ab04ae4bd7bf4dfad67996b18bc1cbb20976a1e528/sandboxapi-1.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4f49f12524a5e543ca3f2725b519463f", "sha256": "02537c2250c25f34b6637f63cab480064765bbb30b73abe495903305b15dbb10" }, "downloads": -1, "filename": "sandboxapi-1.4.1.tar.gz", "has_sig": true, "md5_digest": "4f49f12524a5e543ca3f2725b519463f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21195, "upload_time": "2018-09-24T19:57:01", "url": "https://files.pythonhosted.org/packages/0d/2c/73b65665269cb7bd694298b786279ef0765497fe33bb4fcaa1cc09034628/sandboxapi-1.4.1.tar.gz" } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "10a3b0ca2e796d339453a99b3e2e277c", "sha256": "898e742337f051273753d3eacf3ce6653dfd4db9d471b7748ef1b429092c4ca4" }, "downloads": -1, "filename": "sandboxapi-1.4.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "10a3b0ca2e796d339453a99b3e2e277c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21504, "upload_time": "2018-09-26T20:19:57", "url": "https://files.pythonhosted.org/packages/01/b2/a9f7a4e7f2c13e5cc3d7292a9049f8fdca585d3ba096a10677d016bc8f43/sandboxapi-1.4.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1b7d46c1a62543d9085d8e554721338f", "sha256": "9cc2e3158f4baeb9db239e7a47148bb9f0bb3b4905f1d967fac117ea8279f8b7" }, "downloads": -1, "filename": "sandboxapi-1.4.2.tar.gz", "has_sig": true, "md5_digest": "1b7d46c1a62543d9085d8e554721338f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21207, "upload_time": "2018-09-26T20:19:59", "url": "https://files.pythonhosted.org/packages/29/36/2cf0e3b02ffbf14cb4d070562b0d96ac61781b3eee38beacbd3f9474a86a/sandboxapi-1.4.2.tar.gz" } ], "1.4.3": [ { "comment_text": "", "digests": { "md5": "f81cab8537b15637bcb6c3634522b6bf", "sha256": "3c7092bdab5ea80b0f6e0a34ed172c86b1b501350225c7688f34663d5eee1378" }, "downloads": -1, "filename": "sandboxapi-1.4.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "f81cab8537b15637bcb6c3634522b6bf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21320, "upload_time": "2018-12-10T18:02:28", "url": "https://files.pythonhosted.org/packages/4f/c9/5b9764fe34a4e36778c6e53eb542b0598ad71132d9ffd4020b2e44f2d83c/sandboxapi-1.4.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f281b7379cd0053d0a2b25b35d7ea8af", "sha256": "4557b0824a27ee286bf1a92bff2c753d5a4466fd08a55f589dc83d4edac015a9" }, "downloads": -1, "filename": "sandboxapi-1.4.3.tar.gz", "has_sig": true, "md5_digest": "f281b7379cd0053d0a2b25b35d7ea8af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21004, "upload_time": "2018-12-10T18:02:30", "url": "https://files.pythonhosted.org/packages/25/b8/d67c9d55da4cd1c435f6d17b49388a3c813d2b240105efb6529bd6775342/sandboxapi-1.4.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f81cab8537b15637bcb6c3634522b6bf", "sha256": "3c7092bdab5ea80b0f6e0a34ed172c86b1b501350225c7688f34663d5eee1378" }, "downloads": -1, "filename": "sandboxapi-1.4.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "f81cab8537b15637bcb6c3634522b6bf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21320, "upload_time": "2018-12-10T18:02:28", "url": "https://files.pythonhosted.org/packages/4f/c9/5b9764fe34a4e36778c6e53eb542b0598ad71132d9ffd4020b2e44f2d83c/sandboxapi-1.4.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f281b7379cd0053d0a2b25b35d7ea8af", "sha256": "4557b0824a27ee286bf1a92bff2c753d5a4466fd08a55f589dc83d4edac015a9" }, "downloads": -1, "filename": "sandboxapi-1.4.3.tar.gz", "has_sig": true, "md5_digest": "f281b7379cd0053d0a2b25b35d7ea8af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21004, "upload_time": "2018-12-10T18:02:30", "url": "https://files.pythonhosted.org/packages/25/b8/d67c9d55da4cd1c435f6d17b49388a3c813d2b240105efb6529bd6775342/sandboxapi-1.4.3.tar.gz" } ] }