Skip to content

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

License

ktolstikhin/call-throttle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Resources

License

Stars

Watchers

Forks

Packages

No packages published