summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-05 13:23:13 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-05 13:23:13 +0000
commitdc947a52b139607ddda233066574f789ddf1dc66 (patch)
tree6504ab738e87a1270406ce7b050e0bfc723f02cb
parent5e181641961237a32747a09890d3ea62cce0cf21 (diff)
automatic import of python-graphql-core-nextopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-graphql-core-next.spec858
-rw-r--r--sources1
3 files changed, 860 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..b46e16c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/GraphQL-core-next-1.1.1.tar.gz
diff --git a/python-graphql-core-next.spec b/python-graphql-core-next.spec
new file mode 100644
index 0000000..840a752
--- /dev/null
+++ b/python-graphql-core-next.spec
@@ -0,0 +1,858 @@
+%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 <Python_Bot@openeuler.org> - 1.1.1-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..94d85ab
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+2de6923aa6068bd29b704e73559af8fc GraphQL-core-next-1.1.1.tar.gz