ktolstikhin / call-throttle

A decorator used to throttle calls of regular functions and asyncio coroutines.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

call-throttle

python version downloads format

This package provides decorators which can be used to throttle calls of regular Python functions and asyncio coroutines.

Install

Use pip package installer for Python:

python -m pip install --upgrade call-throttle

Make sure you have Python 3.7 or later installed.

Usage

Here is a basic example for how to use the throttle decorator with functions and coroutines:

import time
import asyncio
from datetime import timedelta

from call_throttle import throttle


@throttle(calls=1, period=timedelta(seconds=1))
def func():
    time.sleep(1)


@throttle(calls=1, period=timedelta(seconds=2))
async def coro():
    await asyncio.sleep(1)

If passing raise_on_throttle=True to @throttle(...), then a call_throttle.ThrottleException is raised when a decorated function or coroutine is called more times than the defined calls limit within the specified time period.

License

This is a free software licensed under the terms of the MIT License.

About

A decorator used to throttle calls of regular functions and asyncio coroutines.

License:MIT License


Languages

Language:Python 87.8%Language:Makefile 12.2%