prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  pytest flag --strict-markers requires version 4.5.0
  pytest flag `--strict-markers` in https://github.com/rlworkgroup/garage/blob/master/setup.cfg#L79 requires version >= 4.5.0. 
  
  See https://docs.pytest.org/en/latest/changelog.html#pytest-4-5-0-2019-05-11
  
  </issue>
  <code>
  [start of setup.py]
  1 """setuptools based setup module."""
  2 from setuptools import find_packages
  3 from setuptools import setup
  4 
  5 TF_VERSION = '<1.16,>=1.15.0'
  6 GYM_VERSION = '==0.12.4'
  7 
  8 # Required dependencies
  9 REQUIRED = [
  10     # Please keep alphabetized
  11     'akro==0.0.6',
  12     'cached_property',
  13     'click',
  14     'cloudpickle',
  15     'cma==2.7.0',
  16     'dowel==0.0.2',
  17     'gym[atari,box2d,classic_control]' + GYM_VERSION,
  18     'joblib<0.13,>=0.12',
  19     'matplotlib',
  20     'numpy>=1.14.5',
  21     'psutil',
  22     # Pyglet 1.4.0 introduces some api change which breaks some
  23     # gym environments
  24     # See: https://github.com/openai/gym/issues/1588
  25     'pyglet<1.4.0,>=1.3.0',
  26     'pyprind',
  27     'python-dateutil',
  28     'torch==1.3.0',
  29     'ray',
  30     'scikit-image',
  31     'scipy',
  32     'tensorflow' + TF_VERSION,
  33     'tensorflow-probability',
  34     'torchvision==0.4.1'
  35 ]
  36 
  37 # Dependencies for optional features
  38 EXTRAS = {}
  39 
  40 EXTRAS['mujoco'] = [
  41     'mujoco-py<2.1,>=2.0',
  42     'gym[all]' + GYM_VERSION,
  43 ]
  44 
  45 EXTRAS['dm_control'] = [
  46     # dm_control throws an error during install about not being able to
  47     # find a build dependency (absl-py). Later pip executes the `install`
  48     # command again and the install succeeds because absl-py has been
  49     # installed. This is stupid, but harmless.
  50     'dm_control @ https://api.github.com/repos/deepmind/dm_control/tarball/7a36377879c57777e5d5b4da5aae2cd2a29b607a',  # pylint: disable=line-too-long; # noqa: E501
  51 ]
  52 
  53 EXTRAS['all'] = list(set(sum(EXTRAS.values(), [])))
  54 
  55 # dependencies for using gpu, not included in 'all'
  56 EXTRAS['gpu'] = ['tensorflow-gpu' + TF_VERSION]
  57 
  58 # Development dependencies (*not* included in 'all')
  59 EXTRAS['dev'] = [
  60     # Please keep alphabetized
  61     'baselines @ https://api.github.com/repos/openai/baselines/tarball/f2729693253c0ef4d4086231d36e0a4307ec1cb3',  # pylint: disable=line-too-long; # noqa: E501
  62     'flake8',
  63     'flake8-docstrings>=1.5.0',
  64     'flake8-import-order',
  65     'gtimer',
  66     'pandas',
  67     'pep8-naming==0.7.0',
  68     'pre-commit',
  69     'pycodestyle>=2.5.0',
  70     'pydocstyle>=4.0.0',
  71     'pylint>=2.4.3',
  72     'pytest>=3.6',  # Required for pytest-cov on Python 3.6
  73     'pytest-cov',
  74     'pytest-xdist',
  75     'recommonmark',
  76     'rlkit @ git+https://github.com/vitchyr/rlkit/@1d469a509b797ca04a39b8734c1816ca7d108fc8',  # pylint: disable=line-too-long; # noqa: E501
  77     'seaborn',
  78     'sphinx',
  79     'sphinx_rtd_theme',
  80     'yapf==0.28.0',
  81 ]
  82 
  83 with open('README.md') as f:
  84     README = f.read()
  85 
  86 # Get the package version dynamically
  87 with open('VERSION') as v:
  88     VERSION = v.read().strip()
  89 
  90 setup(
  91     name='garage',
  92     version=VERSION,
  93     author='Reinforcement Learning Working Group',
  94     description='A toolkit for reproducible reinforcement learning research',
  95     url='https://github.com/rlworkgroup/garage',
  96     packages=find_packages(where='src'),
  97     package_dir={'': 'src'},
  98     scripts=['scripts/garage'],
  99     python_requires='>=3.5',
  100     install_requires=REQUIRED,
  101     extras_require=EXTRAS,
  102     license='MIT',
  103     long_description=README,
  104     long_description_content_type='text/markdown',
  105     classifiers=[
  106         'Development Status :: 4 - Beta',
  107         'Intended Audience :: Developers',
  108         'Intended Audience :: Education',
  109         'Intended Audience :: Science/Research',
  110         'License :: OSI Approved :: MIT License',
  111         'Programming Language :: Python :: 3.5',
  112         'Programming Language :: Python :: 3.6',
  113         'Programming Language :: Python :: 3.7',
  114         'Programming Language :: Python :: 3 :: Only',
  115         'Topic :: Scientific/Engineering :: Artificial Intelligence',
  116         'Topic :: Scientific/Engineering :: Mathematics',
  117         'Topic :: Software Development :: Libraries',
  118     ],
  119 )
  120
  [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
  @@ -69,7 +69,7 @@
       'pycodestyle>=2.5.0',
       'pydocstyle>=4.0.0',
       'pylint>=2.4.3',
  -    'pytest>=3.6',  # Required for pytest-cov on Python 3.6
  +    'pytest>=4.5.0',  # Required for strict-markers
       'pytest-cov',
       'pytest-xdist',
       'recommonmark',
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -69,7 +69,7 @@\n     'pycodestyle>=2.5.0',\n     'pydocstyle>=4.0.0',\n     'pylint>=2.4.3',\n-    'pytest>=3.6',  # Required for pytest-cov on Python 3.6\n+    'pytest>=4.5.0',  # Required for strict-markers\n     'pytest-cov',\n     'pytest-xdist',\n     'recommonmark',\n", "issue": "pytest flag --strict-markers requires version 4.5.0\npytest flag `--strict-markers` in https://github.com/rlworkgroup/garage/blob/master/setup.cfg#L79 requires version >= 4.5.0. \r\n\r\nSee https://docs.pytest.org/en/latest/changelog.html#pytest-4-5-0-2019-05-11\n", "before_files": [{"content": "\"\"\"setuptools based setup module.\"\"\"\nfrom setuptools import find_packages\nfrom setuptools import setup\n\nTF_VERSION = '<1.16,>=1.15.0'\nGYM_VERSION = '==0.12.4'\n\n# Required dependencies\nREQUIRED = [\n    # Please keep alphabetized\n    'akro==0.0.6',\n    'cached_property',\n    'click',\n    'cloudpickle',\n    'cma==2.7.0',\n    'dowel==0.0.2',\n    'gym[atari,box2d,classic_control]' + GYM_VERSION,\n    'joblib<0.13,>=0.12',\n    'matplotlib',\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    'pyprind',\n    'python-dateutil',\n    'torch==1.3.0',\n    'ray',\n    'scikit-image',\n    'scipy',\n    'tensorflow' + TF_VERSION,\n    'tensorflow-probability',\n    'torchvision==0.4.1'\n]\n\n# Dependencies for optional features\nEXTRAS = {}\n\nEXTRAS['mujoco'] = [\n    'mujoco-py<2.1,>=2.0',\n    '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 @ https://api.github.com/repos/deepmind/dm_control/tarball/7a36377879c57777e5d5b4da5aae2cd2a29b607a',  # pylint: disable=line-too-long; # noqa: E501\n]\n\nEXTRAS['all'] = list(set(sum(EXTRAS.values(), [])))\n\n# dependencies for using gpu, not included in 'all'\nEXTRAS['gpu'] = ['tensorflow-gpu' + TF_VERSION]\n\n# Development dependencies (*not* included in 'all')\nEXTRAS['dev'] = [\n    # Please keep alphabetized\n    'baselines @ https://api.github.com/repos/openai/baselines/tarball/f2729693253c0ef4d4086231d36e0a4307ec1cb3',  # pylint: disable=line-too-long; # noqa: E501\n    'flake8',\n    'flake8-docstrings>=1.5.0',\n    'flake8-import-order',\n    'gtimer',\n    'pandas',\n    'pep8-naming==0.7.0',\n    'pre-commit',\n    'pycodestyle>=2.5.0',\n    'pydocstyle>=4.0.0',\n    'pylint>=2.4.3',\n    'pytest>=3.6',  # Required for pytest-cov on Python 3.6\n    'pytest-cov',\n    'pytest-xdist',\n    'recommonmark',\n    'rlkit @ git+https://github.com/vitchyr/rlkit/@1d469a509b797ca04a39b8734c1816ca7d108fc8',  # pylint: disable=line-too-long; # noqa: E501\n    'seaborn',\n    'sphinx',\n    'sphinx_rtd_theme',\n    'yapf==0.28.0',\n]\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.5',\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.5',\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"}]}