%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