CHANGES
=======

4.4.0
-----

* Document wait\_random\_exponential strategy
* Rename wait\_full\_jitter to wait\_random\_exponential

4.3.0
-----

* Add retry\_unless\_exception\_type
* Add missing ')' to README.rst
* Do not duplicate statistics fields in instance
* Do not start trial\_start\_time as an attribute
* Add an example on how to combine stop conditions

4.2.0
-----

* Put a link to the GitHub issue of retrying about the fork
* feat: added wait\_full\_jitter
* Add new event based sleep and stop
* Add \`wraps' method directly on Retrying object

4.1.0
-----

* wait: handle OverflowError
* doc: raise Exception in example so they actually work
* Remove weird example with retry\_if\_io\_error
* Bump version for new feature
* Add Python 3.6 support
* Add retry\_if\_not\_result class to compliment the existing retry\_if\_result class

4.0.1
-----

* Fix six minimum version
* doc: rewrite the before explanation

4.0.0
-----

* Add \_\_call\_\_ on BaseRetrying class
* Document before and after keywords
* Remove useless MANIFEST
* Remove non-working PyPI download image
* Bump hacking to 0.13
* Use Python 3 for pep8 tox target
* Remove deprecated wait\_jitter

3.7.1
-----

* Fix pep8 errors

3.7.0
-----

* Correctly set the exception if we TryAgain for ever

3.6.0
-----

* Retry on coroutines
* Run flake8 only with latest python
* Deduplicate retry decorator logic
* Extract controller IOs in subclass

3.5.0
-----

* Allow to combine stop conditions
* Add SayThanks
* retry: implement bitwise operators on retry strategies
* retry: add retry\_all

3.4.0
-----

* Deprecate wait\_jitter for wait\_random
* Align tox and travis settings
* Fix README typo
* Bump hacking to 0.12
* Fix README.rst wrong description
* This is using floating point seconds (not milliseconds)
* Some small docstring updates
* Use py3.x compat print in README.rst
* Fix typo in retry\_if\_exception example

3.3.0
-----

* Implement '+' operator for wait strategies

3.2.1
-----

* Initialize statistics at runtime

3.2.0
-----

* Rename \`\_retrying\` attribute to \`retry\` and document it
* Store retrying object as an attribute of retried function
* Make sure statistics are thread locals
* Remove NOTICE file

3.1.1
-----

* Fix reraise when no exception

3.1.0
-----

* Add support for reraise
* doc: fix text legend for retry\_if\_result
* Add a useful \_\_repr\_\_

3.0.0
-----

* wait: fix wait\_random to return floating point numbers
* Remove milliseconds usage in modules
* Stop using millisecond values for callbacks
* Add pbr generated files to ignore list

2.0.0
-----

* Use seconds everywhere instead of miliseconds
* Fix retry\_if\_exception\_type usage in doc
* Add and use a nice ordinal func when logging before/after
* Add before/after strategies
* Add wait\_chain()
* Add basic stats
* Fix comment stating rejection
* Rename reject to retry
* Enable pep8 checks on Travis
* Remove Python 2.6 support
* Fix pep8 errors
* Move to a folder structure
* Remove dead versions of py 3.x
* Allow to raise TryAgain to force a retry at any time
* Use monotonic time
* Fix doc with retry\_if\_exception\_type
* Add retry\_if\_exception(predicate)
* Rename retry\_if\_exceptino to retry\_if\_exception\_type
* Remove dead code
* Use futures
* Add docstring on wait\_jitter
* Allow to specify exp\_base
* Simplify wait min/max computing
* test: add test for RetryError.\_\_str\_\_
* Always wrap exceptions
* Add project name in doc
* Add .tox to .gitignore
* Add doc
* Remove retry select strategy, use a functional composition approach
* test: replace assertTrue by assertGreaterEqual
* Make stop have a default value
* Make README doc8 compliant
* Allow to specify sleep function
* Implement wait strategy combination to replace jitter argument
* Fix typo in README
* Simplify wait strategy picking by forcing a func in kwargs
* Fix stop examples in README
* Simplify stop strategy picking by always requiring a function
* Add some copyrights
* Depends on nose in tox
* Move some methods to staticmethods
* Fix tox command
* Fix pep8 errors
* Add tox.ini
* Switch to pbr
* Rename to tenacity
* Update README
* Remove AUTHORS
* Remove HISTORY.rst
* Declutter \_\_init\_\_ by using strategy selection
* Dynamically compute MAX\_WAIT
* Add Python 3.5
* updated
* Adds two additional parameters to the Retrying() constructor:
* Add a upper bound on incrementing wait
* Allow providing exception tuple for 'retry\_on\_exception' argument
* bump version up to 1.3.4-dev, align badges in README.rst with a service that still works
* Declare a few methods static
* prepare for 1.3.3 release
* update history for 1.3.3 release
* add a few more contributors
* Adding in minimum version since anything lower doesn't work
* prepare for 1.3.2 release
* remove six license boilerplate since we're not embedding it anymore
* update HISTORY.rst for 1.3.2
* adding Maxym Shalenyi to AUTHORS.rst
* fix up some some pep8 stuff
* bump version up to 1.3.2-dev
* Allow a jitter value to be passed in
* Ensure we wrap the decorated functions
* Add requirements.txt to MANFEST.in
* prepare for 1.3.0 release
* update AUTHORS.rst to add contributors
* Replaced bundled code with using six
* update AUTHORS.rst
* bump version up to 1.2.4-dev
* Ensure file handles are closed using with statement
* prepare for 1.2.3 release
* add Daniel Nephin to AUTHORS.rst
* Support custom wait and stop functions
* bump version to 1.2.3-dev, add 3.3/3.4 classifiers
* add Saul Shanabrook to AUTHORS.rst
* Add python 3.3 and 3.4 support
* prepare for 1.2.2 release
* update HISTORY.rst for 1.2.2 release
* add comments from rdooley, add comment around stop behavior
* Update AUTHORS.rst
* If possible, raise the last exception when stopping
* Test exception type on failure
* bump version up to 1.2.2-dev
* update HISTORY.rst, bump version up to 1.2.1 for release
* Fix AttributeError when explicitly specifying wait type, and add appropriate regression tests. (fixes #4)
* update HISTORY.rst for 1.2.0 release
* prepare for 1.2.0 release
* add a crude check for a custom exception message in the test suite
* remove need for specification of stop/wait type
* prepare for 1.1.0 release
* Update HISTORY.rst
* add even moar Python 3.x compatibility hacks from the six project, update license
* let's see if Python 3.2.x is happy now..
* Fix up Python 2.6 and Python 3.2 compatibility
* propagate complete tracebacks such that they show up in nested stack frames, adjust api and tests #1
* adding version and download badges
* clean up the classifiers so they appear correctly on pypi, add license metadata, prep for release
* add note about Python 2.x/3.x compatibility and patch up test suite to run under Python 3
* fixed a bug where classes not extending from the Python exception hierarchy could slip through, preparing for 1.0.1 release
* add missing files..
* typo... um... yeah..
* clean up RST for PyPI, add some better annotations to examples
* Python 3.2 compatibility fix, since we don't have sys.maxint anymore..
* sanitize setup.py one more time before release
* add a few more tests for some edge cases
* add configurable support for wrapping any raised Exception in a RetryError instead of just raising it directly, add a few more comments
* stop committing nonsense examples..
* add a bunch of examples since they're more succinct than a full api description
* adding AUTHORS.rst
* flushing out the README.rst a bit more
* default to retry on any exception, handle @retry and @retry() behavior
* update history
* add test suite, clean up packaging
* ignore packaging and pyc's
* add Travis CI support
* drop in an \_\_init\_\_.py
* adding HISTORY.rst
* clean up some TODO's and comments
* adding first stable implementation, reasonable passing test coverage
* add minimal readme
* add license and other project boilerplate
