prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  TF 2.3.0 incompatibility
  TF 2.3.0 was released yesterday, and seems to be incompatible with TFP <0.11.0 and breaks imports (https://travis-ci.com/github/rlworkgroup/garage/jobs/365922927#L3061). We pin TFP to <=0.10.0 in the first place to resolve cloudpickle version mismatch (https://github.com/rlworkgroup/garage/issues/1758). Since TFP 0.11.0 still pins cloudpickle to 1.3.0 while gym needs 1.2.x, unpinning TFP won't work. So for now, TF needs to be pinned to <2.3.0
  
  </issue>
  <code>
  [start of setup.py]
  1 """setuptools based setup module."""
  2 import os
  3 
  4 from setuptools import find_packages, setup
  5 
  6 GARAGE_GH_TOKEN = os.environ.get('GARAGE_GH_TOKEN') or 'git'
  7 GYM_VERSION = '0.15.4'
  8 
  9 # Required dependencies
  10 REQUIRED = [
  11     # Please keep alphabetized
  12     'akro',
  13     'click>=2.0',
  14     'cloudpickle<1.5',
  15     'cma==2.7.0',
  16     'dowel==0.0.3',
  17     f'gym[atari,box2d,classic_control]=={GYM_VERSION}',
  18     'numpy>=1.14.5',
  19     'psutil',
  20     # Pyglet 1.4.0 introduces some api change which breaks some
  21     # gym environments
  22     # See: https://github.com/openai/gym/issues/1588
  23     'pyglet<1.4.0,>=1.3.0',
  24     'python-dateutil',
  25     'ray',
  26     'scikit-image',
  27     'scipy',
  28     'setproctitle>=1.0',
  29     'tensorflow>=1.14,<2.3.0',
  30     'tensorflow-probability<=0.10.0',
  31     'torch>=1.0.0,!=1.5.0,<1.6.0',
  32     'torchvision>=0.2.1,<0.7.0',
  33 ]
  34 
  35 # Dependencies for optional features
  36 EXTRAS = {}
  37 
  38 EXTRAS['mujoco'] = [
  39     'mujoco-py<2.1,>=2.0',
  40     f'gym[all]=={GYM_VERSION}',
  41 ]
  42 
  43 EXTRAS['dm_control'] = [
  44     # dm_control throws an error during install about not being able to
  45     # find a build dependency (absl-py). Later pip executes the `install`
  46     # command again and the install succeeds because absl-py has been
  47     # installed. This is stupid, but harmless.
  48     'dm_control',
  49 ]
  50 
  51 EXTRAS['bullet'] = ['mpi4py', 'pybullet']
  52 
  53 EXTRAS['all'] = list(set(sum(EXTRAS.values(), [])))
  54 
  55 # Development dependencies (*not* included in 'all')
  56 EXTRAS['dev'] = [
  57     # Please keep alphabetized
  58     'flake8',
  59     'flake8-docstrings>=1.5.0',
  60     'flake8-import-order',
  61     f'metaworld @ https://{GARAGE_GH_TOKEN}@api.github.com/repos/rlworkgroup/metaworld/tarball/861ae8d8c4bef80a7ed86f47f47acaa494d4ab77',  # noqa: E501
  62     'isort>=4.3.21,<5.0.0',
  63     'pep8-naming==0.7.0',
  64     'pre-commit',
  65     'pycodestyle>=2.5.0',
  66     'pydocstyle>=4.0.0',
  67     'pylint>=2.5.3',
  68     'pytest>=4.5.0',  # Required for strict-markers
  69     'pytest-cov',
  70     'pytest-timeout',
  71     'pytest-xdist',
  72     'recommonmark',
  73     'sphinx',
  74     'sphinx-autoapi>=1.4.0',
  75     'sphinx_rtd_theme',
  76     'sphinxcontrib-bibtex',
  77     'yapf==0.30.0',
  78 ]  # yapf: disable
  79 
  80 with open('README.md') as f:
  81     README = f.read()
  82 
  83 # Get the package version dynamically
  84 with open('VERSION') as v:
  85     VERSION = v.read().strip()
  86 
  87 setup(
  88     name='garage',
  89     version=VERSION,
  90     author='Reinforcement Learning Working Group',
  91     description='A toolkit for reproducible reinforcement learning research',
  92     url='https://github.com/rlworkgroup/garage',
  93     packages=find_packages(where='src'),
  94     package_dir={'': 'src'},
  95     scripts=['scripts/garage'],
  96     python_requires='>=3.6',
  97     install_requires=REQUIRED,
  98     extras_require=EXTRAS,
  99     license='MIT',
  100     long_description=README,
  101     long_description_content_type='text/markdown',
  102     classifiers=[
  103         'Development Status :: 4 - Beta',
  104         'Intended Audience :: Developers',
  105         'Intended Audience :: Education',
  106         'Intended Audience :: Science/Research',
  107         'License :: OSI Approved :: MIT License',
  108         'Programming Language :: Python :: 3.6',
  109         'Programming Language :: Python :: 3.7',
  110         'Programming Language :: Python :: 3 :: Only',
  111         'Topic :: Scientific/Engineering :: Artificial Intelligence',
  112         'Topic :: Scientific/Engineering :: Mathematics',
  113         'Topic :: Software Development :: Libraries',
  114     ],
  115 )
  116
  [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
  @@ -4,30 +4,26 @@
   from setuptools import find_packages, setup
   
   GARAGE_GH_TOKEN = os.environ.get('GARAGE_GH_TOKEN') or 'git'
  -GYM_VERSION = '0.15.4'
  +GYM_VERSION = '0.17.2'
   
   # Required dependencies
   REQUIRED = [
       # Please keep alphabetized
       'akro',
       'click>=2.0',
  -    'cloudpickle<1.5',
  +    'cloudpickle==1.3',
       'cma==2.7.0',
       'dowel==0.0.3',
       f'gym[atari,box2d,classic_control]=={GYM_VERSION}',
       'numpy>=1.14.5',
       'psutil',
  -    # Pyglet 1.4.0 introduces some api change which breaks some
  -    # gym environments
  -    # See: https://github.com/openai/gym/issues/1588
  -    'pyglet<1.4.0,>=1.3.0',
       'python-dateutil',
       'ray',
       'scikit-image',
       'scipy',
       'setproctitle>=1.0',
  -    'tensorflow>=1.14,<2.3.0',
  -    'tensorflow-probability<=0.10.0',
  +    'tensorflow>=1.14',
  +    'tensorflow-probability>=0.11.0',
       'torch>=1.0.0,!=1.5.0,<1.6.0',
       'torchvision>=0.2.1,<0.7.0',
   ]
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -4,30 +4,26 @@\n from setuptools import find_packages, setup\n \n GARAGE_GH_TOKEN = os.environ.get('GARAGE_GH_TOKEN') or 'git'\n-GYM_VERSION = '0.15.4'\n+GYM_VERSION = '0.17.2'\n \n # Required dependencies\n REQUIRED = [\n     # Please keep alphabetized\n     'akro',\n     'click>=2.0',\n-    'cloudpickle<1.5',\n+    'cloudpickle==1.3',\n     'cma==2.7.0',\n     'dowel==0.0.3',\n     f'gym[atari,box2d,classic_control]=={GYM_VERSION}',\n     'numpy>=1.14.5',\n     'psutil',\n-    # Pyglet 1.4.0 introduces some api change which breaks some\n-    # gym environments\n-    # See: https://github.com/openai/gym/issues/1588\n-    'pyglet<1.4.0,>=1.3.0',\n     'python-dateutil',\n     'ray',\n     'scikit-image',\n     'scipy',\n     'setproctitle>=1.0',\n-    'tensorflow>=1.14,<2.3.0',\n-    'tensorflow-probability<=0.10.0',\n+    'tensorflow>=1.14',\n+    'tensorflow-probability>=0.11.0',\n     'torch>=1.0.0,!=1.5.0,<1.6.0',\n     'torchvision>=0.2.1,<0.7.0',\n ]\n", "issue": "TF 2.3.0 incompatibility\nTF 2.3.0 was released yesterday, and seems to be incompatible with TFP <0.11.0 and breaks imports (https://travis-ci.com/github/rlworkgroup/garage/jobs/365922927#L3061). We pin TFP to <=0.10.0 in the first place to resolve cloudpickle version mismatch (https://github.com/rlworkgroup/garage/issues/1758). Since TFP 0.11.0 still pins cloudpickle to 1.3.0 while gym needs 1.2.x, unpinning TFP won't work. So for now, TF needs to be pinned to <2.3.0\n", "before_files": [{"content": "\"\"\"setuptools based setup module.\"\"\"\nimport os\n\nfrom setuptools import find_packages, setup\n\nGARAGE_GH_TOKEN = os.environ.get('GARAGE_GH_TOKEN') or 'git'\nGYM_VERSION = '0.15.4'\n\n# Required dependencies\nREQUIRED = [\n    # Please keep alphabetized\n    'akro',\n    'click>=2.0',\n    'cloudpickle<1.5',\n    'cma==2.7.0',\n    'dowel==0.0.3',\n    f'gym[atari,box2d,classic_control]=={GYM_VERSION}',\n    'numpy>=1.14.5',\n    'psutil',\n    # Pyglet 1.4.0 introduces some api change which breaks some\n    # gym environments\n    # See: https://github.com/openai/gym/issues/1588\n    'pyglet<1.4.0,>=1.3.0',\n    'python-dateutil',\n    'ray',\n    'scikit-image',\n    'scipy',\n    'setproctitle>=1.0',\n    'tensorflow>=1.14,<2.3.0',\n    'tensorflow-probability<=0.10.0',\n    'torch>=1.0.0,!=1.5.0,<1.6.0',\n    'torchvision>=0.2.1,<0.7.0',\n]\n\n# Dependencies for optional features\nEXTRAS = {}\n\nEXTRAS['mujoco'] = [\n    'mujoco-py<2.1,>=2.0',\n    f'gym[all]=={GYM_VERSION}',\n]\n\nEXTRAS['dm_control'] = [\n    # dm_control throws an error during install about not being able to\n    # find a build dependency (absl-py). Later pip executes the `install`\n    # command again and the install succeeds because absl-py has been\n    # installed. This is stupid, but harmless.\n    'dm_control',\n]\n\nEXTRAS['bullet'] = ['mpi4py', 'pybullet']\n\nEXTRAS['all'] = list(set(sum(EXTRAS.values(), [])))\n\n# Development dependencies (*not* included in 'all')\nEXTRAS['dev'] = [\n    # Please keep alphabetized\n    'flake8',\n    'flake8-docstrings>=1.5.0',\n    'flake8-import-order',\n    f'metaworld @ https://{GARAGE_GH_TOKEN}@api.github.com/repos/rlworkgroup/metaworld/tarball/861ae8d8c4bef80a7ed86f47f47acaa494d4ab77',  # noqa: E501\n    'isort>=4.3.21,<5.0.0',\n    'pep8-naming==0.7.0',\n    'pre-commit',\n    'pycodestyle>=2.5.0',\n    'pydocstyle>=4.0.0',\n    'pylint>=2.5.3',\n    'pytest>=4.5.0',  # Required for strict-markers\n    'pytest-cov',\n    'pytest-timeout',\n    'pytest-xdist',\n    'recommonmark',\n    'sphinx',\n    'sphinx-autoapi>=1.4.0',\n    'sphinx_rtd_theme',\n    'sphinxcontrib-bibtex',\n    'yapf==0.30.0',\n]  # yapf: disable\n\nwith open('README.md') as f:\n    README = f.read()\n\n# Get the package version dynamically\nwith open('VERSION') as v:\n    VERSION = v.read().strip()\n\nsetup(\n    name='garage',\n    version=VERSION,\n    author='Reinforcement Learning Working Group',\n    description='A toolkit for reproducible reinforcement learning research',\n    url='https://github.com/rlworkgroup/garage',\n    packages=find_packages(where='src'),\n    package_dir={'': 'src'},\n    scripts=['scripts/garage'],\n    python_requires='>=3.6',\n    install_requires=REQUIRED,\n    extras_require=EXTRAS,\n    license='MIT',\n    long_description=README,\n    long_description_content_type='text/markdown',\n    classifiers=[\n        'Development Status :: 4 - Beta',\n        'Intended Audience :: Developers',\n        'Intended Audience :: Education',\n        'Intended Audience :: Science/Research',\n        'License :: OSI Approved :: MIT License',\n        'Programming Language :: Python :: 3.6',\n        'Programming Language :: Python :: 3.7',\n        'Programming Language :: Python :: 3 :: Only',\n        'Topic :: Scientific/Engineering :: Artificial Intelligence',\n        'Topic :: Scientific/Engineering :: Mathematics',\n        'Topic :: Software Development :: Libraries',\n    ],\n)\n", "path": "setup.py"}]}