We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
PRAW 6.5.1 and 7.0.0 require Python versions above 3.5.2
**Describe the bug**

At https://praw.readthedocs.io/en/latest/getting_started/installation.html, it says:

> PRAW supports Python 3.5+

3.5.2 seems to be insufficient for PRAW versions after 6.4.0. I *think* 3.5.3 is probably sufficient based on what I have read searching for information on this error message, but I am skipping that version on this particular system so I haven't confirmed.

**To Reproduce**
Steps to reproduce the behavior:
1. Upgrade PRAW to either version 6.5.1 or 7.0.0

2. Run a simple PRAW script

3. Get this error:

```
$ python3 ~/test.py
Traceback (most recent call last):
  File "/home/myusername/test.py", line 5, in <module>
    import praw
  File "/home/myusername/.local/lib/python3.5/site-packages/praw/__init__.py", line 14, in <module>
    from .reddit import Reddit  # NOQA
  File "/home/myusername/.local/lib/python3.5/site-packages/praw/reddit.py", line 50, in <module>
    class Reddit:
  File "/home/myusername/.local/lib/python3.5/site-packages/praw/reddit.py", line 128, in Reddit
    requestor_kwargs: Dict[str, Any] = None,
  File "/usr/lib/python3.5/typing.py", line 649, in __getitem__
    return Union[arg, type(None)]
  File "/usr/lib/python3.5/typing.py", line 552, in __getitem__
    dict(self.__dict__), parameters, _root=True)
  File "/usr/lib/python3.5/typing.py", line 512, in __new__
    for t2 in all_params - {t1} if not isinstance(t2, TypeVar)):
  File "/usr/lib/python3.5/typing.py", line 512, in <genexpr>
    for t2 in all_params - {t1} if not isinstance(t2, TypeVar)):
  File "/usr/lib/python3.5/typing.py", line 1077, in __subclasscheck__
    if super().__subclasscheck__(cls):
  File "/usr/lib/python3.5/abc.py", line 225, in __subclasscheck__
    for scls in cls.__subclasses__():
TypeError: descriptor '__subclasses__' of 'type' object needs an argument
```

**Expected behavior**

Python 3.5.2 works fine with PRAW 6.4.0 and earlier.

**Code/Logs**

`import praw` will do the trick.

**System Info**
 - OS: Linux
 - Python: 3.5.2
 - PRAW Version: 6.5.1 or 7.0.0



--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `setup.py`
Content:
```
1 """praw setup.py"""
2 
3 import re
4 from codecs import open
5 from os import path
6 
7 from setuptools import find_packages, setup
8 
9 PACKAGE_NAME = "praw"
10 HERE = path.abspath(path.dirname(__file__))
11 with open(path.join(HERE, "README.rst"), encoding="utf-8") as fp:
12     README = fp.read()
13 with open(path.join(HERE, PACKAGE_NAME, "const.py"), encoding="utf-8") as fp:
14     VERSION = re.search('__version__ = "([^"]+)"', fp.read()).group(1)
15 
16 extras = {
17     "ci": ["coveralls"],
18     "dev": ["pre-commit"],
19     "lint": [
20         "black",
21         "flake8",
22         "pydocstyle",
23         "sphinx<3.0",
24         "sphinx_rtd_theme",
25     ],
26     "test": [
27         "betamax >=0.8, <0.9",
28         "betamax-matchers >=0.3.0, <0.5",
29         "pytest >=2.7.3",
30     ],
31 }
32 extras["dev"] += extras["lint"] + extras["test"]
33 
34 setup(
35     name=PACKAGE_NAME,
36     author="Bryce Boe",
37     author_email="bbzbryce@gmail.com",
38     python_requires=">=3.5",
39     classifiers=[
40         "Development Status :: 5 - Production/Stable",
41         "Environment :: Console",
42         "Intended Audience :: Developers",
43         "License :: OSI Approved :: BSD License",
44         "Natural Language :: English",
45         "Operating System :: OS Independent",
46         "Programming Language :: Python",
47         "Programming Language :: Python :: 3",
48         "Programming Language :: Python :: 3.5",
49         "Programming Language :: Python :: 3.6",
50         "Programming Language :: Python :: 3.7",
51         "Programming Language :: Python :: 3.8",
52         "Topic :: Utilities",
53     ],
54     description=(
55         "PRAW, an acronym for `Python Reddit API Wrapper`, is a "
56         "python package that allows for simple access to "
57         "reddit's API."
58     ),
59     extras_require=extras,
60     install_requires=[
61         "prawcore >=1.3.0, <2.0",
62         "update_checker >=0.16",
63         "websocket-client >=0.54.0",
64     ],
65     keywords="reddit api wrapper",
66     license="Simplified BSD License",
67     long_description=README,
68     package_data={
69         "": ["LICENSE.txt"],
70         PACKAGE_NAME: ["*.ini", "images/*.jpg"],
71     },
72     packages=find_packages(exclude=["tests", "tests.*", "tools", "tools.*"]),
73     url="https://praw.readthedocs.org/",
74     version=VERSION,
75 )
76
```
--- 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/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -35,7 +35,7 @@
     name=PACKAGE_NAME,
     author="Bryce Boe",
     author_email="bbzbryce@gmail.com",
-    python_requires=">=3.5",
+    python_requires=">3.5.3",
     classifiers=[
         "Development Status :: 5 - Production/Stable",
         "Environment :: Console",

{"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -35,7 +35,7 @@\n     name=PACKAGE_NAME,\n     author=\"Bryce Boe\",\n     author_email=\"bbzbryce@gmail.com\",\n-    python_requires=\">=3.5\",\n+    python_requires=\">3.5.3\",\n     classifiers=[\n         \"Development Status :: 5 - Production/Stable\",\n         \"Environment :: Console\",\n", "issue": "PRAW 6.5.1 and 7.0.0 require Python versions above 3.5.2\n**Describe the bug**\r\n\r\nAt https://praw.readthedocs.io/en/latest/getting_started/installation.html, it says:\r\n\r\n> PRAW supports Python 3.5+\r\n\r\n3.5.2 seems to be insufficient for PRAW versions after 6.4.0. I *think* 3.5.3 is probably sufficient based on what I have read searching for information on this error message, but I am skipping that version on this particular system so I haven't confirmed.\r\n\r\n**To Reproduce**\r\nSteps to reproduce the behavior:\r\n1. Upgrade PRAW to either version 6.5.1 or 7.0.0\r\n\r\n2. Run a simple PRAW script\r\n\r\n3. Get this error:\r\n\r\n```\r\n$ python3 ~/test.py\r\nTraceback (most recent call last):\r\n  File \"/home/myusername/test.py\", line 5, in <module>\r\n    import praw\r\n  File \"/home/myusername/.local/lib/python3.5/site-packages/praw/__init__.py\", line 14, in <module>\r\n    from .reddit import Reddit  # NOQA\r\n  File \"/home/myusername/.local/lib/python3.5/site-packages/praw/reddit.py\", line 50, in <module>\r\n    class Reddit:\r\n  File \"/home/myusername/.local/lib/python3.5/site-packages/praw/reddit.py\", line 128, in Reddit\r\n    requestor_kwargs: Dict[str, Any] = None,\r\n  File \"/usr/lib/python3.5/typing.py\", line 649, in __getitem__\r\n    return Union[arg, type(None)]\r\n  File \"/usr/lib/python3.5/typing.py\", line 552, in __getitem__\r\n    dict(self.__dict__), parameters, _root=True)\r\n  File \"/usr/lib/python3.5/typing.py\", line 512, in __new__\r\n    for t2 in all_params - {t1} if not isinstance(t2, TypeVar)):\r\n  File \"/usr/lib/python3.5/typing.py\", line 512, in <genexpr>\r\n    for t2 in all_params - {t1} if not isinstance(t2, TypeVar)):\r\n  File \"/usr/lib/python3.5/typing.py\", line 1077, in __subclasscheck__\r\n    if super().__subclasscheck__(cls):\r\n  File \"/usr/lib/python3.5/abc.py\", line 225, in __subclasscheck__\r\n    for scls in cls.__subclasses__():\r\nTypeError: descriptor '__subclasses__' of 'type' object needs an argument\r\n```\r\n\r\n**Expected behavior**\r\n\r\nPython 3.5.2 works fine with PRAW 6.4.0 and earlier.\r\n\r\n**Code/Logs**\r\n\r\n`import praw` will do the trick.\r\n\r\n**System Info**\r\n - OS: Linux\r\n - Python: 3.5.2\r\n - PRAW Version: 6.5.1 or 7.0.0\r\n\r\n\n", "before_files": [{"content": "\"\"\"praw setup.py\"\"\"\n\nimport re\nfrom codecs import open\nfrom os import path\n\nfrom setuptools import find_packages, setup\n\nPACKAGE_NAME = \"praw\"\nHERE = path.abspath(path.dirname(__file__))\nwith open(path.join(HERE, \"README.rst\"), encoding=\"utf-8\") as fp:\n    README = fp.read()\nwith open(path.join(HERE, PACKAGE_NAME, \"const.py\"), encoding=\"utf-8\") as fp:\n    VERSION = re.search('__version__ = \"([^\"]+)\"', fp.read()).group(1)\n\nextras = {\n    \"ci\": [\"coveralls\"],\n    \"dev\": [\"pre-commit\"],\n    \"lint\": [\n        \"black\",\n        \"flake8\",\n        \"pydocstyle\",\n        \"sphinx<3.0\",\n        \"sphinx_rtd_theme\",\n    ],\n    \"test\": [\n        \"betamax >=0.8, <0.9\",\n        \"betamax-matchers >=0.3.0, <0.5\",\n        \"pytest >=2.7.3\",\n    ],\n}\nextras[\"dev\"] += extras[\"lint\"] + extras[\"test\"]\n\nsetup(\n    name=PACKAGE_NAME,\n    author=\"Bryce Boe\",\n    author_email=\"bbzbryce@gmail.com\",\n    python_requires=\">=3.5\",\n    classifiers=[\n        \"Development Status :: 5 - Production/Stable\",\n        \"Environment :: Console\",\n        \"Intended Audience :: Developers\",\n        \"License :: OSI Approved :: BSD License\",\n        \"Natural Language :: English\",\n        \"Operating System :: OS Independent\",\n        \"Programming Language :: Python\",\n        \"Programming Language :: Python :: 3\",\n        \"Programming Language :: Python :: 3.5\",\n        \"Programming Language :: Python :: 3.6\",\n        \"Programming Language :: Python :: 3.7\",\n        \"Programming Language :: Python :: 3.8\",\n        \"Topic :: Utilities\",\n    ],\n    description=(\n        \"PRAW, an acronym for `Python Reddit API Wrapper`, is a \"\n        \"python package that allows for simple access to \"\n        \"reddit's API.\"\n    ),\n    extras_require=extras,\n    install_requires=[\n        \"prawcore >=1.3.0, <2.0\",\n        \"update_checker >=0.16\",\n        \"websocket-client >=0.54.0\",\n    ],\n    keywords=\"reddit api wrapper\",\n    license=\"Simplified BSD License\",\n    long_description=README,\n    package_data={\n        \"\": [\"LICENSE.txt\"],\n        PACKAGE_NAME: [\"*.ini\", \"images/*.jpg\"],\n    },\n    packages=find_packages(exclude=[\"tests\", \"tests.*\", \"tools\", \"tools.*\"]),\n    url=\"https://praw.readthedocs.org/\",\n    version=VERSION,\n)\n", "path": "setup.py"}], "after_files": [{"content": "\"\"\"praw setup.py\"\"\"\n\nimport re\nfrom codecs import open\nfrom os import path\n\nfrom setuptools import find_packages, setup\n\nPACKAGE_NAME = \"praw\"\nHERE = path.abspath(path.dirname(__file__))\nwith open(path.join(HERE, \"README.rst\"), encoding=\"utf-8\") as fp:\n    README = fp.read()\nwith open(path.join(HERE, PACKAGE_NAME, \"const.py\"), encoding=\"utf-8\") as fp:\n    VERSION = re.search('__version__ = \"([^\"]+)\"', fp.read()).group(1)\n\nextras = {\n    \"ci\": [\"coveralls\"],\n    \"dev\": [\"pre-commit\"],\n    \"lint\": [\n        \"black\",\n        \"flake8\",\n        \"pydocstyle\",\n        \"sphinx<3.0\",\n        \"sphinx_rtd_theme\",\n    ],\n    \"test\": [\n        \"betamax >=0.8, <0.9\",\n        \"betamax-matchers >=0.3.0, <0.5\",\n        \"pytest >=2.7.3\",\n    ],\n}\nextras[\"dev\"] += extras[\"lint\"] + extras[\"test\"]\n\nsetup(\n    name=PACKAGE_NAME,\n    author=\"Bryce Boe\",\n    author_email=\"bbzbryce@gmail.com\",\n    python_requires=\">3.5.3\",\n    classifiers=[\n        \"Development Status :: 5 - Production/Stable\",\n        \"Environment :: Console\",\n        \"Intended Audience :: Developers\",\n        \"License :: OSI Approved :: BSD License\",\n        \"Natural Language :: English\",\n        \"Operating System :: OS Independent\",\n        \"Programming Language :: Python\",\n        \"Programming Language :: Python :: 3\",\n        \"Programming Language :: Python :: 3.5\",\n        \"Programming Language :: Python :: 3.6\",\n        \"Programming Language :: Python :: 3.7\",\n        \"Programming Language :: Python :: 3.8\",\n        \"Topic :: Utilities\",\n    ],\n    description=(\n        \"PRAW, an acronym for `Python Reddit API Wrapper`, is a \"\n        \"python package that allows for simple access to \"\n        \"reddit's API.\"\n    ),\n    extras_require=extras,\n    install_requires=[\n        \"prawcore >=1.3.0, <2.0\",\n        \"update_checker >=0.16\",\n        \"websocket-client >=0.54.0\",\n    ],\n    keywords=\"reddit api wrapper\",\n    license=\"Simplified BSD License\",\n    long_description=README,\n    package_data={\n        \"\": [\"LICENSE.txt\"],\n        PACKAGE_NAME: [\"*.ini\", \"images/*.jpg\"],\n    },\n    packages=find_packages(exclude=[\"tests\", \"tests.*\", \"tools\", \"tools.*\"]),\n    url=\"https://praw.readthedocs.org/\",\n    version=VERSION,\n)\n", "path": "setup.py"}]}