Observed since 21 Oct, 11:41 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
aiobreaker
Python implementation of the Circuit Breaker pattern.
aiobreaker is a Python implementation of the Circuit Breaker pattern,
described in Michael T. Nygard's book Release It!_.
Circuit breakers exist to allow one subsystem to fail without destroying the entire system. This is done by wrapping dangerous operations (typically integration points) with a component that can circumvent calls when the system is not healthy.
This project is a fork of pybreaker_ by Daniel Fernandes Martins that
replaces tornado with native asyncio, originally so I could practice
packaging and learn about that shiny new typing package.
.. _Release It!: https://pragprog.com/titles/mnee2/release-it-second-edition/
.. _pybreaker: https://github.com/danielfm/pybreaker
asyncio supportAll you need is python 3.6 or higher.
To install, simply download from pypi:
.. code:: bash
pip install aiobreaker
The first step is to create an instance of CircuitBreaker for each
integration point you want to protect against.
.. code:: python
from aiobreaker import CircuitBreaker
# Used in database integration points
db_breaker = CircuitBreaker(fail_max=5, reset_timeout=timedelta(seconds=60))
@db_breaker
async def outside_integration():
"""Hits the api"""
...
At that point, go ahead and get familiar with the documentation.
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
sphinxEnvironment{
"extras": "",
"marker": "extra == 'docs'",
"requires_python": ">=3.6",
"evaluation": "NOT_EVALUATED"
} | sphinx ; extra == 'docs' | runtime |
sphinx-rtd-themeEnvironment{
"extras": "",
"marker": "extra == 'docs'",
"requires_python": ">=3.6",
"evaluation": "NOT_EVALUATED"
} | sphinx-rtd-theme ; extra == 'docs' | runtime |
sphinx-autobuildEnvironment{
"extras": "",
"marker": "extra == 'docs'",
"requires_python": ">=3.6",
"evaluation": "NOT_EVALUATED"
} | sphinx-autobuild ; extra == 'docs' | runtime |
sphinx-autodoc-typehintsEnvironment{
"extras": "",
"marker": "extra == 'docs'",
"requires_python": ">=3.6",
"evaluation": "NOT_EVALUATED"
} | sphinx-autodoc-typehints ; extra == 'docs' | runtime |
redisEnvironment{
"extras": "",
"marker": "extra == 'redis'",
"requires_python": ">=3.6",
"evaluation": "NOT_EVALUATED"
} | redis ; extra == 'redis' | runtime |
fakeredisEnvironment{
"extras": "",
"marker": "extra == 'test'",
"requires_python": ">=3.6",
"evaluation": "NOT_EVALUATED"
} | fakeredis ; extra == 'test' | runtime |
pytestEnvironment{
"extras": "",
"marker": "extra == 'test'",
"requires_python": ">=3.6",
"evaluation": "NOT_EVALUATED"
} | pytest (>4) ; extra == 'test' | runtime |
pytest-asyncioEnvironment{
"extras": "",
"marker": "extra == 'test'",
"requires_python": ">=3.6",
"evaluation": "NOT_EVALUATED"
} | pytest-asyncio ; extra == 'test' | runtime |
mypyEnvironment{
"extras": "",
"marker": "extra == 'test'",
"requires_python": ">=3.6",
"evaluation": "NOT_EVALUATED"
} | mypy ; extra == 'test' | runtime |
pylintEnvironment{
"extras": "",
"marker": "extra == 'test'",
"requires_python": ">=3.6",
"evaluation": "NOT_EVALUATED"
} | pylint ; extra == 'test' | runtime |
safetyEnvironment{
"extras": "",
"marker": "extra == 'test'",
"requires_python": ">=3.6",
"evaluation": "NOT_EVALUATED"
} | safety ; extra == 'test' | runtime |
banditEnvironment{
"extras": "",
"marker": "extra == 'test'",
"requires_python": ">=3.6",
"evaluation": "NOT_EVALUATED"
} | bandit ; extra == 'test' | runtime |
codecovEnvironment{
"extras": "",
"marker": "extra == 'test'",
"requires_python": ">=3.6",
"evaluation": "NOT_EVALUATED"
} | codecov ; extra == 'test' | runtime |
pytest-covEnvironment{
"extras": "",
"marker": "extra == 'test'",
"requires_python": ">=3.6",
"evaluation": "NOT_EVALUATED"
} | pytest-cov ; extra == 'test' | runtime |
bdist_wheel · 20.21 KB · Python py3
sdist · 15.57 KB · Python source
Observed since 21 Oct, 11:41 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:292cabde9b16a2bb888b85ae7c80c113fed4de7239f2b0516e4bf690a8ed8076