{ "info": { "author": "Roman Yurchak", "author_email": "roman.yurchak@symerio.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development" ], "description": "neurtu\n======\n\n|pypi| |rdfd|\n\n|travis| |appveyor| |codecov|\n\nSimple performance measurement tool\n\nneurtu is a Python package providing a common interface for multi-metric benchmarks\n(including time and memory measurements). It can can be used to estimate time\nand space complexity of algorithms, while pandas integration\nallows quick analysis and visualization of the results.\n\n*neurtu* means \"to measure / evaluate\" in Basque language.\n\nSee the `documentation `_ for more details.\n\nInstallation\n------------\n\nneurtu requires Python 2.7 or 3.4+, it can be installed with,\n\n.. code::\n\n pip install neurtu\n\n`pandas >=0.20 `_ is an optional (but highly recommended) dependency.\n\n\nQuickstart\n----------\n\nTo illustrate neurtu usage, will will benchmark array sorting in numpy. First, we will\ngenerator of cases,\n\n.. code:: python\n\n import numpy as np\n import neurtu\n\n def cases()\n rng = np.random.RandomState(42)\n\n for N in [1000, 10000, 100000]:\n X = rng.rand(N)\n tags = {'N' : N}\n yield neurtu.delayed(X, tags=tags).sort()\n\nthat yields a sequence of delayed calculations, each tagged with the parameters defining individual runs.\n\nWe can evaluate the run time with,\n\n.. code:: python\n\n >>> df = neurtu.timeit(cases())\n >>> print(df)\n wall_time\n N\n 1000 0.000014\n 10000 0.000134\n 100000 0.001474\n\nwhich will internally use ``timeit`` module with a sufficient number of evaluation to work around the timer precision\nlimitations (similarly to IPython's ``%timeit``). It will also display a progress bar for long running benchmarks,\nand return the results as a ``pandas.DataFrame`` (if pandas is installed).\n\nBy default, all evaluations are run with ``repeat=1``. If more statistical confidence is required, this value can\nbe increased,\n\n.. code:: python\n\n >>> neurtu.timeit(cases(), repeat=3)\n wall_time\n mean max std\n N\n 1000 0.000012 0.000014 0.000002\n 10000 0.000116 0.000149 0.000029\n 100000 0.001323 0.001714 0.000339\n\nIn this case we will get a frame with a\n`pandas.MultiIndex `_ for\ncolumns, where the first level represents the metric name (``wall_time``) and the second -- the aggregation method.\nBy default ``neurtu.timeit`` is called with ``aggregate=['mean', 'max', 'std']`` methods, as supported \nby the `pandas aggregation API `_. To disable,\naggregation and obtains timings for individual runs, use ``aggregate=False``.\nSee `neurtu.timeit documentation `_ for more details.\n\nTo evaluate the peak memory usage, one can use the ``neurtu.memit`` function with the same API,\n\n.. code:: python\n\n >>> neurtu.memit(cases(), repeat=3)\n peak_memory\n mean max std\n N\n 10000 0.0 0.0 0.0\n 100000 0.0 0.0 0.0\n 1000000 0.0 0.0 0.0\n\nMore generally ``neurtu.Benchmark`` supports a wide number of evaluation metrics,\n\n.. code:: python\n\n >>> bench = neurtu.Benchmark(wall_time=True, cpu_time=True, peak_memory=True)\n >>> bench(cases())\n cpu_time peak_memory wall_time\n N\n 10000 0.000100 0.0 0.000142\n 100000 0.001149 0.0 0.001680\n 1000000 0.013677 0.0 0.018347\n\nincluding `psutil process metrics `_.\n\nFor more information see the `documentation `_ and \n`examples `_.\n\nLicense\n-------\n\nneurtu is released under the 3-clause BSD license.\n\n\n.. |pypi| image:: https://img.shields.io/pypi/v/neurtu.svg\n :target: https://pypi.python.org/pypi/neurtu\n\n.. |rdfd| image:: https://readthedocs.org/projects/neurtu/badge/?version=latest\n :target: http://neurtu.readthedocs.io/\n\n.. |travis| image:: https://travis-ci.org/symerio/neurtu.svg?branch=master\n :target: https://travis-ci.org/symerio/neurtu\n\n.. |appveyor| image:: https://ci.appveyor.com/api/projects/status/2i1dx8fi3bue4qwl?svg=true\n :target: https://ci.appveyor.com/project/rth/neurtu/branch/master\n\n.. |codecov| image:: https://codecov.io/gh/symerio/neurtu/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/symerio/neurtu\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/symerio/neurtu", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "neurtu", "package_url": "https://pypi.org/project/neurtu/", "platform": "", "project_url": "https://pypi.org/project/neurtu/", "project_urls": { "Homepage": "https://github.com/symerio/neurtu" }, "release_url": "https://pypi.org/project/neurtu/0.3.0/", "requires_dist": [ "memory-profiler", "psutil", "tqdm" ], "requires_python": "", "summary": "A simple benchmarking tool", "version": "0.3.0" }, "last_serial": 5564334, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "d3876163604fd5fd6c4c4cf65ec1fe0f", "sha256": "55cb0de130a50752662a89cf35e83dc08ed4fd3717e945e1db6c43607f5c8232" }, "downloads": -1, "filename": "neurtu-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d3876163604fd5fd6c4c4cf65ec1fe0f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16684, "upload_time": "2018-03-04T18:06:45", "url": "https://files.pythonhosted.org/packages/9c/d0/f4db334caad5a966617b1e8a72ae9815a54fd1d462fe43c12c9d64571ebe/neurtu-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a6e69f629d6f1d7c0d027517d3da309b", "sha256": "e3f62d87b07d6f5f1fb1d1e0e5c2edd9015acf7448acd0ce7faee2068d02736e" }, "downloads": -1, "filename": "neurtu-0.1.0.tar.gz", "has_sig": false, "md5_digest": "a6e69f629d6f1d7c0d027517d3da309b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10864, "upload_time": "2018-03-04T18:06:46", "url": "https://files.pythonhosted.org/packages/71/ed/059724f2cee5c248419fa22ca2d298e01e68f799210f2064ff5a79da8176/neurtu-0.1.0.tar.gz" } ], "0.1a0": [ { "comment_text": "", "digests": { "md5": "03915b78cf243f9985e897d1a235f5b1", "sha256": "6d60157cdbd28c8bae213215eec8264a04d13ee84de7faf36176269131792032" }, "downloads": -1, "filename": "neurtu-0.1a0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "03915b78cf243f9985e897d1a235f5b1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11468, "upload_time": "2018-02-19T12:45:57", "url": "https://files.pythonhosted.org/packages/42/89/ee9f1b712421b5fd43dcea3cbaba1666b73f71c57ce030f88ffef6fe822f/neurtu-0.1a0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b00a7417826069e576dd1199dd2d6296", "sha256": "f40f7a04f8cce9a000c660013cfc5dce8f9f6277ebfbbfe8ea245a9a097029f1" }, "downloads": -1, "filename": "neurtu-0.1a0.tar.gz", "has_sig": false, "md5_digest": "b00a7417826069e576dd1199dd2d6296", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7699, "upload_time": "2018-02-19T12:45:59", "url": "https://files.pythonhosted.org/packages/8d/b3/297938d0f04c7f5377dee7597ef6c582c112120e1e300a45dfbf2ac7aa09/neurtu-0.1a0.tar.gz" } ], "0.1a1": [ { "comment_text": "", "digests": { "md5": "dd85b7551468ad2a076e71e5f33a203c", "sha256": "2bbb6e7b3f568693dadf547bcadaf4d9198e60c2fde2f0fe4439dc46a4177b07" }, "downloads": -1, "filename": "neurtu-0.1a1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dd85b7551468ad2a076e71e5f33a203c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11814, "upload_time": "2018-02-20T00:05:52", "url": "https://files.pythonhosted.org/packages/bc/a5/89f50c4bdfdd2d886d4184d739f4c7638d020b5c3dfb1d27251d491ebdd4/neurtu-0.1a1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "988f82c1e762a11f5364e66cf6b79181", "sha256": "d99b3797cd73411f4e4e8c88036478ee8180079daa7ae293c0e753b0cdcae5e5" }, "downloads": -1, "filename": "neurtu-0.1a1.tar.gz", "has_sig": false, "md5_digest": "988f82c1e762a11f5364e66cf6b79181", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7953, "upload_time": "2018-02-20T00:05:54", "url": "https://files.pythonhosted.org/packages/ee/66/f46132c02db9e90172cd8fa9c5197f407543509bea62003a12765ea7e685/neurtu-0.1a1.tar.gz" } ], "0.1a2": [ { "comment_text": "", "digests": { "md5": "77991f2ac24c103c85f33261c02cb297", "sha256": "6547737e160945034d7a1bcf3b0a8fb603c5e96efeabbc943c32bcb203c35deb" }, "downloads": -1, "filename": "neurtu-0.1a2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "77991f2ac24c103c85f33261c02cb297", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14961, "upload_time": "2018-02-27T23:38:53", "url": "https://files.pythonhosted.org/packages/0d/1c/08e7f025aab9997aa4015d1e10f231b4e78a204966479edf2a83cf22de01/neurtu-0.1a2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "47e3c83f9345c9851feee552c8b44b11", "sha256": "f38ec73d5dfbf254311488fda0da3864aab54c0a693b9c7bfd0f5a6842733683" }, "downloads": -1, "filename": "neurtu-0.1a2.tar.gz", "has_sig": false, "md5_digest": "47e3c83f9345c9851feee552c8b44b11", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9856, "upload_time": "2018-02-27T23:38:55", "url": "https://files.pythonhosted.org/packages/5b/d6/2db4608d2a2bad6fa2093129965d27e58ee3f200dd3c5a9b46a99468246b/neurtu-0.1a2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "72cd402b3496e558cf0dd63e24f69c1f", "sha256": "5a357a9447472d26f32dba4d2249cef174610c9b35a6576e8f23ab2ce797112b" }, "downloads": -1, "filename": "neurtu-0.2.0.tar.gz", "has_sig": false, "md5_digest": "72cd402b3496e558cf0dd63e24f69c1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22086, "upload_time": "2018-08-31T10:15:18", "url": "https://files.pythonhosted.org/packages/1e/7c/e82609ec5a5972d50f905471e3760912c82006692e63eb3590f38b227f38/neurtu-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "e9ff87047fb06d913c620ef797ac0257", "sha256": "033aab806c54cba4accb0c8b25b9b8584a8ccd3c65cadf94f4e668dda99008f9" }, "downloads": -1, "filename": "neurtu-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e9ff87047fb06d913c620ef797ac0257", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14871, "upload_time": "2019-07-21T19:40:22", "url": "https://files.pythonhosted.org/packages/4b/e3/07f0e7b207798e45b553763f7b5d7beeb2e9965888bf3638dd5c627958ad/neurtu-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "21aedb1d1a51d941097ad3ce1638eb5b", "sha256": "260a3f3884a09132f43a89613e670e9dc4ab4f32e9afa4a57bbc836bd61615b9" }, "downloads": -1, "filename": "neurtu-0.3.0.tar.gz", "has_sig": false, "md5_digest": "21aedb1d1a51d941097ad3ce1638eb5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20615, "upload_time": "2019-07-21T19:41:03", "url": "https://files.pythonhosted.org/packages/62/2f/30541acbf0a9e76552ca56c62696454ad0d189be1fb0577dca0b1f126015/neurtu-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e9ff87047fb06d913c620ef797ac0257", "sha256": "033aab806c54cba4accb0c8b25b9b8584a8ccd3c65cadf94f4e668dda99008f9" }, "downloads": -1, "filename": "neurtu-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e9ff87047fb06d913c620ef797ac0257", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14871, "upload_time": "2019-07-21T19:40:22", "url": "https://files.pythonhosted.org/packages/4b/e3/07f0e7b207798e45b553763f7b5d7beeb2e9965888bf3638dd5c627958ad/neurtu-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "21aedb1d1a51d941097ad3ce1638eb5b", "sha256": "260a3f3884a09132f43a89613e670e9dc4ab4f32e9afa4a57bbc836bd61615b9" }, "downloads": -1, "filename": "neurtu-0.3.0.tar.gz", "has_sig": false, "md5_digest": "21aedb1d1a51d941097ad3ce1638eb5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20615, "upload_time": "2019-07-21T19:41:03", "url": "https://files.pythonhosted.org/packages/62/2f/30541acbf0a9e76552ca56c62696454ad0d189be1fb0577dca0b1f126015/neurtu-0.3.0.tar.gz" } ] }