prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  [2.0] Update setup.py Trove classifiers
  The [classifiers](https://github.com/aio-libs/aioredis-py/blob/5a713fff3717094cca63e4a5f4b1cb7d6894a08f/setup.py#L25-L30) currently only list Python 3.6 and 3.7. This should be updated to include all versions that are tested. Or my personal preference is just to delete classifiers for minor versions, since probably no-one will remember to update them when new versions of Python are released.
  
  It also indicates the status as 4 - Beta. That should probably change when we release the final 2.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 import os.path
  2 import re
  3 
  4 from setuptools import find_packages, setup
  5 
  6 
  7 def read(*parts):
  8     with open(os.path.join(*parts)) as f:
  9         return f.read().strip()
  10 
  11 
  12 def read_version():
  13     regexp = re.compile(r"^__version__\W*=\W*\"([\d.abrc]+)\"")
  14     init_py = os.path.join(os.path.dirname(__file__), "aioredis", "__init__.py")
  15     with open(init_py) as f:
  16         for line in f:
  17             match = regexp.match(line)
  18             if match is not None:
  19                 return match.group(1)
  20         raise RuntimeError(f"Cannot find version in {init_py}")
  21 
  22 
  23 classifiers = [
  24     "License :: OSI Approved :: MIT License",
  25     "Development Status :: 4 - Beta",
  26     "Programming Language :: Python",
  27     "Programming Language :: Python :: 3",
  28     "Programming Language :: Python :: 3.6",
  29     "Programming Language :: Python :: 3.7",
  30     "Programming Language :: Python :: 3 :: Only",
  31     "Operating System :: POSIX",
  32     "Environment :: Web Environment",
  33     "Intended Audience :: Developers",
  34     "Topic :: Software Development",
  35     "Topic :: Software Development :: Libraries",
  36     "Framework :: AsyncIO",
  37 ]
  38 
  39 setup(
  40     name="aioredis",
  41     version=read_version(),
  42     description="asyncio (PEP 3156) Redis support",
  43     long_description="\n\n".join((read("README.md"), read("CHANGELOG.md"))),
  44     long_description_content_type="text/markdown",
  45     classifiers=classifiers,
  46     platforms=["POSIX"],
  47     url="https://github.com/aio-libs/aioredis",
  48     license="MIT",
  49     packages=find_packages(exclude=["tests"]),
  50     install_requires=[
  51         "async-timeout",
  52         "typing-extensions",
  53     ],
  54     extras_require={
  55         "hiredis": 'hiredis>=1.0; implementation_name=="cpython"',
  56     },
  57     package_data={"aioredis": ["py.typed"]},
  58     python_requires=">=3.6",
  59     include_package_data=True,
  60 )
  61
  ```
  
  Path: `aioredis/__init__.py`
  Content:
  ```
  1 from aioredis.client import Redis, StrictRedis
  2 from aioredis.connection import (
  3     BlockingConnectionPool,
  4     Connection,
  5     ConnectionPool,
  6     SSLConnection,
  7     UnixDomainSocketConnection,
  8 )
  9 from aioredis.exceptions import (
  10     AuthenticationError,
  11     AuthenticationWrongNumberOfArgsError,
  12     BusyLoadingError,
  13     ChildDeadlockedError,
  14     ConnectionError,
  15     DataError,
  16     InvalidResponse,
  17     PubSubError,
  18     ReadOnlyError,
  19     RedisError,
  20     ResponseError,
  21     TimeoutError,
  22     WatchError,
  23 )
  24 from aioredis.utils import from_url
  25 
  26 
  27 def int_or_str(value):
  28     try:
  29         return int(value)
  30     except ValueError:
  31         return value
  32 
  33 
  34 __version__ = "2.0.0b1"
  35 VERSION = tuple(map(int_or_str, __version__.split(".")))
  36 
  37 __all__ = [
  38     "AuthenticationError",
  39     "AuthenticationWrongNumberOfArgsError",
  40     "BlockingConnectionPool",
  41     "BusyLoadingError",
  42     "ChildDeadlockedError",
  43     "Connection",
  44     "ConnectionError",
  45     "ConnectionPool",
  46     "DataError",
  47     "from_url",
  48     "InvalidResponse",
  49     "PubSubError",
  50     "ReadOnlyError",
  51     "Redis",
  52     "RedisError",
  53     "ResponseError",
  54     "SSLConnection",
  55     "StrictRedis",
  56     "TimeoutError",
  57     "UnixDomainSocketConnection",
  58     "WatchError",
  59 ]
  60
  ```
  --- 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/aioredis/__init__.py b/aioredis/__init__.py
  --- a/aioredis/__init__.py
  +++ b/aioredis/__init__.py
  @@ -31,7 +31,7 @@
           return value
   
   
  -__version__ = "2.0.0b1"
  +__version__ = "2.0.0"
   VERSION = tuple(map(int_or_str, __version__.split(".")))
   
   __all__ = [
  diff --git a/setup.py b/setup.py
  --- a/setup.py
  +++ b/setup.py
  @@ -22,11 +22,13 @@
   
   classifiers = [
       "License :: OSI Approved :: MIT License",
  -    "Development Status :: 4 - Beta",
  +    "Development Status :: 5 - Production/Stable",
       "Programming Language :: Python",
       "Programming Language :: Python :: 3",
       "Programming Language :: Python :: 3.6",
       "Programming Language :: Python :: 3.7",
  +    "Programming Language :: Python :: 3.8",
  +    "Programming Language :: Python :: 3.9",
       "Programming Language :: Python :: 3 :: Only",
       "Operating System :: POSIX",
       "Environment :: Web Environment",
  
verification_info: {"golden_diff": "diff --git a/aioredis/__init__.py b/aioredis/__init__.py\n--- a/aioredis/__init__.py\n+++ b/aioredis/__init__.py\n@@ -31,7 +31,7 @@\n         return value\n \n \n-__version__ = \"2.0.0b1\"\n+__version__ = \"2.0.0\"\n VERSION = tuple(map(int_or_str, __version__.split(\".\")))\n \n __all__ = [\ndiff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -22,11 +22,13 @@\n \n classifiers = [\n     \"License :: OSI Approved :: MIT License\",\n-    \"Development Status :: 4 - Beta\",\n+    \"Development Status :: 5 - Production/Stable\",\n     \"Programming Language :: Python\",\n     \"Programming Language :: Python :: 3\",\n     \"Programming Language :: Python :: 3.6\",\n     \"Programming Language :: Python :: 3.7\",\n+    \"Programming Language :: Python :: 3.8\",\n+    \"Programming Language :: Python :: 3.9\",\n     \"Programming Language :: Python :: 3 :: Only\",\n     \"Operating System :: POSIX\",\n     \"Environment :: Web Environment\",\n", "issue": "[2.0] Update setup.py Trove classifiers\nThe [classifiers](https://github.com/aio-libs/aioredis-py/blob/5a713fff3717094cca63e4a5f4b1cb7d6894a08f/setup.py#L25-L30) currently only list Python 3.6 and 3.7. This should be updated to include all versions that are tested. Or my personal preference is just to delete classifiers for minor versions, since probably no-one will remember to update them when new versions of Python are released.\r\n\r\nIt also indicates the status as 4 - Beta. That should probably change when we release the final 2.0.0.\n", "before_files": [{"content": "import os.path\nimport re\n\nfrom setuptools import find_packages, setup\n\n\ndef read(*parts):\n    with open(os.path.join(*parts)) as f:\n        return f.read().strip()\n\n\ndef read_version():\n    regexp = re.compile(r\"^__version__\\W*=\\W*\\\"([\\d.abrc]+)\\\"\")\n    init_py = os.path.join(os.path.dirname(__file__), \"aioredis\", \"__init__.py\")\n    with open(init_py) as f:\n        for line in f:\n            match = regexp.match(line)\n            if match is not None:\n                return match.group(1)\n        raise RuntimeError(f\"Cannot find version in {init_py}\")\n\n\nclassifiers = [\n    \"License :: OSI Approved :: MIT License\",\n    \"Development Status :: 4 - Beta\",\n    \"Programming Language :: Python\",\n    \"Programming Language :: Python :: 3\",\n    \"Programming Language :: Python :: 3.6\",\n    \"Programming Language :: Python :: 3.7\",\n    \"Programming Language :: Python :: 3 :: Only\",\n    \"Operating System :: POSIX\",\n    \"Environment :: Web Environment\",\n    \"Intended Audience :: Developers\",\n    \"Topic :: Software Development\",\n    \"Topic :: Software Development :: Libraries\",\n    \"Framework :: AsyncIO\",\n]\n\nsetup(\n    name=\"aioredis\",\n    version=read_version(),\n    description=\"asyncio (PEP 3156) Redis support\",\n    long_description=\"\\n\\n\".join((read(\"README.md\"), read(\"CHANGELOG.md\"))),\n    long_description_content_type=\"text/markdown\",\n    classifiers=classifiers,\n    platforms=[\"POSIX\"],\n    url=\"https://github.com/aio-libs/aioredis\",\n    license=\"MIT\",\n    packages=find_packages(exclude=[\"tests\"]),\n    install_requires=[\n        \"async-timeout\",\n        \"typing-extensions\",\n    ],\n    extras_require={\n        \"hiredis\": 'hiredis>=1.0; implementation_name==\"cpython\"',\n    },\n    package_data={\"aioredis\": [\"py.typed\"]},\n    python_requires=\">=3.6\",\n    include_package_data=True,\n)\n", "path": "setup.py"}, {"content": "from aioredis.client import Redis, StrictRedis\nfrom aioredis.connection import (\n    BlockingConnectionPool,\n    Connection,\n    ConnectionPool,\n    SSLConnection,\n    UnixDomainSocketConnection,\n)\nfrom aioredis.exceptions import (\n    AuthenticationError,\n    AuthenticationWrongNumberOfArgsError,\n    BusyLoadingError,\n    ChildDeadlockedError,\n    ConnectionError,\n    DataError,\n    InvalidResponse,\n    PubSubError,\n    ReadOnlyError,\n    RedisError,\n    ResponseError,\n    TimeoutError,\n    WatchError,\n)\nfrom aioredis.utils import from_url\n\n\ndef int_or_str(value):\n    try:\n        return int(value)\n    except ValueError:\n        return value\n\n\n__version__ = \"2.0.0b1\"\nVERSION = tuple(map(int_or_str, __version__.split(\".\")))\n\n__all__ = [\n    \"AuthenticationError\",\n    \"AuthenticationWrongNumberOfArgsError\",\n    \"BlockingConnectionPool\",\n    \"BusyLoadingError\",\n    \"ChildDeadlockedError\",\n    \"Connection\",\n    \"ConnectionError\",\n    \"ConnectionPool\",\n    \"DataError\",\n    \"from_url\",\n    \"InvalidResponse\",\n    \"PubSubError\",\n    \"ReadOnlyError\",\n    \"Redis\",\n    \"RedisError\",\n    \"ResponseError\",\n    \"SSLConnection\",\n    \"StrictRedis\",\n    \"TimeoutError\",\n    \"UnixDomainSocketConnection\",\n    \"WatchError\",\n]\n", "path": "aioredis/__init__.py"}], "after_files": [{"content": "import os.path\nimport re\n\nfrom setuptools import find_packages, setup\n\n\ndef read(*parts):\n    with open(os.path.join(*parts)) as f:\n        return f.read().strip()\n\n\ndef read_version():\n    regexp = re.compile(r\"^__version__\\W*=\\W*\\\"([\\d.abrc]+)\\\"\")\n    init_py = os.path.join(os.path.dirname(__file__), \"aioredis\", \"__init__.py\")\n    with open(init_py) as f:\n        for line in f:\n            match = regexp.match(line)\n            if match is not None:\n                return match.group(1)\n        raise RuntimeError(f\"Cannot find version in {init_py}\")\n\n\nclassifiers = [\n    \"License :: OSI Approved :: MIT License\",\n    \"Development Status :: 5 - Production/Stable\",\n    \"Programming Language :: Python\",\n    \"Programming Language :: Python :: 3\",\n    \"Programming Language :: Python :: 3.6\",\n    \"Programming Language :: Python :: 3.7\",\n    \"Programming Language :: Python :: 3.8\",\n    \"Programming Language :: Python :: 3.9\",\n    \"Programming Language :: Python :: 3 :: Only\",\n    \"Operating System :: POSIX\",\n    \"Environment :: Web Environment\",\n    \"Intended Audience :: Developers\",\n    \"Topic :: Software Development\",\n    \"Topic :: Software Development :: Libraries\",\n    \"Framework :: AsyncIO\",\n]\n\nsetup(\n    name=\"aioredis\",\n    version=read_version(),\n    description=\"asyncio (PEP 3156) Redis support\",\n    long_description=\"\\n\\n\".join((read(\"README.md\"), read(\"CHANGELOG.md\"))),\n    long_description_content_type=\"text/markdown\",\n    classifiers=classifiers,\n    platforms=[\"POSIX\"],\n    url=\"https://github.com/aio-libs/aioredis\",\n    license=\"MIT\",\n    packages=find_packages(exclude=[\"tests\"]),\n    install_requires=[\n        \"async-timeout\",\n        \"typing-extensions\",\n    ],\n    extras_require={\n        \"hiredis\": 'hiredis>=1.0; implementation_name==\"cpython\"',\n    },\n    package_data={\"aioredis\": [\"py.typed\"]},\n    python_requires=\">=3.6\",\n    include_package_data=True,\n)\n", "path": "setup.py"}, {"content": "from aioredis.client import Redis, StrictRedis\nfrom aioredis.connection import (\n    BlockingConnectionPool,\n    Connection,\n    ConnectionPool,\n    SSLConnection,\n    UnixDomainSocketConnection,\n)\nfrom aioredis.exceptions import (\n    AuthenticationError,\n    AuthenticationWrongNumberOfArgsError,\n    BusyLoadingError,\n    ChildDeadlockedError,\n    ConnectionError,\n    DataError,\n    InvalidResponse,\n    PubSubError,\n    ReadOnlyError,\n    RedisError,\n    ResponseError,\n    TimeoutError,\n    WatchError,\n)\nfrom aioredis.utils import from_url\n\n\ndef int_or_str(value):\n    try:\n        return int(value)\n    except ValueError:\n        return value\n\n\n__version__ = \"2.0.0\"\nVERSION = tuple(map(int_or_str, __version__.split(\".\")))\n\n__all__ = [\n    \"AuthenticationError\",\n    \"AuthenticationWrongNumberOfArgsError\",\n    \"BlockingConnectionPool\",\n    \"BusyLoadingError\",\n    \"ChildDeadlockedError\",\n    \"Connection\",\n    \"ConnectionError\",\n    \"ConnectionPool\",\n    \"DataError\",\n    \"from_url\",\n    \"InvalidResponse\",\n    \"PubSubError\",\n    \"ReadOnlyError\",\n    \"Redis\",\n    \"RedisError\",\n    \"ResponseError\",\n    \"SSLConnection\",\n    \"StrictRedis\",\n    \"TimeoutError\",\n    \"UnixDomainSocketConnection\",\n    \"WatchError\",\n]\n", "path": "aioredis/__init__.py"}]}