prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  test fail with web3.py 5.21.0
  ### Version Information
  
  * vyper Version (output of `vyper --version`): latest master (cff69d63)
  * OS: macos
  * Python Version (output of `python --version`): 3.9.6
  
  ### What's your issue about?
  
  tests fail
  
  tests/cli/vyper_json/test_parse_args_vyperjson.py::test_pretty_json - json.decoder.J...
  FAILED tests/cli/vyper_json/test_parse_args_vyperjson.py::test_to_stdout - json.decoder.JSO...
  FAILED tests/parser/features/test_assert.py::test_assert_reason[False] - AssertionError: as...
  FAILED tests/parser/features/test_assert.py::test_assest_reason_revert
  
  misses the string "execution reverted"
  
  
  </issue>
  <code>
  [start of setup.py]
  1 # -*- coding: utf-8 -*-
  2 
  3 import os
  4 import subprocess
  5 
  6 from setuptools import find_packages, setup
  7 
  8 __version__ = "0.3.0"
  9 
  10 extras_require = {
  11     "test": [
  12         "pytest>=5.4,<6.0",
  13         "pytest-cov>=2.10,<3.0",
  14         "pytest-instafail>=0.4,<1.0",
  15         "pytest-xdist>=1.32,<2.0",
  16         "eth-tester[py-evm]>=0.5.0b1,<0.6",
  17         "py-evm==0.4.0a4",  # NOTE: temporarily pinned until we have support for py-evm 0.5.0a0+
  18         "web3==5.12.3",
  19         "tox>=3.15,<4.0",
  20         "lark-parser==0.10.0",
  21         "hypothesis[lark]>=5.37.1,<6.0",
  22     ],
  23     "lint": [
  24         "black==21.9b0",
  25         "flake8==3.9.2",
  26         "flake8-bugbear==20.1.4",
  27         "flake8-use-fstring==1.1",
  28         "isort==5.9.3",
  29         "mypy==0.910",
  30     ],
  31     "docs": ["recommonmark", "sphinx>=3.0,<4.0", "sphinx_rtd_theme>=0.5,<0.6"],
  32     "dev": ["ipython", "pre-commit", "pyinstaller", "twine"],
  33 }
  34 
  35 extras_require["dev"] = (
  36     extras_require["test"] + extras_require["lint"] + extras_require["docs"] + extras_require["dev"]
  37 )
  38 
  39 hash_file_rel_path = os.path.join("vyper", "vyper_git_version.txt")
  40 hashfile = os.path.relpath(hash_file_rel_path)
  41 
  42 try:
  43     commithash = subprocess.check_output("git rev-parse HEAD".split())
  44     commithash_str = commithash.decode("utf-8").strip()
  45     with open(hashfile, "w") as fh:
  46         fh.write(f"{__version__}\n{commithash_str}")
  47 except subprocess.CalledProcessError:
  48     pass
  49 
  50 with open("README.md", "r") as f:
  51     long_description = f.read()
  52 
  53 setup(
  54     name="vyper",
  55     version=__version__,
  56     description="Vyper: the Pythonic Programming Language for the EVM",
  57     long_description=long_description,
  58     long_description_content_type="text/markdown",
  59     author="Vyper Team",
  60     author_email="",
  61     url="https://github.com/vyperlang/vyper",
  62     license="Apache License 2.0",
  63     keywords="ethereum evm smart contract language",
  64     include_package_data=True,
  65     packages=find_packages(exclude=("tests", "docs")),
  66     python_requires=">=3.7,<3.10",
  67     py_modules=["vyper"],
  68     install_requires=[
  69         "asttokens==2.0.4",
  70         "pycryptodome>=3.5.1,<4",
  71         "semantic-version==2.8.5",
  72         "cached-property==1.5.2 ; python_version<'3.8'",
  73     ],
  74     setup_requires=["pytest-runner"],
  75     tests_require=extras_require["test"],
  76     extras_require=extras_require,
  77     entry_points={
  78         "console_scripts": [
  79             "vyper=vyper.cli.vyper_compile:_parse_cli_args",
  80             "vyper-serve=vyper.cli.vyper_serve:_parse_cli_args",
  81             "vyper-lll=vyper.cli.vyper_lll:_parse_cli_args",
  82             "vyper-json=vyper.cli.vyper_json:_parse_cli_args",
  83         ]
  84     },
  85     classifiers=[
  86         "Intended Audience :: Developers",
  87         "License :: OSI Approved :: Apache Software License",
  88         "Programming Language :: Python :: 3.7",
  89         "Programming Language :: Python :: 3.8",
  90         "Programming Language :: Python :: 3.9",
  91     ],
  92     data_files=[("", [hash_file_rel_path])],
  93 )
  94
  [end of setup.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/setup.py b/setup.py
  --- a/setup.py
  +++ b/setup.py
  @@ -15,7 +15,7 @@
           "pytest-xdist>=1.32,<2.0",
           "eth-tester[py-evm]>=0.5.0b1,<0.6",
           "py-evm==0.4.0a4",  # NOTE: temporarily pinned until we have support for py-evm 0.5.0a0+
  -        "web3==5.12.3",
  +        "web3==5.21.0",
           "tox>=3.15,<4.0",
           "lark-parser==0.10.0",
           "hypothesis[lark]>=5.37.1,<6.0",
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -15,7 +15,7 @@\n         \"pytest-xdist>=1.32,<2.0\",\n         \"eth-tester[py-evm]>=0.5.0b1,<0.6\",\n         \"py-evm==0.4.0a4\",  # NOTE: temporarily pinned until we have support for py-evm 0.5.0a0+\n-        \"web3==5.12.3\",\n+        \"web3==5.21.0\",\n         \"tox>=3.15,<4.0\",\n         \"lark-parser==0.10.0\",\n         \"hypothesis[lark]>=5.37.1,<6.0\",\n", "issue": "test fail with web3.py 5.21.0\n### Version Information\r\n\r\n* vyper Version (output of `vyper --version`): latest master (cff69d63)\r\n* OS: macos\r\n* Python Version (output of `python --version`): 3.9.6\r\n\r\n### What's your issue about?\r\n\r\ntests fail\r\n\r\ntests/cli/vyper_json/test_parse_args_vyperjson.py::test_pretty_json - json.decoder.J...\r\nFAILED tests/cli/vyper_json/test_parse_args_vyperjson.py::test_to_stdout - json.decoder.JSO...\r\nFAILED tests/parser/features/test_assert.py::test_assert_reason[False] - AssertionError: as...\r\nFAILED tests/parser/features/test_assert.py::test_assest_reason_revert\r\n\r\nmisses the string \"execution reverted\"\r\n\n", "before_files": [{"content": "# -*- coding: utf-8 -*-\n\nimport os\nimport subprocess\n\nfrom setuptools import find_packages, setup\n\n__version__ = \"0.3.0\"\n\nextras_require = {\n    \"test\": [\n        \"pytest>=5.4,<6.0\",\n        \"pytest-cov>=2.10,<3.0\",\n        \"pytest-instafail>=0.4,<1.0\",\n        \"pytest-xdist>=1.32,<2.0\",\n        \"eth-tester[py-evm]>=0.5.0b1,<0.6\",\n        \"py-evm==0.4.0a4\",  # NOTE: temporarily pinned until we have support for py-evm 0.5.0a0+\n        \"web3==5.12.3\",\n        \"tox>=3.15,<4.0\",\n        \"lark-parser==0.10.0\",\n        \"hypothesis[lark]>=5.37.1,<6.0\",\n    ],\n    \"lint\": [\n        \"black==21.9b0\",\n        \"flake8==3.9.2\",\n        \"flake8-bugbear==20.1.4\",\n        \"flake8-use-fstring==1.1\",\n        \"isort==5.9.3\",\n        \"mypy==0.910\",\n    ],\n    \"docs\": [\"recommonmark\", \"sphinx>=3.0,<4.0\", \"sphinx_rtd_theme>=0.5,<0.6\"],\n    \"dev\": [\"ipython\", \"pre-commit\", \"pyinstaller\", \"twine\"],\n}\n\nextras_require[\"dev\"] = (\n    extras_require[\"test\"] + extras_require[\"lint\"] + extras_require[\"docs\"] + extras_require[\"dev\"]\n)\n\nhash_file_rel_path = os.path.join(\"vyper\", \"vyper_git_version.txt\")\nhashfile = os.path.relpath(hash_file_rel_path)\n\ntry:\n    commithash = subprocess.check_output(\"git rev-parse HEAD\".split())\n    commithash_str = commithash.decode(\"utf-8\").strip()\n    with open(hashfile, \"w\") as fh:\n        fh.write(f\"{__version__}\\n{commithash_str}\")\nexcept subprocess.CalledProcessError:\n    pass\n\nwith open(\"README.md\", \"r\") as f:\n    long_description = f.read()\n\nsetup(\n    name=\"vyper\",\n    version=__version__,\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=find_packages(exclude=(\"tests\", \"docs\")),\n    python_requires=\">=3.7,<3.10\",\n    py_modules=[\"vyper\"],\n    install_requires=[\n        \"asttokens==2.0.4\",\n        \"pycryptodome>=3.5.1,<4\",\n        \"semantic-version==2.8.5\",\n        \"cached-property==1.5.2 ; python_version<'3.8'\",\n    ],\n    setup_requires=[\"pytest-runner\"],\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            \"vyper-lll=vyper.cli.vyper_lll:_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.7\",\n        \"Programming Language :: Python :: 3.8\",\n        \"Programming Language :: Python :: 3.9\",\n    ],\n    data_files=[(\"\", [hash_file_rel_path])],\n)\n", "path": "setup.py"}]}