{ "info": { "author": "Arnour Sabino", "author_email": "arnour.sabino@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "Almetro Library\n===============================\n\nversion number: 1.0.7\nauthor: Arnour Sabino\n\nOverview\n--------\n\nA python library to measure algorithms execution time and compare with its theoretical complexity.\n\n[![Build Status](https://travis-ci.org/arnour/almetro.svg?branch=master)](https://travis-ci.org/arnour/almetro)\n\nInstallation / Usage\n--------------------\n\nTo install use pip:\n\n $ pip install almetro\n\n\nOr clone the repo:\n\n $ git clone https://github.com/arnour/almetro.git\n $ python setup.py install\n\nInformation\n--------------------\n\nAlmetro uses timeit module from python to time your algorithms.\n\nSee more [here](https://docs.python.org/3/library/timeit.html)\n\n\nExamples\n--------------------\n\nApplying Almetro to a quadratic algorithm:\n\n```python\nimport almetro\nfrom almetro.algorithms import loop_n_quadratic\nfrom almetro.complexity import cn_quadratic\nfrom almetro.instance import growing\n\nmetro = almetro\\\n .new()\\\n .with_execution(trials=5)\\\n .with_instances(instances=20, provider=growing(initial_size=100, growth_size=100))\\\n .metro(algorithm=loop_n_quadratic, complexity=cn_quadratic)\n\nchart = metro.chart()\n\nchart.show()\n```\n\n![Chart Almetro n quadratic](https://raw.githubusercontent.com/arnour/almetro/master/images/chart_almetro_n_quadratic.png)\n\n---\n\nApplying Almetro to a lg n algorithm:\n\n```python\nimport almetro\nfrom almetro.algorithms import loop_n_log\nfrom almetro.complexity import clog_n\nfrom almetro.instance import growing\n\nmetro = almetro\\\n .new()\\\n .with_execution(trials=100)\\\n .with_instances(instances=20, provider=growing(initial_size=10000, growth_size=10000))\\\n .metro(algorithm=loop_n_log, complexity=clog_n)\n\nchart = metro.chart()\n\nchart.show()\n```\n\n![Chart Almetro lg n](https://github.com/arnour/almetro/blob/master/images/chart_almetro_lg_n.png?raw=true)\n\n\n---\n\nCustomazing execution:\n\n```python\nimport almetro\nfrom almetro.complexity import Complexity\nfrom almetro.instance import generator\n\nmy_custom_complexity = Complexity(\n theoretical=lambda v=1, e=1, c=1: v * v,\n experimental=lambda v=1, e=1, c=1: v + e,\n text='O(v^2)',\n latex=r'$\\mathcal{O}(v^2)$'\n)\n\n# You need to provide instances as dict: {'name': '', 'size': {}, 'value': {}}\n# Size must contains all needed theoretical complexity arguments\n# Value must contain all needed algorithms arguments\n\ndef my_custom_instances(n):\n g = create_some_graph()\n for _ in range(n):\n yield {\n 'name': 'my instance name',\n 'size': {'v': len(g.nodes()), 'e': len(g.edges())}, 'c': some_order_value(),\n 'value': {\n 'graph': g,\n 'v': len(g.nodes())\n }\n }\n\ndef my_custom_algorithm(graph, v):\n # Do some stuff\n pass\n\nN = 50\n\ninstances_generator = my_custom_instances(N)\n\n# Trials determine how many times each instance will be repeated for Almetro to pick the min time.\nmetro = almetro\\\n .new()\\\n .with_execution(trials=5)\\\n .with_instances(instances=N, provider=generator(instances_generator)\\\n .metro(algorithm=my_custom_algorithm, complexity=my_custom_complexity)\n\nmetro.chart().show()\n```\n\n![Chart Almetro v^2](https://github.com/arnour/almetro/blob/master/images/chart_v_quadratic_graph.png?raw=true)\n\n\n```python\nmetro.table().show()\n```\n\n![Table Almetro v^2](https://github.com/arnour/almetro/blob/master/images/table_v_quadratic_graph.png?raw=true)\n\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/arnour/almetro", "keywords": "", "license": "Apache License", "maintainer": "", "maintainer_email": "", "name": "almetro", "package_url": "https://pypi.org/project/almetro/", "platform": "", "project_url": "https://pypi.org/project/almetro/", "project_urls": { "Homepage": "https://github.com/arnour/almetro" }, "release_url": "https://pypi.org/project/almetro/1.0.7/", "requires_dist": [ "matplotlib (==3.0.3)", "tabulate (==0.8.3)", "flake8 (>=3.7.7) ; extra == 'test'", "flake8-print (>=3.1.0) ; extra == 'test'", "coverage (>=4.5.3) ; extra == 'test'", "PyHamcrest (>=1.9.0) ; extra == 'test'" ], "requires_python": "", "summary": "A python library to measure algorithms execution time and compare with its theoretical complexity", "version": "1.0.7" }, "last_serial": 5324912, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "1f6ec33905619ea5efbde3f6cf2de345", "sha256": "bcd58abd1fae00a999339b23113fc7ed96de90e7abba1da9232cba0e0bcde487" }, "downloads": -1, "filename": "almetro-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1f6ec33905619ea5efbde3f6cf2de345", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10666, "upload_time": "2019-05-26T15:31:53", "url": "https://files.pythonhosted.org/packages/db/d0/034cba025c0ff7cfac9275d24e1cc83d7aebf179c76c35225366ad02eb96/almetro-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "05c06ebee3ceda77b69792219e5e8750", "sha256": "d1ed2d63df73e5f2febdb300b6c0063d927e6a9becafe60f498c486945a553ff" }, "downloads": -1, "filename": "almetro-1.0.0.tar.gz", "has_sig": false, "md5_digest": "05c06ebee3ceda77b69792219e5e8750", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9565, "upload_time": "2019-05-26T15:31:55", "url": "https://files.pythonhosted.org/packages/bf/ce/e66145adaec79ebb0328fd0f31d72a9c6ee907d23aeb0df342aa8f8997da/almetro-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "a1f02de604b9abb178f54244843a5e30", "sha256": "0ba07c9c7f1da53c19db9889786701091e1c0c35c73ce5e299e06cb0293f188f" }, "downloads": -1, "filename": "almetro-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a1f02de604b9abb178f54244843a5e30", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10664, "upload_time": "2019-05-26T15:35:14", "url": "https://files.pythonhosted.org/packages/0d/02/a493ca2d2d25fb348665aea2e6d2884a26a35159f5fdba69bb2e96b9cea4/almetro-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "14e768aa2a2e4998304454a278624390", "sha256": "2e9ba044d07630046ba0bf9d1afc3a0cb30e1f50453ea800be35b450bbca52fb" }, "downloads": -1, "filename": "almetro-1.0.1.tar.gz", "has_sig": false, "md5_digest": "14e768aa2a2e4998304454a278624390", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9565, "upload_time": "2019-05-26T15:35:16", "url": "https://files.pythonhosted.org/packages/f2/fc/24bf10427e033b3aebf5de6cff9c0b37f1275225562278f15568dec2b0f3/almetro-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "3a27d8d867b60865623bf9d284c17c32", "sha256": "00631ed1163899248d266d3913da12165b86de0171c767e45d0ad1857721ef80" }, "downloads": -1, "filename": "almetro-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "3a27d8d867b60865623bf9d284c17c32", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10670, "upload_time": "2019-05-26T15:36:35", "url": "https://files.pythonhosted.org/packages/50/e5/7a83d76ef674c8767046273086b4142e6ec3894079149af762bc8382f6d6/almetro-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1799daa2792e666ce9ea04d73bdd5b64", "sha256": "35bb182e42c1c417cddc3270695d72c3628716a59aea77a1e4997d6bb973dec7" }, "downloads": -1, "filename": "almetro-1.0.2.tar.gz", "has_sig": false, "md5_digest": "1799daa2792e666ce9ea04d73bdd5b64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9570, "upload_time": "2019-05-26T15:36:37", "url": "https://files.pythonhosted.org/packages/4c/e5/79aaf122763d5f97ca16da37da51b52f623c26215f4900b20bbea18fb641/almetro-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "52c4959f6e87601dd3fab32c81d079ff", "sha256": "1064dbf3e3bc25d5647e6c32694f1df156e6f09b2959d706fbe132c6f92d0b5a" }, "downloads": -1, "filename": "almetro-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "52c4959f6e87601dd3fab32c81d079ff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10670, "upload_time": "2019-05-26T15:38:16", "url": "https://files.pythonhosted.org/packages/54/9f/fe336d544b39e0eb0cedcc89d313500e7ea3816643620e9ac588bd6aa883/almetro-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7cf007f19c81882750b7b107b051d6d2", "sha256": "6f38eac0eeacb66d5d59035de1519e84ec6504c418f19fefd3450d3094b165fd" }, "downloads": -1, "filename": "almetro-1.0.3.tar.gz", "has_sig": false, "md5_digest": "7cf007f19c81882750b7b107b051d6d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9567, "upload_time": "2019-05-26T15:38:18", "url": "https://files.pythonhosted.org/packages/58/a6/b434a9e0bc407e4dbcdee365b4b13ba71da59bbe6ee8ef0c26a696a2fa0f/almetro-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "3dcc92b32a3d9cde8ffb669af04f80ca", "sha256": "9ff36534e6361f2683c719b89c43dca8d68629d78d2de80ccb95ebfef8c9445b" }, "downloads": -1, "filename": "almetro-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "3dcc92b32a3d9cde8ffb669af04f80ca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10709, "upload_time": "2019-05-26T15:43:08", "url": "https://files.pythonhosted.org/packages/14/96/6099bb59c63f494e49ccdb2ca174e2f14f839685f77974463e8dc94c2845/almetro-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "394e7775d8291f672986defa92f54897", "sha256": "86e7850dea1e8f4d2d55cfb702ce40477e41ab45f75614143682939ce74bbb23" }, "downloads": -1, "filename": "almetro-1.0.4.tar.gz", "has_sig": false, "md5_digest": "394e7775d8291f672986defa92f54897", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9628, "upload_time": "2019-05-26T15:43:09", "url": "https://files.pythonhosted.org/packages/1c/57/7d9841645f1c6d64df4d1e8f423a1f5f76d18880a07ae0016b50608c2702/almetro-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "183763ae7fea26064a343f6525a035e2", "sha256": "e4d094df4f43589371a8cee41fa459379bcc49cb48f70051ab6a64a8fe408132" }, "downloads": -1, "filename": "almetro-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "183763ae7fea26064a343f6525a035e2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11030, "upload_time": "2019-05-26T22:23:12", "url": "https://files.pythonhosted.org/packages/3a/b0/092c1b972efadf95a83890a6d81df1f21dfef8de413edae52a38382bfef1/almetro-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d5cd84fe954069b62d2f1f176cc3262", "sha256": "b794b38477e8bdae2c283b6f5c632716d4c4e9dd270323a312ec6cb478e9212d" }, "downloads": -1, "filename": "almetro-1.0.5.tar.gz", "has_sig": false, "md5_digest": "9d5cd84fe954069b62d2f1f176cc3262", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9934, "upload_time": "2019-05-26T22:23:14", "url": "https://files.pythonhosted.org/packages/60/64/4168bdae5d64ed625942f5736704cb6cb764573bfe80f1f108d7752896b1/almetro-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "3145063c80f1c5f7de5ca315c8ed5407", "sha256": "3765942ada0d5d38037b0743b83998ab741b535fddf1d464a45a4fd8f2f439ce" }, "downloads": -1, "filename": "almetro-1.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "3145063c80f1c5f7de5ca315c8ed5407", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11105, "upload_time": "2019-05-26T23:56:59", "url": "https://files.pythonhosted.org/packages/9f/4b/e6a8445f277d9a7161aee9fcbbf506d2f17a5c001de83c0a9d3111203017/almetro-1.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "28c628b8ea6c85f367f5ab01e218d734", "sha256": "195de32368165738b5a2c89db2590f7c157d0834fe964107b8a1e7fe8090686c" }, "downloads": -1, "filename": "almetro-1.0.6.tar.gz", "has_sig": false, "md5_digest": "28c628b8ea6c85f367f5ab01e218d734", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9982, "upload_time": "2019-05-26T23:57:01", "url": "https://files.pythonhosted.org/packages/9f/ab/0002036b6f9a6925af8b3510d5bd85c1afdabd8745486a60a1e4b2eadb37/almetro-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "c750721b06e6be910848db43b9135056", "sha256": "465e4fc324870c58cdd7ee9b037b0172b194334e1fd70b32e75101eb55b4944a" }, "downloads": -1, "filename": "almetro-1.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "c750721b06e6be910848db43b9135056", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11845, "upload_time": "2019-05-28T04:42:09", "url": "https://files.pythonhosted.org/packages/f4/2a/ecf2c10de34a628b232a80397fa23da45ee72c496bf15a7acbd973cfe29c/almetro-1.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d1616dcc53a1049ac882c6b6f0f4bcdc", "sha256": "fc36e46bf75d97c4a120ee4645e95f7c088ebefd6a279ce6c7cd9fe09ed1155a" }, "downloads": -1, "filename": "almetro-1.0.7.tar.gz", "has_sig": false, "md5_digest": "d1616dcc53a1049ac882c6b6f0f4bcdc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11344, "upload_time": "2019-05-28T04:42:10", "url": "https://files.pythonhosted.org/packages/6e/24/136c3e64edc3c1d5c3a162a5aae7dfa478d6e1d262fed5cefc1f40f4e6f7/almetro-1.0.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c750721b06e6be910848db43b9135056", "sha256": "465e4fc324870c58cdd7ee9b037b0172b194334e1fd70b32e75101eb55b4944a" }, "downloads": -1, "filename": "almetro-1.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "c750721b06e6be910848db43b9135056", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11845, "upload_time": "2019-05-28T04:42:09", "url": "https://files.pythonhosted.org/packages/f4/2a/ecf2c10de34a628b232a80397fa23da45ee72c496bf15a7acbd973cfe29c/almetro-1.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d1616dcc53a1049ac882c6b6f0f4bcdc", "sha256": "fc36e46bf75d97c4a120ee4645e95f7c088ebefd6a279ce6c7cd9fe09ed1155a" }, "downloads": -1, "filename": "almetro-1.0.7.tar.gz", "has_sig": false, "md5_digest": "d1616dcc53a1049ac882c6b6f0f4bcdc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11344, "upload_time": "2019-05-28T04:42:10", "url": "https://files.pythonhosted.org/packages/6e/24/136c3e64edc3c1d5c3a162a5aae7dfa478d6e1d262fed5cefc1f40f4e6f7/almetro-1.0.7.tar.gz" } ] }