prompt: 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()
  
  ```
  
golden_diff: 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",
  
verification_info: {"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"}]}