We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Drop Python 3.5
Due to lack of support for [variable type annotations](https://www.python.org/dev/peps/pep-0526/) I suggest to drop support for Python 3.5. This is already a problem in #30 in which either code or mypy is failing and only solution is to remove hints.

We might consider testing ariadne on 3.7 for future-proofing our project.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `ariadne/executable_schema.py`
Content:
```
1 from collections import defaultdict
2 from itertools import chain
3 from typing import Iterator, List, Union
4 
5 from graphql import GraphQLSchema
6 
7 from .build_schema import build_schema_from_type_definitions
8 from .resolvers import add_resolve_functions_to_schema
9 
10 
11 def decompose_maps(resolvers_maps: List[dict]) -> Iterator[tuple]:
12     def flatten(rm):
13         for key, value in rm.items():
14             for resolver_name, resolver in value.items():
15                 yield (key, resolver_name, resolver)
16 
17     return chain.from_iterable(flatten(m) for m in resolvers_maps)
18 
19 
20 def merge_resolvers(resolver_list: Iterator[tuple]) -> dict:
21     output = defaultdict(dict)  # type: dict
22     for key, resolver_name, resolver in resolver_list:
23         output[key][resolver_name] = resolver
24     return output
25 
26 
27 def join_type_defs(type_defs: List[str]) -> str:
28     return "\n\n".join(t.strip() for t in type_defs)
29 
30 
31 def make_executable_schema(
32     type_defs: Union[str, List[str]], resolvers: Union[dict, List[dict]]
33 ) -> GraphQLSchema:
34     if isinstance(type_defs, list):
35         type_defs = join_type_defs(type_defs)
36 
37     schema = build_schema_from_type_definitions(type_defs)
38 
39     if isinstance(resolvers, list):
40         add_resolve_functions_to_schema(
41             schema, merge_resolvers(decompose_maps(resolvers))
42         )
43     elif isinstance(resolvers, dict):
44         add_resolve_functions_to_schema(schema, resolvers)
45 
46     return schema
47
```

Path: `setup.py`
Content:
```
1 #! /usr/bin/env python
2 import os
3 from setuptools import setup
4 
5 CLASSIFIERS = [
6     "Intended Audience :: Developers",
7     "License :: OSI Approved :: BSD License",
8     "Operating System :: OS Independent",
9     "Programming Language :: Python",
10     "Programming Language :: Python :: 3.5",
11     "Programming Language :: Python :: 3.6",
12     "Programming Language :: Python :: 3.7",
13     "Topic :: Software Development :: Libraries :: Python Modules",
14 ]
15 
16 README_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), "README.md")
17 with open(README_PATH, "r") as f:
18     README = f.read()
19 
20 setup(
21     name="ariadne",
22     author="Mirumee Software",
23     author_email="hello@mirumee.com",
24     description="Ariadne is a Python library for implementing GraphQL servers.",
25     long_description=README,
26     long_description_content_type="text/markdown",
27     license="BSD",
28     version="0.1.0",
29     url="https://github.com/mirumee/ariadne",
30     packages=["ariadne"],
31     install_requires=["graphql-core>=2.1", "typing>=3.6.0"],
32     classifiers=CLASSIFIERS,
33     platforms=["any"],
34 )
35
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/ariadne/executable_schema.py b/ariadne/executable_schema.py
--- a/ariadne/executable_schema.py
+++ b/ariadne/executable_schema.py
@@ -18,7 +18,7 @@
 
 
 def merge_resolvers(resolver_list: Iterator[tuple]) -> dict:
-    output = defaultdict(dict)  # type: dict
+    output: dict = defaultdict(dict)
     for key, resolver_name, resolver in resolver_list:
         output[key][resolver_name] = resolver
     return output
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -7,7 +7,6 @@
     "License :: OSI Approved :: BSD License",
     "Operating System :: OS Independent",
     "Programming Language :: Python",
-    "Programming Language :: Python :: 3.5",
     "Programming Language :: Python :: 3.6",
     "Programming Language :: Python :: 3.7",
     "Topic :: Software Development :: Libraries :: Python Modules",

{"golden_diff": "diff --git a/ariadne/executable_schema.py b/ariadne/executable_schema.py\n--- a/ariadne/executable_schema.py\n+++ b/ariadne/executable_schema.py\n@@ -18,7 +18,7 @@\n \n \n def merge_resolvers(resolver_list: Iterator[tuple]) -> dict:\n-    output = defaultdict(dict)  # type: dict\n+    output: dict = defaultdict(dict)\n     for key, resolver_name, resolver in resolver_list:\n         output[key][resolver_name] = resolver\n     return output\ndiff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -7,7 +7,6 @@\n     \"License :: OSI Approved :: BSD License\",\n     \"Operating System :: OS Independent\",\n     \"Programming Language :: Python\",\n-    \"Programming Language :: Python :: 3.5\",\n     \"Programming Language :: Python :: 3.6\",\n     \"Programming Language :: Python :: 3.7\",\n     \"Topic :: Software Development :: Libraries :: Python Modules\",\n", "issue": "Drop Python 3.5\nDue to lack of support for [variable type annotations](https://www.python.org/dev/peps/pep-0526/) I suggest to drop support for Python 3.5. This is already a problem in #30 in which either code or mypy is failing and only solution is to remove hints.\r\n\r\nWe might consider testing ariadne on 3.7 for future-proofing our project.\n", "before_files": [{"content": "from collections import defaultdict\nfrom itertools import chain\nfrom typing import Iterator, List, Union\n\nfrom graphql import GraphQLSchema\n\nfrom .build_schema import build_schema_from_type_definitions\nfrom .resolvers import add_resolve_functions_to_schema\n\n\ndef decompose_maps(resolvers_maps: List[dict]) -> Iterator[tuple]:\n    def flatten(rm):\n        for key, value in rm.items():\n            for resolver_name, resolver in value.items():\n                yield (key, resolver_name, resolver)\n\n    return chain.from_iterable(flatten(m) for m in resolvers_maps)\n\n\ndef merge_resolvers(resolver_list: Iterator[tuple]) -> dict:\n    output = defaultdict(dict)  # type: dict\n    for key, resolver_name, resolver in resolver_list:\n        output[key][resolver_name] = resolver\n    return output\n\n\ndef join_type_defs(type_defs: List[str]) -> str:\n    return \"\\n\\n\".join(t.strip() for t in type_defs)\n\n\ndef make_executable_schema(\n    type_defs: Union[str, List[str]], resolvers: Union[dict, List[dict]]\n) -> GraphQLSchema:\n    if isinstance(type_defs, list):\n        type_defs = join_type_defs(type_defs)\n\n    schema = build_schema_from_type_definitions(type_defs)\n\n    if isinstance(resolvers, list):\n        add_resolve_functions_to_schema(\n            schema, merge_resolvers(decompose_maps(resolvers))\n        )\n    elif isinstance(resolvers, dict):\n        add_resolve_functions_to_schema(schema, resolvers)\n\n    return schema\n", "path": "ariadne/executable_schema.py"}, {"content": "#! /usr/bin/env python\nimport os\nfrom setuptools import setup\n\nCLASSIFIERS = [\n    \"Intended Audience :: Developers\",\n    \"License :: OSI Approved :: BSD License\",\n    \"Operating System :: OS Independent\",\n    \"Programming Language :: Python\",\n    \"Programming Language :: Python :: 3.5\",\n    \"Programming Language :: Python :: 3.6\",\n    \"Programming Language :: Python :: 3.7\",\n    \"Topic :: Software Development :: Libraries :: Python Modules\",\n]\n\nREADME_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), \"README.md\")\nwith open(README_PATH, \"r\") as f:\n    README = f.read()\n\nsetup(\n    name=\"ariadne\",\n    author=\"Mirumee Software\",\n    author_email=\"hello@mirumee.com\",\n    description=\"Ariadne is a Python library for implementing GraphQL servers.\",\n    long_description=README,\n    long_description_content_type=\"text/markdown\",\n    license=\"BSD\",\n    version=\"0.1.0\",\n    url=\"https://github.com/mirumee/ariadne\",\n    packages=[\"ariadne\"],\n    install_requires=[\"graphql-core>=2.1\", \"typing>=3.6.0\"],\n    classifiers=CLASSIFIERS,\n    platforms=[\"any\"],\n)\n", "path": "setup.py"}], "after_files": [{"content": "from collections import defaultdict\nfrom itertools import chain\nfrom typing import Iterator, List, Union\n\nfrom graphql import GraphQLSchema\n\nfrom .build_schema import build_schema_from_type_definitions\nfrom .resolvers import add_resolve_functions_to_schema\n\n\ndef decompose_maps(resolvers_maps: List[dict]) -> Iterator[tuple]:\n    def flatten(rm):\n        for key, value in rm.items():\n            for resolver_name, resolver in value.items():\n                yield (key, resolver_name, resolver)\n\n    return chain.from_iterable(flatten(m) for m in resolvers_maps)\n\n\ndef merge_resolvers(resolver_list: Iterator[tuple]) -> dict:\n    output: dict = defaultdict(dict)\n    for key, resolver_name, resolver in resolver_list:\n        output[key][resolver_name] = resolver\n    return output\n\n\ndef join_type_defs(type_defs: List[str]) -> str:\n    return \"\\n\\n\".join(t.strip() for t in type_defs)\n\n\ndef make_executable_schema(\n    type_defs: Union[str, List[str]], resolvers: Union[dict, List[dict]]\n) -> GraphQLSchema:\n    if isinstance(type_defs, list):\n        type_defs = join_type_defs(type_defs)\n\n    schema = build_schema_from_type_definitions(type_defs)\n\n    if isinstance(resolvers, list):\n        add_resolve_functions_to_schema(\n            schema, merge_resolvers(decompose_maps(resolvers))\n        )\n    elif isinstance(resolvers, dict):\n        add_resolve_functions_to_schema(schema, resolvers)\n\n    return schema\n", "path": "ariadne/executable_schema.py"}, {"content": "#! /usr/bin/env python\nimport os\nfrom setuptools import setup\n\nCLASSIFIERS = [\n    \"Intended Audience :: Developers\",\n    \"License :: OSI Approved :: BSD License\",\n    \"Operating System :: OS Independent\",\n    \"Programming Language :: Python\",\n    \"Programming Language :: Python :: 3.6\",\n    \"Programming Language :: Python :: 3.7\",\n    \"Topic :: Software Development :: Libraries :: Python Modules\",\n]\n\nREADME_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), \"README.md\")\nwith open(README_PATH, \"r\") as f:\n    README = f.read()\n\nsetup(\n    name=\"ariadne\",\n    author=\"Mirumee Software\",\n    author_email=\"hello@mirumee.com\",\n    description=\"Ariadne is a Python library for implementing GraphQL servers.\",\n    long_description=README,\n    long_description_content_type=\"text/markdown\",\n    license=\"BSD\",\n    version=\"0.1.0\",\n    url=\"https://github.com/mirumee/ariadne\",\n    packages=[\"ariadne\"],\n    install_requires=[\"graphql-core>=2.1\", \"typing>=3.6.0\"],\n    classifiers=CLASSIFIERS,\n    platforms=[\"any\"],\n)\n", "path": "setup.py"}]}