strategy:
matrix:
- python-version: ["3.6", "3.7", "3.8", "3.9"]
+ python-version: ["3.6", "3.7", "3.8", "3.9", "3.10.0-beta.3"]
steps:
- uses: "actions/checkout@v2"
!!! Warning
GraphQL support in Starlette is **deprecated** as of version 0.15 and will
- be removed in a future release. Please consider using a third-party library
- to provide GraphQL support. This is usually done by mounting a GraphQL ASGI
- application. See [#619](https://github.com/encode/starlette/issues/619).
+ be removed in a future release. It is also incompatible with Python 3.10+.
+ Please consider using a third-party library to provide GraphQL support. This
+ is usually done by mounting a GraphQL ASGI application.
+ See [#619](https://github.com/encode/starlette/issues/619).
Some example libraries are:
* [Ariadne](https://ariadnegraphql.org/docs/asgi)
# Optionals
-graphene
+graphene; python_version<'3.10'
itsdangerous
jinja2
python-multipart
[coverage:run]
source_pkgs = starlette, tests
+# GraphQLApp incompatible with and untested on Python 3.10. It's deprecated, let's just ignore
+# coverage for it until it's gone.
+omit =
+ starlette/graphql.py
+ tests/test_graphql.py
install_requires=["anyio>=3.0.0,<4"],
extras_require={
"full": [
- "graphene",
+ "graphene; python_version<'3.10'",
"itsdangerous",
"jinja2",
"python-multipart",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
+ "Programming Language :: Python :: 3.10",
],
zip_safe=False,
)
+import sys
+
import pytest
from starlette.testclient import TestClient
+collect_ignore = ["test_graphql.py"] if sys.version_info >= (3, 10) else []
+
@pytest.fixture(
params=[