diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-11 15:14:49 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 15:14:49 +0000 |
commit | 980b16e2c6d675eef783cea7872e5d0b6b9d02a1 (patch) | |
tree | 4eea4e13e3c62a55a1e878ab919125bb76a0ecfc /python-slowapi.spec | |
parent | 951af5953e00ec8f9e9ccfef4372c9120a13eff7 (diff) |
automatic import of python-slowapi
Diffstat (limited to 'python-slowapi.spec')
-rw-r--r-- | python-slowapi.spec | 284 |
1 files changed, 284 insertions, 0 deletions
diff --git a/python-slowapi.spec b/python-slowapi.spec new file mode 100644 index 0000000..05c3b7f --- /dev/null +++ b/python-slowapi.spec @@ -0,0 +1,284 @@ +%global _empty_manifest_terminate_build 0 +Name: python-slowapi +Version: 0.1.8 +Release: 1 +Summary: A rate limiting extension for Starlette and Fastapi +License: MIT +URL: https://github.com/laurents/slowapi +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/f5/97/3e85a6097fb4986691b52dbef7ca7576f49740fc880160602f91a1062c69/slowapi-0.1.8.tar.gz +BuildArch: noarch + +Requires: python3-limits +Requires: python3-redis + +%description +# SlowApi + +A rate limiting library for Starlette and FastAPI adapted from [flask-limiter](http://github.com/alisaifee/flask-limiter). + +This package is used in various production setups, handling millions of requests per month, and seems to behave as expected. +There might be some API changes when changing the code to be fully `async`, but we will notify users via appropriate `semver` version changes. + +The documentation is on [read the docs](https://slowapi.readthedocs.io/en/latest/). + +# Quick start + +## Installation + +`slowapi` is available from [pypi](https://pypi.org/project/slowapi/) so you can install it as usual: + +``` +$ pip install slowapi +``` + +# Features + +Most feature are coming from FlaskLimiter and the underlying [limits](https://limits.readthedocs.io/). + +Supported now: + +- Single and multiple `limit` decorator on endpoint functions to apply limits +- redis, memcached and memory backends to track your limits (memory as a fallback) +- support for sync and async HTTP endpoints +- Support for shared limits across a set of routes + + +# Limitations and known issues + + * The `request` argument must be explicitly passed to your endpoint, or `slowapi` won't be able to hook into it. In other words, write: + +```python + @limiter.limit("5/minute") + async def myendpoint(request: Request) + pass +``` + +and not: + +```python + @limiter.limit("5/minute") + async def myendpoint() + pass +``` + + * `websocket` endpoints are not supported yet. + +# Developing and contributing + +PRs are more than welcome! Please include tests for your changes :) + +The package uses [poetry](https://python-poetry.org) to manage dependencies. To setup your dev env: + +```bash +$ poetry install +``` + +To run the tests: +```bash +$ pytest +``` + +# Credits + +Credits go to [flask-limiter](https://github.com/alisaifee/flask-limiter) of which SlowApi is a (still partial) adaptation to Starlette and FastAPI. +It's also important to mention that the actual rate limiting work is done by [limits](https://github.com/alisaifee/limits/), `slowapi` is just a wrapper around it. + + +%package -n python3-slowapi +Summary: A rate limiting extension for Starlette and Fastapi +Provides: python-slowapi +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-slowapi +# SlowApi + +A rate limiting library for Starlette and FastAPI adapted from [flask-limiter](http://github.com/alisaifee/flask-limiter). + +This package is used in various production setups, handling millions of requests per month, and seems to behave as expected. +There might be some API changes when changing the code to be fully `async`, but we will notify users via appropriate `semver` version changes. + +The documentation is on [read the docs](https://slowapi.readthedocs.io/en/latest/). + +# Quick start + +## Installation + +`slowapi` is available from [pypi](https://pypi.org/project/slowapi/) so you can install it as usual: + +``` +$ pip install slowapi +``` + +# Features + +Most feature are coming from FlaskLimiter and the underlying [limits](https://limits.readthedocs.io/). + +Supported now: + +- Single and multiple `limit` decorator on endpoint functions to apply limits +- redis, memcached and memory backends to track your limits (memory as a fallback) +- support for sync and async HTTP endpoints +- Support for shared limits across a set of routes + + +# Limitations and known issues + + * The `request` argument must be explicitly passed to your endpoint, or `slowapi` won't be able to hook into it. In other words, write: + +```python + @limiter.limit("5/minute") + async def myendpoint(request: Request) + pass +``` + +and not: + +```python + @limiter.limit("5/minute") + async def myendpoint() + pass +``` + + * `websocket` endpoints are not supported yet. + +# Developing and contributing + +PRs are more than welcome! Please include tests for your changes :) + +The package uses [poetry](https://python-poetry.org) to manage dependencies. To setup your dev env: + +```bash +$ poetry install +``` + +To run the tests: +```bash +$ pytest +``` + +# Credits + +Credits go to [flask-limiter](https://github.com/alisaifee/flask-limiter) of which SlowApi is a (still partial) adaptation to Starlette and FastAPI. +It's also important to mention that the actual rate limiting work is done by [limits](https://github.com/alisaifee/limits/), `slowapi` is just a wrapper around it. + + +%package help +Summary: Development documents and examples for slowapi +Provides: python3-slowapi-doc +%description help +# SlowApi + +A rate limiting library for Starlette and FastAPI adapted from [flask-limiter](http://github.com/alisaifee/flask-limiter). + +This package is used in various production setups, handling millions of requests per month, and seems to behave as expected. +There might be some API changes when changing the code to be fully `async`, but we will notify users via appropriate `semver` version changes. + +The documentation is on [read the docs](https://slowapi.readthedocs.io/en/latest/). + +# Quick start + +## Installation + +`slowapi` is available from [pypi](https://pypi.org/project/slowapi/) so you can install it as usual: + +``` +$ pip install slowapi +``` + +# Features + +Most feature are coming from FlaskLimiter and the underlying [limits](https://limits.readthedocs.io/). + +Supported now: + +- Single and multiple `limit` decorator on endpoint functions to apply limits +- redis, memcached and memory backends to track your limits (memory as a fallback) +- support for sync and async HTTP endpoints +- Support for shared limits across a set of routes + + +# Limitations and known issues + + * The `request` argument must be explicitly passed to your endpoint, or `slowapi` won't be able to hook into it. In other words, write: + +```python + @limiter.limit("5/minute") + async def myendpoint(request: Request) + pass +``` + +and not: + +```python + @limiter.limit("5/minute") + async def myendpoint() + pass +``` + + * `websocket` endpoints are not supported yet. + +# Developing and contributing + +PRs are more than welcome! Please include tests for your changes :) + +The package uses [poetry](https://python-poetry.org) to manage dependencies. To setup your dev env: + +```bash +$ poetry install +``` + +To run the tests: +```bash +$ pytest +``` + +# Credits + +Credits go to [flask-limiter](https://github.com/alisaifee/flask-limiter) of which SlowApi is a (still partial) adaptation to Starlette and FastAPI. +It's also important to mention that the actual rate limiting work is done by [limits](https://github.com/alisaifee/limits/), `slowapi` is just a wrapper around it. + + +%prep +%autosetup -n slowapi-0.1.8 + +%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-slowapi -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.8-1 +- Package Spec generated |