From d08f60391d361654897f380840c7fa69610ab21a Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Fri, 5 May 2023 08:31:52 +0000 Subject: automatic import of python-aiographql-client --- .gitignore | 1 + python-aiographql-client.spec | 445 ++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 447 insertions(+) create mode 100644 python-aiographql-client.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..ae28d6b 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/aiographql-client-1.0.3.tar.gz diff --git a/python-aiographql-client.spec b/python-aiographql-client.spec new file mode 100644 index 0000000..771beaf --- /dev/null +++ b/python-aiographql-client.spec @@ -0,0 +1,445 @@ +%global _empty_manifest_terminate_build 0 +Name: python-aiographql-client +Version: 1.0.3 +Release: 1 +Summary: An asyncio GraphQL client built on top of aiohttp and graphql-core-next +License: MIT +URL: https://github.com/abn/aiographql-client +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/5f/f8/0b07b91a3094c6e47bda833fe25adaabc665b8b8a119b66421c6c1cb45ab/aiographql-client-1.0.3.tar.gz +BuildArch: noarch + +Requires: python3-cafeteria-asyncio +Requires: python3-aiohttp +Requires: python3-graphql-core +Requires: python3-ujson + +%description +# Asynchronous GraphQL Client +[![PyPI version](https://badge.fury.io/py/aiographql-client.svg)](https://badge.fury.io/py/aiographql-client) +[![Python Versions](https://img.shields.io/pypi/pyversions/aiographql-client)](https://pypi.org/project/aiographql-client/) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) +[![Documentation Status](https://readthedocs.org/projects/aiographql-client/badge/?version=latest)](https://aiographql-client.readthedocs.io/en/latest/?badge=latest) +[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) +[![Sonarcloud Status](https://sonarcloud.io/api/project_badges/measure?project=abn_aiographql-client&metric=alert_status)](https://sonarcloud.io/dashboard?id=abn_aiographql-client) +[![](https://github.com/abn/aiographql-client/workflows/Test%20Suite/badge.svg)](https://github.com/abn/aiographql-client/actions?query=workflow%3A%22Test+Suite%22) + +An asynchronous GraphQL client built on top of aiohttp and graphql-core-next. The client by default introspects schemas and validates all queries prior to dispatching to the server. + +## Documentation + +For the most recent project documentation, you can visit https://aiographql-client.readthedocs.io/. + +## Installation +`pip install aiographql-client` + +## Example Usage +Here are some example usages of this client implementation. For more examples, and advanced scenarios, +see [Usage Examples](https://aiographql-client.readthedocs.io/en/latest/examples.html) section in +the documentation. + +### Simple Query +```py +async def get_logged_in_username(token: str) -> GraphQLResponse: + client = GraphQLClient( + endpoint="https://api.github.com/graphql", + headers={"Authorization": f"Bearer {token}"}, + ) + request = GraphQLRequest( + query=""" + query { + viewer { + login + } + } + """ + ) + return await client.query(request=request) +``` + +```console +>>> import asyncio +>>> response = asyncio.run(get_logged_in_username("")) +>>> response.data +{'viewer': {'login': 'username'}} +``` + +### Query Subscription +```py +async def print_city_updates(client: GraphQLClient, city: str) -> None: + request = GraphQLRequest( + query=""" + subscription ($city:String!) { + city(where: {name: {_eq: $city}}) { + description + id + } + } + """, + variables={"city": city}, + ) + # subscribe to data and error events, and print them + await client.subscribe( + request=request, on_data=print, on_error=print, wait=True + ) +``` + +For custom event specific callback registration, see [Callback Registry Documentation](https://aiographql-client.readthedocs.io/en/latest/examples.html#callback-registry). + +### Query Validation Failures +If your query is invalid, thanks to graphql-core-next, we get a detailed exception in the traceback. + +``` +aiographql.client.exceptions.GraphQLClientValidationException: Query validation failed + +Cannot query field 'ids' on type 'chatbot'. Did you mean 'id'? + +GraphQL request (4:13) +3: chatbot { +4: ids, bot_names + ^ +5: } + +Cannot query field 'bot_names' on type 'chatbot'. Did you mean 'bot_name' or 'bot_language'? + +GraphQL request (4:18) +3: chatbot { +4: ids, bot_names + ^ +5: } + +``` + +### Query Variables & Operations +Support for multi-operation requests and variables is available via the client. For example, +the following request contains multiple operations. The instance specifies default values to use. + +```py +request = GraphQLRequest( + query=""" + query get_bot_created($id: Int) { + chatbot(where: {id: {_eq: $id}}) { + id, created + } + } + query get_bot_name($id: Int) { + chatbot(where: {id: {_eq: $id}}) { + id, bot_name + } + } + """, + variables={"id": 109}, + operation="get_bot_name" +) +``` + +The default values can be overridden at the time of making the request if required. + +```py +await client.query(request=request, variables={"id": 20}, operation="get_bot_created") +``` + + +%package -n python3-aiographql-client +Summary: An asyncio GraphQL client built on top of aiohttp and graphql-core-next +Provides: python-aiographql-client +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-aiographql-client +# Asynchronous GraphQL Client +[![PyPI version](https://badge.fury.io/py/aiographql-client.svg)](https://badge.fury.io/py/aiographql-client) +[![Python Versions](https://img.shields.io/pypi/pyversions/aiographql-client)](https://pypi.org/project/aiographql-client/) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) +[![Documentation Status](https://readthedocs.org/projects/aiographql-client/badge/?version=latest)](https://aiographql-client.readthedocs.io/en/latest/?badge=latest) +[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) +[![Sonarcloud Status](https://sonarcloud.io/api/project_badges/measure?project=abn_aiographql-client&metric=alert_status)](https://sonarcloud.io/dashboard?id=abn_aiographql-client) +[![](https://github.com/abn/aiographql-client/workflows/Test%20Suite/badge.svg)](https://github.com/abn/aiographql-client/actions?query=workflow%3A%22Test+Suite%22) + +An asynchronous GraphQL client built on top of aiohttp and graphql-core-next. The client by default introspects schemas and validates all queries prior to dispatching to the server. + +## Documentation + +For the most recent project documentation, you can visit https://aiographql-client.readthedocs.io/. + +## Installation +`pip install aiographql-client` + +## Example Usage +Here are some example usages of this client implementation. For more examples, and advanced scenarios, +see [Usage Examples](https://aiographql-client.readthedocs.io/en/latest/examples.html) section in +the documentation. + +### Simple Query +```py +async def get_logged_in_username(token: str) -> GraphQLResponse: + client = GraphQLClient( + endpoint="https://api.github.com/graphql", + headers={"Authorization": f"Bearer {token}"}, + ) + request = GraphQLRequest( + query=""" + query { + viewer { + login + } + } + """ + ) + return await client.query(request=request) +``` + +```console +>>> import asyncio +>>> response = asyncio.run(get_logged_in_username("")) +>>> response.data +{'viewer': {'login': 'username'}} +``` + +### Query Subscription +```py +async def print_city_updates(client: GraphQLClient, city: str) -> None: + request = GraphQLRequest( + query=""" + subscription ($city:String!) { + city(where: {name: {_eq: $city}}) { + description + id + } + } + """, + variables={"city": city}, + ) + # subscribe to data and error events, and print them + await client.subscribe( + request=request, on_data=print, on_error=print, wait=True + ) +``` + +For custom event specific callback registration, see [Callback Registry Documentation](https://aiographql-client.readthedocs.io/en/latest/examples.html#callback-registry). + +### Query Validation Failures +If your query is invalid, thanks to graphql-core-next, we get a detailed exception in the traceback. + +``` +aiographql.client.exceptions.GraphQLClientValidationException: Query validation failed + +Cannot query field 'ids' on type 'chatbot'. Did you mean 'id'? + +GraphQL request (4:13) +3: chatbot { +4: ids, bot_names + ^ +5: } + +Cannot query field 'bot_names' on type 'chatbot'. Did you mean 'bot_name' or 'bot_language'? + +GraphQL request (4:18) +3: chatbot { +4: ids, bot_names + ^ +5: } + +``` + +### Query Variables & Operations +Support for multi-operation requests and variables is available via the client. For example, +the following request contains multiple operations. The instance specifies default values to use. + +```py +request = GraphQLRequest( + query=""" + query get_bot_created($id: Int) { + chatbot(where: {id: {_eq: $id}}) { + id, created + } + } + query get_bot_name($id: Int) { + chatbot(where: {id: {_eq: $id}}) { + id, bot_name + } + } + """, + variables={"id": 109}, + operation="get_bot_name" +) +``` + +The default values can be overridden at the time of making the request if required. + +```py +await client.query(request=request, variables={"id": 20}, operation="get_bot_created") +``` + + +%package help +Summary: Development documents and examples for aiographql-client +Provides: python3-aiographql-client-doc +%description help +# Asynchronous GraphQL Client +[![PyPI version](https://badge.fury.io/py/aiographql-client.svg)](https://badge.fury.io/py/aiographql-client) +[![Python Versions](https://img.shields.io/pypi/pyversions/aiographql-client)](https://pypi.org/project/aiographql-client/) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) +[![Documentation Status](https://readthedocs.org/projects/aiographql-client/badge/?version=latest)](https://aiographql-client.readthedocs.io/en/latest/?badge=latest) +[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) +[![Sonarcloud Status](https://sonarcloud.io/api/project_badges/measure?project=abn_aiographql-client&metric=alert_status)](https://sonarcloud.io/dashboard?id=abn_aiographql-client) +[![](https://github.com/abn/aiographql-client/workflows/Test%20Suite/badge.svg)](https://github.com/abn/aiographql-client/actions?query=workflow%3A%22Test+Suite%22) + +An asynchronous GraphQL client built on top of aiohttp and graphql-core-next. The client by default introspects schemas and validates all queries prior to dispatching to the server. + +## Documentation + +For the most recent project documentation, you can visit https://aiographql-client.readthedocs.io/. + +## Installation +`pip install aiographql-client` + +## Example Usage +Here are some example usages of this client implementation. For more examples, and advanced scenarios, +see [Usage Examples](https://aiographql-client.readthedocs.io/en/latest/examples.html) section in +the documentation. + +### Simple Query +```py +async def get_logged_in_username(token: str) -> GraphQLResponse: + client = GraphQLClient( + endpoint="https://api.github.com/graphql", + headers={"Authorization": f"Bearer {token}"}, + ) + request = GraphQLRequest( + query=""" + query { + viewer { + login + } + } + """ + ) + return await client.query(request=request) +``` + +```console +>>> import asyncio +>>> response = asyncio.run(get_logged_in_username("")) +>>> response.data +{'viewer': {'login': 'username'}} +``` + +### Query Subscription +```py +async def print_city_updates(client: GraphQLClient, city: str) -> None: + request = GraphQLRequest( + query=""" + subscription ($city:String!) { + city(where: {name: {_eq: $city}}) { + description + id + } + } + """, + variables={"city": city}, + ) + # subscribe to data and error events, and print them + await client.subscribe( + request=request, on_data=print, on_error=print, wait=True + ) +``` + +For custom event specific callback registration, see [Callback Registry Documentation](https://aiographql-client.readthedocs.io/en/latest/examples.html#callback-registry). + +### Query Validation Failures +If your query is invalid, thanks to graphql-core-next, we get a detailed exception in the traceback. + +``` +aiographql.client.exceptions.GraphQLClientValidationException: Query validation failed + +Cannot query field 'ids' on type 'chatbot'. Did you mean 'id'? + +GraphQL request (4:13) +3: chatbot { +4: ids, bot_names + ^ +5: } + +Cannot query field 'bot_names' on type 'chatbot'. Did you mean 'bot_name' or 'bot_language'? + +GraphQL request (4:18) +3: chatbot { +4: ids, bot_names + ^ +5: } + +``` + +### Query Variables & Operations +Support for multi-operation requests and variables is available via the client. For example, +the following request contains multiple operations. The instance specifies default values to use. + +```py +request = GraphQLRequest( + query=""" + query get_bot_created($id: Int) { + chatbot(where: {id: {_eq: $id}}) { + id, created + } + } + query get_bot_name($id: Int) { + chatbot(where: {id: {_eq: $id}}) { + id, bot_name + } + } + """, + variables={"id": 109}, + operation="get_bot_name" +) +``` + +The default values can be overridden at the time of making the request if required. + +```py +await client.query(request=request, variables={"id": 20}, operation="get_bot_created") +``` + + +%prep +%autosetup -n aiographql-client-1.0.3 + +%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-aiographql-client -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot - 1.0.3-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..1158860 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +95a6a78711700ae76c6361cbb66ed39b aiographql-client-1.0.3.tar.gz -- cgit v1.2.3