Описание API

exception aiomisc.CircuitBroken(last_exception: Optional[Exception])[исходный код]
class aiomisc.IteratorWrapper(gen_func: Callable[[], Generator[aiomisc.iterator_wrapper.T, aiomisc.iterator_wrapper.R, None]], loop: Optional[asyncio.events.AbstractEventLoop] = None, max_size: int = 0, executor: Optional[concurrent.futures._base.Executor] = None, statistic_name: Optional[str] = None)[исходный код]
class aiomisc.IteratorWrapperSeparate(gen_func: Callable[[], Generator[aiomisc.iterator_wrapper.T, aiomisc.iterator_wrapper.R, None]], loop: Optional[asyncio.events.AbstractEventLoop] = None, max_size: int = 0, executor: Optional[concurrent.futures._base.Executor] = None, statistic_name: Optional[str] = None)[исходный код]
class aiomisc.PeriodicCallback(coroutine_func: Callable[[...], Union[Awaitable[Any], Any]], *args: Any, **kwargs: Any)[исходный код]

Примечание

Когда периодическая функция выполняется дольше, чем интервал выполнения, следующий вызов будет пропущен, и будет залогировано предупреждение.

class aiomisc.PoolBase(maxsize: int = 10, recycle: Optional[int] = None)[исходный код]
class aiomisc.ProcessPoolExecutor(max_workers: int = 4, **kwargs: Any)[исходный код]
shutdown(wait: bool = True) None[исходный код]

Очищает ресурсы, связанные с Executor.

Этот метод можно безопасно вызывать несколько раз. В противном случае после этого нельзя будет вызывать другие методы.

Аргументы:
wait: Если True то функция не завершится пока выключение не будет произведено

исполнение Future завершено, а ресурсы, используемые executor, возвращены.

submit(fn: Callable[[...], aiomisc.process_pool.T], *args: Any, **kwargs: Any) _asyncio.Future[исходный код]

Отправляет блокирующуюся функцию в пул

class aiomisc.ThreadPoolExecutor(max_workers: int = 4, loop: Optional[asyncio.events.AbstractEventLoop] = None, statistic_name: Optional[str] = None)[исходный код]
shutdown(wait: bool = True) None[исходный код]

Очищает ресурсы, связанные с Executor.

Этот метод можно безопасно вызывать несколько раз. В противном случае после этого нельзя будет вызывать другие методы.

Аргументы:
wait: Если True то функция не завершится пока выключение не будет произведено

исполнение Future завершено, а ресурсы, используемые executor, возвращены.

submit(fn: aiomisc.thread_pool.F, *args: Any, **kwargs: Any) _asyncio.Future[исходный код]

Отправляет блокирующуюся функцию в пул

aiomisc.aggregate(leeway_ms: float, max_count: Optional[int] = None) Callable[исходный код]

Parametric decorator that aggregates multiple (but no more than max_count defaulting to None) single-argument executions (res1 = await func(arg1), res2 = await func(arg2), …) of an asynchronous function with variadic positional arguments (async def func(*args, pho=1, bo=2) -> Iterable) into its single execution with multiple positional arguments (res1, res2, ... = await func(arg1, arg2, ...)) collected within a time window leeway_ms.

Примечание

func must return a sequence of values of length equal to the number of arguments (and in the same order).

Примечание

if some unexpected error occurs, exception is propagated to each future; to set an individual error for each aggregated call refer to aggregate_async.

Параметры
  • leeway_ms – The maximum approximate delay between the first collected argument and the aggregated execution.

  • max_count – The maximum number of arguments to call decorated function with. Default None.

Результат

aiomisc.aggregate_async(leeway_ms: float, max_count: Optional[int] = None) Callable[исходный код]

Same as aggregate, but with func arguments of type Arg containing value and future attributes instead. In this setting func is responsible for setting individual results/exceptions for all of the futures or throwing an exception (it will propagate to futures automatically). If func mistakenly does not set a result of some future, then, ResultNotSetError exception is set.

Результат

aiomisc.asyncbackoff(attempt_timeout: Optional[Union[int, float]], deadline: Optional[Union[int, float]], pause: Union[int, float] = 0, *exc: Type[Exception], exceptions: Tuple[Type[Exception], ...] = (), max_tries: Optional[int] = None, giveup: Optional[Callable[[Exception], bool]] = None, statistic_name: Optional[str] = None, statistic_class: Type[aiomisc.backoff.BackoffStatistic] = <class 'aiomisc.backoff.BackoffStatistic'>) Callable[[Callable[[...], aiomisc.backoff.T]], Callable[[Callable[[...], aiomisc.backoff.T]], aiomisc.backoff.T]][исходный код]

Параметрический декоратор, который гарантирует, что ограничение attempt_timeout и deadline соблюдены декорируемой функцией.

В случае возникновения исключения функция будет вызвана снова с аналогичными аргументами через pause секунд.

Параметры
  • statistic_name – имя для экземпляров статистики

  • attempt_timeout – это максимальное время выполнения для одной попытки выполнения.

  • deadline – это максимальное время выполнения для всех попыток выполнения.

  • pause – это пауза между попытками выполнениями.

  • exc – повторять только если брошены перечисленные тут исключения.

  • exceptions – тоже самое что и exc но это именованный аргумент.

  • max_tries – это максимальныое количество попыток исполнения (>= 1).

  • giveup – это функция-предикат, которая может принимать решение нужно ли продолжать попытки

  • statistic_class – класс статистики

aiomisc.asyncretry(max_tries: Optional[int], exceptions: Tuple[Type[Exception], ...] = (<class 'Exception'>,), pause: Union[int, float] = 0, giveup: Optional[Callable[[Exception], bool]] = None, statistic_name: Optional[str] = None) Callable[[Callable[[...], aiomisc.backoff.T]], Callable[[Callable[[...], aiomisc.backoff.T]], aiomisc.backoff.T]][исходный код]

Аналог asyncbackoff(None, None, 0, Exception).

В случае возникновения исключения функция будет вызвана снова с аналогичными аргументами через pause секунд.

Параметры
  • max_tries – это максимальныое количество попыток исполнения (>= 1 или None - бесконечность).

  • exceptions – тоже самое что и exc но это именованный аргумент.

  • giveup – это функция-предикат, которая может принимать решение нужно ли продолжать попытки

  • pause – это пауза между попытками выполнениями.

  • statistic_name – имя для экземпляров статистики

aiomisc.awaitable(func: Callable[[...], Union[aiomisc.utils.T, Awaitable[aiomisc.utils.T]]]) Callable[[...], Awaitable[aiomisc.utils.T]][исходный код]

Декоратор оборачивает функцию и возвращает функцию, которая возвращает awaitable объект. В случае, если функция возвращает Future, будет возвращено исходная Future. В случае, если функция возвращает корутину, будет возвращена исходная корутина. В случае, если функция возвращает не awaitable объект, он будет перенесен в новую корутину, которая просто возвращает этот объект. Это полезно, когда вы не хотите проверять результат функции перед использованием его в выражении await.

aiomisc.bind_socket(*args: Any, address: str, port: int = 0, options: Iterable[Tuple[int, int, int]] = (), reuse_addr: bool = True, reuse_port: bool = False, proto_name: Optional[str] = None) socket.socket[исходный код]

Свяжите сокет и установите setblocking (False) для только что созданного сокета. Это определяет формат адреса и автоматически выбирает тип сокета (IPv4 или IPv6).

Параметры
  • args – который будет передан конструктору сокета stdlib (необязательно)

  • address – биндит адрес

  • port – биндит порт

  • options – Кортэж пар, содержащих параметр сокета, который необходимо установить, и значение этого параметра.

  • reuse_addr – устанавливает socket.SO_REUSEADDR

  • reuse_port – устанавливает socket.SO_REUSEPORT

  • proto_name – название протокола, оно будет залогировано после биндинга

Результат

socket.socket

aiomisc.cancel_tasks(tasks: Iterable[_asyncio.Future]) _asyncio.Future[исходный код]

Все переданные задачи будут отменены. Функция вернет новую задачу.

Параметры

tasks – отменяемые задачи

aiomisc.chunk_list(iterable: Iterable[aiomisc.utils.T], size: int) Iterable[List[aiomisc.utils.T]][исходный код]

Разделяет список или генератор по пачкам с фиксированным максимальным размером.

async aiomisc.select(*awaitables: Awaitable[Any], return_exceptions: bool = False, cancel: bool = True, timeout: Optional[Union[int, float]] = None, wait: bool = True, loop: Optional[asyncio.events.AbstractEventLoop] = None) aiomisc.utils.SelectResult[исходный код]
Параметры
  • awaitables – awaitable объект

  • return_exceptions – Если True то исключение не боросается а возвращается как результат

  • cancel – отменять ли незавершенные корутины (по умолчанию True)

  • timeout – таймаут выполнения

  • wait – Если False и cancel=True, незавершенные корутины будут отменены в фоне.

  • loop – цикл событий (event loop)

aiomisc.shield(func: Callable[[...], Awaitable[aiomisc.utils.T]]) Callable[[...], Awaitable[aiomisc.utils.T]][исходный код]

Простой и полезный декоратор для оборачивания сопрограммы asyncio.shield.

>>> @shield
... async def non_cancelable_func():
...     await asyncio.sleep(1)
class aiomisc_log.LogFormat(value)[исходный код]

Перечисление.

class aiomisc_log.LogLevel(value)[исходный код]

Перечисление.

class aiomisc_worker.PacketTypes(value)[исходный код]

Перечисление.