Rate Limit Semaphore
Rate limit semaphore for async-style (any core)
There are two implementations of rate limit semaphore. Live demo shows how FixedNewPreviousDelaySemaphore and FixedNewFirstDelaySemaphore work
Overview
import datetime
import ralisem
# Or another implementation
sem = ralisem.FixedNewPreviousDelaySemaphore(
    access_times=3, per=datetime.timedelta(seconds=1)
)
async with sem:
    ...
Difference:
FixedNewPreviousDelaySemaphore: Sures the last and a new access have a fixed required delay (per / access_times)FixedNewFirstDelaySemaphore: Sures first and last in series (serias isaccess_times) have a fixed delay (per)
Methods
All of these implementations are inherited from one base TimeRateLimitSemaphoreBase. Check out full methods here
Installation
Via PyPI:
python -m pip install ralisem
Or via GitHub
python -m pip install https://github.com/deknowny/rate-limit-semaphore/archive/main.zip
Contributing
Check out Contributing section

