We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Version 21.0.1 or higher breaks with python 3.5
I am currently running an older application with Python 3.5, and I encountered an error when attempting to update the Gunicorn version to the latest one:

```
NameError: name 'ModuleNotFoundError' is not defined
```

After some investigation, I realized that the 'ModuleNotFoundError' is only available for Python 3.6 or higher. My suspicion is that this bug was introduced in [this commit](https://github.com/benoitc/gunicorn/commit/f628dd9730f965b1917397ea1846c68844b1fe7a).

As a result, it seems that Gunicorn is not fully compatible with Python 3.5


--- 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 # -*- coding: utf-8 -
2 #
3 # This file is part of gunicorn released under the MIT license.
4 # See the NOTICE for more information.
5 
6 import os
7 import sys
8 
9 from setuptools import setup, find_packages
10 from setuptools.command.test import test as TestCommand
11 
12 from gunicorn import __version__
13 
14 
15 CLASSIFIERS = [
16     'Development Status :: 5 - Production/Stable',
17     'Environment :: Other Environment',
18     'Intended Audience :: Developers',
19     'License :: OSI Approved :: MIT License',
20     'Operating System :: MacOS :: MacOS X',
21     'Operating System :: POSIX',
22     'Programming Language :: Python',
23     'Programming Language :: Python :: 3',
24     'Programming Language :: Python :: 3.5',
25     'Programming Language :: Python :: 3.6',
26     'Programming Language :: Python :: 3.7',
27     'Programming Language :: Python :: 3.8',
28     'Programming Language :: Python :: 3.9',
29     'Programming Language :: Python :: 3.10',
30     'Programming Language :: Python :: 3.11',
31     'Programming Language :: Python :: 3 :: Only',
32     'Programming Language :: Python :: Implementation :: CPython',
33     'Programming Language :: Python :: Implementation :: PyPy',
34     'Topic :: Internet',
35     'Topic :: Utilities',
36     'Topic :: Software Development :: Libraries :: Python Modules',
37     'Topic :: Internet :: WWW/HTTP',
38     'Topic :: Internet :: WWW/HTTP :: WSGI',
39     'Topic :: Internet :: WWW/HTTP :: WSGI :: Server',
40     'Topic :: Internet :: WWW/HTTP :: Dynamic Content']
41 
42 # read long description
43 with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as f:
44     long_description = f.read()
45 
46 # read dev requirements
47 fname = os.path.join(os.path.dirname(__file__), 'requirements_test.txt')
48 with open(fname) as f:
49     tests_require = [l.strip() for l in f.readlines()]
50 
51 class PyTestCommand(TestCommand):
52     user_options = [
53         ("cov", None, "measure coverage")
54     ]
55 
56     def initialize_options(self):
57         TestCommand.initialize_options(self)
58         self.cov = None
59 
60     def finalize_options(self):
61         TestCommand.finalize_options(self)
62         self.test_args = ['tests']
63         if self.cov:
64             self.test_args += ['--cov', 'gunicorn']
65         self.test_suite = True
66 
67     def run_tests(self):
68         import pytest
69         errno = pytest.main(self.test_args)
70         sys.exit(errno)
71 
72 
73 install_requires = [
74     'importlib_metadata; python_version<"3.8"',
75     'packaging',
76 ]
77 
78 extras_require = {
79     'gevent':  ['gevent>=1.4.0'],
80     'eventlet': ['eventlet>=0.24.1'],
81     'tornado': ['tornado>=0.2'],
82     'gthread': [],
83     'setproctitle': ['setproctitle'],
84 }
85 
86 setup(
87     name='gunicorn',
88     version=__version__,
89 
90     description='WSGI HTTP Server for UNIX',
91     long_description=long_description,
92     author='Benoit Chesneau',
93     author_email='benoitc@gunicorn.org',
94     license='MIT',
95     url='https://gunicorn.org',
96     project_urls={
97         'Documentation': 'https://docs.gunicorn.org',
98         'Homepage': 'https://gunicorn.org',
99         'Issue tracker': 'https://github.com/benoitc/gunicorn/issues',
100         'Source code': 'https://github.com/benoitc/gunicorn',
101     },
102 
103     python_requires='>=3.5',
104     install_requires=install_requires,
105     classifiers=CLASSIFIERS,
106     zip_safe=False,
107     packages=find_packages(exclude=['examples', 'tests']),
108     include_package_data=True,
109 
110     tests_require=tests_require,
111     cmdclass={'test': PyTestCommand},
112 
113     entry_points="""
114     [console_scripts]
115     gunicorn=gunicorn.app.wsgiapp:run
116 
117     [paste.server_runner]
118     main=gunicorn.app.pasterapp:serve
119     """,
120     extras_require=extras_require,
121 )
122
```
--- 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
@@ -21,8 +21,6 @@
     'Operating System :: POSIX',
     'Programming Language :: Python',
     'Programming Language :: Python :: 3',
-    'Programming Language :: Python :: 3.5',
-    'Programming Language :: Python :: 3.6',
     'Programming Language :: Python :: 3.7',
     'Programming Language :: Python :: 3.8',
     'Programming Language :: Python :: 3.9',
@@ -100,7 +98,7 @@
         'Source code': 'https://github.com/benoitc/gunicorn',
     },
 
-    python_requires='>=3.5',
+    python_requires='>=3.7',
     install_requires=install_requires,
     classifiers=CLASSIFIERS,
     zip_safe=False,

{"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -21,8 +21,6 @@\n     'Operating System :: POSIX',\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     'Programming Language :: Python :: 3.9',\n@@ -100,7 +98,7 @@\n         'Source code': 'https://github.com/benoitc/gunicorn',\n     },\n \n-    python_requires='>=3.5',\n+    python_requires='>=3.7',\n     install_requires=install_requires,\n     classifiers=CLASSIFIERS,\n     zip_safe=False,\n", "issue": "Version 21.0.1 or higher breaks with python 3.5\nI am currently running an older application with Python 3.5, and I encountered an error when attempting to update the Gunicorn version to the latest one:\r\n\r\n```\r\nNameError: name 'ModuleNotFoundError' is not defined\r\n```\r\n\r\nAfter some investigation, I realized that the 'ModuleNotFoundError' is only available for Python 3.6 or higher. My suspicion is that this bug was introduced in [this commit](https://github.com/benoitc/gunicorn/commit/f628dd9730f965b1917397ea1846c68844b1fe7a).\r\n\r\nAs a result, it seems that Gunicorn is not fully compatible with Python 3.5\r\n\n", "before_files": [{"content": "# -*- coding: utf-8 -\n#\n# This file is part of gunicorn released under the MIT license.\n# See the NOTICE for more information.\n\nimport os\nimport sys\n\nfrom setuptools import setup, find_packages\nfrom setuptools.command.test import test as TestCommand\n\nfrom gunicorn import __version__\n\n\nCLASSIFIERS = [\n    'Development Status :: 5 - Production/Stable',\n    'Environment :: Other Environment',\n    'Intended Audience :: Developers',\n    'License :: OSI Approved :: MIT License',\n    'Operating System :: MacOS :: MacOS X',\n    'Operating System :: POSIX',\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    'Programming Language :: Python :: 3.9',\n    'Programming Language :: Python :: 3.10',\n    'Programming Language :: Python :: 3.11',\n    'Programming Language :: Python :: 3 :: Only',\n    'Programming Language :: Python :: Implementation :: CPython',\n    'Programming Language :: Python :: Implementation :: PyPy',\n    'Topic :: Internet',\n    'Topic :: Utilities',\n    'Topic :: Software Development :: Libraries :: Python Modules',\n    'Topic :: Internet :: WWW/HTTP',\n    'Topic :: Internet :: WWW/HTTP :: WSGI',\n    'Topic :: Internet :: WWW/HTTP :: WSGI :: Server',\n    'Topic :: Internet :: WWW/HTTP :: Dynamic Content']\n\n# read long description\nwith open(os.path.join(os.path.dirname(__file__), 'README.rst')) as f:\n    long_description = f.read()\n\n# read dev requirements\nfname = os.path.join(os.path.dirname(__file__), 'requirements_test.txt')\nwith open(fname) as f:\n    tests_require = [l.strip() for l in f.readlines()]\n\nclass PyTestCommand(TestCommand):\n    user_options = [\n        (\"cov\", None, \"measure coverage\")\n    ]\n\n    def initialize_options(self):\n        TestCommand.initialize_options(self)\n        self.cov = None\n\n    def finalize_options(self):\n        TestCommand.finalize_options(self)\n        self.test_args = ['tests']\n        if self.cov:\n            self.test_args += ['--cov', 'gunicorn']\n        self.test_suite = True\n\n    def run_tests(self):\n        import pytest\n        errno = pytest.main(self.test_args)\n        sys.exit(errno)\n\n\ninstall_requires = [\n    'importlib_metadata; python_version<\"3.8\"',\n    'packaging',\n]\n\nextras_require = {\n    'gevent':  ['gevent>=1.4.0'],\n    'eventlet': ['eventlet>=0.24.1'],\n    'tornado': ['tornado>=0.2'],\n    'gthread': [],\n    'setproctitle': ['setproctitle'],\n}\n\nsetup(\n    name='gunicorn',\n    version=__version__,\n\n    description='WSGI HTTP Server for UNIX',\n    long_description=long_description,\n    author='Benoit Chesneau',\n    author_email='benoitc@gunicorn.org',\n    license='MIT',\n    url='https://gunicorn.org',\n    project_urls={\n        'Documentation': 'https://docs.gunicorn.org',\n        'Homepage': 'https://gunicorn.org',\n        'Issue tracker': 'https://github.com/benoitc/gunicorn/issues',\n        'Source code': 'https://github.com/benoitc/gunicorn',\n    },\n\n    python_requires='>=3.5',\n    install_requires=install_requires,\n    classifiers=CLASSIFIERS,\n    zip_safe=False,\n    packages=find_packages(exclude=['examples', 'tests']),\n    include_package_data=True,\n\n    tests_require=tests_require,\n    cmdclass={'test': PyTestCommand},\n\n    entry_points=\"\"\"\n    [console_scripts]\n    gunicorn=gunicorn.app.wsgiapp:run\n\n    [paste.server_runner]\n    main=gunicorn.app.pasterapp:serve\n    \"\"\",\n    extras_require=extras_require,\n)\n", "path": "setup.py"}], "after_files": [{"content": "# -*- coding: utf-8 -\n#\n# This file is part of gunicorn released under the MIT license.\n# See the NOTICE for more information.\n\nimport os\nimport sys\n\nfrom setuptools import setup, find_packages\nfrom setuptools.command.test import test as TestCommand\n\nfrom gunicorn import __version__\n\n\nCLASSIFIERS = [\n    'Development Status :: 5 - Production/Stable',\n    'Environment :: Other Environment',\n    'Intended Audience :: Developers',\n    'License :: OSI Approved :: MIT License',\n    'Operating System :: MacOS :: MacOS X',\n    'Operating System :: POSIX',\n    'Programming Language :: Python',\n    'Programming Language :: Python :: 3',\n    'Programming Language :: Python :: 3.7',\n    'Programming Language :: Python :: 3.8',\n    'Programming Language :: Python :: 3.9',\n    'Programming Language :: Python :: 3.10',\n    'Programming Language :: Python :: 3.11',\n    'Programming Language :: Python :: 3 :: Only',\n    'Programming Language :: Python :: Implementation :: CPython',\n    'Programming Language :: Python :: Implementation :: PyPy',\n    'Topic :: Internet',\n    'Topic :: Utilities',\n    'Topic :: Software Development :: Libraries :: Python Modules',\n    'Topic :: Internet :: WWW/HTTP',\n    'Topic :: Internet :: WWW/HTTP :: WSGI',\n    'Topic :: Internet :: WWW/HTTP :: WSGI :: Server',\n    'Topic :: Internet :: WWW/HTTP :: Dynamic Content']\n\n# read long description\nwith open(os.path.join(os.path.dirname(__file__), 'README.rst')) as f:\n    long_description = f.read()\n\n# read dev requirements\nfname = os.path.join(os.path.dirname(__file__), 'requirements_test.txt')\nwith open(fname) as f:\n    tests_require = [l.strip() for l in f.readlines()]\n\nclass PyTestCommand(TestCommand):\n    user_options = [\n        (\"cov\", None, \"measure coverage\")\n    ]\n\n    def initialize_options(self):\n        TestCommand.initialize_options(self)\n        self.cov = None\n\n    def finalize_options(self):\n        TestCommand.finalize_options(self)\n        self.test_args = ['tests']\n        if self.cov:\n            self.test_args += ['--cov', 'gunicorn']\n        self.test_suite = True\n\n    def run_tests(self):\n        import pytest\n        errno = pytest.main(self.test_args)\n        sys.exit(errno)\n\n\ninstall_requires = [\n    'importlib_metadata; python_version<\"3.8\"',\n    'packaging',\n]\n\nextras_require = {\n    'gevent':  ['gevent>=1.4.0'],\n    'eventlet': ['eventlet>=0.24.1'],\n    'tornado': ['tornado>=0.2'],\n    'gthread': [],\n    'setproctitle': ['setproctitle'],\n}\n\nsetup(\n    name='gunicorn',\n    version=__version__,\n\n    description='WSGI HTTP Server for UNIX',\n    long_description=long_description,\n    author='Benoit Chesneau',\n    author_email='benoitc@gunicorn.org',\n    license='MIT',\n    url='https://gunicorn.org',\n    project_urls={\n        'Documentation': 'https://docs.gunicorn.org',\n        'Homepage': 'https://gunicorn.org',\n        'Issue tracker': 'https://github.com/benoitc/gunicorn/issues',\n        'Source code': 'https://github.com/benoitc/gunicorn',\n    },\n\n    python_requires='>=3.7',\n    install_requires=install_requires,\n    classifiers=CLASSIFIERS,\n    zip_safe=False,\n    packages=find_packages(exclude=['examples', 'tests']),\n    include_package_data=True,\n\n    tests_require=tests_require,\n    cmdclass={'test': PyTestCommand},\n\n    entry_points=\"\"\"\n    [console_scripts]\n    gunicorn=gunicorn.app.wsgiapp:run\n\n    [paste.server_runner]\n    main=gunicorn.app.pasterapp:serve\n    \"\"\",\n    extras_require=extras_require,\n)\n", "path": "setup.py"}]}