prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Revert #961 before release
  Tensorflow version temporarily has an upper bound (`tensorflow<2.16.0`) in requirements-dev.txt.
  scikit-learn version temporarily has an upper bound (`scikit-learn>=1.0,<1.4.0`) in setup.py
  
  This needs to be reverted before releasing v2.6.0.
  
  
   _Originally posted by @elisno in https://github.com/cleanlab/cleanlab/issues/961#issuecomment-1898968097_
              
  
  </issue>
  <code>
  [start of setup.py]
  1 from setuptools import setup, find_packages
  2 from setuptools.command.egg_info import egg_info
  3 
  4 # To use a consistent encoding
  5 from codecs import open
  6 from os import path
  7 
  8 
  9 class egg_info_ex(egg_info):
  10     """Includes license file into `.egg-info` folder."""
  11 
  12     def run(self):
  13         # don't duplicate license into `.egg-info` when building a distribution
  14         if not self.distribution.have_run.get("install", True):
  15             # `install` command is in progress, copy license
  16             self.mkpath(self.egg_info)
  17             self.copy_file("LICENSE", self.egg_info)
  18 
  19         egg_info.run(self)
  20 
  21 
  22 here = path.abspath(path.dirname(__file__))
  23 
  24 # Get the long description from the README file
  25 with open(path.join(here, "README.md"), encoding="utf-8") as f:
  26     long_description = f.read()
  27 
  28 # Get version number and store it in __version__
  29 exec(open("cleanlab/version.py").read())
  30 
  31 DATALAB_REQUIRE = [
  32     # Mainly for Datalab's data storage class.
  33     # Still some type hints that require datasets
  34     "datasets>=2.7.0",
  35 ]
  36 
  37 IMAGE_REQUIRE = DATALAB_REQUIRE + ["cleanvision>=0.3.2"]
  38 
  39 EXTRAS_REQUIRE = {
  40     "datalab": DATALAB_REQUIRE,
  41     "image": IMAGE_REQUIRE,
  42     "all": ["matplotlib>=3.5.1"],
  43 }
  44 EXTRAS_REQUIRE["all"] = list(set(sum(EXTRAS_REQUIRE.values(), [])))
  45 
  46 setup(
  47     name="cleanlab",
  48     version=__version__,
  49     license="AGPLv3+",
  50     long_description=long_description,
  51     long_description_content_type="text/markdown",
  52     description="The standard package for data-centric AI, machine learning with label errors, "
  53     "and automatically finding and fixing dataset issues in Python.",
  54     url="https://cleanlab.ai",
  55     project_urls={
  56         "Documentation": "https://docs.cleanlab.ai",
  57         "Bug Tracker": "https://github.com/cleanlab/cleanlab/issues",
  58         "Source Code": "https://github.com/cleanlab/cleanlab",
  59     },
  60     author="Cleanlab Inc.",
  61     author_email="team@cleanlab.ai",
  62     # See https://pypi.python.org/pypi?%3Aaction=list_classifiers
  63     classifiers=[
  64         "Development Status :: 4 - Beta",
  65         "Intended Audience :: Developers",
  66         "Intended Audience :: Education",
  67         "Intended Audience :: Science/Research",
  68         "Intended Audience :: Information Technology",
  69         "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)",
  70         "Natural Language :: English",
  71         # We believe this package works will these versions, but we do not guarantee it!
  72         "Programming Language :: Python :: 3",
  73         "Programming Language :: Python :: 3.7",
  74         "Programming Language :: Python :: 3.8",
  75         "Programming Language :: Python :: 3.9",
  76         "Programming Language :: Python :: 3.10",
  77         "Programming Language :: Python",
  78         "Topic :: Software Development",
  79         "Topic :: Scientific/Engineering",
  80         "Topic :: Scientific/Engineering :: Mathematics",
  81         "Topic :: Scientific/Engineering :: Artificial Intelligence",
  82         "Topic :: Software Development :: Libraries",
  83         "Topic :: Software Development :: Libraries :: Python Modules",
  84     ],
  85     python_requires=">=3.7",
  86     # What does your project relate to?
  87     keywords="machine_learning data_cleaning confident_learning classification weak_supervision "
  88     "learning_with_noisy_labels unsupervised_learning datacentric_ai, datacentric",
  89     # You can just specify the packages manually here if your project is
  90     # simple. Or you can use find_packages().
  91     packages=find_packages(exclude=[]),
  92     # Include cleanlab license file.
  93     include_package_data=True,
  94     package_data={
  95         "": ["LICENSE"],
  96     },
  97     license_files=("LICENSE",),
  98     cmdclass={"egg_info": egg_info_ex},
  99     # List run-time dependencies here.  These will be installed by pip when
  100     # your project is installed. For an analysis of "install_requires" vs pip's
  101     # requirements files see:
  102     # https://packaging.python.org/en/latest/discussions/install-requires-vs-requirements/
  103     install_requires=[
  104         "numpy>=1.20.0",
  105         "scikit-learn>=1.0,<1.4.0",
  106         "tqdm>=4.53.0",
  107         "pandas>=1.1.5",
  108         "termcolor>=2.0.0,<2.4.0",
  109     ],
  110     extras_require=EXTRAS_REQUIRE,
  111 )
  112
  [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
  @@ -102,7 +102,7 @@
       # https://packaging.python.org/en/latest/discussions/install-requires-vs-requirements/
       install_requires=[
           "numpy>=1.20.0",
  -        "scikit-learn>=1.0,<1.4.0",
  +        "scikit-learn>=1.0",
           "tqdm>=4.53.0",
           "pandas>=1.1.5",
           "termcolor>=2.0.0,<2.4.0",
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -102,7 +102,7 @@\n     # https://packaging.python.org/en/latest/discussions/install-requires-vs-requirements/\n     install_requires=[\n         \"numpy>=1.20.0\",\n-        \"scikit-learn>=1.0,<1.4.0\",\n+        \"scikit-learn>=1.0\",\n         \"tqdm>=4.53.0\",\n         \"pandas>=1.1.5\",\n         \"termcolor>=2.0.0,<2.4.0\",\n", "issue": "Revert #961 before release\nTensorflow version temporarily has an upper bound (`tensorflow<2.16.0`) in requirements-dev.txt.\r\nscikit-learn version temporarily has an upper bound (`scikit-learn>=1.0,<1.4.0`) in setup.py\r\n\r\nThis needs to be reverted before releasing v2.6.0.\r\n\r\n\r\n _Originally posted by @elisno in https://github.com/cleanlab/cleanlab/issues/961#issuecomment-1898968097_\r\n            \n", "before_files": [{"content": "from setuptools import setup, find_packages\nfrom setuptools.command.egg_info import egg_info\n\n# To use a consistent encoding\nfrom codecs import open\nfrom os import path\n\n\nclass egg_info_ex(egg_info):\n    \"\"\"Includes license file into `.egg-info` folder.\"\"\"\n\n    def run(self):\n        # don't duplicate license into `.egg-info` when building a distribution\n        if not self.distribution.have_run.get(\"install\", True):\n            # `install` command is in progress, copy license\n            self.mkpath(self.egg_info)\n            self.copy_file(\"LICENSE\", self.egg_info)\n\n        egg_info.run(self)\n\n\nhere = path.abspath(path.dirname(__file__))\n\n# Get the long description from the README file\nwith open(path.join(here, \"README.md\"), encoding=\"utf-8\") as f:\n    long_description = f.read()\n\n# Get version number and store it in __version__\nexec(open(\"cleanlab/version.py\").read())\n\nDATALAB_REQUIRE = [\n    # Mainly for Datalab's data storage class.\n    # Still some type hints that require datasets\n    \"datasets>=2.7.0\",\n]\n\nIMAGE_REQUIRE = DATALAB_REQUIRE + [\"cleanvision>=0.3.2\"]\n\nEXTRAS_REQUIRE = {\n    \"datalab\": DATALAB_REQUIRE,\n    \"image\": IMAGE_REQUIRE,\n    \"all\": [\"matplotlib>=3.5.1\"],\n}\nEXTRAS_REQUIRE[\"all\"] = list(set(sum(EXTRAS_REQUIRE.values(), [])))\n\nsetup(\n    name=\"cleanlab\",\n    version=__version__,\n    license=\"AGPLv3+\",\n    long_description=long_description,\n    long_description_content_type=\"text/markdown\",\n    description=\"The standard package for data-centric AI, machine learning with label errors, \"\n    \"and automatically finding and fixing dataset issues in Python.\",\n    url=\"https://cleanlab.ai\",\n    project_urls={\n        \"Documentation\": \"https://docs.cleanlab.ai\",\n        \"Bug Tracker\": \"https://github.com/cleanlab/cleanlab/issues\",\n        \"Source Code\": \"https://github.com/cleanlab/cleanlab\",\n    },\n    author=\"Cleanlab Inc.\",\n    author_email=\"team@cleanlab.ai\",\n    # See https://pypi.python.org/pypi?%3Aaction=list_classifiers\n    classifiers=[\n        \"Development Status :: 4 - Beta\",\n        \"Intended Audience :: Developers\",\n        \"Intended Audience :: Education\",\n        \"Intended Audience :: Science/Research\",\n        \"Intended Audience :: Information Technology\",\n        \"License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)\",\n        \"Natural Language :: English\",\n        # We believe this package works will these versions, but we do not guarantee it!\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\",\n        \"Topic :: Software Development\",\n        \"Topic :: Scientific/Engineering\",\n        \"Topic :: Scientific/Engineering :: Mathematics\",\n        \"Topic :: Scientific/Engineering :: Artificial Intelligence\",\n        \"Topic :: Software Development :: Libraries\",\n        \"Topic :: Software Development :: Libraries :: Python Modules\",\n    ],\n    python_requires=\">=3.7\",\n    # What does your project relate to?\n    keywords=\"machine_learning data_cleaning confident_learning classification weak_supervision \"\n    \"learning_with_noisy_labels unsupervised_learning datacentric_ai, datacentric\",\n    # You can just specify the packages manually here if your project is\n    # simple. Or you can use find_packages().\n    packages=find_packages(exclude=[]),\n    # Include cleanlab license file.\n    include_package_data=True,\n    package_data={\n        \"\": [\"LICENSE\"],\n    },\n    license_files=(\"LICENSE\",),\n    cmdclass={\"egg_info\": egg_info_ex},\n    # List run-time dependencies here.  These will be installed by pip when\n    # your project is installed. For an analysis of \"install_requires\" vs pip's\n    # requirements files see:\n    # https://packaging.python.org/en/latest/discussions/install-requires-vs-requirements/\n    install_requires=[\n        \"numpy>=1.20.0\",\n        \"scikit-learn>=1.0,<1.4.0\",\n        \"tqdm>=4.53.0\",\n        \"pandas>=1.1.5\",\n        \"termcolor>=2.0.0,<2.4.0\",\n    ],\n    extras_require=EXTRAS_REQUIRE,\n)\n", "path": "setup.py"}]}