Releases: fabfuel/circuitbreaker
2.0.0 Async Support
Async Support
With version 2.0.0 circuitbreaker
now supports async functions, as easy as:
@circuit
async def external_call():
...
A big thank you to @pauloromeira for your great contribution! πͺ π
Python2 not supported anymore
Supported Python versions now are:
- 3.11
- 3.10
- 3.9
- 3.8
- 3.7
1.4.0
Big News
The circuitbreaker
project has been classified as "Critical Project" on PyPI, meaning it belongs to the top 1% of all projects on PyPI based on the downloads over the last 6 months. We're working an important peace here π
https://pypi.org/project/circuitbreaker/
Therefore a big Thank You! to all contributors of this release!
π @AugPro @matthewhughes934 @major @pabs3 @Freaky @ozooxo @xtaje π
Change Log
Fallback Function
By default, the circuit breaker will raise a CircuitBreaker
exception when the circuit is opened. You can instead specify a function to be called when the circuit is opened. This function can be specified with the fallback_function
parameter and will be called with the same parameters as the decorated function would be.
Custom callable for handling exceptions
The logic for handling thrown exceptions as failures can now be customized by passing a callable. The callable will be passed the exception type and value, and should return True if the exception should be treated as a failure.
Monotonic clock
Using the wall clock to measure durations is vulnerable to changes in the system clock causing misbehavior - a clock accidentally set far in the future and later reset could result in the circuit breaker remaining open for a great deal longer than expected. To solve this, a monotonic clock is now used for timing open states.
Circuitbreaker default name
The circuitbreaker default names are now taken from __qualname__
if available for more precise default naming.
Fixes and tooling
- the project is now built on Github Action instead of Travis CI
- building for python 3.10
- applied smaller flake8 fixes