prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  `vyper-serve` is still lingering in `setup.py`
  ### Version Information
  
  * vyper Version (output of `vyper --version`): doesn't matter
  * OS: doesn't matter
  * Python Version (output of `python --version`): doesn't matter
  
  ### What's your issue about?
  
  You removed `vyper-serve` with this commit: https://github.com/vyperlang/vyper/commit/98f502baea6385fe25dbf94a70fb4eddc9f02f56, but you forgot to remove `vyper-serve` from `setup.py`:
  
  ```python
  entry_points={
          "console_scripts": [
              "vyper=vyper.cli.vyper_compile:_parse_cli_args",
              "vyper-serve=vyper.cli.vyper_serve:_parse_cli_args",
              "fang=vyper.cli.vyper_ir:_parse_cli_args",
              "vyper-json=vyper.cli.vyper_json:_parse_cli_args",
          ]
      },
  ```
  
  ### How can it be fixed?
  
  Remove `vyper-serve` line.
  
  
  --- 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 import os
  4 import re
  5 import subprocess
  6 
  7 from setuptools import setup
  8 
  9 extras_require = {
  10     "test": [
  11         "pytest>=8.0,<9.0",
  12         "pytest-cov>=4.1,<5.0",
  13         "pytest-instafail>=0.4,<1.0",
  14         "pytest-xdist>=3.0,<3.4",
  15         "pytest-split>=0.7.0,<1.0",
  16         "eth-tester[py-evm]>=0.10.0b4,<0.11",
  17         "eth_abi>=4.0.0,<5.0.0",
  18         "py-evm>=0.10.0b4,<0.11",
  19         "web3==6.0.0",
  20         "lark==1.1.9",
  21         "hypothesis[lark]>=6.0,<7.0",
  22         "eth-stdlib==0.2.7",
  23         "setuptools",
  24         "hexbytes>=1.2",
  25     ],
  26     "lint": [
  27         "black==23.12.0",
  28         "flake8==6.1.0",
  29         "flake8-bugbear==23.12.2",
  30         "flake8-use-fstring==1.4",
  31         "isort==5.13.2",
  32         "mypy==1.5",
  33     ],
  34     "dev": ["ipython", "pre-commit", "pyinstaller", "twine"],
  35 }
  36 
  37 extras_require["dev"] = extras_require["dev"] + extras_require["test"] + extras_require["lint"]
  38 
  39 with open("README.md", "r") as f:
  40     long_description = f.read()
  41 
  42 
  43 # strip local version
  44 def _local_version(version):
  45     return ""
  46 
  47 
  48 def _global_version(version):
  49     from setuptools_scm.version import guess_next_dev_version
  50 
  51     # strip `.devN` suffix since it is not semver compatible
  52     # minor regex hack to avoid messing too much with setuptools-scm internals
  53     version_str = guess_next_dev_version(version)
  54     return re.sub(r"\.dev\d+", "", version_str)
  55 
  56 
  57 hash_file_rel_path = os.path.join("vyper", "vyper_git_commithash.txt")
  58 hashfile = os.path.relpath(hash_file_rel_path)
  59 
  60 # there is no way in setuptools-scm to get metadata besides the package
  61 # version into version.py. (and we need that version to be PEP440 compliant
  62 # in order to get it into pypi). so, add the commit hash to the package
  63 # separately, in order so that we can add it to `vyper --version`.
  64 try:
  65     commithash = subprocess.check_output("git rev-parse --short HEAD".split())
  66     commithash_str = commithash.decode("utf-8").strip()
  67     with open(hashfile, "w") as fh:
  68         fh.write(commithash_str)
  69 except subprocess.CalledProcessError:
  70     pass
  71 
  72 
  73 setup(
  74     name="vyper",
  75     use_scm_version={
  76         "local_scheme": _local_version,
  77         "version_scheme": _global_version,
  78         "write_to": "vyper/version.py",
  79     },
  80     description="Vyper: the Pythonic Programming Language for the EVM",
  81     long_description=long_description,
  82     long_description_content_type="text/markdown",
  83     author="Vyper Team",
  84     author_email="",
  85     url="https://github.com/vyperlang/vyper",
  86     license="Apache License 2.0",
  87     keywords="ethereum evm smart contract language",
  88     include_package_data=True,
  89     packages=["vyper"],
  90     python_requires=">=3.10,<4",
  91     py_modules=["vyper"],
  92     install_requires=[
  93         "cbor2>=5.4.6,<6",
  94         "asttokens>=2.0.5,<3",
  95         "pycryptodome>=3.5.1,<4",
  96         "packaging>=23.1,<24",
  97         "importlib-metadata",
  98         "wheel",
  99     ],
  100     setup_requires=["pytest-runner", "setuptools_scm>=7.1.0,<8.0.0"],
  101     tests_require=extras_require["test"],
  102     extras_require=extras_require,
  103     entry_points={
  104         "console_scripts": [
  105             "vyper=vyper.cli.vyper_compile:_parse_cli_args",
  106             "vyper-serve=vyper.cli.vyper_serve:_parse_cli_args",
  107             "fang=vyper.cli.vyper_ir:_parse_cli_args",
  108             "vyper-json=vyper.cli.vyper_json:_parse_cli_args",
  109         ]
  110     },
  111     classifiers=[
  112         "Intended Audience :: Developers",
  113         "License :: OSI Approved :: Apache Software License",
  114         "Programming Language :: Python :: 3.10",
  115         "Programming Language :: Python :: 3.11",
  116         "Programming Language :: Python :: 3.12",
  117     ],
  118     package_data={"vyper.ast": ["grammar.lark"]},
  119     data_files=[("", [hash_file_rel_path])],
  120 )
  121
  ```
  --- 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/setup.py b/setup.py
  --- a/setup.py
  +++ b/setup.py
  @@ -103,7 +103,6 @@
       entry_points={
           "console_scripts": [
               "vyper=vyper.cli.vyper_compile:_parse_cli_args",
  -            "vyper-serve=vyper.cli.vyper_serve:_parse_cli_args",
               "fang=vyper.cli.vyper_ir:_parse_cli_args",
               "vyper-json=vyper.cli.vyper_json:_parse_cli_args",
           ]
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -103,7 +103,6 @@\n     entry_points={\n         \"console_scripts\": [\n             \"vyper=vyper.cli.vyper_compile:_parse_cli_args\",\n-            \"vyper-serve=vyper.cli.vyper_serve:_parse_cli_args\",\n             \"fang=vyper.cli.vyper_ir:_parse_cli_args\",\n             \"vyper-json=vyper.cli.vyper_json:_parse_cli_args\",\n         ]\n", "issue": "`vyper-serve` is still lingering in `setup.py`\n### Version Information\r\n\r\n* vyper Version (output of `vyper --version`): doesn't matter\r\n* OS: doesn't matter\r\n* Python Version (output of `python --version`): doesn't matter\r\n\r\n### What's your issue about?\r\n\r\nYou removed `vyper-serve` with this commit: https://github.com/vyperlang/vyper/commit/98f502baea6385fe25dbf94a70fb4eddc9f02f56, but you forgot to remove `vyper-serve` from `setup.py`:\r\n\r\n```python\r\nentry_points={\r\n        \"console_scripts\": [\r\n            \"vyper=vyper.cli.vyper_compile:_parse_cli_args\",\r\n            \"vyper-serve=vyper.cli.vyper_serve:_parse_cli_args\",\r\n            \"fang=vyper.cli.vyper_ir:_parse_cli_args\",\r\n            \"vyper-json=vyper.cli.vyper_json:_parse_cli_args\",\r\n        ]\r\n    },\r\n```\r\n\r\n### How can it be fixed?\r\n\r\nRemove `vyper-serve` line.\r\n\n", "before_files": [{"content": "# -*- coding: utf-8 -*-\n\nimport os\nimport re\nimport subprocess\n\nfrom setuptools import setup\n\nextras_require = {\n    \"test\": [\n        \"pytest>=8.0,<9.0\",\n        \"pytest-cov>=4.1,<5.0\",\n        \"pytest-instafail>=0.4,<1.0\",\n        \"pytest-xdist>=3.0,<3.4\",\n        \"pytest-split>=0.7.0,<1.0\",\n        \"eth-tester[py-evm]>=0.10.0b4,<0.11\",\n        \"eth_abi>=4.0.0,<5.0.0\",\n        \"py-evm>=0.10.0b4,<0.11\",\n        \"web3==6.0.0\",\n        \"lark==1.1.9\",\n        \"hypothesis[lark]>=6.0,<7.0\",\n        \"eth-stdlib==0.2.7\",\n        \"setuptools\",\n        \"hexbytes>=1.2\",\n    ],\n    \"lint\": [\n        \"black==23.12.0\",\n        \"flake8==6.1.0\",\n        \"flake8-bugbear==23.12.2\",\n        \"flake8-use-fstring==1.4\",\n        \"isort==5.13.2\",\n        \"mypy==1.5\",\n    ],\n    \"dev\": [\"ipython\", \"pre-commit\", \"pyinstaller\", \"twine\"],\n}\n\nextras_require[\"dev\"] = extras_require[\"dev\"] + extras_require[\"test\"] + extras_require[\"lint\"]\n\nwith open(\"README.md\", \"r\") as f:\n    long_description = f.read()\n\n\n# strip local version\ndef _local_version(version):\n    return \"\"\n\n\ndef _global_version(version):\n    from setuptools_scm.version import guess_next_dev_version\n\n    # strip `.devN` suffix since it is not semver compatible\n    # minor regex hack to avoid messing too much with setuptools-scm internals\n    version_str = guess_next_dev_version(version)\n    return re.sub(r\"\\.dev\\d+\", \"\", version_str)\n\n\nhash_file_rel_path = os.path.join(\"vyper\", \"vyper_git_commithash.txt\")\nhashfile = os.path.relpath(hash_file_rel_path)\n\n# there is no way in setuptools-scm to get metadata besides the package\n# version into version.py. (and we need that version to be PEP440 compliant\n# in order to get it into pypi). so, add the commit hash to the package\n# separately, in order so that we can add it to `vyper --version`.\ntry:\n    commithash = subprocess.check_output(\"git rev-parse --short HEAD\".split())\n    commithash_str = commithash.decode(\"utf-8\").strip()\n    with open(hashfile, \"w\") as fh:\n        fh.write(commithash_str)\nexcept subprocess.CalledProcessError:\n    pass\n\n\nsetup(\n    name=\"vyper\",\n    use_scm_version={\n        \"local_scheme\": _local_version,\n        \"version_scheme\": _global_version,\n        \"write_to\": \"vyper/version.py\",\n    },\n    description=\"Vyper: the Pythonic Programming Language for the EVM\",\n    long_description=long_description,\n    long_description_content_type=\"text/markdown\",\n    author=\"Vyper Team\",\n    author_email=\"\",\n    url=\"https://github.com/vyperlang/vyper\",\n    license=\"Apache License 2.0\",\n    keywords=\"ethereum evm smart contract language\",\n    include_package_data=True,\n    packages=[\"vyper\"],\n    python_requires=\">=3.10,<4\",\n    py_modules=[\"vyper\"],\n    install_requires=[\n        \"cbor2>=5.4.6,<6\",\n        \"asttokens>=2.0.5,<3\",\n        \"pycryptodome>=3.5.1,<4\",\n        \"packaging>=23.1,<24\",\n        \"importlib-metadata\",\n        \"wheel\",\n    ],\n    setup_requires=[\"pytest-runner\", \"setuptools_scm>=7.1.0,<8.0.0\"],\n    tests_require=extras_require[\"test\"],\n    extras_require=extras_require,\n    entry_points={\n        \"console_scripts\": [\n            \"vyper=vyper.cli.vyper_compile:_parse_cli_args\",\n            \"vyper-serve=vyper.cli.vyper_serve:_parse_cli_args\",\n            \"fang=vyper.cli.vyper_ir:_parse_cli_args\",\n            \"vyper-json=vyper.cli.vyper_json:_parse_cli_args\",\n        ]\n    },\n    classifiers=[\n        \"Intended Audience :: Developers\",\n        \"License :: OSI Approved :: Apache Software License\",\n        \"Programming Language :: Python :: 3.10\",\n        \"Programming Language :: Python :: 3.11\",\n        \"Programming Language :: Python :: 3.12\",\n    ],\n    package_data={\"vyper.ast\": [\"grammar.lark\"]},\n    data_files=[(\"\", [hash_file_rel_path])],\n)\n", "path": "setup.py"}], "after_files": [{"content": "# -*- coding: utf-8 -*-\n\nimport os\nimport re\nimport subprocess\n\nfrom setuptools import setup\n\nextras_require = {\n    \"test\": [\n        \"pytest>=8.0,<9.0\",\n        \"pytest-cov>=4.1,<5.0\",\n        \"pytest-instafail>=0.4,<1.0\",\n        \"pytest-xdist>=3.0,<3.4\",\n        \"pytest-split>=0.7.0,<1.0\",\n        \"eth-tester[py-evm]>=0.10.0b4,<0.11\",\n        \"eth_abi>=4.0.0,<5.0.0\",\n        \"py-evm>=0.10.0b4,<0.11\",\n        \"web3==6.0.0\",\n        \"lark==1.1.9\",\n        \"hypothesis[lark]>=6.0,<7.0\",\n        \"eth-stdlib==0.2.7\",\n        \"setuptools\",\n        \"hexbytes>=1.2\",\n    ],\n    \"lint\": [\n        \"black==23.12.0\",\n        \"flake8==6.1.0\",\n        \"flake8-bugbear==23.12.2\",\n        \"flake8-use-fstring==1.4\",\n        \"isort==5.13.2\",\n        \"mypy==1.5\",\n    ],\n    \"dev\": [\"ipython\", \"pre-commit\", \"pyinstaller\", \"twine\"],\n}\n\nextras_require[\"dev\"] = extras_require[\"dev\"] + extras_require[\"test\"] + extras_require[\"lint\"]\n\nwith open(\"README.md\", \"r\") as f:\n    long_description = f.read()\n\n\n# strip local version\ndef _local_version(version):\n    return \"\"\n\n\ndef _global_version(version):\n    from setuptools_scm.version import guess_next_dev_version\n\n    # strip `.devN` suffix since it is not semver compatible\n    # minor regex hack to avoid messing too much with setuptools-scm internals\n    version_str = guess_next_dev_version(version)\n    return re.sub(r\"\\.dev\\d+\", \"\", version_str)\n\n\nhash_file_rel_path = os.path.join(\"vyper\", \"vyper_git_commithash.txt\")\nhashfile = os.path.relpath(hash_file_rel_path)\n\n# there is no way in setuptools-scm to get metadata besides the package\n# version into version.py. (and we need that version to be PEP440 compliant\n# in order to get it into pypi). so, add the commit hash to the package\n# separately, in order so that we can add it to `vyper --version`.\ntry:\n    commithash = subprocess.check_output(\"git rev-parse --short HEAD\".split())\n    commithash_str = commithash.decode(\"utf-8\").strip()\n    with open(hashfile, \"w\") as fh:\n        fh.write(commithash_str)\nexcept subprocess.CalledProcessError:\n    pass\n\n\nsetup(\n    name=\"vyper\",\n    use_scm_version={\n        \"local_scheme\": _local_version,\n        \"version_scheme\": _global_version,\n        \"write_to\": \"vyper/version.py\",\n    },\n    description=\"Vyper: the Pythonic Programming Language for the EVM\",\n    long_description=long_description,\n    long_description_content_type=\"text/markdown\",\n    author=\"Vyper Team\",\n    author_email=\"\",\n    url=\"https://github.com/vyperlang/vyper\",\n    license=\"Apache License 2.0\",\n    keywords=\"ethereum evm smart contract language\",\n    include_package_data=True,\n    packages=[\"vyper\"],\n    python_requires=\">=3.10,<4\",\n    py_modules=[\"vyper\"],\n    install_requires=[\n        \"cbor2>=5.4.6,<6\",\n        \"asttokens>=2.0.5,<3\",\n        \"pycryptodome>=3.5.1,<4\",\n        \"packaging>=23.1,<24\",\n        \"importlib-metadata\",\n        \"wheel\",\n    ],\n    setup_requires=[\"pytest-runner\", \"setuptools_scm>=7.1.0,<8.0.0\"],\n    tests_require=extras_require[\"test\"],\n    extras_require=extras_require,\n    entry_points={\n        \"console_scripts\": [\n            \"vyper=vyper.cli.vyper_compile:_parse_cli_args\",\n            \"fang=vyper.cli.vyper_ir:_parse_cli_args\",\n            \"vyper-json=vyper.cli.vyper_json:_parse_cli_args\",\n        ]\n    },\n    classifiers=[\n        \"Intended Audience :: Developers\",\n        \"License :: OSI Approved :: Apache Software License\",\n        \"Programming Language :: Python :: 3.10\",\n        \"Programming Language :: Python :: 3.11\",\n        \"Programming Language :: Python :: 3.12\",\n    ],\n    package_data={\"vyper.ast\": [\"grammar.lark\"]},\n    data_files=[(\"\", [hash_file_rel_path])],\n)\n", "path": "setup.py"}]}