diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-apywrapper.spec | 224 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 226 insertions, 0 deletions
@@ -0,0 +1 @@ +/apywrapper-0.1.12.tar.gz diff --git a/python-apywrapper.spec b/python-apywrapper.spec new file mode 100644 index 0000000..c9cb739 --- /dev/null +++ b/python-apywrapper.spec @@ -0,0 +1,224 @@ +%global _empty_manifest_terminate_build 0 +Name: python-apywrapper +Version: 0.1.12 +Release: 1 +Summary: make wrapper for RESTful API +License: GPL-3.0-or-later +URL: https://github.com/sh1ma/apywrapper +Source0: https://mirrors.aliyun.com/pypi/web/packages/da/e0/3b5d8aa98c7fa4d1c182eb8e99adfca335130f650f27733279c96a4473c0/apywrapper-0.1.12.tar.gz +BuildArch: noarch + +Requires: python3-httpx +Requires: python3-dacite + +%description +<img src="https://tva1.sinaimg.cn/large/007S8ZIlgy1giomjylcsuj30zk0hsq32.jpg" alt="apywrapper" style="zoom:80%;" /> + +## apywrapper + + +[](https://badge.fury.io/py/apywrapper) + +Easy development of RESTful API wrapper + +## Feature +- Get response as dataclass object you defined +- Return type can be specified by type annotation of api function +- All parameters (query, path variable, or json data) can be specified at once + + +## install + +``` +pip install apywrapper +``` + +## Example + +```python +from apywrapper import Apy, delete, get, patch, post, put +from typing import List, no_type_check +from dataclasses import dataclass + + +@dataclass +class User: + name: str + id: str + + +@no_type_check +class ApiClient(Apy): + def __init__(self, token, host="https://example.com/api": + super().__init__(host, headers={"api-token": token}) + + @get("/users/") + def get_users(self) -> List[User]: + return {} + + @get("/users/{user_id}") + def get_user(self, user_id) -> User: + return {"user_id": user_id} + +api = ApiClient(token="xxxxxxxxxxxxxxxxxx") +sh1ma = api.get_user("sh1ma") # return User object +``` + +%package -n python3-apywrapper +Summary: make wrapper for RESTful API +Provides: python-apywrapper +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-apywrapper +<img src="https://tva1.sinaimg.cn/large/007S8ZIlgy1giomjylcsuj30zk0hsq32.jpg" alt="apywrapper" style="zoom:80%;" /> + +## apywrapper + + +[](https://badge.fury.io/py/apywrapper) + +Easy development of RESTful API wrapper + +## Feature +- Get response as dataclass object you defined +- Return type can be specified by type annotation of api function +- All parameters (query, path variable, or json data) can be specified at once + + +## install + +``` +pip install apywrapper +``` + +## Example + +```python +from apywrapper import Apy, delete, get, patch, post, put +from typing import List, no_type_check +from dataclasses import dataclass + + +@dataclass +class User: + name: str + id: str + + +@no_type_check +class ApiClient(Apy): + def __init__(self, token, host="https://example.com/api": + super().__init__(host, headers={"api-token": token}) + + @get("/users/") + def get_users(self) -> List[User]: + return {} + + @get("/users/{user_id}") + def get_user(self, user_id) -> User: + return {"user_id": user_id} + +api = ApiClient(token="xxxxxxxxxxxxxxxxxx") +sh1ma = api.get_user("sh1ma") # return User object +``` + +%package help +Summary: Development documents and examples for apywrapper +Provides: python3-apywrapper-doc +%description help +<img src="https://tva1.sinaimg.cn/large/007S8ZIlgy1giomjylcsuj30zk0hsq32.jpg" alt="apywrapper" style="zoom:80%;" /> + +## apywrapper + + +[](https://badge.fury.io/py/apywrapper) + +Easy development of RESTful API wrapper + +## Feature +- Get response as dataclass object you defined +- Return type can be specified by type annotation of api function +- All parameters (query, path variable, or json data) can be specified at once + + +## install + +``` +pip install apywrapper +``` + +## Example + +```python +from apywrapper import Apy, delete, get, patch, post, put +from typing import List, no_type_check +from dataclasses import dataclass + + +@dataclass +class User: + name: str + id: str + + +@no_type_check +class ApiClient(Apy): + def __init__(self, token, host="https://example.com/api": + super().__init__(host, headers={"api-token": token}) + + @get("/users/") + def get_users(self) -> List[User]: + return {} + + @get("/users/{user_id}") + def get_user(self, user_id) -> User: + return {"user_id": user_id} + +api = ApiClient(token="xxxxxxxxxxxxxxxxxx") +sh1ma = api.get_user("sh1ma") # return User object +``` + +%prep +%autosetup -n apywrapper-0.1.12 + +%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-apywrapper -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.12-1 +- Package Spec generated @@ -0,0 +1 @@ +9dcc8e31e995062615af1906203ad76f apywrapper-0.1.12.tar.gz |