aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/retry/py3/.dist-info
diff options
context:
space:
mode:
authoruzhas <uzhas@ydb.tech>2024-06-19 20:06:32 +0300
committeruzhas <uzhas@ydb.tech>2024-06-19 20:16:54 +0300
commit93108b981df25d1adbac948754f5955075eedcc8 (patch)
treebe8163ba74d6ce0f360424d777702174e354db3c /contrib/python/retry/py3/.dist-info
parent174edaf3b2e14c1164dcbe616906a6b8f62e96ae (diff)
downloadydb-93108b981df25d1adbac948754f5955075eedcc8.tar.gz
add retry py lib
e9b0291ce8188afa295b944f29ce6efbb38bcd92
Diffstat (limited to 'contrib/python/retry/py3/.dist-info')
-rw-r--r--contrib/python/retry/py3/.dist-info/METADATA184
-rw-r--r--contrib/python/retry/py3/.dist-info/top_level.txt1
2 files changed, 185 insertions, 0 deletions
diff --git a/contrib/python/retry/py3/.dist-info/METADATA b/contrib/python/retry/py3/.dist-info/METADATA
new file mode 100644
index 0000000000..c5986d2fea
--- /dev/null
+++ b/contrib/python/retry/py3/.dist-info/METADATA
@@ -0,0 +1,184 @@
+Metadata-Version: 2.0
+Name: retry
+Version: 0.9.2
+Summary: Easy to use retry decorator.
+Home-page: https://github.com/invl/retry
+Author: invl
+Author-email: invlpg@gmail.com
+License: Apache License 2.0
+Platform: UNKNOWN
+Classifier: Development Status :: 4 - Beta
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: Apache Software License
+Classifier: Natural Language :: English
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: Implementation :: PyPy
+Classifier: Topic :: Software Development
+Requires-Dist: decorator (>=3.4.2)
+Requires-Dist: py (<2.0.0,>=1.4.26)
+
+retry
+=====
+
+.. image:: https://pypip.in/d/retry/badge.png
+ :target: https://pypi.python.org/pypi/retry/
+
+.. image:: https://pypip.in/v/retry/badge.png
+ :target: https://pypi.python.org/pypi/retry/
+
+.. image:: https://pypip.in/license/retry/badge.png
+ :target: https://pypi.python.org/pypi/retry/
+
+
+Easy to use retry decorator.
+
+
+Features
+--------
+
+- No external dependency (stdlib only).
+- (Optionally) Preserve function signatures (`pip install decorator`).
+- Original traceback, easy to debug.
+
+
+Installation
+------------
+
+.. code-block:: bash
+
+ $ pip install retry
+
+
+API
+---
+
+retry decorator
+^^^^^^^^^^^^^^^
+
+.. code:: python
+
+ def retry(exceptions=Exception, tries=-1, delay=0, max_delay=None, backoff=1, jitter=0, logger=logging_logger):
+ """Return a retry decorator.
+
+ :param exceptions: an exception or a tuple of exceptions to catch. default: Exception.
+ :param tries: the maximum number of attempts. default: -1 (infinite).
+ :param delay: initial delay between attempts. default: 0.
+ :param max_delay: the maximum value of delay. default: None (no limit).
+ :param backoff: multiplier applied to delay between attempts. default: 1 (no backoff).
+ :param jitter: extra seconds added to delay between attempts. default: 0.
+ fixed if a number, random if a range tuple (min, max)
+ :param logger: logger.warning(fmt, error, delay) will be called on failed attempts.
+ default: retry.logging_logger. if None, logging is disabled.
+ """
+
+Various retrying logic can be achieved by combination of arguments.
+
+
+Examples
+""""""""
+
+.. code:: python
+
+ from retry import retry
+
+.. code:: python
+
+ @retry()
+ def make_trouble():
+ '''Retry until succeed'''
+
+.. code:: python
+
+ @retry(ZeroDivisionError, tries=3, delay=2)
+ def make_trouble():
+ '''Retry on ZeroDivisionError, raise error after 3 attempts, sleep 2 seconds between attempts.'''
+
+.. code:: python
+
+ @retry((ValueError, TypeError), delay=1, backoff=2)
+ def make_trouble():
+ '''Retry on ValueError or TypeError, sleep 1, 2, 4, 8, ... seconds between attempts.'''
+
+.. code:: python
+
+ @retry((ValueError, TypeError), delay=1, backoff=2, max_delay=4)
+ def make_trouble():
+ '''Retry on ValueError or TypeError, sleep 1, 2, 4, 4, ... seconds between attempts.'''
+
+.. code:: python
+
+ @retry(ValueError, delay=1, jitter=1)
+ def make_trouble():
+ '''Retry on ValueError, sleep 1, 2, 3, 4, ... seconds between attempts.'''
+
+.. code:: python
+
+ # If you enable logging, you can get warnings like 'ValueError, retrying in
+ # 1 seconds'
+ if __name__ == '__main__':
+ import logging
+ logging.basicConfig()
+ make_trouble()
+
+retry_call
+^^^^^^^^^^
+
+.. code:: python
+
+ def retry_call(f, fargs=None, fkwargs=None, exceptions=Exception, tries=-1, delay=0, max_delay=None, backoff=1,
+ jitter=0,
+ logger=logging_logger):
+ """
+ Calls a function and re-executes it if it failed.
+
+ :param f: the function to execute.
+ :param fargs: the positional arguments of the function to execute.
+ :param fkwargs: the named arguments of the function to execute.
+ :param exceptions: an exception or a tuple of exceptions to catch. default: Exception.
+ :param tries: the maximum number of attempts. default: -1 (infinite).
+ :param delay: initial delay between attempts. default: 0.
+ :param max_delay: the maximum value of delay. default: None (no limit).
+ :param backoff: multiplier applied to delay between attempts. default: 1 (no backoff).
+ :param jitter: extra seconds added to delay between attempts. default: 0.
+ fixed if a number, random if a range tuple (min, max)
+ :param logger: logger.warning(fmt, error, delay) will be called on failed attempts.
+ default: retry.logging_logger. if None, logging is disabled.
+ :returns: the result of the f function.
+ """
+
+This is very similar to the decorator, except that it takes a function and its arguments as parameters. The use case behind it is to be able to dynamically adjust the retry arguments.
+
+.. code:: python
+
+ import requests
+
+ from retry.api import retry_call
+
+
+ def make_trouble(service, info=None):
+ if not info:
+ info = ''
+ r = requests.get(service + info)
+ return r.text
+
+
+ def what_is_my_ip(approach=None):
+ if approach == "optimistic":
+ tries = 1
+ elif approach == "conservative":
+ tries = 3
+ else:
+ # skeptical
+ tries = -1
+ result = retry_call(make_trouble, fargs=["http://ipinfo.io/"], fkwargs={"info": "ip"}, tries=tries)
+ print(result)
+
+ what_is_my_ip("conservative")
+
+
+
diff --git a/contrib/python/retry/py3/.dist-info/top_level.txt b/contrib/python/retry/py3/.dist-info/top_level.txt
new file mode 100644
index 0000000000..77428f7b73
--- /dev/null
+++ b/contrib/python/retry/py3/.dist-info/top_level.txt
@@ -0,0 +1 @@
+retry