diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-10 19:09:56 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-10 19:09:56 +0000 |
commit | e20a0bc24a4bc7f801b119b014068902eba714be (patch) | |
tree | 9709ed5c87a0dc38379ee0eaf3e2408adb32fa5e | |
parent | 91a7fbce5777cf21fbf52d784425c9098a92d489 (diff) |
automatic import of python-instant-api-client
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-instant-api-client.spec | 196 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 198 insertions, 0 deletions
@@ -0,0 +1 @@ +/instant-api-client-0.1.2.tar.gz diff --git a/python-instant-api-client.spec b/python-instant-api-client.spec new file mode 100644 index 0000000..ba56ba7 --- /dev/null +++ b/python-instant-api-client.spec @@ -0,0 +1,196 @@ +%global _empty_manifest_terminate_build 0 +Name: python-instant-api-client +Version: 0.1.2 +Release: 1 +Summary: Create API wrappers/clients in minutes, enjoying both blocking and async interfaces from one codebase! +License: MIT +URL: https://github.com/FalseDev/instant-api-client +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/d9/5d/96ab75eaac6885a70e242fc6c84d0981be7d309082519dc626017ee9113b/instant-api-client-0.1.2.tar.gz +BuildArch: noarch + +Requires: python3-httpx + +%description +# Introduction + +If you've ever tried to make an API wrapper +you probably know that the code written can +only be used as sync or async, well, not anymore. + +## Features + +- **Lightweight**: Extremely lightweight and minimal +- **Easy to use**: Implement features in no time with the +- **Async and blocking**: Provides both async and blocking calls +- **Test without a server**: Since the library internally uses httpx, it can be used to test itself using an `ASGI` or `WSGI` application. +- **DRY**: _Don't repeat yourself_, helps avoid code duplication and write reusable code +- **Routing**: An `APIRouter` class with simliar API to `APIClient` +- **Modular**: Create reusable routers that can be added to any client, independant of each other + +## Example Usage + +```py + +from apiclient import APIClient, endpoint, Post + +class CodeExecClient(APIClient): + base_url = "https://pathtomysite.com/api/1.0" # Note the missing / suffix + @endpoint + def run(self, language:str, code:str): + # Do any processing with the data here! + # Also note the / prefix in the url + return Post("/execute", params={'lang':language, 'code':code}) + + +# Using the API client +from httpx import Client +client = CodeExecClient(session=Client()) +response = client.run("py", "print('hello world!')") + +``` + +## Documentation is under works + + + + +%package -n python3-instant-api-client +Summary: Create API wrappers/clients in minutes, enjoying both blocking and async interfaces from one codebase! +Provides: python-instant-api-client +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-instant-api-client +# Introduction + +If you've ever tried to make an API wrapper +you probably know that the code written can +only be used as sync or async, well, not anymore. + +## Features + +- **Lightweight**: Extremely lightweight and minimal +- **Easy to use**: Implement features in no time with the +- **Async and blocking**: Provides both async and blocking calls +- **Test without a server**: Since the library internally uses httpx, it can be used to test itself using an `ASGI` or `WSGI` application. +- **DRY**: _Don't repeat yourself_, helps avoid code duplication and write reusable code +- **Routing**: An `APIRouter` class with simliar API to `APIClient` +- **Modular**: Create reusable routers that can be added to any client, independant of each other + +## Example Usage + +```py + +from apiclient import APIClient, endpoint, Post + +class CodeExecClient(APIClient): + base_url = "https://pathtomysite.com/api/1.0" # Note the missing / suffix + @endpoint + def run(self, language:str, code:str): + # Do any processing with the data here! + # Also note the / prefix in the url + return Post("/execute", params={'lang':language, 'code':code}) + + +# Using the API client +from httpx import Client +client = CodeExecClient(session=Client()) +response = client.run("py", "print('hello world!')") + +``` + +## Documentation is under works + + + + +%package help +Summary: Development documents and examples for instant-api-client +Provides: python3-instant-api-client-doc +%description help +# Introduction + +If you've ever tried to make an API wrapper +you probably know that the code written can +only be used as sync or async, well, not anymore. + +## Features + +- **Lightweight**: Extremely lightweight and minimal +- **Easy to use**: Implement features in no time with the +- **Async and blocking**: Provides both async and blocking calls +- **Test without a server**: Since the library internally uses httpx, it can be used to test itself using an `ASGI` or `WSGI` application. +- **DRY**: _Don't repeat yourself_, helps avoid code duplication and write reusable code +- **Routing**: An `APIRouter` class with simliar API to `APIClient` +- **Modular**: Create reusable routers that can be added to any client, independant of each other + +## Example Usage + +```py + +from apiclient import APIClient, endpoint, Post + +class CodeExecClient(APIClient): + base_url = "https://pathtomysite.com/api/1.0" # Note the missing / suffix + @endpoint + def run(self, language:str, code:str): + # Do any processing with the data here! + # Also note the / prefix in the url + return Post("/execute", params={'lang':language, 'code':code}) + + +# Using the API client +from httpx import Client +client = CodeExecClient(session=Client()) +response = client.run("py", "print('hello world!')") + +``` + +## Documentation is under works + + + + +%prep +%autosetup -n instant-api-client-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-instant-api-client -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.2-1 +- Package Spec generated @@ -0,0 +1 @@ +6cd17758bbcb041f14eaac24447d9b5b instant-api-client-0.1.2.tar.gz |