diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-10 06:47:02 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-10 06:47:02 +0000 |
commit | 2e666e46168beefb866c799c3cdc4a41c037c107 (patch) | |
tree | a493a9da9eb0f8eb75e8afe86c12ab912291759a | |
parent | 02954808705b1da2335b31e9141acde1c3f416bb (diff) |
automatic import of python-aio-rate-limiter
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-aio-rate-limiter.spec | 253 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 255 insertions, 0 deletions
@@ -0,0 +1 @@ +/aio-rate-limiter-0.1.2.tar.gz diff --git a/python-aio-rate-limiter.spec b/python-aio-rate-limiter.spec new file mode 100644 index 0000000..1d8b05c --- /dev/null +++ b/python-aio-rate-limiter.spec @@ -0,0 +1,253 @@ +%global _empty_manifest_terminate_build 0 +Name: python-aio-rate-limiter +Version: 0.1.2 +Release: 1 +Summary: Rate limit a function using Redis as a backend +License: BSD-3-Clause +URL: https://pypi.org/project/aio-rate-limiter/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/ef/28/ec86596e2bbc74112b43897aaf834bf519668f033ff830930f16eda224f2/aio-rate-limiter-0.1.2.tar.gz +BuildArch: noarch + +Requires: python3-aioredis + +%description +# aio-rate-limiter + +[](https://pypi.org/pypi/aio-rate-limit/) [](https://opensource.org/licenses/BSD-3-Clause) + +Rate limit a function using Redis as a backend. This is a smaller library modeled after [python-redis-rate-limit](https://github.com/EvoluxBR/python-redis-rate-limit) but it uses [aioredis](https://github.com/aio-libs/aioredis). Supports Python 3.6+. + +## Installation + +```bash +pip install aio-rate-limiter +``` + +## Example + +```python +import logging + +from aio_rate_limiter import RateLimiter, TooManyRequests +import aioredis + +async def example(): + pool = await aioredis.create_redis_pool("redis://localhost:6379") + try: + async with RateLimiter( + redis_pool, + # Rate limit requests to a resource + "name-of-external-system", + # Allow up to 100 requests in 60 seconds + max_requests=100, + time_window=60 + ): + async do_work() + except TooManyRequests: + logging.warning("Try again later") +``` + +## Development + +```bash +# Install poetry +pip install poetry + +# Install all package dependencies +poetry install + +# Launch a shell with dependencies available +poetry shell + +# Run tests (requires Redis server running at localhost:6379) +pytest + +# When you're ready to publish... +# Bump version +poetry version <version> +# Set your pypi token +export POETRY_PYPI_TOKEN_PYPI='...' +# Build and publish +poetry build +poetry publish +``` + + +%package -n python3-aio-rate-limiter +Summary: Rate limit a function using Redis as a backend +Provides: python-aio-rate-limiter +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-aio-rate-limiter +# aio-rate-limiter + +[](https://pypi.org/pypi/aio-rate-limit/) [](https://opensource.org/licenses/BSD-3-Clause) + +Rate limit a function using Redis as a backend. This is a smaller library modeled after [python-redis-rate-limit](https://github.com/EvoluxBR/python-redis-rate-limit) but it uses [aioredis](https://github.com/aio-libs/aioredis). Supports Python 3.6+. + +## Installation + +```bash +pip install aio-rate-limiter +``` + +## Example + +```python +import logging + +from aio_rate_limiter import RateLimiter, TooManyRequests +import aioredis + +async def example(): + pool = await aioredis.create_redis_pool("redis://localhost:6379") + try: + async with RateLimiter( + redis_pool, + # Rate limit requests to a resource + "name-of-external-system", + # Allow up to 100 requests in 60 seconds + max_requests=100, + time_window=60 + ): + async do_work() + except TooManyRequests: + logging.warning("Try again later") +``` + +## Development + +```bash +# Install poetry +pip install poetry + +# Install all package dependencies +poetry install + +# Launch a shell with dependencies available +poetry shell + +# Run tests (requires Redis server running at localhost:6379) +pytest + +# When you're ready to publish... +# Bump version +poetry version <version> +# Set your pypi token +export POETRY_PYPI_TOKEN_PYPI='...' +# Build and publish +poetry build +poetry publish +``` + + +%package help +Summary: Development documents and examples for aio-rate-limiter +Provides: python3-aio-rate-limiter-doc +%description help +# aio-rate-limiter + +[](https://pypi.org/pypi/aio-rate-limit/) [](https://opensource.org/licenses/BSD-3-Clause) + +Rate limit a function using Redis as a backend. This is a smaller library modeled after [python-redis-rate-limit](https://github.com/EvoluxBR/python-redis-rate-limit) but it uses [aioredis](https://github.com/aio-libs/aioredis). Supports Python 3.6+. + +## Installation + +```bash +pip install aio-rate-limiter +``` + +## Example + +```python +import logging + +from aio_rate_limiter import RateLimiter, TooManyRequests +import aioredis + +async def example(): + pool = await aioredis.create_redis_pool("redis://localhost:6379") + try: + async with RateLimiter( + redis_pool, + # Rate limit requests to a resource + "name-of-external-system", + # Allow up to 100 requests in 60 seconds + max_requests=100, + time_window=60 + ): + async do_work() + except TooManyRequests: + logging.warning("Try again later") +``` + +## Development + +```bash +# Install poetry +pip install poetry + +# Install all package dependencies +poetry install + +# Launch a shell with dependencies available +poetry shell + +# Run tests (requires Redis server running at localhost:6379) +pytest + +# When you're ready to publish... +# Bump version +poetry version <version> +# Set your pypi token +export POETRY_PYPI_TOKEN_PYPI='...' +# Build and publish +poetry build +poetry publish +``` + + +%prep +%autosetup -n aio-rate-limiter-0.1.2 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-aio-rate-limiter -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.2-1 +- Package Spec generated @@ -0,0 +1 @@ +dc9c4edbc5848676f35ef0e46b2321d6 aio-rate-limiter-0.1.2.tar.gz |