{ "info": { "author": "Nico Schl\u00f6mer", "author_email": "nico.schloemer@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Topic :: Software Development :: User Interfaces" ], "description": "
Performance analysis for Python.
\n\n\n[](https://circleci.com/gh/nschloe/tuna)\n[](https://github.com/psf/black)\n[](https://pypi.org/project/tuna)\n[](https://github.com/nschloe/tuna)\n[](https://pypistats.org/packages/tuna)\n\ntuna is a modern, lightweight Python profile viewer inspired by the amazing\n[SnakeViz](https://github.com/jiffyclub/snakeviz). It handles runtime and import\nprofiles, has zero dependencies, uses [d3](https://d3js.org/) and\n[bootstrap](https://getbootstrap.com/), and avoids\n[certain](https://github.com/jiffyclub/snakeviz/issues/111)\n[errors](https://github.com/jiffyclub/snakeviz/issues/112) present in SnakeViz.\n\nCreate a runtime profile with\n```\npython -mcProfile -o program.prof yourfile.py\n```\nor an [import\nprofile](https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPROFILEIMPORTTIME)\nwith\n```\npython -X importtime yourfile.py 2> import.log\n```\nand show it with\n```\ntuna program.prof\n```\n\n\n\n\n### Why tuna doesn't show the whole call tree\n\nThe whole timed call tree _cannot_ be retrieved from profile data. Python developers\nmade the decision to only store _parent data_ in profiles because it can be computed\nwith little overhead. To illustrate, consider the following program.\n```python\nimport time\n\n\ndef a(t0, t1):\n c(t0)\n d(t1)\n return\n\n\ndef b():\n return a(1, 4)\n\n\ndef c(t):\n time.sleep(t)\n return\n\n\ndef d(t):\n time.sleep(t)\n return\n\n\nif __name__ == \"__main__\":\n a(4, 1)\n b()\n```\nThe root process (`__main__`) calls `a()` which spends 4 seconds in `c()` and 1 second\nin `d()`. `__main__` also calls `b()` which calls `a()`, this time spending 1 second in\n`c()` and 4 seconds in `d()`. The profile, however, will only store that `c()` spent a\ntotal of 5 seconds when called from `a()`, and likewise `d()`. The information that the\nprogram spent more time in `c()` when called in `root -> a() -> c()` than when called in\n`root -> b() -> a() -> c()` is not present in the profile.\n\ntuna only displays the part of the timed call tree that can be deduced from the profile:\n\n\n### Installation\n\ntuna is [available from the Python Package Index](https://pypi.org/project/tuna/), so\nsimply type\n```\npip3 install tuna --user --upgrade\n```\nto install or upgrade.\n\n\n### Testing\n\nTo run the tuna unit tests, check out this repository and type\n```\npytest\n```\n\n### License\n\ntuna is published under the [MIT license](https://en.wikipedia.org/wiki/MIT_License).\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/nschloe/tuna", "keywords": "", "license": "License :: OSI Approved :: MIT License", "maintainer": "", "maintainer_email": "", "name": "tuna", "package_url": "https://pypi.org/project/tuna/", "platform": "any", "project_url": "https://pypi.org/project/tuna/", "project_urls": { "Homepage": "https://github.com/nschloe/tuna" }, "release_url": "https://pypi.org/project/tuna/0.3.2/", "requires_dist": null, "requires_python": ">=3", "summary": "Visualize Python profiles in the browser", "version": "0.3.2" }, "last_serial": 5907074, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "2e04496596304ba3a225f02577aed4d7", "sha256": "2e48821fd96f228a7486ce518e4a0834f8fe7500f7fae564479b98c5aa832d46" }, "downloads": -1, "filename": "tuna-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2e04496596304ba3a225f02577aed4d7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5224, "upload_time": "2018-06-27T19:08:30", "url": "https://files.pythonhosted.org/packages/29/93/5580904df4b0484dd04972239c6f2dad0cc0b260416a09c7c46ea4ee4908/tuna-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "29c2cbdbcafcdc19899e92b20ef3137e", "sha256": "9a67c77a2d75db0fb984378aba44eaee3db61974e8eb5e09011031f48ab14270" }, "downloads": -1, "filename": "tuna-0.1.0.tar.gz", "has_sig": false, "md5_digest": "29c2cbdbcafcdc19899e92b20ef3137e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4806, "upload_time": "2018-06-27T19:08:31", "url": "https://files.pythonhosted.org/packages/3a/5c/c87985daef1c5e8670f209b6558e9ac629a18acca3ad1d6511fe47d9173d/tuna-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "3f8a8be9ac1d33ea3ac11591fc79a8c3", "sha256": "2d639b9d8175584ab404baaf0aa4f4e84168d36a8ca306de37d52b447b45da94" }, "downloads": -1, "filename": "tuna-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3f8a8be9ac1d33ea3ac11591fc79a8c3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6096, "upload_time": "2018-07-02T13:44:19", "url": "https://files.pythonhosted.org/packages/b9/47/e2c35040539ae30239c7da185ba930cd2146abd79d04c5d608b5d955e97f/tuna-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a50af7646f2dff5a40a19299c03a6102", "sha256": "de8c4939e4de410160d3bb6c9f8797b4cf0df6a09ae2c9916757b6cf18fe0944" }, "downloads": -1, "filename": "tuna-0.1.1.tar.gz", "has_sig": false, "md5_digest": "a50af7646f2dff5a40a19299c03a6102", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5662, "upload_time": "2018-07-02T13:44:20", "url": "https://files.pythonhosted.org/packages/c5/e3/e690219a26959e573537dfde87f04ef74b9359eca8e361de29beb6bca2d8/tuna-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "1ae1f14e901fbd238663e071eb9da70b", "sha256": "c2696f0b79ba4134b8fca2b5b22741e5fe1796de02ce613df8c2fe3cb3d49b12" }, "downloads": -1, "filename": "tuna-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1ae1f14e901fbd238663e071eb9da70b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 115589, "upload_time": "2018-07-03T07:38:06", "url": "https://files.pythonhosted.org/packages/cc/c1/04e11ad522a7d9ce776f91f509b2232f4e5cb06da8d4bc0540896e23fc7e/tuna-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ddeb9e736d2d3d9f1985e40bead370ae", "sha256": "a0c656e77b1c64a93ddf3a727948ca4a048a75a9cb53bd3bdb2a22c7ecfba5b6" }, "downloads": -1, "filename": "tuna-0.1.2.tar.gz", "has_sig": false, "md5_digest": "ddeb9e736d2d3d9f1985e40bead370ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 115290, "upload_time": "2018-07-03T07:38:08", "url": "https://files.pythonhosted.org/packages/3c/15/3d986177c9a778d5bd1d0e4b82ed02fae77f86499d9722b18ef83bbf759b/tuna-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "ff18e4a22c348c9dae203f1626dcbbf7", "sha256": "63d65205632b0e898ef460f35be12ece73f6af3b7d62e69d614d3ed4b9b936a0" }, "downloads": -1, "filename": "tuna-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ff18e4a22c348c9dae203f1626dcbbf7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 115754, "upload_time": "2018-07-03T09:52:26", "url": "https://files.pythonhosted.org/packages/a1/82/6311aeb67ee6329f49d1266b31f56f5239ea02e4dc516d2d0c3e4e703e4c/tuna-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c6f95083b564dc1a35f1b6ca176d3635", "sha256": "02c2c233b1487f4ffd8b2db5dfca231327b1af9d398d12ecf9be57e4db3f86e6" }, "downloads": -1, "filename": "tuna-0.1.3.tar.gz", "has_sig": false, "md5_digest": "c6f95083b564dc1a35f1b6ca176d3635", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 115465, "upload_time": "2018-07-03T09:52:27", "url": "https://files.pythonhosted.org/packages/50/15/fbfd079ff29192576cec50bfdac2f827f50a82d07178fd3f7ca19a7de357/tuna-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "d6d1d1d16ccd7f81737c5451426424c4", "sha256": "1a940d90c242f0750d0bd1732bc7dc0c1643836b1ec774e3e41f402530f6d9be" }, "downloads": -1, "filename": "tuna-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d6d1d1d16ccd7f81737c5451426424c4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 117017, "upload_time": "2018-07-03T12:05:38", "url": "https://files.pythonhosted.org/packages/d7/f3/25d6092ed0cbef8eb9a198d0dc9d27c3887e60773927a616f3ca7ee28c56/tuna-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a1bd1e8c8e87e6e2d0e3c06ad02f8301", "sha256": "d76e3a0e07cf1919190c2753c786f5ade8c5fff5ef6ad2a244dec6edc46ad68a" }, "downloads": -1, "filename": "tuna-0.1.4.tar.gz", "has_sig": false, "md5_digest": "a1bd1e8c8e87e6e2d0e3c06ad02f8301", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 116763, "upload_time": "2018-07-03T12:05:40", "url": "https://files.pythonhosted.org/packages/02/b4/cd8b1ea4f6cde81d60111385062e95462fc284771a58a66410550d6d70ec/tuna-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "38a4fede68b86d85ece4bfc8602066e1", "sha256": "0b47366e0d75a9177609f126f06f79af5baa2247acc6ec80b9ddfdf732ec742c" }, "downloads": -1, "filename": "tuna-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "38a4fede68b86d85ece4bfc8602066e1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 117178, "upload_time": "2018-07-04T08:45:37", "url": "https://files.pythonhosted.org/packages/83/5f/c290e7bc22c71a9fda0d89e7360e54d8a494a59df5c37abee3a814469ed7/tuna-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a4d6df5321773c8639625813d02cf350", "sha256": "98e8bcfa86d3f5b08dc4d8196815f2c7f9acd604a0ac1ab09baeabd381f9dc22" }, "downloads": -1, "filename": "tuna-0.1.5.tar.gz", "has_sig": false, "md5_digest": "a4d6df5321773c8639625813d02cf350", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 116787, "upload_time": "2018-07-04T08:45:40", "url": "https://files.pythonhosted.org/packages/3c/a8/c9742664e3942d7c4565b1f691c3117c98afbd779fa053abb71cf2d18fd5/tuna-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "df18575e63ba7b5e326df1ef104e32de", "sha256": "86c577748851948b31f54a9a29ffad7ac468068d942db54eecb62531fc4a819e" }, "downloads": -1, "filename": "tuna-0.1.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "df18575e63ba7b5e326df1ef104e32de", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 117307, "upload_time": "2018-07-18T07:03:25", "url": "https://files.pythonhosted.org/packages/32/dd/022ae39c3a444fa168e213261164131ff7b0efe62af89971d2e73b5b59c4/tuna-0.1.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d6d85958f09f3bf7845bfa4101c8f9f4", "sha256": "9d350a8f30b1ace64cdc55f0b608024a35db85be4e07c256d91379cad435bfd1" }, "downloads": -1, "filename": "tuna-0.1.6.tar.gz", "has_sig": false, "md5_digest": "d6d85958f09f3bf7845bfa4101c8f9f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 116928, "upload_time": "2018-07-18T07:03:27", "url": "https://files.pythonhosted.org/packages/05/97/ac3dcad74fbe3bdd720f38585ecf036f922dc41b99056a8c55add741b161/tuna-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "8a04c2fa526a3b83c21fb2ef3a5e9e4a", "sha256": "826765e77e7a59fbc2696e6db85aecadd2dee6f31c75b12a1a0f414b7e159717" }, "downloads": -1, "filename": "tuna-0.1.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8a04c2fa526a3b83c21fb2ef3a5e9e4a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 117418, "upload_time": "2018-08-15T10:36:08", "url": "https://files.pythonhosted.org/packages/8d/fa/91af34834788a87fcaadec7da34756ed98a07a38a783c546e9ad7c9e4858/tuna-0.1.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "25a7e3217062cd08a37956967d68055c", "sha256": "2331fe2e18d4188b97ebe5d2ae1d28b939bbfbe308a15ee4f75762ecd5f050ce" }, "downloads": -1, "filename": "tuna-0.1.7.tar.gz", "has_sig": false, "md5_digest": "25a7e3217062cd08a37956967d68055c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 117023, "upload_time": "2018-08-15T10:36:11", "url": "https://files.pythonhosted.org/packages/79/f4/600109fa60de0493630ad31f7044365e7aa447acbbf3e9d7a159aeb2ae86/tuna-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "1e5ecfe1a5124d2b1fd3050bad6e8810", "sha256": "cb3fb750ec62872f2a127cf7e73e7a930fb6f3998b736ea40dd7ccf14ce73d42" }, "downloads": -1, "filename": "tuna-0.1.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1e5ecfe1a5124d2b1fd3050bad6e8810", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 117412, "upload_time": "2018-08-16T13:16:39", "url": "https://files.pythonhosted.org/packages/b0/4a/2eeea264fd9cfc3ce8371b4df305c608e9a52e84f2f79d00ea21cd7c6415/tuna-0.1.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ff0ff30ac40686aca66ea2aec51c28c0", "sha256": "6180ffbf65a42d5a9fbae51e7ec8bd2ad607b751d8ecea6dee0fdbdaa96d6ca9" }, "downloads": -1, "filename": "tuna-0.1.8.tar.gz", "has_sig": false, "md5_digest": "ff0ff30ac40686aca66ea2aec51c28c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 117101, "upload_time": "2018-08-16T13:16:42", "url": "https://files.pythonhosted.org/packages/29/c2/c95bd93bc6d41050b0483fd998c6e5d5c41a080f1a071cb7024dbba551c5/tuna-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "883c9943b1314ddde6343094d29922fb", "sha256": "d7086e612cba1990089a607bb9b61996853fdc4aac6960fb579b5fd191bf642c" }, "downloads": -1, "filename": "tuna-0.1.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "883c9943b1314ddde6343094d29922fb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 117559, "upload_time": "2018-08-30T06:54:36", "url": "https://files.pythonhosted.org/packages/4b/42/877e77d5affc0efb1b920d6df2244137fc7aeba63aaf8549a78672eaf606/tuna-0.1.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fbb03aa2dd2bb6ee83c49b04c54c54ca", "sha256": "6a05fa78d1c190e0e995a88e7d11f2cb598e840dd44430dc411f242236d1a51c" }, "downloads": -1, "filename": "tuna-0.1.9.tar.gz", "has_sig": false, "md5_digest": "fbb03aa2dd2bb6ee83c49b04c54c54ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 116871, "upload_time": "2018-08-30T06:54:38", "url": "https://files.pythonhosted.org/packages/a7/9b/8fe9aa473db1b0f6bb4298c7b1008c41b2956a7427c87577a052b3a662a4/tuna-0.1.9.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "e4191634a8daa1c2173fa356932c5302", "sha256": "ad5e883dcc0a31ea094b743edd3bae48aada9fcd2d16935e39156d970196248b" }, "downloads": -1, "filename": "tuna-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e4191634a8daa1c2173fa356932c5302", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 117980, "upload_time": "2018-09-11T06:01:47", "url": "https://files.pythonhosted.org/packages/cc/aa/22b7cd857b41a52a3b20e45b14a6249ecc0d4f83fb884fc22fe92d997c49/tuna-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c907edf3c828faa5fd97e4a922c6375", "sha256": "cebf9e8be464b45037b5388a051ec31f1e9faae9b7638f7cba667365d3e0fe3c" }, "downloads": -1, "filename": "tuna-0.2.0.tar.gz", "has_sig": false, "md5_digest": "4c907edf3c828faa5fd97e4a922c6375", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 117449, "upload_time": "2018-09-11T06:01:50", "url": "https://files.pythonhosted.org/packages/f0/7f/8ad854bd55374f95105da1e433f7b703be15c0fe15e6f90f05d569615031/tuna-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "f6afd2fe84db838c720548b969918e53", "sha256": "fbc5a9b0c27f714a583cb7e1780538ca88fbf5736a06c35b5331c1e3a567851f" }, "downloads": -1, "filename": "tuna-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f6afd2fe84db838c720548b969918e53", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 122115, "upload_time": "2019-02-16T18:53:30", "url": "https://files.pythonhosted.org/packages/11/4f/3a4ccb631d8ffb698ec056108e2485db1fd2c38a00f272858d2733356cfb/tuna-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d122b94091c29e9325fe6a4e4f127802", "sha256": "b4acad328cb6eb62f0373dc5635d2155568b80305bbd4b8eefdd133e28cde3fc" }, "downloads": -1, "filename": "tuna-0.2.1.tar.gz", "has_sig": false, "md5_digest": "d122b94091c29e9325fe6a4e4f127802", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120790, "upload_time": "2019-02-16T18:53:32", "url": "https://files.pythonhosted.org/packages/5a/33/9d0d5bb6a5c786161d101da79773b393247db6483acaa74fd4616544fc0c/tuna-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "e9783af9b782855420508eb508c2cd8a", "sha256": "5e9120acd1ae14bed5daf8702a6c198a87df8585de198dea77cd3fe839b10838" }, "downloads": -1, "filename": "tuna-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e9783af9b782855420508eb508c2cd8a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 122219, "upload_time": "2019-03-08T19:43:34", "url": "https://files.pythonhosted.org/packages/a8/e9/63aee0ae4e3d2eb44da7c05d3a666a5102118e3a980bf14f4efb510a4a9c/tuna-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0308d55c8c5fe75ea2d7e3f4c1b650f9", "sha256": "86b76485cbe80eed9eea6478e3bd800483dab10f945aa91ace0c2a264f42ec2f" }, "downloads": -1, "filename": "tuna-0.2.2.tar.gz", "has_sig": false, "md5_digest": "0308d55c8c5fe75ea2d7e3f4c1b650f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 122410, "upload_time": "2019-03-08T19:43:37", "url": "https://files.pythonhosted.org/packages/2b/86/6dce829eaf639950b396b48a7371eef2926a11868a9eaebd72ec8360c0ab/tuna-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "2660fc55ac5ad5c3b2aad2c969ec5ff2", "sha256": "26eea5dae609d932b27a71e1db4aacf2a06af9eb281cbc659e04facf304014e9" }, "downloads": -1, "filename": "tuna-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2660fc55ac5ad5c3b2aad2c969ec5ff2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 122243, "upload_time": "2019-03-10T20:32:01", "url": "https://files.pythonhosted.org/packages/ce/39/d6c65958d1c601b6b2a3fd5e32e94670240135203f146ef68c8bc7464c14/tuna-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7d76020b3664020ae3df455e55132629", "sha256": "20d7fe9f1d9df9fad9d75d677b9aaee7782dc6758bdc119b99d813ee89e24c07" }, "downloads": -1, "filename": "tuna-0.2.3.tar.gz", "has_sig": false, "md5_digest": "7d76020b3664020ae3df455e55132629", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 122429, "upload_time": "2019-03-10T20:32:03", "url": "https://files.pythonhosted.org/packages/e3/12/3c2edfbfe14405898c1b6902ac8717c69735f66de9963dbb5a5b17024418/tuna-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "0e22ed210ec11d20fb2ee09bd6ca5c89", "sha256": "626ca47925abed52290ed53b586881f98ffd2b0c04d8e3a8c0ba79f6eda11abc" }, "downloads": -1, "filename": "tuna-0.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0e22ed210ec11d20fb2ee09bd6ca5c89", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 122534, "upload_time": "2019-04-24T11:06:46", "url": "https://files.pythonhosted.org/packages/85/f6/d65624d640a2ea9df1fb66c5d03b9cf40f6b4eb5c46b7718fbb7d14327e2/tuna-0.2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e20a5118c957852507fbad967d30e7ad", "sha256": "d2588006d372e1bf8c0339a38c969afd3c66a1dad8ab076f87d0c865a2c43d86" }, "downloads": -1, "filename": "tuna-0.2.4.tar.gz", "has_sig": false, "md5_digest": "e20a5118c957852507fbad967d30e7ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 122789, "upload_time": "2019-04-24T11:06:48", "url": "https://files.pythonhosted.org/packages/82/53/b64d6895c6f0d6c2810cfd7317941e4767c054240fe22e32783e46d1386b/tuna-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "fffda9e65accca6d6388aebe033c0e62", "sha256": "b547a04828db5e5bd4a66840bb81417420fc82d2db48235ee27cc82bcc825613" }, "downloads": -1, "filename": "tuna-0.2.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fffda9e65accca6d6388aebe033c0e62", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 122537, "upload_time": "2019-04-25T15:10:16", "url": "https://files.pythonhosted.org/packages/79/08/3e29c21f9bd1b7b75728ecf8d671bedafaf9ed531a672a9f89769992b075/tuna-0.2.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b02db5a4ac4abbcb4185e45519a80da9", "sha256": "36988e15c9cd6629a5a75f8fd89739ee56e782c1753f0e9a0881a4f4bdbec38c" }, "downloads": -1, "filename": "tuna-0.2.5.tar.gz", "has_sig": false, "md5_digest": "b02db5a4ac4abbcb4185e45519a80da9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 122781, "upload_time": "2019-04-25T15:10:21", "url": "https://files.pythonhosted.org/packages/54/5a/b7bfd73be4b327f0d2c0d3264a8796e66927c9e3d277c9d2876386b32eb8/tuna-0.2.5.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "9b63e329eb04376d53082e13dafa36bf", "sha256": "5d92b7e3d55c847daa61ab49d375e765ff93946708cc9efc3cbdd212db4f94f4" }, "downloads": -1, "filename": "tuna-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9b63e329eb04376d53082e13dafa36bf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 122527, "upload_time": "2019-07-19T10:45:51", "url": "https://files.pythonhosted.org/packages/20/c7/9106e7a40aa97e2b8a75057f0b1d098918beb733599a108399c8901af9e1/tuna-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "47a915f77781f3e59f2521124a803b03", "sha256": "54e65eb285e2e233c5396ef9e6f7187c17c7b530d5749ad8745090a380908381" }, "downloads": -1, "filename": "tuna-0.3.0.tar.gz", "has_sig": false, "md5_digest": "47a915f77781f3e59f2521124a803b03", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 122795, "upload_time": "2019-07-19T10:45:54", "url": "https://files.pythonhosted.org/packages/f4/ea/4ac3b9b96f3bc72d404deb57229af5ebc4fdc5b279632e30fb3a05fc01aa/tuna-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "f88e7c75434f69604736d009f679c655", "sha256": "643b3facaafabcfe7431c58d871d0d93ff75180b30d467dd43e6a4fdb7dc9c26" }, "downloads": -1, "filename": "tuna-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f88e7c75434f69604736d009f679c655", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 123451, "upload_time": "2019-08-31T07:21:48", "url": "https://files.pythonhosted.org/packages/b1/8e/23afea1d6aa9cc4f811e7f0f0ca04abcd0a78487eba7b2b8ca97c533482f/tuna-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d32ed95f196c337f21accbbed9d285bf", "sha256": "761504ef63bacf123692630680c46e44ed9392dc5781f3e84fcb208960e5ffc1" }, "downloads": -1, "filename": "tuna-0.3.1.tar.gz", "has_sig": false, "md5_digest": "d32ed95f196c337f21accbbed9d285bf", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 123728, "upload_time": "2019-08-31T07:21:51", "url": "https://files.pythonhosted.org/packages/44/ad/ef1fc4879b830bb1aee2cfb522750668ddd9655932365f50ef32bac1cbac/tuna-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "de4778bb60bc85be9bcf88e1ddcd8700", "sha256": "cd12177d210b225335cda17452268ea16a05cc21a98a4e97cb745197499a6516" }, "downloads": -1, "filename": "tuna-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "de4778bb60bc85be9bcf88e1ddcd8700", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 123666, "upload_time": "2019-09-30T14:04:04", "url": "https://files.pythonhosted.org/packages/9a/80/8559d512536da78906ceb8f5e58017f534a11bfb0596821068aa6d9568fa/tuna-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6aee14212a861c186310e14724f36401", "sha256": "9c5bf978e7174e9afe0b3e081fa72dd4877f25d4a028b821478ce718b39441c1" }, "downloads": -1, "filename": "tuna-0.3.2.tar.gz", "has_sig": false, "md5_digest": "6aee14212a861c186310e14724f36401", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 124192, "upload_time": "2019-09-30T14:04:06", "url": "https://files.pythonhosted.org/packages/97/dd/5c0307ddc3d57b7151d7a56a8bd880cf0db72617fbfeed33700255a70827/tuna-0.3.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "de4778bb60bc85be9bcf88e1ddcd8700", "sha256": "cd12177d210b225335cda17452268ea16a05cc21a98a4e97cb745197499a6516" }, "downloads": -1, "filename": "tuna-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "de4778bb60bc85be9bcf88e1ddcd8700", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 123666, "upload_time": "2019-09-30T14:04:04", "url": "https://files.pythonhosted.org/packages/9a/80/8559d512536da78906ceb8f5e58017f534a11bfb0596821068aa6d9568fa/tuna-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6aee14212a861c186310e14724f36401", "sha256": "9c5bf978e7174e9afe0b3e081fa72dd4877f25d4a028b821478ce718b39441c1" }, "downloads": -1, "filename": "tuna-0.3.2.tar.gz", "has_sig": false, "md5_digest": "6aee14212a861c186310e14724f36401", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 124192, "upload_time": "2019-09-30T14:04:06", "url": "https://files.pythonhosted.org/packages/97/dd/5c0307ddc3d57b7151d7a56a8bd880cf0db72617fbfeed33700255a70827/tuna-0.3.2.tar.gz" } ] }