{ "info": { "author": "Marc-Antonio Bisotti", "author_email": "mail@marc-antonio.de", "bugtrack_url": null, "classifiers": [], "description": "Aeon\n====\n\nMeasures how often designated functions, methods, or pieces of code are\nexecuted and what their runtime is. Optionally prints a nice report to\nthe screen, although the raw data is available for further processing as\nwell.\n\nOutline\n-------\n\n1. Mark parts of the code that should be monitored with the provided\n context manager or decorators.\n2. Tell your program to output the report or provide you the data when\n it's done.\n3. Run your program.\n4. \\?\\?\\?\\?\\?\n5. Profit.\n\nBasic Usage\n-----------\n\nHow to designate code that should be monitored.\n\nA free-standing piece of code.\n\n.. code:: python\n\n from aeon import timer\n\n with timer('my measurement'):\n # do stuff here...\n\n # to assign the measurement to a specific group\n with timer('my measurement', 'general frobnication'):\n # do stuff here\n\nA function.\n\n.. code:: python\n\n from aeon import timer\n\n @timer\n def my_function():\n pass\n\nA method.\n\n.. code:: python\n\n from aeon import timer\n\n class Foo(object):\n @timer.method\n def bar(self):\n pass\n\nHow to see the report.\n\n.. code:: python\n\n from aeon import timer\n\n print timer.report() \n print timer # equivalent\n\nFurther features\n----------------\n\nYou can instantiate your own timer if you want to, in case you want to\nuse several in parallel.\n\n.. code:: python\n\n from aeon import Timer\n\n my_timer= Timer()\n\n with my_timer('my_measurement'):\n pass\n\n # or\n with my_timer('my_measurement', 'my_group'):\n pass\n\n @my_timer\n def foo():\n pass\n\n class Foo(object):\n @my_timer.method\n def bar(self):\n pass\n\nThe timer object can be queried for specific measurements or the data\nwith which it generates the report.\n\nAlso, nothing prevents you from using the Measurement class on its own:\n\n.. code:: python\n\n from aeon import Measurement\n\n m = Measurement()\n for i in xrange(100):\n m.start()\n # stuff happens here\n m.stop()\n\n assert m.calls == 100\n print m.total_runtime, m.time_per_call\n\nInstallation\n------------\n\nInstallation is easy as:\n\n.. code:: bash\n\n $ sudo pip install aeon\n\nRationale\n---------\n\nThe code has originally been used in a computational physics project\nwhere the typical runtime distribution is very dependent on the problem\nat hand. It has proven itself useful for giving a feel for where time is\nspent during computation and quickly showing when parts of code went on\na riot. In fact, in that project, it is enabled in production since the\noverhead is low.\n\nWhat sets it apart is the possibility to monitor only specific parts of\nthe code and optionally have these parts logically grouped (by default,\nit will use the class or module names).\n\nThere are better alternatives for proper benchmarking, like cProfile.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/logicabrity/aeon", "keywords": "profiling,timings,benchmark", "license": "The MIT License (MIT)", "maintainer": null, "maintainer_email": null, "name": "Aeon", "package_url": "https://pypi.org/project/Aeon/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/Aeon/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/logicabrity/aeon" }, "release_url": "https://pypi.org/project/Aeon/2.0.2/", "requires_dist": null, "requires_python": null, "summary": "Runtime and number of calls for designated functions, methods, or pieces of code. Optionally output nice report.", "version": "2.0.2" }, "last_serial": 1544122, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "997a758f0bf19f548516195a0e774b46", "sha256": "50a89917751e4998ac7773bd9d20586e68cee287fc62d9c4c55a60f94bcfdf25" }, "downloads": -1, "filename": "Aeon-1.0.0.tar.gz", "has_sig": false, "md5_digest": "997a758f0bf19f548516195a0e774b46", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6389, "upload_time": "2013-09-17T01:02:52", "url": "https://files.pythonhosted.org/packages/b3/db/1cf1e3b5810883380ad4a353090fbdc437ebe89f5790fb7d6791556ef41e/Aeon-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "07d57aedc949da9e6d0af40ea22c039f", "sha256": "930828140c64112c1f20ca82d266783889dbbbf9869ca7fb25fb081ef26c1ce2" }, "downloads": -1, "filename": "Aeon-1.0.1.tar.gz", "has_sig": false, "md5_digest": "07d57aedc949da9e6d0af40ea22c039f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6390, "upload_time": "2013-09-17T01:09:58", "url": "https://files.pythonhosted.org/packages/2f/c5/d71d7eb69e330026e2e0b5f65ef150f7d112deed69a818939df44cfb79ea/Aeon-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "0b20a16922eb3b3453faeed5b0a2aa6a", "sha256": "da7f0325263a732510e166047703651ffe52d2152a5f79f4897a67f238666404" }, "downloads": -1, "filename": "Aeon-1.0.2.tar.gz", "has_sig": false, "md5_digest": "0b20a16922eb3b3453faeed5b0a2aa6a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6665, "upload_time": "2013-09-17T10:32:58", "url": "https://files.pythonhosted.org/packages/1c/fe/8add926f79b12402ee60f98ca981ef2ea495ce785730fbd58d37227b6244/Aeon-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "dedc8027d89415f122c571147f5f47dc", "sha256": "c8446103e20355e9aea5bb6507fbc7ed9df5ce3be2d61aa067e35d2994a11029" }, "downloads": -1, "filename": "Aeon-1.0.3.tar.gz", "has_sig": false, "md5_digest": "dedc8027d89415f122c571147f5f47dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7726, "upload_time": "2013-10-16T10:09:19", "url": "https://files.pythonhosted.org/packages/3c/c8/70b660d08a0af6fad19d1f3969474a209e4656076752d8a694227183a770/Aeon-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "ef09726cb2da3c1ef1d0ccccd0e41c7b", "sha256": "4e7f923855b2ee8da2393550d0e7a6dba1f102220b0fab1f62ea0ef0a255e46b" }, "downloads": -1, "filename": "Aeon-1.0.4.tar.gz", "has_sig": false, "md5_digest": "ef09726cb2da3c1ef1d0ccccd0e41c7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8467, "upload_time": "2014-08-05T17:15:05", "url": "https://files.pythonhosted.org/packages/66/25/1dc8bf22e353d988ede67645f10ec1f6f21020fa08b2d1b12083a1134cb6/Aeon-1.0.4.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "61ec06881b8d76a99b35ffae5c04c8ca", "sha256": "e624683ec823763aa01ed15c1a4ae37c46cedfb37592324a83a1c5e3be68ab1a" }, "downloads": -1, "filename": "Aeon-2.0.0.tar.gz", "has_sig": false, "md5_digest": "61ec06881b8d76a99b35ffae5c04c8ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7464, "upload_time": "2014-10-26T11:17:43", "url": "https://files.pythonhosted.org/packages/16/ec/3088f46447a109c4406199e802f3882b9af45c35e2a95190a01f743fbde8/Aeon-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "2632d8fa3cd457507ea417a444289519", "sha256": "ad8dc48895d5262f7d6cafb8f0601acc9c2ab7dfd58b19cc04c3ba218ae9ffa2" }, "downloads": -1, "filename": "Aeon-2.0.1.tar.gz", "has_sig": false, "md5_digest": "2632d8fa3cd457507ea417a444289519", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7843, "upload_time": "2015-05-12T17:52:54", "url": "https://files.pythonhosted.org/packages/99/2e/ed27b243fa8592ee7565e41d3182a6bc997b6e4379da3a20a280063586c4/Aeon-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "eb5a191905106c84c602a8262e705c3b", "sha256": "5b2a9221f06068cfd251884e6ee14cbcc605f82b59415cbf0e0c4b0603f37b1f" }, "downloads": -1, "filename": "Aeon-2.0.2.tar.gz", "has_sig": false, "md5_digest": "eb5a191905106c84c602a8262e705c3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7841, "upload_time": "2015-05-12T18:24:15", "url": "https://files.pythonhosted.org/packages/65/5b/667261a7e821b1088850245bf94cffa4d0f1b0dc48be2f996ab444c2b78b/Aeon-2.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "eb5a191905106c84c602a8262e705c3b", "sha256": "5b2a9221f06068cfd251884e6ee14cbcc605f82b59415cbf0e0c4b0603f37b1f" }, "downloads": -1, "filename": "Aeon-2.0.2.tar.gz", "has_sig": false, "md5_digest": "eb5a191905106c84c602a8262e705c3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7841, "upload_time": "2015-05-12T18:24:15", "url": "https://files.pythonhosted.org/packages/65/5b/667261a7e821b1088850245bf94cffa4d0f1b0dc48be2f996ab444c2b78b/Aeon-2.0.2.tar.gz" } ] }