summaryrefslogtreecommitdiff
path: root/python-slowapi.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-11 15:14:49 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-11 15:14:49 +0000
commit980b16e2c6d675eef783cea7872e5d0b6b9d02a1 (patch)
tree4eea4e13e3c62a55a1e878ab919125bb76a0ecfc /python-slowapi.spec
parent951af5953e00ec8f9e9ccfef4372c9120a13eff7 (diff)
automatic import of python-slowapi
Diffstat (limited to 'python-slowapi.spec')
-rw-r--r--python-slowapi.spec284
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