From ba3b0850020d1da6bbc2572ea39e4281eac1eaeb Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Fri, 5 May 2023 04:10:42 +0000 Subject: automatic import of python-starlette-graphene3 --- python-starlette-graphene3.spec | 399 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 399 insertions(+) create mode 100644 python-starlette-graphene3.spec (limited to 'python-starlette-graphene3.spec') diff --git a/python-starlette-graphene3.spec b/python-starlette-graphene3.spec new file mode 100644 index 0000000..41dba63 --- /dev/null +++ b/python-starlette-graphene3.spec @@ -0,0 +1,399 @@ +%global _empty_manifest_terminate_build 0 +Name: python-starlette-graphene3 +Version: 0.6.0 +Release: 1 +Summary: Use Graphene v3 on Starlette +License: MIT +URL: https://github.com/ciscorn/starlette-graphene3 +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/a9/3c/f216ea04650e56de248bc6995ee87652e7002693198d8edc1076f650c29c/starlette-graphene3-0.6.0.tar.gz +BuildArch: noarch + +Requires: python3-graphene +Requires: python3-graphql-core +Requires: python3-starlette + +%description +# starlette-graphene3 + +A simple ASGI app for using [Graphene](https://github.com/graphql-python/graphene) v3 with [Starlette](https://github.com/encode/starlette) / [FastAPI](https://github.com/tiangolo/fastapi). + +![Test](https://github.com/ciscorn/starlette-graphene3/actions/workflows/test.yml/badge.svg?branch=master) +[![codecov](https://codecov.io/gh/ciscorn/starlette-graphene3/branch/master/graph/badge.svg)](https://codecov.io/gh/ciscorn/starlette-graphene3) +[![pypi package](https://img.shields.io/pypi/v/starlette-graphene3?color=%2334D058&label=pypi%20package)](https://pypi.org/project/starlette-graphene3) + +It supports: + +- Queries and Mutations (over HTTP or WebSocket) +- Subscriptions (over WebSocket) +- File uploading (https://github.com/jaydenseric/graphql-multipart-request-spec) +- GraphiQL / GraphQL Playground + +File uploading requires `python-multipart` to be installed. +## Alternatives + +- [tartiflette](https://github.com/tartiflette/tartiflette) — Python GraphQL Engine by dailymotion +- [tartiflette-asgi](https://github.com/tartiflette/tartiflette-asgi) + + +## Installation + +```bash +pip3 install -U starlette-graphene3 +``` + + +## Example + +```python +import asyncio + +import graphene +from graphene_file_upload.scalars import Upload + +from starlette.applications import Starlette +from starlette_graphene3 import GraphQLApp, make_graphiql_handler + + +class User(graphene.ObjectType): + id = graphene.ID() + name = graphene.String() + + +class Query(graphene.ObjectType): + me = graphene.Field(User) + + def resolve_me(root, info): + return {"id": "john", "name": "John"} + + +class FileUploadMutation(graphene.Mutation): + class Arguments: + file = Upload(required=True) + + ok = graphene.Boolean() + + def mutate(self, info, file, **kwargs): + return FileUploadMutation(ok=True) + + +class Mutation(graphene.ObjectType): + upload_file = FileUploadMutation.Field() + + +class Subscription(graphene.ObjectType): + count = graphene.Int(upto=graphene.Int()) + + async def subscribe_count(root, info, upto=3): + for i in range(upto): + yield i + await asyncio.sleep(1) + + +app = Starlette() +schema = graphene.Schema(query=Query, mutation=Mutation, subscription=Subscription) + +app.mount("/", GraphQLApp(schema, on_get=make_graphiql_handler())) # Graphiql IDE + +# app.mount("/", GraphQLApp(schema, on_get=make_playground_handler())) # Playground IDE +# app.mount("/", GraphQLApp(schema)) # no IDE +``` + +## GraphQLApp + +`GraphQLApp(schema, [options...])` + +```python +class GraphQLApp: + def __init__( + self, + schema: graphene.Schema, # Requied + *, + # Optional keyword parameters + on_get: Optional[ + Callable[[Request], Union[Response, Awaitable[Response]]] + ] = None, # optional HTTP handler for GET requests + context_value: ContextValue = None, + root_value: RootValue = None, + middleware: Optional[Middleware] = None, + error_formatter: Callable[[GraphQLError], Dict[str, Any]] = format_error, + logger_name: Optional[str] = None, + playground: bool = False, # deprecating + execution_context_class: Optional[Type[ExecutionContext]] = None, + ): +``` + + +%package -n python3-starlette-graphene3 +Summary: Use Graphene v3 on Starlette +Provides: python-starlette-graphene3 +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-starlette-graphene3 +# starlette-graphene3 + +A simple ASGI app for using [Graphene](https://github.com/graphql-python/graphene) v3 with [Starlette](https://github.com/encode/starlette) / [FastAPI](https://github.com/tiangolo/fastapi). + +![Test](https://github.com/ciscorn/starlette-graphene3/actions/workflows/test.yml/badge.svg?branch=master) +[![codecov](https://codecov.io/gh/ciscorn/starlette-graphene3/branch/master/graph/badge.svg)](https://codecov.io/gh/ciscorn/starlette-graphene3) +[![pypi package](https://img.shields.io/pypi/v/starlette-graphene3?color=%2334D058&label=pypi%20package)](https://pypi.org/project/starlette-graphene3) + +It supports: + +- Queries and Mutations (over HTTP or WebSocket) +- Subscriptions (over WebSocket) +- File uploading (https://github.com/jaydenseric/graphql-multipart-request-spec) +- GraphiQL / GraphQL Playground + +File uploading requires `python-multipart` to be installed. +## Alternatives + +- [tartiflette](https://github.com/tartiflette/tartiflette) — Python GraphQL Engine by dailymotion +- [tartiflette-asgi](https://github.com/tartiflette/tartiflette-asgi) + + +## Installation + +```bash +pip3 install -U starlette-graphene3 +``` + + +## Example + +```python +import asyncio + +import graphene +from graphene_file_upload.scalars import Upload + +from starlette.applications import Starlette +from starlette_graphene3 import GraphQLApp, make_graphiql_handler + + +class User(graphene.ObjectType): + id = graphene.ID() + name = graphene.String() + + +class Query(graphene.ObjectType): + me = graphene.Field(User) + + def resolve_me(root, info): + return {"id": "john", "name": "John"} + + +class FileUploadMutation(graphene.Mutation): + class Arguments: + file = Upload(required=True) + + ok = graphene.Boolean() + + def mutate(self, info, file, **kwargs): + return FileUploadMutation(ok=True) + + +class Mutation(graphene.ObjectType): + upload_file = FileUploadMutation.Field() + + +class Subscription(graphene.ObjectType): + count = graphene.Int(upto=graphene.Int()) + + async def subscribe_count(root, info, upto=3): + for i in range(upto): + yield i + await asyncio.sleep(1) + + +app = Starlette() +schema = graphene.Schema(query=Query, mutation=Mutation, subscription=Subscription) + +app.mount("/", GraphQLApp(schema, on_get=make_graphiql_handler())) # Graphiql IDE + +# app.mount("/", GraphQLApp(schema, on_get=make_playground_handler())) # Playground IDE +# app.mount("/", GraphQLApp(schema)) # no IDE +``` + +## GraphQLApp + +`GraphQLApp(schema, [options...])` + +```python +class GraphQLApp: + def __init__( + self, + schema: graphene.Schema, # Requied + *, + # Optional keyword parameters + on_get: Optional[ + Callable[[Request], Union[Response, Awaitable[Response]]] + ] = None, # optional HTTP handler for GET requests + context_value: ContextValue = None, + root_value: RootValue = None, + middleware: Optional[Middleware] = None, + error_formatter: Callable[[GraphQLError], Dict[str, Any]] = format_error, + logger_name: Optional[str] = None, + playground: bool = False, # deprecating + execution_context_class: Optional[Type[ExecutionContext]] = None, + ): +``` + + +%package help +Summary: Development documents and examples for starlette-graphene3 +Provides: python3-starlette-graphene3-doc +%description help +# starlette-graphene3 + +A simple ASGI app for using [Graphene](https://github.com/graphql-python/graphene) v3 with [Starlette](https://github.com/encode/starlette) / [FastAPI](https://github.com/tiangolo/fastapi). + +![Test](https://github.com/ciscorn/starlette-graphene3/actions/workflows/test.yml/badge.svg?branch=master) +[![codecov](https://codecov.io/gh/ciscorn/starlette-graphene3/branch/master/graph/badge.svg)](https://codecov.io/gh/ciscorn/starlette-graphene3) +[![pypi package](https://img.shields.io/pypi/v/starlette-graphene3?color=%2334D058&label=pypi%20package)](https://pypi.org/project/starlette-graphene3) + +It supports: + +- Queries and Mutations (over HTTP or WebSocket) +- Subscriptions (over WebSocket) +- File uploading (https://github.com/jaydenseric/graphql-multipart-request-spec) +- GraphiQL / GraphQL Playground + +File uploading requires `python-multipart` to be installed. +## Alternatives + +- [tartiflette](https://github.com/tartiflette/tartiflette) — Python GraphQL Engine by dailymotion +- [tartiflette-asgi](https://github.com/tartiflette/tartiflette-asgi) + + +## Installation + +```bash +pip3 install -U starlette-graphene3 +``` + + +## Example + +```python +import asyncio + +import graphene +from graphene_file_upload.scalars import Upload + +from starlette.applications import Starlette +from starlette_graphene3 import GraphQLApp, make_graphiql_handler + + +class User(graphene.ObjectType): + id = graphene.ID() + name = graphene.String() + + +class Query(graphene.ObjectType): + me = graphene.Field(User) + + def resolve_me(root, info): + return {"id": "john", "name": "John"} + + +class FileUploadMutation(graphene.Mutation): + class Arguments: + file = Upload(required=True) + + ok = graphene.Boolean() + + def mutate(self, info, file, **kwargs): + return FileUploadMutation(ok=True) + + +class Mutation(graphene.ObjectType): + upload_file = FileUploadMutation.Field() + + +class Subscription(graphene.ObjectType): + count = graphene.Int(upto=graphene.Int()) + + async def subscribe_count(root, info, upto=3): + for i in range(upto): + yield i + await asyncio.sleep(1) + + +app = Starlette() +schema = graphene.Schema(query=Query, mutation=Mutation, subscription=Subscription) + +app.mount("/", GraphQLApp(schema, on_get=make_graphiql_handler())) # Graphiql IDE + +# app.mount("/", GraphQLApp(schema, on_get=make_playground_handler())) # Playground IDE +# app.mount("/", GraphQLApp(schema)) # no IDE +``` + +## GraphQLApp + +`GraphQLApp(schema, [options...])` + +```python +class GraphQLApp: + def __init__( + self, + schema: graphene.Schema, # Requied + *, + # Optional keyword parameters + on_get: Optional[ + Callable[[Request], Union[Response, Awaitable[Response]]] + ] = None, # optional HTTP handler for GET requests + context_value: ContextValue = None, + root_value: RootValue = None, + middleware: Optional[Middleware] = None, + error_formatter: Callable[[GraphQLError], Dict[str, Any]] = format_error, + logger_name: Optional[str] = None, + playground: bool = False, # deprecating + execution_context_class: Optional[Type[ExecutionContext]] = None, + ): +``` + + +%prep +%autosetup -n starlette-graphene3-0.6.0 + +%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-starlette-graphene3 -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot - 0.6.0-1 +- Package Spec generated -- cgit v1.2.3