{ "info": { "author": "Dougal Matthews", "author_email": "dougal@dougalmatthews.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet", "Topic :: Utilities" ], "description": "Retrace\n=======\n\nRetrace your steps and try again.\n---------------------------------\n\n|PyPI Downloads| |PyPI Version| |Build Status|\n\nRetrace provides a configurable decorator which allows you to wrap\nPython callables and retry them on errors or other specific conditions.\n\nDocs\n----\n\nIt is simple and elegant.\n\nSee the documentation at:\n\n::\n\n http://d0ugal.github.io/retrace/\n\nQuickstart\n----------\n\nFirst, ``pip install retrace``.\n\n.. code:: python\n\n import retrace\n\n @retrace.retry\n def unstable():\n # ...\n\nBoom. Done.\n\nThis function will now be retied up to 5 times if it raises an\nexception. You can customise how often it is retried, limit the\nexceptions and add validators to further verify the return value. Check\nout the docs for all this and more.\n\n.. |PyPI Downloads| image:: https://img.shields.io/pypi/dm/retrace.svg\n :target: https://pypi.python.org/pypi/retrace\n.. |PyPI Version| image:: https://img.shields.io/pypi/v/retrace.svg\n :target: https://pypi.org/project/retrace/\n.. |Build Status| image:: https://img.shields.io/travis/d0ugal/retrace/master.svg\n :target: https://travis-ci.org/d0ugal/retrace\n\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/d0ugal/retrace", "keywords": "decorator,retry,retrying,exception,exponential,backoff", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "retrace", "package_url": "https://pypi.org/project/retrace/", "platform": "", "project_url": "https://pypi.org/project/retrace/", "project_urls": { "Homepage": "https://github.com/d0ugal/retrace" }, "release_url": "https://pypi.org/project/retrace/3.0.0/", "requires_dist": null, "requires_python": "", "summary": "Configurable elegant retrying.", "version": "3.0.0" }, "last_serial": 5385589, "releases": { "2.0.2": [ { "comment_text": "", "digests": { "md5": "95a6d4d4b5f6c9d0de0a97f57ad8c72b", "sha256": "d22a1a63060e6e267e7cf57b2517bcd6405e0b1ca72157ff41f0ce722948aeef" }, "downloads": -1, "filename": "retrace-2.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "95a6d4d4b5f6c9d0de0a97f57ad8c72b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5294, "upload_time": "2016-03-19T14:41:21", "url": "https://files.pythonhosted.org/packages/94/da/1b893555dc62a69a733d915a3d426b537225eafba43592fef5871b47994a/retrace-2.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d206e3c6c8eb67edda270e3aed932ebe", "sha256": "d2c594bb50bce681d30326251f2d5be11af07918553ec9dff4ba1924f6e94dbb" }, "downloads": -1, "filename": "retrace-2.0.2.tar.gz", "has_sig": false, "md5_digest": "d206e3c6c8eb67edda270e3aed932ebe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9779, "upload_time": "2016-03-19T14:41:25", "url": "https://files.pythonhosted.org/packages/db/44/1b5639a2885246f65b392fa5475e9419c2a67e331bbef59e394dc9f2f451/retrace-2.0.2.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "4e633726528808c6003857873ec4814d", "sha256": "336f3743fc0a277a2504676232a5cd464ae925f337fc4c7e3a727c94f80029f8" }, "downloads": -1, "filename": "retrace-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4e633726528808c6003857873ec4814d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5455, "upload_time": "2016-03-19T15:25:58", "url": "https://files.pythonhosted.org/packages/7e/f0/b5117b3341dcc6687e34f066e8d539c730693956c8526f247d8267824e1d/retrace-2.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "46fdcf36e3044cc6ab51683c614a247d", "sha256": "ff0858560c62779550489babc06f5837ccd731798979e00d614308cbf1c39a0c" }, "downloads": -1, "filename": "retrace-2.1.0.tar.gz", "has_sig": false, "md5_digest": "46fdcf36e3044cc6ab51683c614a247d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10764, "upload_time": "2016-03-19T15:26:19", "url": "https://files.pythonhosted.org/packages/2d/96/1dde6b63e0331f4e3a28aa424869964680dc9cf1cfcb2de70bfe91f06764/retrace-2.1.0.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "bc4e0547a01a8645bfb4e756108cab2b", "sha256": "eecfd4c1d6986f033d7cda5bf081284e12d4e81d2dedc96fb4efed9cdfb62bef" }, "downloads": -1, "filename": "retrace-2.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bc4e0547a01a8645bfb4e756108cab2b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5645, "upload_time": "2016-03-19T16:42:26", "url": "https://files.pythonhosted.org/packages/76/36/52048e5bfdcce0939e505fa0124bf5d359b9847ea4df007f4388538d7477/retrace-2.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2a6035c70ad1a99b9a9d795204ca6d0f", "sha256": "0b8e7fa13275cc6a34c867327b8057aaead7966d34696073c2fc29936f447b44" }, "downloads": -1, "filename": "retrace-2.1.1.tar.gz", "has_sig": false, "md5_digest": "2a6035c70ad1a99b9a9d795204ca6d0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11039, "upload_time": "2016-03-19T16:42:33", "url": "https://files.pythonhosted.org/packages/11/e2/6d1366d196159e835acf4ce06c38e2f94c4aa9cdec91d8b88a3c13da7938/retrace-2.1.1.tar.gz" } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "4b5be7ae60e52a7482ef13b035d13f65", "sha256": "a1d47ec170ee79da89518c5e75ed8a15ce8cf4b0c10e056f51569b625d335352" }, "downloads": -1, "filename": "retrace-2.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4b5be7ae60e52a7482ef13b035d13f65", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5648, "upload_time": "2016-03-19T17:28:20", "url": "https://files.pythonhosted.org/packages/d7/2e/3cc51474098a6e579f94443968d0be823cd8a87c391d3b01a305c07a331f/retrace-2.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fc3769ef8b1e457a653c02764cac72bf", "sha256": "b72c322ed5c8943db33cdb41045cecbf1b31588e633591e47e950dfc50a2478e" }, "downloads": -1, "filename": "retrace-2.1.2.tar.gz", "has_sig": false, "md5_digest": "fc3769ef8b1e457a653c02764cac72bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11070, "upload_time": "2016-03-19T17:28:36", "url": "https://files.pythonhosted.org/packages/f3/ef/bb30e8c16cb0f1c0a7115b7ec24b52a1582803b4c7385a2e715f86cd28b1/retrace-2.1.2.tar.gz" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "de5c1e30176dfec90b72a2d1ff044184", "sha256": "69391e428da6d6466a42c58ff627cdd3f9fc7e7df865397d6ff4cc3432119ab6" }, "downloads": -1, "filename": "retrace-2.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "de5c1e30176dfec90b72a2d1ff044184", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5891, "upload_time": "2016-03-19T18:39:55", "url": "https://files.pythonhosted.org/packages/b5/a4/05b51f90e55816ccc5f66015bac7f3fae03cd2a99a0a4c862c8ff5659978/retrace-2.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "997a0bfd2f162d13f06b16d688078912", "sha256": "6d876d5bfb8a0263be1989ce7e918ddf4c51d4f8ae2fac90af3410725f7ad8d5" }, "downloads": -1, "filename": "retrace-2.2.0.tar.gz", "has_sig": false, "md5_digest": "997a0bfd2f162d13f06b16d688078912", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11427, "upload_time": "2016-03-19T18:40:08", "url": "https://files.pythonhosted.org/packages/89/d3/9a9b64c9225ae30081057468386331118fcfe095049a3b5d2ea11409c873/retrace-2.2.0.tar.gz" } ], "2.2.1": [ { "comment_text": "", "digests": { "md5": "bbfac764311d3b75c926d6ae2ec478ec", "sha256": "03fca8fa6ae0e76fae028b88bb2af15cac5f250e3234969afa66467da9809f83" }, "downloads": -1, "filename": "retrace-2.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bbfac764311d3b75c926d6ae2ec478ec", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5821, "upload_time": "2016-05-20T12:02:56", "url": "https://files.pythonhosted.org/packages/e0/95/c64b6776a8754e9192cf2d0a2de33e8650109c4ced2364c908a8cac30aa0/retrace-2.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cfdb8dfd2466df34f7a75b8ce3c1490c", "sha256": "67b6de15a1ae65167b10857b557a6af05649a25bfa5370707b117643723c8f1f" }, "downloads": -1, "filename": "retrace-2.2.1.tar.gz", "has_sig": false, "md5_digest": "cfdb8dfd2466df34f7a75b8ce3c1490c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11442, "upload_time": "2016-05-20T12:03:11", "url": "https://files.pythonhosted.org/packages/7b/6b/6a529c62ebd4f19774e02ff546862a7a9f1b5c0cf60dafdf1f4dbe1cab64/retrace-2.2.1.tar.gz" } ], "2.2.2": [ { "comment_text": "", "digests": { "md5": "abd1614862f8f42da1dbe037a1fb4048", "sha256": "6c7a3d890f4413b2ae2f4ed3bf660c52b9217b5ff20308e8e424e9a12d4bda69" }, "downloads": -1, "filename": "retrace-2.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "abd1614862f8f42da1dbe037a1fb4048", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5821, "upload_time": "2016-06-05T12:01:32", "url": "https://files.pythonhosted.org/packages/1a/f9/bd8f51a5f3f7f80b9709cf4e72901fbc30fa4b48d867f75ba97505757635/retrace-2.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "74eb0083ccbbb202d23577729afea5c6", "sha256": "968a3170334109ad2a0f684116fe741c6e6595167e43f4eab327e7532af45220" }, "downloads": -1, "filename": "retrace-2.2.2.tar.gz", "has_sig": false, "md5_digest": "74eb0083ccbbb202d23577729afea5c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11428, "upload_time": "2016-06-05T12:01:37", "url": "https://files.pythonhosted.org/packages/a2/08/123f880750b9e1b728c2e58364e8fb067c6cce4174d08e8dca12c96408c4/retrace-2.2.2.tar.gz" } ], "2.2.3": [ { "comment_text": "", "digests": { "md5": "923e5e0ff86ee8e8e42d791a33d6a973", "sha256": "df8171786f972ed0b9da263b23a152e2380939e56c7009aa7bd19fe7b755c9d3" }, "downloads": -1, "filename": "retrace-2.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "923e5e0ff86ee8e8e42d791a33d6a973", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5824, "upload_time": "2016-09-05T15:50:56", "url": "https://files.pythonhosted.org/packages/16/48/b439468d6769eaeb10cc8d4998c2a8b3ebd879651c98d27edb6cb7e6ebce/retrace-2.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae165ea2f5110739935d7220830b0f4f", "sha256": "15c924df131e118488fd42e29c9a5fa3cc869e41d36aa8f8dad55e7b99c10aba" }, "downloads": -1, "filename": "retrace-2.2.3.tar.gz", "has_sig": false, "md5_digest": "ae165ea2f5110739935d7220830b0f4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11454, "upload_time": "2016-09-05T15:50:59", "url": "https://files.pythonhosted.org/packages/32/0c/e5a11159e5a888348951e2e49b4ffb7cb3eee94839ccb9bc61141ce0e00c/retrace-2.2.3.tar.gz" } ], "2.2.4": [ { "comment_text": "", "digests": { "md5": "1145f3fa5073ccc8a19463655785fe0e", "sha256": "97b03d4bb971daa4f753f977c7ec81198617ab29626b3a321e1aa8c4a6eedd18" }, "downloads": -1, "filename": "retrace-2.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1145f3fa5073ccc8a19463655785fe0e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5858, "upload_time": "2016-09-12T21:53:26", "url": "https://files.pythonhosted.org/packages/eb/1d/132876e7276730f83e35c1f3f55819054953034bda946ad9e443bfa8cb52/retrace-2.2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0abc170ab2a2d703f18ef9e6cf38bf59", "sha256": "f5c5f388f8fed86fd3df1c77e440eb4d4f213832b0e783e797cf8b427bac43e3" }, "downloads": -1, "filename": "retrace-2.2.4.tar.gz", "has_sig": false, "md5_digest": "0abc170ab2a2d703f18ef9e6cf38bf59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11805, "upload_time": "2016-09-12T21:53:28", "url": "https://files.pythonhosted.org/packages/fb/63/54c48c8a898256f129917cf8e5df6eebda1c49817f44b4890961f6d67814/retrace-2.2.4.tar.gz" } ], "2.2.5": [ { "comment_text": "", "digests": { "md5": "db55a46b45f305ba8ebefa100c8e2386", "sha256": "5c3dee3d4ab8e0057ec1b14c06af8d79b9c55859ff76d44003bc839dea683caf" }, "downloads": -1, "filename": "retrace-2.2.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "db55a46b45f305ba8ebefa100c8e2386", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5855, "upload_time": "2016-09-13T08:50:47", "url": "https://files.pythonhosted.org/packages/f2/38/5e06cca15852f012598eb16d51a3202a6c741a6d0fa75dd776280cd9bca6/retrace-2.2.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bb708e17658d02165cd886ca689e13ea", "sha256": "a30c9ddf1d17d38a38b01d0d242c7ff0311f26675201de19b1dc1a7b1ec2ce14" }, "downloads": -1, "filename": "retrace-2.2.5.tar.gz", "has_sig": false, "md5_digest": "bb708e17658d02165cd886ca689e13ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11812, "upload_time": "2016-09-13T08:50:49", "url": "https://files.pythonhosted.org/packages/ad/0a/b2bd57afb1b213c81138fd4479cae7eefff8b35776752f19f701a0c23fea/retrace-2.2.5.tar.gz" } ], "2.2.6": [ { "comment_text": "", "digests": { "md5": "e2df975fd9448142b9618fd71dbd61d3", "sha256": "14a07e849ef8b8322f1f62411e8ef076716372d01bd667d7d1c238d1fbaee6dc" }, "downloads": -1, "filename": "retrace-2.2.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e2df975fd9448142b9618fd71dbd61d3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5854, "upload_time": "2016-10-06T10:54:11", "url": "https://files.pythonhosted.org/packages/08/c7/0276246ca1ea5779204606faab4adf5cb8b12c5e21676ad99e603a33bd60/retrace-2.2.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1038ea1076ff9db2371453716401233e", "sha256": "ce8ec31f773b957a30c0da9437cd790496afc49e0a186d984de71d2d0f57c615" }, "downloads": -1, "filename": "retrace-2.2.6.tar.gz", "has_sig": false, "md5_digest": "1038ea1076ff9db2371453716401233e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11817, "upload_time": "2016-10-06T10:54:13", "url": "https://files.pythonhosted.org/packages/66/1c/1817e50e66069852dc50f98b9bccb5b6ce5e1e2770d8124df441ecc9795a/retrace-2.2.6.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "9ee9cca2b1dd79991d54604043261589", "sha256": "472eee78292ff8c68c1243908d6cd392fa1af30109e6cf2f4510490990dc8983" }, "downloads": -1, "filename": "retrace-3.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9ee9cca2b1dd79991d54604043261589", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5850, "upload_time": "2019-06-11T09:06:06", "url": "https://files.pythonhosted.org/packages/3d/0f/11f39d7643693a51b57f038d98d318f763f26c1c653665ad389fd468ed27/retrace-3.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "21215633067d35aa024690c89981876b", "sha256": "8774db5399ab056bb473052f7393449ca6e43ac610f9f3180fb88050ff2fc06b" }, "downloads": -1, "filename": "retrace-3.0.0.tar.gz", "has_sig": false, "md5_digest": "21215633067d35aa024690c89981876b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11365, "upload_time": "2019-06-11T09:06:08", "url": "https://files.pythonhosted.org/packages/ce/82/93386fa728885e74fd620438c33deaeae363173ed4006fdd0cf0d5506872/retrace-3.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9ee9cca2b1dd79991d54604043261589", "sha256": "472eee78292ff8c68c1243908d6cd392fa1af30109e6cf2f4510490990dc8983" }, "downloads": -1, "filename": "retrace-3.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9ee9cca2b1dd79991d54604043261589", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5850, "upload_time": "2019-06-11T09:06:06", "url": "https://files.pythonhosted.org/packages/3d/0f/11f39d7643693a51b57f038d98d318f763f26c1c653665ad389fd468ed27/retrace-3.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "21215633067d35aa024690c89981876b", "sha256": "8774db5399ab056bb473052f7393449ca6e43ac610f9f3180fb88050ff2fc06b" }, "downloads": -1, "filename": "retrace-3.0.0.tar.gz", "has_sig": false, "md5_digest": "21215633067d35aa024690c89981876b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11365, "upload_time": "2019-06-11T09:06:08", "url": "https://files.pythonhosted.org/packages/ce/82/93386fa728885e74fd620438c33deaeae363173ed4006fdd0cf0d5506872/retrace-3.0.0.tar.gz" } ] }