Metadata-Version: 1.1
Name: retry
Version: 0.5.0
Summary: retry decorator
Home-page: https://github.com/invl/retry
Author: UNKNOWN
Author-email: UNKNOWN
License: Apache License 2.0
Description: 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/
        
        retry is a decorator for isolating retrying logic, with logging intergraton.
        
        
        Installation
        ------------
        
        .. code-block:: bash
        
            $ pip install retry
        
        
        API
        ---
        
        .. code:: python
        
            def retry(exceptions=Exception, tries=float('inf'), delay=0, backoff=1, logger=logging.getLogger(__name__)):
                """Return a decorator for retrying.
        
                :param exceptions: an exception or a tuple of exceptions to catch
                :param tries: the maximum number of attempts
                :param delay: how many seconds to wait between attmpts
                :param backoff: delay growth factor
                :param logger: logger.warning(fmt, error, delay) will be called on failed attempts
                """
        
        various retrying logic can be achieved by combination of arguments.
        
        
        Examples
        --------
        
        .. code:: python
        
            from retry import retry
        
            # Retry until succeed
            @retry()
            def make_trouble():
                ...
        
            # Retry on ZeroDivisionError, fail after 3 attmpts, sleep 2 seconds per
            # attmpt
            @retry(ZeroDivisionError, tries=3, delay=2)
            def make_trouble():
                ...
        
            # Retry on ValueError and TypeError, sleep 1, 2, 4, 8, etc.. seconds
            @retry((ValueError, TypeError), delay=1, backoff=2)
            def make_trouble():
                ...
        
            # If you enable logging, you can get warnings like 'ValueError, retrying in
            # 1 seconds'
            if __name__ == '__main__':
                import logging
                logging.basicConfig()
                make_trouble()
        
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
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 :: Implementation :: PyPy
