We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Upgrade jsonschema to the latest 4.4
### What was wrong?

https://github.com/ethereum/web3.py/blob/16aff7e80a6bc089051c154b5079213317c27da8/setup.py#L86

I cannot combine `web3.py` with the latest `jsonschema` in a single app (without relying on ugly hacks)

### How can it be fixed?

Maybe just expand the range to `jsonschema>=3.2.0,<4.5` and let users test compatibility?

https://github.com/ethereum/web3.py/blob/16aff7e80a6bc089051c154b5079213317c27da8/docs/web3.pm.rst#L12

so the web3.py dev team shouldn't have to worry too much about maintaining compatibility 

--- 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 #!/usr/bin/env python
2 from setuptools import (
3     find_packages,
4     setup,
5 )
6 
7 extras_require = {
8     'tester': [
9         "eth-tester[py-evm]==v0.6.0-beta.6",
10         "py-geth>=3.7.0,<4",
11     ],
12     'linter': [
13         "flake8==3.8.3",
14         "isort>=4.2.15,<4.3.5",
15         "mypy==0.910",
16         "types-setuptools>=57.4.4,<58",
17         "types-requests>=2.26.1,<3",
18         "types-protobuf>=3.18.2,<4",
19     ],
20     'docs': [
21         "mock",
22         "sphinx-better-theme>=0.1.4",
23         "click>=5.1",
24         "configparser==3.5.0",
25         "contextlib2>=0.5.4",
26         "py-geth>=3.6.0,<4",
27         "py-solc>=0.4.0",
28         "pytest>=4.4.0,<5.0.0",
29         "sphinx>=3.0,<4",
30         "sphinx_rtd_theme>=0.1.9",
31         "toposort>=1.4",
32         "towncrier==18.5.0",
33         "urllib3",
34         "wheel"
35     ],
36     'dev': [
37         "bumpversion",
38         "flaky>=3.7.0,<4",
39         "hypothesis>=3.31.2,<6",
40         "pytest>=4.4.0,<5.0.0",
41         "pytest-asyncio>=0.10.0,<0.11",
42         "pytest-mock>=1.10,<2",
43         "pytest-pythonpath>=0.3",
44         "pytest-watch>=4.2,<5",
45         "pytest-xdist>=1.29,<2",
46         "setuptools>=38.6.0",
47         "tox>=1.8.0",
48         "tqdm>4.32,<5",
49         "twine>=1.13,<2",
50         "pluggy==0.13.1",
51         "when-changed>=0.3.0,<0.4"
52     ]
53 }
54 
55 extras_require['dev'] = (
56     extras_require['tester']
57     + extras_require['linter']
58     + extras_require['docs']
59     + extras_require['dev']
60 )
61 
62 with open('./README.md') as readme:
63     long_description = readme.read()
64 
65 setup(
66     name='web3',
67     # *IMPORTANT*: Don't manually change the version here. Use the 'bumpversion' utility.
68     version='5.28.0',
69     description="""Web3.py""",
70     long_description_content_type='text/markdown',
71     long_description=long_description,
72     author='Piper Merriam',
73     author_email='pipermerriam@gmail.com',
74     url='https://github.com/ethereum/web3.py',
75     include_package_data=True,
76     install_requires=[
77         "aiohttp>=3.7.4.post0,<4",
78         "eth-abi>=2.0.0b6,<3.0.0",
79         "eth-account>=0.5.7,<0.6.0",
80         "eth-hash[pycryptodome]>=0.2.0,<1.0.0",
81         "eth-typing>=2.0.0,<3.0.0",
82         "eth-utils>=1.9.5,<2.0.0",
83         "hexbytes>=0.1.0,<1.0.0",
84         "ipfshttpclient==0.8.0a2",
85         "jsonschema>=3.2.0,<4.0.0",
86         "lru-dict>=1.1.6,<2.0.0",
87         "protobuf>=3.10.0,<4",
88         "pywin32>=223;platform_system=='Windows'",
89         "requests>=2.16.0,<3.0.0",
90         # remove typing_extensions after python_requires>=3.8, see web3._utils.compat
91         "typing-extensions>=3.7.4.1,<5;python_version<'3.8'",
92         "websockets>=9.1,<10",
93     ],
94     python_requires='>=3.6,<4',
95     extras_require=extras_require,
96     py_modules=['web3', 'ens', 'ethpm'],
97     entry_points={"pytest11": ["pytest_ethereum = web3.tools.pytest_ethereum.plugins"]},
98     license="MIT",
99     zip_safe=False,
100     keywords='ethereum',
101     packages=find_packages(exclude=["tests", "tests.*"]),
102     package_data={"web3": ["py.typed"]},
103     classifiers=[
104         'Development Status :: 5 - Production/Stable',
105         'Intended Audience :: Developers',
106         'License :: OSI Approved :: MIT License',
107         'Natural Language :: English',
108         'Programming Language :: Python :: 3',
109         'Programming Language :: Python :: 3.6',
110         'Programming Language :: Python :: 3.7',
111         'Programming Language :: Python :: 3.8',
112         'Programming Language :: Python :: 3.9',
113     ],
114 )
115
```
--- 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
@@ -82,7 +82,7 @@
         "eth-utils>=1.9.5,<2.0.0",
         "hexbytes>=0.1.0,<1.0.0",
         "ipfshttpclient==0.8.0a2",
-        "jsonschema>=3.2.0,<4.0.0",
+        "jsonschema>=3.2.0,<5",
         "lru-dict>=1.1.6,<2.0.0",
         "protobuf>=3.10.0,<4",
         "pywin32>=223;platform_system=='Windows'",

{"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -82,7 +82,7 @@\n         \"eth-utils>=1.9.5,<2.0.0\",\n         \"hexbytes>=0.1.0,<1.0.0\",\n         \"ipfshttpclient==0.8.0a2\",\n-        \"jsonschema>=3.2.0,<4.0.0\",\n+        \"jsonschema>=3.2.0,<5\",\n         \"lru-dict>=1.1.6,<2.0.0\",\n         \"protobuf>=3.10.0,<4\",\n         \"pywin32>=223;platform_system=='Windows'\",\n", "issue": "Upgrade jsonschema to the latest 4.4\n### What was wrong?\r\n\r\nhttps://github.com/ethereum/web3.py/blob/16aff7e80a6bc089051c154b5079213317c27da8/setup.py#L86\r\n\r\nI cannot combine `web3.py` with the latest `jsonschema` in a single app (without relying on ugly hacks)\r\n\r\n### How can it be fixed?\r\n\r\nMaybe just expand the range to `jsonschema>=3.2.0,<4.5` and let users test compatibility?\r\n\r\nhttps://github.com/ethereum/web3.py/blob/16aff7e80a6bc089051c154b5079213317c27da8/docs/web3.pm.rst#L12\r\n\r\nso the web3.py dev team shouldn't have to worry too much about maintaining compatibility \n", "before_files": [{"content": "#!/usr/bin/env python\nfrom setuptools import (\n    find_packages,\n    setup,\n)\n\nextras_require = {\n    'tester': [\n        \"eth-tester[py-evm]==v0.6.0-beta.6\",\n        \"py-geth>=3.7.0,<4\",\n    ],\n    'linter': [\n        \"flake8==3.8.3\",\n        \"isort>=4.2.15,<4.3.5\",\n        \"mypy==0.910\",\n        \"types-setuptools>=57.4.4,<58\",\n        \"types-requests>=2.26.1,<3\",\n        \"types-protobuf>=3.18.2,<4\",\n    ],\n    'docs': [\n        \"mock\",\n        \"sphinx-better-theme>=0.1.4\",\n        \"click>=5.1\",\n        \"configparser==3.5.0\",\n        \"contextlib2>=0.5.4\",\n        \"py-geth>=3.6.0,<4\",\n        \"py-solc>=0.4.0\",\n        \"pytest>=4.4.0,<5.0.0\",\n        \"sphinx>=3.0,<4\",\n        \"sphinx_rtd_theme>=0.1.9\",\n        \"toposort>=1.4\",\n        \"towncrier==18.5.0\",\n        \"urllib3\",\n        \"wheel\"\n    ],\n    'dev': [\n        \"bumpversion\",\n        \"flaky>=3.7.0,<4\",\n        \"hypothesis>=3.31.2,<6\",\n        \"pytest>=4.4.0,<5.0.0\",\n        \"pytest-asyncio>=0.10.0,<0.11\",\n        \"pytest-mock>=1.10,<2\",\n        \"pytest-pythonpath>=0.3\",\n        \"pytest-watch>=4.2,<5\",\n        \"pytest-xdist>=1.29,<2\",\n        \"setuptools>=38.6.0\",\n        \"tox>=1.8.0\",\n        \"tqdm>4.32,<5\",\n        \"twine>=1.13,<2\",\n        \"pluggy==0.13.1\",\n        \"when-changed>=0.3.0,<0.4\"\n    ]\n}\n\nextras_require['dev'] = (\n    extras_require['tester']\n    + extras_require['linter']\n    + extras_require['docs']\n    + extras_require['dev']\n)\n\nwith open('./README.md') as readme:\n    long_description = readme.read()\n\nsetup(\n    name='web3',\n    # *IMPORTANT*: Don't manually change the version here. Use the 'bumpversion' utility.\n    version='5.28.0',\n    description=\"\"\"Web3.py\"\"\",\n    long_description_content_type='text/markdown',\n    long_description=long_description,\n    author='Piper Merriam',\n    author_email='pipermerriam@gmail.com',\n    url='https://github.com/ethereum/web3.py',\n    include_package_data=True,\n    install_requires=[\n        \"aiohttp>=3.7.4.post0,<4\",\n        \"eth-abi>=2.0.0b6,<3.0.0\",\n        \"eth-account>=0.5.7,<0.6.0\",\n        \"eth-hash[pycryptodome]>=0.2.0,<1.0.0\",\n        \"eth-typing>=2.0.0,<3.0.0\",\n        \"eth-utils>=1.9.5,<2.0.0\",\n        \"hexbytes>=0.1.0,<1.0.0\",\n        \"ipfshttpclient==0.8.0a2\",\n        \"jsonschema>=3.2.0,<4.0.0\",\n        \"lru-dict>=1.1.6,<2.0.0\",\n        \"protobuf>=3.10.0,<4\",\n        \"pywin32>=223;platform_system=='Windows'\",\n        \"requests>=2.16.0,<3.0.0\",\n        # remove typing_extensions after python_requires>=3.8, see web3._utils.compat\n        \"typing-extensions>=3.7.4.1,<5;python_version<'3.8'\",\n        \"websockets>=9.1,<10\",\n    ],\n    python_requires='>=3.6,<4',\n    extras_require=extras_require,\n    py_modules=['web3', 'ens', 'ethpm'],\n    entry_points={\"pytest11\": [\"pytest_ethereum = web3.tools.pytest_ethereum.plugins\"]},\n    license=\"MIT\",\n    zip_safe=False,\n    keywords='ethereum',\n    packages=find_packages(exclude=[\"tests\", \"tests.*\"]),\n    package_data={\"web3\": [\"py.typed\"]},\n    classifiers=[\n        'Development Status :: 5 - Production/Stable',\n        'Intended Audience :: Developers',\n        'License :: OSI Approved :: MIT License',\n        'Natural Language :: English',\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    ],\n)\n", "path": "setup.py"}], "after_files": [{"content": "#!/usr/bin/env python\nfrom setuptools import (\n    find_packages,\n    setup,\n)\n\nextras_require = {\n    'tester': [\n        \"eth-tester[py-evm]==v0.6.0-beta.6\",\n        \"py-geth>=3.7.0,<4\",\n    ],\n    'linter': [\n        \"flake8==3.8.3\",\n        \"isort>=4.2.15,<4.3.5\",\n        \"mypy==0.910\",\n        \"types-setuptools>=57.4.4,<58\",\n        \"types-requests>=2.26.1,<3\",\n        \"types-protobuf>=3.18.2,<4\",\n    ],\n    'docs': [\n        \"mock\",\n        \"sphinx-better-theme>=0.1.4\",\n        \"click>=5.1\",\n        \"configparser==3.5.0\",\n        \"contextlib2>=0.5.4\",\n        \"py-geth>=3.6.0,<4\",\n        \"py-solc>=0.4.0\",\n        \"pytest>=4.4.0,<5.0.0\",\n        \"sphinx>=3.0,<4\",\n        \"sphinx_rtd_theme>=0.1.9\",\n        \"toposort>=1.4\",\n        \"towncrier==18.5.0\",\n        \"urllib3\",\n        \"wheel\"\n    ],\n    'dev': [\n        \"bumpversion\",\n        \"flaky>=3.7.0,<4\",\n        \"hypothesis>=3.31.2,<6\",\n        \"pytest>=4.4.0,<5.0.0\",\n        \"pytest-asyncio>=0.10.0,<0.11\",\n        \"pytest-mock>=1.10,<2\",\n        \"pytest-pythonpath>=0.3\",\n        \"pytest-watch>=4.2,<5\",\n        \"pytest-xdist>=1.29,<2\",\n        \"setuptools>=38.6.0\",\n        \"tox>=1.8.0\",\n        \"tqdm>4.32,<5\",\n        \"twine>=1.13,<2\",\n        \"pluggy==0.13.1\",\n        \"when-changed>=0.3.0,<0.4\"\n    ]\n}\n\nextras_require['dev'] = (\n    extras_require['tester']\n    + extras_require['linter']\n    + extras_require['docs']\n    + extras_require['dev']\n)\n\nwith open('./README.md') as readme:\n    long_description = readme.read()\n\nsetup(\n    name='web3',\n    # *IMPORTANT*: Don't manually change the version here. Use the 'bumpversion' utility.\n    version='5.28.0',\n    description=\"\"\"Web3.py\"\"\",\n    long_description_content_type='text/markdown',\n    long_description=long_description,\n    author='Piper Merriam',\n    author_email='pipermerriam@gmail.com',\n    url='https://github.com/ethereum/web3.py',\n    include_package_data=True,\n    install_requires=[\n        \"aiohttp>=3.7.4.post0,<4\",\n        \"eth-abi>=2.0.0b6,<3.0.0\",\n        \"eth-account>=0.5.7,<0.6.0\",\n        \"eth-hash[pycryptodome]>=0.2.0,<1.0.0\",\n        \"eth-typing>=2.0.0,<3.0.0\",\n        \"eth-utils>=1.9.5,<2.0.0\",\n        \"hexbytes>=0.1.0,<1.0.0\",\n        \"ipfshttpclient==0.8.0a2\",\n        \"jsonschema>=3.2.0,<5\",\n        \"lru-dict>=1.1.6,<2.0.0\",\n        \"protobuf>=3.10.0,<4\",\n        \"pywin32>=223;platform_system=='Windows'\",\n        \"requests>=2.16.0,<3.0.0\",\n        # remove typing_extensions after python_requires>=3.8, see web3._utils.compat\n        \"typing-extensions>=3.7.4.1,<5;python_version<'3.8'\",\n        \"websockets>=9.1,<10\",\n    ],\n    python_requires='>=3.6,<4',\n    extras_require=extras_require,\n    py_modules=['web3', 'ens', 'ethpm'],\n    entry_points={\"pytest11\": [\"pytest_ethereum = web3.tools.pytest_ethereum.plugins\"]},\n    license=\"MIT\",\n    zip_safe=False,\n    keywords='ethereum',\n    packages=find_packages(exclude=[\"tests\", \"tests.*\"]),\n    package_data={\"web3\": [\"py.typed\"]},\n    classifiers=[\n        'Development Status :: 5 - Production/Stable',\n        'Intended Audience :: Developers',\n        'License :: OSI Approved :: MIT License',\n        'Natural Language :: English',\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    ],\n)\n", "path": "setup.py"}]}