prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Cannot import appengine
  ### How do you use Sentry?
  
  Sentry Saas (sentry.io)
  
  ### Version
  
  1.18.0
  
  ### Steps to Reproduce
  
  Install the SDK within any project that is not pinning urllib3 < 2.0.0
  
  ### Expected Result
  
  ability to import appengine
  
  ### Actual Result
  
  Cannot import appengine as gaecontrib.
  As per urllib 2.0.0 release: https://github.com/urllib3/urllib3/tree/2.0.0
  
  Removed urllib3.contrib.appengine.AppEngineManager and support for Google App Engine Standard Environment (https://github.com/urllib3/urllib3/issues/2044).
  
  </issue>
  <code>
  [start of setup.py]
  1 #!/usr/bin/env python
  2 
  3 """
  4 Sentry-Python - Sentry SDK for Python
  5 =====================================
  6 
  7 **Sentry-Python is an SDK for Sentry.** Check out `GitHub
  8 <https://github.com/getsentry/sentry-python>`_ to find out more.
  9 """
  10 
  11 import os
  12 from setuptools import setup, find_packages
  13 
  14 here = os.path.abspath(os.path.dirname(__file__))
  15 
  16 
  17 def get_file_text(file_name):
  18     with open(os.path.join(here, file_name)) as in_file:
  19         return in_file.read()
  20 
  21 
  22 setup(
  23     name="sentry-sdk",
  24     version="1.21.1",
  25     author="Sentry Team and Contributors",
  26     author_email="hello@sentry.io",
  27     url="https://github.com/getsentry/sentry-python",
  28     project_urls={
  29         "Documentation": "https://docs.sentry.io/platforms/python/",
  30         "Changelog": "https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md",
  31     },
  32     description="Python client for Sentry (https://sentry.io)",
  33     long_description=get_file_text("README.md"),
  34     long_description_content_type="text/markdown",
  35     packages=find_packages(exclude=("tests", "tests.*")),
  36     # PEP 561
  37     package_data={"sentry_sdk": ["py.typed"]},
  38     zip_safe=False,
  39     license="MIT",
  40     install_requires=[
  41         'urllib3>=1.25.7; python_version<="3.4"',
  42         'urllib3>=1.26.9; python_version=="3.5"',
  43         'urllib3>=1.26.11; python_version >="3.6"',
  44         "certifi",
  45     ],
  46     extras_require={
  47         "flask": ["flask>=0.11", "blinker>=1.1"],
  48         "quart": ["quart>=0.16.1", "blinker>=1.1"],
  49         "bottle": ["bottle>=0.12.13"],
  50         "falcon": ["falcon>=1.4"],
  51         "django": ["django>=1.8"],
  52         "sanic": ["sanic>=0.8"],
  53         "celery": ["celery>=3"],
  54         "huey": ["huey>=2"],
  55         "beam": ["apache-beam>=2.12"],
  56         "arq": ["arq>=0.23"],
  57         "rq": ["rq>=0.6"],
  58         "aiohttp": ["aiohttp>=3.5"],
  59         "tornado": ["tornado>=5"],
  60         "sqlalchemy": ["sqlalchemy>=1.2"],
  61         "pyspark": ["pyspark>=2.4.4"],
  62         "pure_eval": ["pure_eval", "executing", "asttokens"],
  63         "chalice": ["chalice>=1.16.0"],
  64         "httpx": ["httpx>=0.16.0"],
  65         "starlette": ["starlette>=0.19.1"],
  66         "starlite": ["starlite>=1.48"],
  67         "fastapi": ["fastapi>=0.79.0"],
  68         "pymongo": ["pymongo>=3.1"],
  69         "opentelemetry": ["opentelemetry-distro>=0.35b0"],
  70         "grpcio": ["grpcio>=1.21.1"]
  71     },
  72     classifiers=[
  73         "Development Status :: 5 - Production/Stable",
  74         "Environment :: Web Environment",
  75         "Intended Audience :: Developers",
  76         "License :: OSI Approved :: BSD License",
  77         "Operating System :: OS Independent",
  78         "Programming Language :: Python",
  79         "Programming Language :: Python :: 2",
  80         "Programming Language :: Python :: 2.7",
  81         "Programming Language :: Python :: 3",
  82         "Programming Language :: Python :: 3.4",
  83         "Programming Language :: Python :: 3.5",
  84         "Programming Language :: Python :: 3.6",
  85         "Programming Language :: Python :: 3.7",
  86         "Programming Language :: Python :: 3.8",
  87         "Programming Language :: Python :: 3.9",
  88         "Programming Language :: Python :: 3.10",
  89         "Topic :: Software Development :: Libraries :: Python Modules",
  90     ],
  91     options={"bdist_wheel": {"universal": "1"}},
  92 )
  93
  [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
  @@ -41,6 +41,7 @@
           'urllib3>=1.25.7; python_version<="3.4"',
           'urllib3>=1.26.9; python_version=="3.5"',
           'urllib3>=1.26.11; python_version >="3.6"',
  +        'urllib3<2.0.0',
           "certifi",
       ],
       extras_require={
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -41,6 +41,7 @@\n         'urllib3>=1.25.7; python_version<=\"3.4\"',\n         'urllib3>=1.26.9; python_version==\"3.5\"',\n         'urllib3>=1.26.11; python_version >=\"3.6\"',\n+        'urllib3<2.0.0',\n         \"certifi\",\n     ],\n     extras_require={\n", "issue": "Cannot import appengine\n### How do you use Sentry?\n\nSentry Saas (sentry.io)\n\n### Version\n\n1.18.0\n\n### Steps to Reproduce\n\nInstall the SDK within any project that is not pinning urllib3 < 2.0.0\n\n### Expected Result\n\nability to import appengine\n\n### Actual Result\n\nCannot import appengine as gaecontrib.\r\nAs per urllib 2.0.0 release: https://github.com/urllib3/urllib3/tree/2.0.0\r\n\r\nRemoved urllib3.contrib.appengine.AppEngineManager and support for Google App Engine Standard Environment (https://github.com/urllib3/urllib3/issues/2044).\n", "before_files": [{"content": "#!/usr/bin/env python\n\n\"\"\"\nSentry-Python - Sentry SDK for Python\n=====================================\n\n**Sentry-Python is an SDK for Sentry.** Check out `GitHub\n<https://github.com/getsentry/sentry-python>`_ to find out more.\n\"\"\"\n\nimport os\nfrom setuptools import setup, find_packages\n\nhere = os.path.abspath(os.path.dirname(__file__))\n\n\ndef get_file_text(file_name):\n    with open(os.path.join(here, file_name)) as in_file:\n        return in_file.read()\n\n\nsetup(\n    name=\"sentry-sdk\",\n    version=\"1.21.1\",\n    author=\"Sentry Team and Contributors\",\n    author_email=\"hello@sentry.io\",\n    url=\"https://github.com/getsentry/sentry-python\",\n    project_urls={\n        \"Documentation\": \"https://docs.sentry.io/platforms/python/\",\n        \"Changelog\": \"https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md\",\n    },\n    description=\"Python client for Sentry (https://sentry.io)\",\n    long_description=get_file_text(\"README.md\"),\n    long_description_content_type=\"text/markdown\",\n    packages=find_packages(exclude=(\"tests\", \"tests.*\")),\n    # PEP 561\n    package_data={\"sentry_sdk\": [\"py.typed\"]},\n    zip_safe=False,\n    license=\"MIT\",\n    install_requires=[\n        'urllib3>=1.25.7; python_version<=\"3.4\"',\n        'urllib3>=1.26.9; python_version==\"3.5\"',\n        'urllib3>=1.26.11; python_version >=\"3.6\"',\n        \"certifi\",\n    ],\n    extras_require={\n        \"flask\": [\"flask>=0.11\", \"blinker>=1.1\"],\n        \"quart\": [\"quart>=0.16.1\", \"blinker>=1.1\"],\n        \"bottle\": [\"bottle>=0.12.13\"],\n        \"falcon\": [\"falcon>=1.4\"],\n        \"django\": [\"django>=1.8\"],\n        \"sanic\": [\"sanic>=0.8\"],\n        \"celery\": [\"celery>=3\"],\n        \"huey\": [\"huey>=2\"],\n        \"beam\": [\"apache-beam>=2.12\"],\n        \"arq\": [\"arq>=0.23\"],\n        \"rq\": [\"rq>=0.6\"],\n        \"aiohttp\": [\"aiohttp>=3.5\"],\n        \"tornado\": [\"tornado>=5\"],\n        \"sqlalchemy\": [\"sqlalchemy>=1.2\"],\n        \"pyspark\": [\"pyspark>=2.4.4\"],\n        \"pure_eval\": [\"pure_eval\", \"executing\", \"asttokens\"],\n        \"chalice\": [\"chalice>=1.16.0\"],\n        \"httpx\": [\"httpx>=0.16.0\"],\n        \"starlette\": [\"starlette>=0.19.1\"],\n        \"starlite\": [\"starlite>=1.48\"],\n        \"fastapi\": [\"fastapi>=0.79.0\"],\n        \"pymongo\": [\"pymongo>=3.1\"],\n        \"opentelemetry\": [\"opentelemetry-distro>=0.35b0\"],\n        \"grpcio\": [\"grpcio>=1.21.1\"]\n    },\n    classifiers=[\n        \"Development Status :: 5 - Production/Stable\",\n        \"Environment :: Web Environment\",\n        \"Intended Audience :: Developers\",\n        \"License :: OSI Approved :: BSD License\",\n        \"Operating System :: OS Independent\",\n        \"Programming Language :: Python\",\n        \"Programming Language :: Python :: 2\",\n        \"Programming Language :: Python :: 2.7\",\n        \"Programming Language :: Python :: 3\",\n        \"Programming Language :: Python :: 3.4\",\n        \"Programming Language :: Python :: 3.5\",\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        \"Programming Language :: Python :: 3.10\",\n        \"Topic :: Software Development :: Libraries :: Python Modules\",\n    ],\n    options={\"bdist_wheel\": {\"universal\": \"1\"}},\n)\n", "path": "setup.py"}]}