We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
ipfshttpclient is unmaintained
* Version: not-relevant
* Python: not-relevant
* OS: not-relevant
* `pip freeze` output

```
not-relevant
```


### What was wrong?

According to https://github.com/ipfs-shipyard/py-ipfs-http-client/issues/316 and https://github.com/NixOS/nixpkgs/issues/185294 ; we surmise that `ipfshttpclient` is currently unmaintained or has some breakages unresolved at the moment.

I wanted to understand if you had plans to migrate away to another library or mark the IPFS backend as an extra module or deprecated for now?

### How can it be fixed?

- Drop the IPFS backend (deprecation)
- Move it as an extra module (with appropriate documentation)
- Offer up help to maintain the Python IPFS HTTP client
- Move to another library (homegrown or whatever.)

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

{"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -51,12 +51,16 @@\n         \"pluggy==0.13.1\",\n         \"when-changed>=0.3.0\",\n     ],\n+    \"ipfs\": [\n+        \"ipfshttpclient==0.8.0a2\",\n+    ],\n }\n \n extras_require[\"dev\"] = (\n     extras_require[\"tester\"]\n     + extras_require[\"linter\"]\n     + extras_require[\"docs\"]\n+    + extras_require[\"ipfs\"]\n     + extras_require[\"dev\"]\n )\n \n@@ -82,7 +86,6 @@\n         \"eth-typing>=3.0.0\",\n         \"eth-utils>=2.0.0\",\n         \"hexbytes>=0.1.0\",\n-        \"ipfshttpclient==0.8.0a2\",\n         \"jsonschema>=4.0.0\",\n         \"lru-dict>=1.1.6\",\n         \"protobuf>=4.21.6\",\n", "issue": "ipfshttpclient is unmaintained\n* Version: not-relevant\r\n* Python: not-relevant\r\n* OS: not-relevant\r\n* `pip freeze` output\r\n\r\n```\r\nnot-relevant\r\n```\r\n\r\n\r\n### What was wrong?\r\n\r\nAccording to https://github.com/ipfs-shipyard/py-ipfs-http-client/issues/316 and https://github.com/NixOS/nixpkgs/issues/185294 ; we surmise that `ipfshttpclient` is currently unmaintained or has some breakages unresolved at the moment.\r\n\r\nI wanted to understand if you had plans to migrate away to another library or mark the IPFS backend as an extra module or deprecated for now?\r\n\r\n### How can it be fixed?\r\n\r\n- Drop the IPFS backend (deprecation)\r\n- Move it as an extra module (with appropriate documentation)\r\n- Offer up help to maintain the Python IPFS HTTP client\r\n- Move to another library (homegrown or whatever.)\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.7.0-beta.1\",\n        \"py-geth>=3.10.0\",\n    ],\n    \"linter\": [\n        \"black>=22.1.0\",\n        \"flake8==3.8.3\",\n        \"isort>=4.2.15,<4.3.5\",\n        \"mypy==0.910\",\n        \"types-setuptools>=57.4.4\",\n        \"types-requests>=2.26.1\",\n        \"types-protobuf==3.19.13\",\n    ],\n    \"docs\": [\n        \"mock\",\n        \"click>=5.1\",\n        \"configparser==3.5.0\",\n        \"contextlib2>=0.5.4\",\n        \"py-geth>=3.9.1\",\n        \"py-solc>=0.4.0\",\n        \"pytest>=6.2.5\",\n        \"sphinx>=4.2.0\",\n        \"sphinx_rtd_theme>=0.5.2\",\n        \"toposort>=1.4\",\n        \"towncrier==18.5.0\",\n        \"urllib3\",\n        \"wheel\",\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>=6.2.5\",\n        \"pytest-asyncio>=0.18.1\",\n        \"pytest-mock>=1.10\",\n        \"pytest-pythonpath>=0.3\",\n        \"pytest-watch>=4.2\",\n        \"pytest-xdist>=1.29\",\n        \"setuptools>=38.6.0\",\n        \"tox>=1.8.0\",\n        \"tqdm>4.32\",\n        \"twine>=1.13\",\n        \"pluggy==0.13.1\",\n        \"when-changed>=0.3.0\",\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=\"6.0.0-beta.8\",\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\",\n        \"eth-abi>=3.0.0\",\n        \"eth-account>=0.7.0\",\n        \"eth-hash[pycryptodome]>=0.2.0\",\n        \"eth-typing>=3.0.0\",\n        \"eth-utils>=2.0.0\",\n        \"hexbytes>=0.1.0\",\n        \"ipfshttpclient==0.8.0a2\",\n        \"jsonschema>=4.0.0\",\n        \"lru-dict>=1.1.6\",\n        \"protobuf>=4.21.6\",\n        \"pywin32>=223;platform_system=='Windows'\",\n        \"requests>=2.16.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>=10.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    ],\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.7.0-beta.1\",\n        \"py-geth>=3.10.0\",\n    ],\n    \"linter\": [\n        \"black>=22.1.0\",\n        \"flake8==3.8.3\",\n        \"isort>=4.2.15,<4.3.5\",\n        \"mypy==0.910\",\n        \"types-setuptools>=57.4.4\",\n        \"types-requests>=2.26.1\",\n        \"types-protobuf==3.19.13\",\n    ],\n    \"docs\": [\n        \"mock\",\n        \"click>=5.1\",\n        \"configparser==3.5.0\",\n        \"contextlib2>=0.5.4\",\n        \"py-geth>=3.9.1\",\n        \"py-solc>=0.4.0\",\n        \"pytest>=6.2.5\",\n        \"sphinx>=4.2.0\",\n        \"sphinx_rtd_theme>=0.5.2\",\n        \"toposort>=1.4\",\n        \"towncrier==18.5.0\",\n        \"urllib3\",\n        \"wheel\",\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>=6.2.5\",\n        \"pytest-asyncio>=0.18.1\",\n        \"pytest-mock>=1.10\",\n        \"pytest-pythonpath>=0.3\",\n        \"pytest-watch>=4.2\",\n        \"pytest-xdist>=1.29\",\n        \"setuptools>=38.6.0\",\n        \"tox>=1.8.0\",\n        \"tqdm>4.32\",\n        \"twine>=1.13\",\n        \"pluggy==0.13.1\",\n        \"when-changed>=0.3.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.0.0-beta.8\",\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\",\n        \"eth-abi>=3.0.0\",\n        \"eth-account>=0.7.0\",\n        \"eth-hash[pycryptodome]>=0.2.0\",\n        \"eth-typing>=3.0.0\",\n        \"eth-utils>=2.0.0\",\n        \"hexbytes>=0.1.0\",\n        \"jsonschema>=4.0.0\",\n        \"lru-dict>=1.1.6\",\n        \"protobuf>=4.21.6\",\n        \"pywin32>=223;platform_system=='Windows'\",\n        \"requests>=2.16.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>=10.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    ],\n)\n", "path": "setup.py"}]}