{
"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"
}
]
}