We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Remove lru-dict dependency
lru-dict requires a wheel that is not pre-compiled for Python 3.11.

It is only used in 1 place where it should be able to be replaced with the built-in functools lru cache: https://github.com/ethereum/web3.py/blob/master/web3/middleware/cache.py#L196

Removing this dependency would avoid future compatibility problems as well.

--- 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.9.1-b.1",
10         "py-geth>=3.11.0",
11     ],
12     "linter": [
13         "black>=22.1.0",
14         "flake8==3.8.3",
15         "isort>=5.11.0",
16         "mypy==1.4.1",
17         "types-setuptools>=57.4.4",
18         "types-requests>=2.26.1",
19         "types-protobuf==3.19.13",
20     ],
21     "docs": [
22         "sphinx>=5.3.0",
23         "sphinx_rtd_theme>=1.0.0",
24         "towncrier>=21,<22",
25     ],
26     "dev": [
27         "bumpversion",
28         "flaky>=3.7.0",
29         "hypothesis>=3.31.2",
30         "importlib-metadata<5.0;python_version<'3.8'",
31         "pytest>=7.0.0",
32         "pytest-asyncio>=0.18.1,<0.23",
33         "pytest-mock>=1.10",
34         "pytest-watch>=4.2",
35         "pytest-xdist>=1.29",
36         "setuptools>=38.6.0",
37         "tox>=3.18.0",
38         "tqdm>4.32",
39         "twine>=1.13",
40         "when-changed>=0.3.0",
41         "build>=0.9.0",
42     ],
43     "ipfs": [
44         "ipfshttpclient==0.8.0a2",
45     ],
46 }
47 
48 extras_require["dev"] = (
49     extras_require["tester"]
50     + extras_require["linter"]
51     + extras_require["docs"]
52     + extras_require["ipfs"]
53     + extras_require["dev"]
54 )
55 
56 with open("./README.md") as readme:
57     long_description = readme.read()
58 
59 setup(
60     name="web3",
61     # *IMPORTANT*: Don't manually change the version here. Use the 'bumpversion' utility.
62     version="6.14.0",
63     description="""web3.py""",
64     long_description_content_type="text/markdown",
65     long_description=long_description,
66     author="The Ethereum Foundation",
67     author_email="snakecharmers@ethereum.org",
68     url="https://github.com/ethereum/web3.py",
69     include_package_data=True,
70     install_requires=[
71         "aiohttp>=3.7.4.post0",
72         "eth-abi>=4.0.0",
73         "eth-account>=0.8.0",
74         "eth-hash[pycryptodome]>=0.5.1",
75         "eth-typing>=3.0.0",
76         "eth-utils>=2.1.0",
77         "hexbytes>=0.1.0,<0.4.0",
78         "jsonschema>=4.0.0",
79         "lru-dict>=1.1.6,<1.3.0",
80         "protobuf>=4.21.6",
81         "pydantic>=2.4.0",
82         "pywin32>=223;platform_system=='Windows'",
83         "requests>=2.16.0",
84         "typing-extensions>=4.0.1",
85         "websockets>=10.0.0",
86         "pyunormalize>=15.0.0",
87     ],
88     python_requires=">=3.7.2",
89     extras_require=extras_require,
90     py_modules=["web3", "ens", "ethpm"],
91     entry_points={"pytest11": ["pytest_ethereum = web3.tools.pytest_ethereum.plugins"]},
92     license="MIT",
93     zip_safe=False,
94     keywords="ethereum",
95     packages=find_packages(exclude=["tests", "tests.*"]),
96     package_data={"web3": ["py.typed"]},
97     classifiers=[
98         "Development Status :: 5 - Production/Stable",
99         "Intended Audience :: Developers",
100         "License :: OSI Approved :: MIT License",
101         "Natural Language :: English",
102         "Programming Language :: Python :: 3",
103         "Programming Language :: Python :: 3.7",
104         "Programming Language :: Python :: 3.8",
105         "Programming Language :: Python :: 3.9",
106         "Programming Language :: Python :: 3.10",
107         "Programming Language :: Python :: 3.11",
108     ],
109 )
110
```
--- 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
@@ -76,7 +76,6 @@
         "eth-utils>=2.1.0",
         "hexbytes>=0.1.0,<0.4.0",
         "jsonschema>=4.0.0",
-        "lru-dict>=1.1.6,<1.3.0",
         "protobuf>=4.21.6",
         "pydantic>=2.4.0",
         "pywin32>=223;platform_system=='Windows'",

{"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -76,7 +76,6 @@\n         \"eth-utils>=2.1.0\",\n         \"hexbytes>=0.1.0,<0.4.0\",\n         \"jsonschema>=4.0.0\",\n-        \"lru-dict>=1.1.6,<1.3.0\",\n         \"protobuf>=4.21.6\",\n         \"pydantic>=2.4.0\",\n         \"pywin32>=223;platform_system=='Windows'\",\n", "issue": "Remove lru-dict dependency\nlru-dict requires a wheel that is not pre-compiled for Python 3.11.\r\n\r\nIt is only used in 1 place where it should be able to be replaced with the built-in functools lru cache: https://github.com/ethereum/web3.py/blob/master/web3/middleware/cache.py#L196\r\n\r\nRemoving this dependency would avoid future compatibility problems as well.\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.9.1-b.1\",\n        \"py-geth>=3.11.0\",\n    ],\n    \"linter\": [\n        \"black>=22.1.0\",\n        \"flake8==3.8.3\",\n        \"isort>=5.11.0\",\n        \"mypy==1.4.1\",\n        \"types-setuptools>=57.4.4\",\n        \"types-requests>=2.26.1\",\n        \"types-protobuf==3.19.13\",\n    ],\n    \"docs\": [\n        \"sphinx>=5.3.0\",\n        \"sphinx_rtd_theme>=1.0.0\",\n        \"towncrier>=21,<22\",\n    ],\n    \"dev\": [\n        \"bumpversion\",\n        \"flaky>=3.7.0\",\n        \"hypothesis>=3.31.2\",\n        \"importlib-metadata<5.0;python_version<'3.8'\",\n        \"pytest>=7.0.0\",\n        \"pytest-asyncio>=0.18.1,<0.23\",\n        \"pytest-mock>=1.10\",\n        \"pytest-watch>=4.2\",\n        \"pytest-xdist>=1.29\",\n        \"setuptools>=38.6.0\",\n        \"tox>=3.18.0\",\n        \"tqdm>4.32\",\n        \"twine>=1.13\",\n        \"when-changed>=0.3.0\",\n        \"build>=0.9.0\",\n    ],\n    \"ipfs\": [\n        \"ipfshttpclient==0.8.0a2\",\n    ],\n}\n\nextras_require[\"dev\"] = (\n    extras_require[\"tester\"]\n    + extras_require[\"linter\"]\n    + extras_require[\"docs\"]\n    + extras_require[\"ipfs\"]\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=\"6.14.0\",\n    description=\"\"\"web3.py\"\"\",\n    long_description_content_type=\"text/markdown\",\n    long_description=long_description,\n    author=\"The Ethereum Foundation\",\n    author_email=\"snakecharmers@ethereum.org\",\n    url=\"https://github.com/ethereum/web3.py\",\n    include_package_data=True,\n    install_requires=[\n        \"aiohttp>=3.7.4.post0\",\n        \"eth-abi>=4.0.0\",\n        \"eth-account>=0.8.0\",\n        \"eth-hash[pycryptodome]>=0.5.1\",\n        \"eth-typing>=3.0.0\",\n        \"eth-utils>=2.1.0\",\n        \"hexbytes>=0.1.0,<0.4.0\",\n        \"jsonschema>=4.0.0\",\n        \"lru-dict>=1.1.6,<1.3.0\",\n        \"protobuf>=4.21.6\",\n        \"pydantic>=2.4.0\",\n        \"pywin32>=223;platform_system=='Windows'\",\n        \"requests>=2.16.0\",\n        \"typing-extensions>=4.0.1\",\n        \"websockets>=10.0.0\",\n        \"pyunormalize>=15.0.0\",\n    ],\n    python_requires=\">=3.7.2\",\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.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    ],\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.9.1-b.1\",\n        \"py-geth>=3.11.0\",\n    ],\n    \"linter\": [\n        \"black>=22.1.0\",\n        \"flake8==3.8.3\",\n        \"isort>=5.11.0\",\n        \"mypy==1.4.1\",\n        \"types-setuptools>=57.4.4\",\n        \"types-requests>=2.26.1\",\n        \"types-protobuf==3.19.13\",\n    ],\n    \"docs\": [\n        \"sphinx>=5.3.0\",\n        \"sphinx_rtd_theme>=1.0.0\",\n        \"towncrier>=21,<22\",\n    ],\n    \"dev\": [\n        \"bumpversion\",\n        \"flaky>=3.7.0\",\n        \"hypothesis>=3.31.2\",\n        \"importlib-metadata<5.0;python_version<'3.8'\",\n        \"pytest>=7.0.0\",\n        \"pytest-asyncio>=0.18.1,<0.23\",\n        \"pytest-mock>=1.10\",\n        \"pytest-watch>=4.2\",\n        \"pytest-xdist>=1.29\",\n        \"setuptools>=38.6.0\",\n        \"tox>=3.18.0\",\n        \"tqdm>4.32\",\n        \"twine>=1.13\",\n        \"when-changed>=0.3.0\",\n        \"build>=0.9.0\",\n    ],\n    \"ipfs\": [\n        \"ipfshttpclient==0.8.0a2\",\n    ],\n}\n\nextras_require[\"dev\"] = (\n    extras_require[\"tester\"]\n    + extras_require[\"linter\"]\n    + extras_require[\"docs\"]\n    + extras_require[\"ipfs\"]\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=\"6.14.0\",\n    description=\"\"\"web3.py\"\"\",\n    long_description_content_type=\"text/markdown\",\n    long_description=long_description,\n    author=\"The Ethereum Foundation\",\n    author_email=\"snakecharmers@ethereum.org\",\n    url=\"https://github.com/ethereum/web3.py\",\n    include_package_data=True,\n    install_requires=[\n        \"aiohttp>=3.7.4.post0\",\n        \"eth-abi>=4.0.0\",\n        \"eth-account>=0.8.0\",\n        \"eth-hash[pycryptodome]>=0.5.1\",\n        \"eth-typing>=3.0.0\",\n        \"eth-utils>=2.1.0\",\n        \"hexbytes>=0.1.0,<0.4.0\",\n        \"jsonschema>=4.0.0\",\n        \"protobuf>=4.21.6\",\n        \"pydantic>=2.4.0\",\n        \"pywin32>=223;platform_system=='Windows'\",\n        \"requests>=2.16.0\",\n        \"typing-extensions>=4.0.1\",\n        \"websockets>=10.0.0\",\n        \"pyunormalize>=15.0.0\",\n    ],\n    python_requires=\">=3.7.2\",\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.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    ],\n)\n", "path": "setup.py"}]}