Changelog
=========

Version 1.4.0 (July 6, 2025)

* Add success_threshold parameter (Thanks @sideshowbandana)

Version 1.3.0 (March 5, 2025)

* Dropped support for Python 3.8
* Fix 'DeprecationWarning: datetime.datetime.utcnow()'

Version 1.2.0 (February 14, 2024)

* Fixed type hints
* Improved building and testing
* Dropped support for Python 3.7

Version 1.1.0 (January 09, 2024)

* Added calling() method to CircuitBreaker, returning a context manager (Thanks @martijnthe)

Version 1.0.3 (December 22, 2023)

* Added py.typed file (Thanks @martijnthe)

Version 1.0.2 (June 9, 2023)

* Update redis (Thanks @rodrigobraga)

Version 1.0.1 (August 12, 2022)

* Fix state parameter type hint (Thanks @Kludex)

Version 1.0.0 (August 11, 2022)

* Highlight Python code in README (Thanks @Kludex)
* Add linter & format setup (Thanks @Kludex)
* Drop Python 3.6 support (Thanks @Kludex)
* Fully type annotate pybreaker.py (Thanks @Kludex)

Version 0.8.0 (December 14, 2021)

* Add support to redis cluster storage, without ttransaction on opened... (Thanks @felipeagger)
* Replace Travis by GitHub Actions workflow

Version 0.7.0 (March 3, 2021)

* Option for throwing original error on circuit trip (Thanks @Cruuncher)

Version 0.6.0 (October 22, 2019)

* Use generator.throw to fix generator error raising (Thanks @phillbaker)

Version 0.5.0 (March 19, 2019)

* Add support for Python 3.7, where Stopiteration behaviour changes due to PEP 479 (Thanks @jshiell)
* Allow excluded exceptions to be specified as callables (Thanks @jshiell)

Version 0.4.5 (October 26, 2018)

* Fix bug with timeout window growing with additional breakers defined (Thanks @shawndrape)

Version 0.4.4 (May 21, 2018)

* Fix PyPI release

Version 0.4.3 (May 21, 2018)

* Re-initialize state on Redis if missing (Thanks @scascketta)
* Add trigger exception into the CircuitBreakerError (Thanks @tczhaodachuan)

Version 0.4.2 (November 9, 2017)

* Add optional name to CircuitBreaker (Thanks @chrisvaughn)

Version 0.4.1 (October 2, 2017)

* Get initial CircuitBreaker state from state_storage (Thanks @alukach)

Version 0.4.0 (June 23, 2017)

* Added optional support for asynchronous Tornado calls (Thanks @jeffrand)
* Fixed typo (issue #19) (Thanks @jeffrand)


Version 0.3.3 (June 2, 2017)

* Fixed bug that caused pybreaker to break (!) if redis package was not
  present (Thanks @phillbaker)


Version 0.3.2 (June 1, 2017)

* Added support for optional Redis backing (Thanks @phillbaker)
* Fixed: Should listener.failure be called when the circuit is closed
  and a call fails? (Thanks @sj175 for the report)
* Fixed: Wrapped function is called twice during successful call in open
  state (Thanks @jstordeur)


Version 0.3.1 (January 25, 2017)

* Added support for optional Redis backing


Version 0.3.0 (September 1, 2016)

* Fixed generator issue. (Thanks @dpdornseifer)


Version 0.2.3 (July 25, 2014)

* Added support to generator functions. (Thanks @mauriciosl)


Version 0.2.1 (October 23, 2010)

* Fixed a few concurrency bugs.


Version 0.2 (October 20, 2010)

* Several API changes, breaks backwards compatibility.
* New CircuitBreakerListener class that allows the user to listen to events in
  a circuit breaker without the need to subclass CircuitBreaker.
* Decorator now uses 'functools.wraps' to avoid loss of information on decorated
  functions.


Version 0.1.1 (October 17, 2010)

* Instance of CircuitBreaker can now be used as a decorator.
* Python 2.6+ is now required in order to make the same code base compatible
  with Python 3+.


Version 0.1 (October 16, 2010)

* First public release.
