{ "info": { "author": "Leif Walsh", "author_email": "leif.walsh@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "=======\nperfume\n=======\n\n\n.. image:: https://img.shields.io/pypi/v/perfume-bench.svg\n :target: https://pypi.python.org/pypi/perfume-bench\n\n.. image:: https://img.shields.io/travis/leifwalsh/perfume.svg\n :target: https://travis-ci.org/leifwalsh/perfume\n\n.. image:: https://readthedocs.org/projects/perfume/badge/?version=latest\n :target: https://perfume.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://pyup.io/repos/github/leifwalsh/perfume/shield.svg\n :target: https://pyup.io/repos/github/leifwalsh/perfume/\n :alt: Updates\n\n\nInteractive performance benchmarking in Jupyter\n\n\n* Free software: BSD license\n* Documentation: https://perfume.readthedocs.io.\n\nOverview\n--------\n\n`perfume` is a performance benchmarking tool that provides quick\nfeedback on the systems under test.\n\nThe primary goals are:\n\n* Prioritize analysis of *distributions* of latency, not averages.\n* Support both immediate feedback and robust benchmarking with many\n samples, through a UI that updates as we collect more information.\n* Provide raw data back to the user, for flexible custom analysis.\n* Provide helpful post-processing analysis and charting tools.\n\nFeatures\n--------\n\n* Live-updating histogram chart and descriptive statistics during a\n benchmark run.\n* Jupyter notebook integration.\n* Tunable benchmarking overhead.\n* Comparative analysis of multiple functions under test.\n* Powerful post-processing analysis tools.\n\nDemo\n----\n\nYou can check out `an example notebook `__ using\nperfume.\n\n.. image:: docs/perfume.gif\n\n.. image:: docs/cumulative_quantiles.png\n\nInstalling\n----------\n\n.. code-block:: none\n\n pip install perfume-bench\n\nCredits\n-------\n\nThis package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage\n\n\n\n=======\nHistory\n=======\n\n0.1.3 (2017-09-10)\n------------------\n\n* Actually fix when only benchmarking one function (no K-S test) (oops).\n\n0.1.2 (2017-09-10)\n------------------\n\n* Fix when only benchmarking one function (no K-S test).\n\n0.1.1 (2017-08-27)\n------------------\n\n* Add dependency on matplotlib.\n\n0.1.0 (2017-08-27)\n------------------\n\n* First release on PyPI.\n* Interactive histogram while benchmarking with bokeh.\n* Interactive descriptive stats and K-S test.\n* Cumulative distribution plots.\n* Bucketed resampling.\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/leifwalsh/perfume", "keywords": "perfume python performance benchmarking jupyter interactive", "license": "BSD license", "maintainer": "", "maintainer_email": "", "name": "perfume-bench", "package_url": "https://pypi.org/project/perfume-bench/", "platform": "", "project_url": "https://pypi.org/project/perfume-bench/", "project_urls": { "Homepage": "https://github.com/leifwalsh/perfume" }, "release_url": "https://pypi.org/project/perfume-bench/0.1.6/", "requires_dist": [ "bokeh (>=0.12)", "ipython (>=5.0)", "ipywidgets (>=5.0)", "matplotlib (>=2.0)", "notebook (>=5.0)", "numpy (>=1.11)", "pandas (>=0.19)", "seaborn (>=0.7)", "statsmodels (>=0.8)" ], "requires_python": ">=3.4, <4", "summary": "Interactive performance benchmarking in Jupyter", "version": "0.1.6" }, "last_serial": 3880413, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "8af8a17a8a83bf7fec8ff43627209505", "sha256": "cd3bc91749ab36bdbb6b561990cc22364af7de07e7ab6f796e5d2b999d2423bc" }, "downloads": -1, "filename": "perfume_bench-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8af8a17a8a83bf7fec8ff43627209505", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.4, <4", "size": 16361, "upload_time": "2017-08-27T21:48:22", "url": "https://files.pythonhosted.org/packages/e8/db/c2e1d159a46781662d208f9c70c54926063526389f89fbf46f53187e925b/perfume_bench-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "203773166fc87ddd9e92083e798d047c", "sha256": "702b6840f35a7dbfda53b8280881723fab376c1dd357632e3d9874fc7f110120" }, "downloads": -1, "filename": "perfume-bench-0.1.0.tar.gz", "has_sig": false, "md5_digest": "203773166fc87ddd9e92083e798d047c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4, <4", "size": 1209108, "upload_time": "2017-08-27T21:48:23", "url": "https://files.pythonhosted.org/packages/38/de/4f3f16156820fdbbd41621d808a24f2865acb08461589b7e8e7d33e3a892/perfume-bench-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "bb29ca162381c8f3c279a61b71f45397", "sha256": "ac9b1d0e689650caf82847ba8c9f2172b457c8722379d45e1185275a8371d703" }, "downloads": -1, "filename": "perfume_bench-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bb29ca162381c8f3c279a61b71f45397", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.4, <4", "size": 16428, "upload_time": "2017-08-27T21:57:16", "url": "https://files.pythonhosted.org/packages/9d/71/5f10547d1d5277c02e0ef7d256b60dea289ab284ae7db39b8581e88ded2e/perfume_bench-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b50740c3a52553771fbde54b9c5332c6", "sha256": "2e2a07e908e0120d40cac61f214a029781eded5033d00cbac7172daeb991c67a" }, "downloads": -1, "filename": "perfume-bench-0.1.1.tar.gz", "has_sig": false, "md5_digest": "b50740c3a52553771fbde54b9c5332c6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4, <4", "size": 1209163, "upload_time": "2017-08-27T21:57:17", "url": "https://files.pythonhosted.org/packages/2a/28/5284565c130edb4368d34e583825e5481b107888cd0121ce39dbfee5d674/perfume-bench-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "2a212f2e25ac084ff2d657a09ac1b89b", "sha256": "babcd8bb49bd8482bb6ebd98280a10ebbaba4ddcad909ac623bec8cf152f629c" }, "downloads": -1, "filename": "perfume_bench-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2a212f2e25ac084ff2d657a09ac1b89b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.4, <4", "size": 16523, "upload_time": "2017-09-10T23:00:58", "url": "https://files.pythonhosted.org/packages/71/ea/4b6cbb5045198188341ce5b58e8d7abcdee80aed6cdff27a43991f9e0ff5/perfume_bench-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3639b539fc036c68dd8d1f959238a737", "sha256": "afb6f5ef7d55a611297f62552112ca70b44e71bf64b73c96f656658f8e0da1db" }, "downloads": -1, "filename": "perfume-bench-0.1.2.tar.gz", "has_sig": false, "md5_digest": "3639b539fc036c68dd8d1f959238a737", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4, <4", "size": 1209265, "upload_time": "2017-09-10T23:01:01", "url": "https://files.pythonhosted.org/packages/c3/3f/48e6a465ba9489a607cb29dee9f49077742a3c5782c720b1a0d331bebcad/perfume-bench-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "1f495e433e875f949841e2146cc7be1c", "sha256": "e10d2cd43a4f8c6ed179247bc746902bb47b2a2b837b5ffc8e272c318c8fc6b2" }, "downloads": -1, "filename": "perfume_bench-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1f495e433e875f949841e2146cc7be1c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.4, <4", "size": 16566, "upload_time": "2017-09-10T23:12:01", "url": "https://files.pythonhosted.org/packages/f2/bf/d63c0bc0f0143dcc2d065978fa3f5344d78687e2f93568365058243bb1fe/perfume_bench-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f6a5390941680b7e6aa0b6dce609aa70", "sha256": "a01b59bf08567d343936b860123e15e19842a4870f9dbe73e46e51a445c26800" }, "downloads": -1, "filename": "perfume-bench-0.1.3.tar.gz", "has_sig": false, "md5_digest": "f6a5390941680b7e6aa0b6dce609aa70", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4, <4", "size": 1209395, "upload_time": "2017-09-10T23:12:03", "url": "https://files.pythonhosted.org/packages/b4/4a/16c5f2f19af5fb2cfc4317e58255f3201be84b399ec92c49743dc1203699/perfume-bench-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "45858f4d650d570518ce36d2c1021457", "sha256": "672dc728dffaf4d1df6cfd948ebc443d2e681001e14a2a8c7139e27bd20a8777" }, "downloads": -1, "filename": "perfume_bench-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "45858f4d650d570518ce36d2c1021457", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.4, <4", "size": 14588, "upload_time": "2018-04-08T23:56:31", "url": "https://files.pythonhosted.org/packages/3b/a5/6d87a83b49ff51131666894213e3307506483a0bbfb6eec70645eadce683/perfume_bench-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a94e87ed184a3af1c47ebb85a17f0d67", "sha256": "52c40c55d44675c9e4554f662c96cfbe2e2546a5e688908ba1761c7393178ecb" }, "downloads": -1, "filename": "perfume-bench-0.1.4.tar.gz", "has_sig": false, "md5_digest": "a94e87ed184a3af1c47ebb85a17f0d67", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4, <4", "size": 1209487, "upload_time": "2018-04-08T23:56:32", "url": "https://files.pythonhosted.org/packages/f2/77/319c47538af7501879cdc485d533907d83da971b4d7dc53e719d5ba5d9b9/perfume-bench-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "99ead24c195f5fa6e524c23e9f27af4b", "sha256": "b28b46d5df33b1620c9cfd7795812f0e3b2d5a2487b5250c9a0e291789f1d1b9" }, "downloads": -1, "filename": "perfume_bench-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "99ead24c195f5fa6e524c23e9f27af4b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.4, <4", "size": 14586, "upload_time": "2018-04-08T23:57:43", "url": "https://files.pythonhosted.org/packages/a1/b1/1ed0db32f79c018fb13e6d31437dd3c95530a154299472ddf792b8f3bf11/perfume_bench-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9fa12464b52e659dce3db48080824ea", "sha256": "f9c73dd70c85537ac18089529af507618cc640061ebc9ae3ca90c839ad01636b" }, "downloads": -1, "filename": "perfume-bench-0.1.5.tar.gz", "has_sig": false, "md5_digest": "f9fa12464b52e659dce3db48080824ea", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4, <4", "size": 1209484, "upload_time": "2018-04-08T23:57:44", "url": "https://files.pythonhosted.org/packages/8a/b7/636333c03a8a83597d3952e7ff87ae2d41f09ca78bb6a75343abfb57fd65/perfume-bench-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "a02a97f58fe23efcfa9780f150439ff0", "sha256": "44a839794302835e83b69449bb8d569f11685a04aba5185787978d1045c570ee" }, "downloads": -1, "filename": "perfume_bench-0.1.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a02a97f58fe23efcfa9780f150439ff0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.4, <4", "size": 14589, "upload_time": "2018-05-20T05:11:04", "url": "https://files.pythonhosted.org/packages/06/7e/6c0862d1ef069d9fabd8fb41fc5c7a4e0a98c409cadb627236a93c1ad39d/perfume_bench-0.1.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e67c3d4b4ea92dd253c88660d0473db3", "sha256": "d7f6e09d2aae31772c18b8cca7f6750337caa25dc557fe78f1d055cbb3696ed0" }, "downloads": -1, "filename": "perfume-bench-0.1.6.tar.gz", "has_sig": false, "md5_digest": "e67c3d4b4ea92dd253c88660d0473db3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4, <4", "size": 1209482, "upload_time": "2018-05-20T05:11:06", "url": "https://files.pythonhosted.org/packages/6a/83/369263793baa71319a43ffe1205ffd75230acc581a9414ebbf9d1c2ae477/perfume-bench-0.1.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a02a97f58fe23efcfa9780f150439ff0", "sha256": "44a839794302835e83b69449bb8d569f11685a04aba5185787978d1045c570ee" }, "downloads": -1, "filename": "perfume_bench-0.1.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a02a97f58fe23efcfa9780f150439ff0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.4, <4", "size": 14589, "upload_time": "2018-05-20T05:11:04", "url": "https://files.pythonhosted.org/packages/06/7e/6c0862d1ef069d9fabd8fb41fc5c7a4e0a98c409cadb627236a93c1ad39d/perfume_bench-0.1.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e67c3d4b4ea92dd253c88660d0473db3", "sha256": "d7f6e09d2aae31772c18b8cca7f6750337caa25dc557fe78f1d055cbb3696ed0" }, "downloads": -1, "filename": "perfume-bench-0.1.6.tar.gz", "has_sig": false, "md5_digest": "e67c3d4b4ea92dd253c88660d0473db3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4, <4", "size": 1209482, "upload_time": "2018-05-20T05:11:06", "url": "https://files.pythonhosted.org/packages/6a/83/369263793baa71319a43ffe1205ffd75230acc581a9414ebbf9d1c2ae477/perfume-bench-0.1.6.tar.gz" } ] }