callback log_failed_attempt
added
This commit is contained in:
parent
d29ebeb7d6
commit
bc212ef002
@ -8,6 +8,10 @@ Stuff I frequently use in various unrelated projects that deal with web requests
|
||||
|
||||
Makes it more convenient to run awaitable objects in concurrent batches.
|
||||
|
||||
### log_failed_attempt
|
||||
|
||||
Prototypical `callback` argument for the `attempt` decorator.
|
||||
|
||||
## Decorators
|
||||
|
||||
### @in_async_session
|
||||
|
@ -1,6 +1,6 @@
|
||||
[metadata]
|
||||
name = webutils-df
|
||||
version = 0.1.1
|
||||
version = 0.1.2
|
||||
author = Daniil F.
|
||||
author_email = mail@placeholder123.to
|
||||
description = Miscellaneous web utilities
|
||||
|
@ -1,5 +1,6 @@
|
||||
from .util import (
|
||||
in_async_session,
|
||||
attempt,
|
||||
log_failed_attempt,
|
||||
gather_in_batches
|
||||
)
|
||||
|
@ -147,6 +147,12 @@ def attempt(_func: AsyncFunction = None, *,
|
||||
return decorator if _func is None else decorator(_func)
|
||||
|
||||
|
||||
async def log_failed_attempt(f: Callable, e: Exception, n: int, delay: float, args: tuple, kwargs: dict) -> None:
|
||||
"""Intended to be the prototypical `callback` argument for the `attempt` decorator above."""
|
||||
arg_str = f"{', '.join(repr(arg) for arg in args)}, {', '.join(f'{k}={repr(v)}' for k, v in kwargs.items())}"
|
||||
logger.warning(f"Attempt {n} at {f.__name__}({arg_str}) failed with {repr(e)}; retrying after {delay} seconds.")
|
||||
|
||||
|
||||
async def gather_in_batches(batch_size: int, *aws: Awaitable, return_exceptions: bool = False) -> list:
|
||||
"""
|
||||
Simple extension of the `asyncio.gather` function to make it easy to run awaitable objects in concurrent batches.
|
||||
|
Loading…
Reference in New Issue
Block a user