%global _empty_manifest_terminate_build 0 Name: python-GraphQL-core-next Version: 1.1.1 Release: 1 Summary: GraphQL-core-next is a Python port of GraphQL.js, the JavaScript reference implementation for GraphQL. License: MIT license URL: https://github.com/graphql-python/graphql-core-next Source0: https://mirrors.nju.edu.cn/pypi/web/packages/e2/ae/b1fc0f5dc4f0d6ccf4b41f18f5dc031ab2ab9fda07c27550c3fb38173025/GraphQL-core-next-1.1.1.tar.gz BuildArch: noarch %description # GraphQL-core-next GraphQL-core-next is a Python 3.6+ port of [GraphQL.js](https://github.com/graphql/graphql-js), the JavaScript reference implementation for [GraphQL](https://graphql.org/), a query language for APIs created by Facebook. [![PyPI version](https://badge.fury.io/py/GraphQL-core-next.svg)](https://badge.fury.io/py/GraphQL-core-next) [![Documentation Status](https://readthedocs.org/projects/graphql-core-next/badge/)](https://graphql-core-next.readthedocs.io) [![Build Status](https://travis-ci.com/graphql-python/graphql-core-next.svg?branch=master)](https://travis-ci.com/graphql-python/graphql-core-next) [![Coverage Status](https://codecov.io/gh/graphql-python/graphql-core-next/branch/master/graph/badge.svg)](https://codecov.io/gh/graphql-python/graphql-core-next) [![Dependency Updates](https://pyup.io/repos/github/graphql-python/graphql-core-next/shield.svg)](https://pyup.io/repos/github/graphql-python/graphql-core-next/) [![Python 3 Status](https://pyup.io/repos/github/graphql-python/graphql-core-next/python-3-shield.svg)](https://pyup.io/repos/github/graphql-python/graphql-core-next/) [![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black) The current version 1.1.1 of GraphQL-core-next is up-to-date with GraphQL.js version 14.4.0. All parts of the API are covered by an extensive test suite of currently 1885 unit tests. Development will be continued with the new distribution name GraphQL-core from now on. ## GraphQL-core-next is now GraphQL-core 3 GraphQL-core-next has been discontinued as a separate Python distribution. Instead, it is now released as GraphQL-core version 3 and newer, replacing the existing GraphQL-core distribution. The old versions of GraphQL-core, which also support older Python versions, are still available. ## Documentation A more detailed documentation for GraphQL-core-next can be found at [graphql-core-next.readthedocs.io](https://graphql-core-next.readthedocs.io/). The documentation for GraphQL.js can be found at [graphql.org/graphql-js/](https://graphql.org/graphql-js/). The documentation for GraphQL itself can be found at [graphql.org](https://graphql.org/). There will be also [blog articles](https://cito.github.io/tags/graphql/) with more usage examples. ## Getting started An overview of GraphQL in general is available in the [README](https://github.com/graphql/graphql-spec/blob/master/README.md) for the [Specification for GraphQL](https://github.com/graphql/graphql-spec). That overview describes a simple set of GraphQL examples that exist as [tests](tests) in this repository. A good way to get started with this repository is to walk through that README and the corresponding tests in parallel. ## Installation GraphQL-core-next can be installed from PyPI using the built-in pip command: python -m pip install graphql-core-next Alternatively, you can also use [pipenv](https://docs.pipenv.org/) for installation in a virtual environment: pipenv install graphql-core-next ## Usage GraphQL-core-next provides two important capabilities: building a type schema, and serving queries against that type schema. First, build a GraphQL type schema which maps to your code base: ```python from graphql import ( GraphQLSchema, GraphQLObjectType, GraphQLField, GraphQLString) schema = GraphQLSchema( query=GraphQLObjectType( name='RootQueryType', fields={ 'hello': GraphQLField( GraphQLString, resolve=lambda obj, info: 'world') })) ``` This defines a simple schema with one type and one field, that resolves to a fixed value. The `resolve` function can return a value, a co-routine object or a list of these. It takes two positional arguments; the first one provides the root or the resolved parent field, the second one provides a `GraphQLResolveInfo` object which contains information about the execution state of the query, including a `context` attribute holding per-request state such as authentication information or database session. Any GraphQL arguments are passed to the `resolve` functions as individual keyword arguments. Note that the signature of the resolver functions is a bit different in GraphQL.js, where the context is passed separately and arguments are passed as a single object. Also note that GraphQL fields must be passed as a `GraphQLField` object explicitly. Similarly, GraphQL arguments must be passed as `GraphQLArgument` objects. A more complex example is included in the top level [tests](tests) directory. Then, serve the result of a query against that type schema. ```python from graphql import graphql_sync query = '{ hello }' print(graphql_sync(schema, query)) ``` This runs a query fetching the one field defined, and then prints the result: ```python ExecutionResult(data={'hello': 'world'}, errors=None) ``` The `graphql_sync` function will first ensure the query is syntactically and semantically valid before executing it, reporting errors otherwise. ```python from graphql import graphql_sync query = '{ boyhowdy }' print(graphql_sync(schema, query)) ``` Because we queried a non-existing field, we will get the following result: ```python ExecutionResult(data=None, errors=[GraphQLError( "Cannot query field 'boyhowdy' on type 'RootQueryType'.", locations=[SourceLocation(line=1, column=3)])]) ``` The `graphql_sync` function assumes that all resolvers return values synchronously. By using coroutines as resolvers, you can also create results in an asynchronous fashion with the `graphql` function. ```python import asyncio from graphql import ( graphql, GraphQLSchema, GraphQLObjectType, GraphQLField, GraphQLString) async def resolve_hello(obj, info): await asyncio.sleep(3) return 'world' schema = GraphQLSchema( query=GraphQLObjectType( name='RootQueryType', fields={ 'hello': GraphQLField( GraphQLString, resolve=resolve_hello) })) async def main(): query = '{ hello }' print('Fetching the result...') result = await graphql(schema, query) print(result) loop = asyncio.get_event_loop() try: loop.run_until_complete(main()) finally: loop.close() ``` ## Goals and restrictions GraphQL-core-next tries to reproduce the code of the reference implementation GraphQL.js in Python as closely as possible and to stay up-to-date with the latest development of GraphQL.js. It has been created as a modern alternative to [GraphQL-core](https://github.com/graphql-python/graphql-core), a prior work by Syrus Akbary, based on an older version of GraphQL.js and also targeting older Python versions. Some parts of GraphQL-core-next have been inspired by GraphQL-core or directly taken over with only slight modifications, but most of the code has been re-implemented from scratch, replicating the latest code in GraphQL.js very closely and adding type hints for Python. Design goals for the GraphQL-core-next library are: * to be a simple, cruft-free, state-of-the-art implementation of GraphQL using current library and language versions * to be very close to the GraphQL.js reference implementation, while still using a Pythonic API and code style * to make extensive use of Python type hints, similar to how GraphQL.js makes use of Flow * to use [black](https://github.com/ambv/black) for automatic code formatting * to replicate the complete Mocha-based test suite of GraphQL.js using [pytest](https://docs.pytest.org/) Some restrictions (mostly in line with the design goals): * requires Python 3.6 or 3.7 * does not support some already deprecated methods and options of GraphQL.js * supports asynchronous operations only via async.io (does not support the additional executors in GraphQL-core) * the benchmarks have not yet been ported to Python ## Integration with other libraries and roadmap * [Graphene](http://graphene-python.org/) is a more high-level framework for building GraphQL APIs in Python, and there is already a whole ecosystem of libraries, server integrations and tools built on top of Graphene. Most of this Graphene ecosystem has also been created by Syrus Akbary, who meanwhile has handed over the maintenance and future development to members of the GraphQL-Python community. The current version 2 of Graphene is using Graphql-core as core library for much of the heavy lifting. Note that Graphene 2 is not compatible with GraphQL-core-next. The new version 3 of Graphene however is planned to use GraphQL-core-next instead of GraphQL-core, and GraphQL-core-next will be renamed to Graphql-core 3. * [Ariadne](https://github.com/mirumee/ariadne) is a Python library for implementing GraphQL servers using schema-first approach created by Mirumee Software. Ariadne is already using GraphQL-core-next as its GraphQL implementation. * [Strawberry](https://github.com/strawberry-graphql/strawberry), created by Patrick Arminio, is a new GraphQL library for Python 3, inspired by dataclasses, that is also using GraphQL-core-next as underpinning. ## Changelog Changes are tracked as [GitHub releases](https://github.com/graphql-python/graphql-core-next/releases). ## Credits and history The GraphQL-core-next library * has been created and is maintained by Christoph Zwerschke * uses ideas and code from GraphQL-core, a prior work by Syrus Akbary * is a Python port of GraphQL.js which has been developed by Lee Byron and others at Facebook, Inc. and is now maintained by the [GraphQL foundation](https://gql.foundation/join/) Please watch the recording of Lee Byron's short keynote on the [history of GraphQL](https://www.youtube.com/watch?v=VjHWkBr3tjI) at the open source leadership summit 2019 to better understand how and why GraphQL was created at Facebook and then became open sourced and ported to many different programming languages. ## License GraphQL-core-next is [MIT-licensed](https://github.com/graphql-python/graphql-core-next/blob/master/LICENSE), just like GraphQL.js. %package -n python3-GraphQL-core-next Summary: GraphQL-core-next is a Python port of GraphQL.js, the JavaScript reference implementation for GraphQL. Provides: python-GraphQL-core-next BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-GraphQL-core-next # GraphQL-core-next GraphQL-core-next is a Python 3.6+ port of [GraphQL.js](https://github.com/graphql/graphql-js), the JavaScript reference implementation for [GraphQL](https://graphql.org/), a query language for APIs created by Facebook. [![PyPI version](https://badge.fury.io/py/GraphQL-core-next.svg)](https://badge.fury.io/py/GraphQL-core-next) [![Documentation Status](https://readthedocs.org/projects/graphql-core-next/badge/)](https://graphql-core-next.readthedocs.io) [![Build Status](https://travis-ci.com/graphql-python/graphql-core-next.svg?branch=master)](https://travis-ci.com/graphql-python/graphql-core-next) [![Coverage Status](https://codecov.io/gh/graphql-python/graphql-core-next/branch/master/graph/badge.svg)](https://codecov.io/gh/graphql-python/graphql-core-next) [![Dependency Updates](https://pyup.io/repos/github/graphql-python/graphql-core-next/shield.svg)](https://pyup.io/repos/github/graphql-python/graphql-core-next/) [![Python 3 Status](https://pyup.io/repos/github/graphql-python/graphql-core-next/python-3-shield.svg)](https://pyup.io/repos/github/graphql-python/graphql-core-next/) [![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black) The current version 1.1.1 of GraphQL-core-next is up-to-date with GraphQL.js version 14.4.0. All parts of the API are covered by an extensive test suite of currently 1885 unit tests. Development will be continued with the new distribution name GraphQL-core from now on. ## GraphQL-core-next is now GraphQL-core 3 GraphQL-core-next has been discontinued as a separate Python distribution. Instead, it is now released as GraphQL-core version 3 and newer, replacing the existing GraphQL-core distribution. The old versions of GraphQL-core, which also support older Python versions, are still available. ## Documentation A more detailed documentation for GraphQL-core-next can be found at [graphql-core-next.readthedocs.io](https://graphql-core-next.readthedocs.io/). The documentation for GraphQL.js can be found at [graphql.org/graphql-js/](https://graphql.org/graphql-js/). The documentation for GraphQL itself can be found at [graphql.org](https://graphql.org/). There will be also [blog articles](https://cito.github.io/tags/graphql/) with more usage examples. ## Getting started An overview of GraphQL in general is available in the [README](https://github.com/graphql/graphql-spec/blob/master/README.md) for the [Specification for GraphQL](https://github.com/graphql/graphql-spec). That overview describes a simple set of GraphQL examples that exist as [tests](tests) in this repository. A good way to get started with this repository is to walk through that README and the corresponding tests in parallel. ## Installation GraphQL-core-next can be installed from PyPI using the built-in pip command: python -m pip install graphql-core-next Alternatively, you can also use [pipenv](https://docs.pipenv.org/) for installation in a virtual environment: pipenv install graphql-core-next ## Usage GraphQL-core-next provides two important capabilities: building a type schema, and serving queries against that type schema. First, build a GraphQL type schema which maps to your code base: ```python from graphql import ( GraphQLSchema, GraphQLObjectType, GraphQLField, GraphQLString) schema = GraphQLSchema( query=GraphQLObjectType( name='RootQueryType', fields={ 'hello': GraphQLField( GraphQLString, resolve=lambda obj, info: 'world') })) ``` This defines a simple schema with one type and one field, that resolves to a fixed value. The `resolve` function can return a value, a co-routine object or a list of these. It takes two positional arguments; the first one provides the root or the resolved parent field, the second one provides a `GraphQLResolveInfo` object which contains information about the execution state of the query, including a `context` attribute holding per-request state such as authentication information or database session. Any GraphQL arguments are passed to the `resolve` functions as individual keyword arguments. Note that the signature of the resolver functions is a bit different in GraphQL.js, where the context is passed separately and arguments are passed as a single object. Also note that GraphQL fields must be passed as a `GraphQLField` object explicitly. Similarly, GraphQL arguments must be passed as `GraphQLArgument` objects. A more complex example is included in the top level [tests](tests) directory. Then, serve the result of a query against that type schema. ```python from graphql import graphql_sync query = '{ hello }' print(graphql_sync(schema, query)) ``` This runs a query fetching the one field defined, and then prints the result: ```python ExecutionResult(data={'hello': 'world'}, errors=None) ``` The `graphql_sync` function will first ensure the query is syntactically and semantically valid before executing it, reporting errors otherwise. ```python from graphql import graphql_sync query = '{ boyhowdy }' print(graphql_sync(schema, query)) ``` Because we queried a non-existing field, we will get the following result: ```python ExecutionResult(data=None, errors=[GraphQLError( "Cannot query field 'boyhowdy' on type 'RootQueryType'.", locations=[SourceLocation(line=1, column=3)])]) ``` The `graphql_sync` function assumes that all resolvers return values synchronously. By using coroutines as resolvers, you can also create results in an asynchronous fashion with the `graphql` function. ```python import asyncio from graphql import ( graphql, GraphQLSchema, GraphQLObjectType, GraphQLField, GraphQLString) async def resolve_hello(obj, info): await asyncio.sleep(3) return 'world' schema = GraphQLSchema( query=GraphQLObjectType( name='RootQueryType', fields={ 'hello': GraphQLField( GraphQLString, resolve=resolve_hello) })) async def main(): query = '{ hello }' print('Fetching the result...') result = await graphql(schema, query) print(result) loop = asyncio.get_event_loop() try: loop.run_until_complete(main()) finally: loop.close() ``` ## Goals and restrictions GraphQL-core-next tries to reproduce the code of the reference implementation GraphQL.js in Python as closely as possible and to stay up-to-date with the latest development of GraphQL.js. It has been created as a modern alternative to [GraphQL-core](https://github.com/graphql-python/graphql-core), a prior work by Syrus Akbary, based on an older version of GraphQL.js and also targeting older Python versions. Some parts of GraphQL-core-next have been inspired by GraphQL-core or directly taken over with only slight modifications, but most of the code has been re-implemented from scratch, replicating the latest code in GraphQL.js very closely and adding type hints for Python. Design goals for the GraphQL-core-next library are: * to be a simple, cruft-free, state-of-the-art implementation of GraphQL using current library and language versions * to be very close to the GraphQL.js reference implementation, while still using a Pythonic API and code style * to make extensive use of Python type hints, similar to how GraphQL.js makes use of Flow * to use [black](https://github.com/ambv/black) for automatic code formatting * to replicate the complete Mocha-based test suite of GraphQL.js using [pytest](https://docs.pytest.org/) Some restrictions (mostly in line with the design goals): * requires Python 3.6 or 3.7 * does not support some already deprecated methods and options of GraphQL.js * supports asynchronous operations only via async.io (does not support the additional executors in GraphQL-core) * the benchmarks have not yet been ported to Python ## Integration with other libraries and roadmap * [Graphene](http://graphene-python.org/) is a more high-level framework for building GraphQL APIs in Python, and there is already a whole ecosystem of libraries, server integrations and tools built on top of Graphene. Most of this Graphene ecosystem has also been created by Syrus Akbary, who meanwhile has handed over the maintenance and future development to members of the GraphQL-Python community. The current version 2 of Graphene is using Graphql-core as core library for much of the heavy lifting. Note that Graphene 2 is not compatible with GraphQL-core-next. The new version 3 of Graphene however is planned to use GraphQL-core-next instead of GraphQL-core, and GraphQL-core-next will be renamed to Graphql-core 3. * [Ariadne](https://github.com/mirumee/ariadne) is a Python library for implementing GraphQL servers using schema-first approach created by Mirumee Software. Ariadne is already using GraphQL-core-next as its GraphQL implementation. * [Strawberry](https://github.com/strawberry-graphql/strawberry), created by Patrick Arminio, is a new GraphQL library for Python 3, inspired by dataclasses, that is also using GraphQL-core-next as underpinning. ## Changelog Changes are tracked as [GitHub releases](https://github.com/graphql-python/graphql-core-next/releases). ## Credits and history The GraphQL-core-next library * has been created and is maintained by Christoph Zwerschke * uses ideas and code from GraphQL-core, a prior work by Syrus Akbary * is a Python port of GraphQL.js which has been developed by Lee Byron and others at Facebook, Inc. and is now maintained by the [GraphQL foundation](https://gql.foundation/join/) Please watch the recording of Lee Byron's short keynote on the [history of GraphQL](https://www.youtube.com/watch?v=VjHWkBr3tjI) at the open source leadership summit 2019 to better understand how and why GraphQL was created at Facebook and then became open sourced and ported to many different programming languages. ## License GraphQL-core-next is [MIT-licensed](https://github.com/graphql-python/graphql-core-next/blob/master/LICENSE), just like GraphQL.js. %package help Summary: Development documents and examples for GraphQL-core-next Provides: python3-GraphQL-core-next-doc %description help # GraphQL-core-next GraphQL-core-next is a Python 3.6+ port of [GraphQL.js](https://github.com/graphql/graphql-js), the JavaScript reference implementation for [GraphQL](https://graphql.org/), a query language for APIs created by Facebook. [![PyPI version](https://badge.fury.io/py/GraphQL-core-next.svg)](https://badge.fury.io/py/GraphQL-core-next) [![Documentation Status](https://readthedocs.org/projects/graphql-core-next/badge/)](https://graphql-core-next.readthedocs.io) [![Build Status](https://travis-ci.com/graphql-python/graphql-core-next.svg?branch=master)](https://travis-ci.com/graphql-python/graphql-core-next) [![Coverage Status](https://codecov.io/gh/graphql-python/graphql-core-next/branch/master/graph/badge.svg)](https://codecov.io/gh/graphql-python/graphql-core-next) [![Dependency Updates](https://pyup.io/repos/github/graphql-python/graphql-core-next/shield.svg)](https://pyup.io/repos/github/graphql-python/graphql-core-next/) [![Python 3 Status](https://pyup.io/repos/github/graphql-python/graphql-core-next/python-3-shield.svg)](https://pyup.io/repos/github/graphql-python/graphql-core-next/) [![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black) The current version 1.1.1 of GraphQL-core-next is up-to-date with GraphQL.js version 14.4.0. All parts of the API are covered by an extensive test suite of currently 1885 unit tests. Development will be continued with the new distribution name GraphQL-core from now on. ## GraphQL-core-next is now GraphQL-core 3 GraphQL-core-next has been discontinued as a separate Python distribution. Instead, it is now released as GraphQL-core version 3 and newer, replacing the existing GraphQL-core distribution. The old versions of GraphQL-core, which also support older Python versions, are still available. ## Documentation A more detailed documentation for GraphQL-core-next can be found at [graphql-core-next.readthedocs.io](https://graphql-core-next.readthedocs.io/). The documentation for GraphQL.js can be found at [graphql.org/graphql-js/](https://graphql.org/graphql-js/). The documentation for GraphQL itself can be found at [graphql.org](https://graphql.org/). There will be also [blog articles](https://cito.github.io/tags/graphql/) with more usage examples. ## Getting started An overview of GraphQL in general is available in the [README](https://github.com/graphql/graphql-spec/blob/master/README.md) for the [Specification for GraphQL](https://github.com/graphql/graphql-spec). That overview describes a simple set of GraphQL examples that exist as [tests](tests) in this repository. A good way to get started with this repository is to walk through that README and the corresponding tests in parallel. ## Installation GraphQL-core-next can be installed from PyPI using the built-in pip command: python -m pip install graphql-core-next Alternatively, you can also use [pipenv](https://docs.pipenv.org/) for installation in a virtual environment: pipenv install graphql-core-next ## Usage GraphQL-core-next provides two important capabilities: building a type schema, and serving queries against that type schema. First, build a GraphQL type schema which maps to your code base: ```python from graphql import ( GraphQLSchema, GraphQLObjectType, GraphQLField, GraphQLString) schema = GraphQLSchema( query=GraphQLObjectType( name='RootQueryType', fields={ 'hello': GraphQLField( GraphQLString, resolve=lambda obj, info: 'world') })) ``` This defines a simple schema with one type and one field, that resolves to a fixed value. The `resolve` function can return a value, a co-routine object or a list of these. It takes two positional arguments; the first one provides the root or the resolved parent field, the second one provides a `GraphQLResolveInfo` object which contains information about the execution state of the query, including a `context` attribute holding per-request state such as authentication information or database session. Any GraphQL arguments are passed to the `resolve` functions as individual keyword arguments. Note that the signature of the resolver functions is a bit different in GraphQL.js, where the context is passed separately and arguments are passed as a single object. Also note that GraphQL fields must be passed as a `GraphQLField` object explicitly. Similarly, GraphQL arguments must be passed as `GraphQLArgument` objects. A more complex example is included in the top level [tests](tests) directory. Then, serve the result of a query against that type schema. ```python from graphql import graphql_sync query = '{ hello }' print(graphql_sync(schema, query)) ``` This runs a query fetching the one field defined, and then prints the result: ```python ExecutionResult(data={'hello': 'world'}, errors=None) ``` The `graphql_sync` function will first ensure the query is syntactically and semantically valid before executing it, reporting errors otherwise. ```python from graphql import graphql_sync query = '{ boyhowdy }' print(graphql_sync(schema, query)) ``` Because we queried a non-existing field, we will get the following result: ```python ExecutionResult(data=None, errors=[GraphQLError( "Cannot query field 'boyhowdy' on type 'RootQueryType'.", locations=[SourceLocation(line=1, column=3)])]) ``` The `graphql_sync` function assumes that all resolvers return values synchronously. By using coroutines as resolvers, you can also create results in an asynchronous fashion with the `graphql` function. ```python import asyncio from graphql import ( graphql, GraphQLSchema, GraphQLObjectType, GraphQLField, GraphQLString) async def resolve_hello(obj, info): await asyncio.sleep(3) return 'world' schema = GraphQLSchema( query=GraphQLObjectType( name='RootQueryType', fields={ 'hello': GraphQLField( GraphQLString, resolve=resolve_hello) })) async def main(): query = '{ hello }' print('Fetching the result...') result = await graphql(schema, query) print(result) loop = asyncio.get_event_loop() try: loop.run_until_complete(main()) finally: loop.close() ``` ## Goals and restrictions GraphQL-core-next tries to reproduce the code of the reference implementation GraphQL.js in Python as closely as possible and to stay up-to-date with the latest development of GraphQL.js. It has been created as a modern alternative to [GraphQL-core](https://github.com/graphql-python/graphql-core), a prior work by Syrus Akbary, based on an older version of GraphQL.js and also targeting older Python versions. Some parts of GraphQL-core-next have been inspired by GraphQL-core or directly taken over with only slight modifications, but most of the code has been re-implemented from scratch, replicating the latest code in GraphQL.js very closely and adding type hints for Python. Design goals for the GraphQL-core-next library are: * to be a simple, cruft-free, state-of-the-art implementation of GraphQL using current library and language versions * to be very close to the GraphQL.js reference implementation, while still using a Pythonic API and code style * to make extensive use of Python type hints, similar to how GraphQL.js makes use of Flow * to use [black](https://github.com/ambv/black) for automatic code formatting * to replicate the complete Mocha-based test suite of GraphQL.js using [pytest](https://docs.pytest.org/) Some restrictions (mostly in line with the design goals): * requires Python 3.6 or 3.7 * does not support some already deprecated methods and options of GraphQL.js * supports asynchronous operations only via async.io (does not support the additional executors in GraphQL-core) * the benchmarks have not yet been ported to Python ## Integration with other libraries and roadmap * [Graphene](http://graphene-python.org/) is a more high-level framework for building GraphQL APIs in Python, and there is already a whole ecosystem of libraries, server integrations and tools built on top of Graphene. Most of this Graphene ecosystem has also been created by Syrus Akbary, who meanwhile has handed over the maintenance and future development to members of the GraphQL-Python community. The current version 2 of Graphene is using Graphql-core as core library for much of the heavy lifting. Note that Graphene 2 is not compatible with GraphQL-core-next. The new version 3 of Graphene however is planned to use GraphQL-core-next instead of GraphQL-core, and GraphQL-core-next will be renamed to Graphql-core 3. * [Ariadne](https://github.com/mirumee/ariadne) is a Python library for implementing GraphQL servers using schema-first approach created by Mirumee Software. Ariadne is already using GraphQL-core-next as its GraphQL implementation. * [Strawberry](https://github.com/strawberry-graphql/strawberry), created by Patrick Arminio, is a new GraphQL library for Python 3, inspired by dataclasses, that is also using GraphQL-core-next as underpinning. ## Changelog Changes are tracked as [GitHub releases](https://github.com/graphql-python/graphql-core-next/releases). ## Credits and history The GraphQL-core-next library * has been created and is maintained by Christoph Zwerschke * uses ideas and code from GraphQL-core, a prior work by Syrus Akbary * is a Python port of GraphQL.js which has been developed by Lee Byron and others at Facebook, Inc. and is now maintained by the [GraphQL foundation](https://gql.foundation/join/) Please watch the recording of Lee Byron's short keynote on the [history of GraphQL](https://www.youtube.com/watch?v=VjHWkBr3tjI) at the open source leadership summit 2019 to better understand how and why GraphQL was created at Facebook and then became open sourced and ported to many different programming languages. ## License GraphQL-core-next is [MIT-licensed](https://github.com/graphql-python/graphql-core-next/blob/master/LICENSE), just like GraphQL.js. %prep %autosetup -n GraphQL-core-next-1.1.1 %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-GraphQL-core-next -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri May 05 2023 Python_Bot - 1.1.1-1 - Package Spec generated