prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Why python_requires <3.12?
  In https://github.com/unionai-oss/pandera/commit/547aff1672fe455741f380c8bec1ed648074effc, `python_requires` was changed from `>=3.7` to `>=3.7,<=3.11`, and in a later commit, the upper bound was again changed to `<3.12`. This forces every downstream package or application to lower the upper bound from the typical default <4.0, which is unfortunate.
  
  For example, with poetry, using the default `python = "^3.x"` version specification, pandera is now downgraded, or if one tries to force a newer version, version resolution fails:
  
  ```
  > poetry update pandera
  
    • Updating pandera (0.15.1 -> 0.14.5)
  ```
  
  ```
  > poetry add pandera@0.15.1
  
  The current project's Python requirement (>=3.9,<4.0) is not compatible with some of the required packages Python requirement:
    - pandera requires Python >=3.7,<3.12, so it will not be satisfied for Python >=3.12,<4.0
  
  Because my_package depends on pandera (0.15.1) which requires Python >=3.7,<3.12, version solving failed.
  ```
  
  Is there a known issue with pandera on python 3.12? Otherwise, I recommend removing the constraint. While pandera might not be tested on 3.12 yet, it's common to assume the language will be backwards compatible as described in [PEP 387](https://peps.python.org/pep-0387/).
  
  </issue>
  <code>
  [start of setup.py]
  1 from setuptools import find_packages, setup
  2 
  3 with open("README.md") as f:
  4     long_description = f.read()
  5 
  6 version = {}
  7 with open("pandera/version.py") as fp:
  8     exec(fp.read(), version)
  9 
  10 _extras_require = {
  11     "strategies": ["hypothesis >= 5.41.1"],
  12     "hypotheses": ["scipy"],
  13     "io": ["pyyaml >= 5.1", "black", "frictionless <= 4.40.8"],
  14     "pyspark": ["pyspark >= 3.2.0"],
  15     "modin": ["modin", "ray", "dask"],
  16     "modin-ray": ["modin", "ray"],
  17     "modin-dask": ["modin", "dask"],
  18     "dask": ["dask"],
  19     "mypy": ["pandas-stubs"],
  20     "fastapi": ["fastapi"],
  21     "geopandas": ["geopandas", "shapely"],
  22 }
  23 
  24 extras_require = {
  25     **_extras_require,
  26     "all": list(set(x for y in _extras_require.values() for x in y)),
  27 }
  28 
  29 setup(
  30     name="pandera",
  31     version=version["__version__"],
  32     author="Niels Bantilan",
  33     author_email="niels.bantilan@gmail.com",
  34     description="A light-weight and flexible data validation and testing tool for statistical data objects.",
  35     long_description=long_description,
  36     long_description_content_type="text/markdown",
  37     url="https://github.com/pandera-dev/pandera",
  38     project_urls={
  39         "Documentation": "https://pandera.readthedocs.io",
  40         "Issue Tracker": "https://github.com/pandera-dev/pandera/issues",
  41     },
  42     keywords=["pandas", "validation", "data-structures"],
  43     license="MIT",
  44     data_files=[("", ["LICENSE.txt"])],
  45     packages=find_packages(include=["pandera*"]),
  46     package_data={"pandera": ["py.typed"]},
  47     install_requires=[
  48         "multimethod",
  49         "numpy >= 1.19.0",
  50         "packaging >= 20.0",
  51         "pandas >= 1.2.0",
  52         "pydantic",
  53         "typeguard >= 3.0.2",
  54         "typing_extensions >= 3.7.4.3 ; python_version<'3.8'",
  55         "typing_inspect >= 0.6.0",
  56         "wrapt",
  57     ],
  58     extras_require=extras_require,
  59     python_requires=">=3.7,<3.12",
  60     platforms="any",
  61     classifiers=[
  62         "Development Status :: 5 - Production/Stable",
  63         "Operating System :: OS Independent",
  64         "License :: OSI Approved :: MIT License",
  65         "Intended Audience :: Science/Research",
  66         "Programming Language :: Python",
  67         "Programming Language :: Python :: 3",
  68         "Programming Language :: Python :: 3.7",
  69         "Programming Language :: Python :: 3.8",
  70         "Programming Language :: Python :: 3.9",
  71         "Programming Language :: Python :: 3.10",
  72         "Programming Language :: Python :: 3.11",
  73         "Topic :: Scientific/Engineering",
  74     ],
  75 )
  76
  [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
  @@ -56,7 +56,7 @@
           "wrapt",
       ],
       extras_require=extras_require,
  -    python_requires=">=3.7,<3.12",
  +    python_requires=">=3.7",
       platforms="any",
       classifiers=[
           "Development Status :: 5 - Production/Stable",
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -56,7 +56,7 @@\n         \"wrapt\",\n     ],\n     extras_require=extras_require,\n-    python_requires=\">=3.7,<3.12\",\n+    python_requires=\">=3.7\",\n     platforms=\"any\",\n     classifiers=[\n         \"Development Status :: 5 - Production/Stable\",\n", "issue": "Why python_requires <3.12?\nIn https://github.com/unionai-oss/pandera/commit/547aff1672fe455741f380c8bec1ed648074effc, `python_requires` was changed from `>=3.7` to `>=3.7,<=3.11`, and in a later commit, the upper bound was again changed to `<3.12`. This forces every downstream package or application to lower the upper bound from the typical default <4.0, which is unfortunate.\r\n\r\nFor example, with poetry, using the default `python = \"^3.x\"` version specification, pandera is now downgraded, or if one tries to force a newer version, version resolution fails:\r\n\r\n```\r\n> poetry update pandera\r\n\r\n  \u2022 Updating pandera (0.15.1 -> 0.14.5)\r\n```\r\n\r\n```\r\n> poetry add pandera@0.15.1\r\n\r\nThe current project's Python requirement (>=3.9,<4.0) is not compatible with some of the required packages Python requirement:\r\n  - pandera requires Python >=3.7,<3.12, so it will not be satisfied for Python >=3.12,<4.0\r\n\r\nBecause my_package depends on pandera (0.15.1) which requires Python >=3.7,<3.12, version solving failed.\r\n```\r\n\r\nIs there a known issue with pandera on python 3.12? Otherwise, I recommend removing the constraint. While pandera might not be tested on 3.12 yet, it's common to assume the language will be backwards compatible as described in [PEP 387](https://peps.python.org/pep-0387/).\n", "before_files": [{"content": "from setuptools import find_packages, setup\n\nwith open(\"README.md\") as f:\n    long_description = f.read()\n\nversion = {}\nwith open(\"pandera/version.py\") as fp:\n    exec(fp.read(), version)\n\n_extras_require = {\n    \"strategies\": [\"hypothesis >= 5.41.1\"],\n    \"hypotheses\": [\"scipy\"],\n    \"io\": [\"pyyaml >= 5.1\", \"black\", \"frictionless <= 4.40.8\"],\n    \"pyspark\": [\"pyspark >= 3.2.0\"],\n    \"modin\": [\"modin\", \"ray\", \"dask\"],\n    \"modin-ray\": [\"modin\", \"ray\"],\n    \"modin-dask\": [\"modin\", \"dask\"],\n    \"dask\": [\"dask\"],\n    \"mypy\": [\"pandas-stubs\"],\n    \"fastapi\": [\"fastapi\"],\n    \"geopandas\": [\"geopandas\", \"shapely\"],\n}\n\nextras_require = {\n    **_extras_require,\n    \"all\": list(set(x for y in _extras_require.values() for x in y)),\n}\n\nsetup(\n    name=\"pandera\",\n    version=version[\"__version__\"],\n    author=\"Niels Bantilan\",\n    author_email=\"niels.bantilan@gmail.com\",\n    description=\"A light-weight and flexible data validation and testing tool for statistical data objects.\",\n    long_description=long_description,\n    long_description_content_type=\"text/markdown\",\n    url=\"https://github.com/pandera-dev/pandera\",\n    project_urls={\n        \"Documentation\": \"https://pandera.readthedocs.io\",\n        \"Issue Tracker\": \"https://github.com/pandera-dev/pandera/issues\",\n    },\n    keywords=[\"pandas\", \"validation\", \"data-structures\"],\n    license=\"MIT\",\n    data_files=[(\"\", [\"LICENSE.txt\"])],\n    packages=find_packages(include=[\"pandera*\"]),\n    package_data={\"pandera\": [\"py.typed\"]},\n    install_requires=[\n        \"multimethod\",\n        \"numpy >= 1.19.0\",\n        \"packaging >= 20.0\",\n        \"pandas >= 1.2.0\",\n        \"pydantic\",\n        \"typeguard >= 3.0.2\",\n        \"typing_extensions >= 3.7.4.3 ; python_version<'3.8'\",\n        \"typing_inspect >= 0.6.0\",\n        \"wrapt\",\n    ],\n    extras_require=extras_require,\n    python_requires=\">=3.7,<3.12\",\n    platforms=\"any\",\n    classifiers=[\n        \"Development Status :: 5 - Production/Stable\",\n        \"Operating System :: OS Independent\",\n        \"License :: OSI Approved :: MIT License\",\n        \"Intended Audience :: Science/Research\",\n        \"Programming Language :: Python\",\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        \"Topic :: Scientific/Engineering\",\n    ],\n)\n", "path": "setup.py"}]}