Python decorators for asyncio
Project description
aiodecorator
Python decorators for asyncio, including
- throttle
Install
$ pip install aiodecorator
Usage
import time
import asyncio
from aiodecorator import (
throttle
)
now = time.time()
# The throttled function is only called twice a second
@throttle(2, 1)
async def throttled(index: int):
diff = format(time.time - now, '.0f')
print(index, f'{diff}s')
async def main():
loop = asyncio.get_running_loop()
tasks = [
loop.create_task(throttled(index))
for index in range(5)
]
await asyncio.wait(tasks)
asyncio.run(main())
# Output
# 0 0s
# 1 0s
# 2 1s
# 3 1s
# 4 2s
APIs
throttle(limit: int, interval: Union[float, int])
- limit
int
Maximum number of calls within aninterval
. - interval
Union[int, float]
Timespan for limit in seconds.
Returns a decorator function
License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aiodecorator-1.0.0.tar.gz
(3.2 kB
view hashes)
Built Distribution
Close
Hashes for aiodecorator-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2fbacd3aeaa6e3e76ecd77333d4c1276bcfdc2aac23034eec5a585446c30c7a |
|
MD5 | 7cea317d98c5cdeb56b79d4fbfd90bcb |
|
BLAKE2b-256 | 31fd46a631c7c125722902cda62a7b15d0b64f4083405b233087299b23ff5479 |