prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  papermill seems to break? pin version?
  # Description
  
  In the CI for @nikoladze's PR https://github.com/diana-hep/pyhf/pull/365 it seems like papermill is breaking for unrelated reasons. Did something change upstream? Maybe we need to pin the version? Maybe @matthewfeickert knows?
  
  
  https://travis-ci.org/diana-hep/pyhf/jobs/454931484
  
  </issue>
  <code>
  [start of setup.py]
  1 #!/usr/bin/env python
  2 
  3 from setuptools import setup, find_packages
  4 from os import path
  5 import sys
  6 
  7 this_directory = path.abspath(path.dirname(__file__))
  8 if sys.version_info.major < 3:
  9     from io import open
  10 with open(path.join(this_directory, 'README.md'), encoding='utf-8') as readme_md:
  11     long_description = readme_md.read()
  12 
  13 extras_require = {
  14     'tensorflow': [
  15         'tensorflow<1.12.0,>=1.10.0',
  16         'tensorflow-probability==0.3.0',
  17         'numpy<=1.14.5,>=1.14.0',  # Lower of 1.14.0 instead of 1.13.3 to ensure doctest pass
  18         'setuptools<=39.1.0',
  19     ],
  20     'torch': ['torch>=0.4.0'],
  21     'mxnet': [
  22         'mxnet>=1.0.0',
  23         'requests<2.19.0,>=2.18.4',
  24         'numpy<1.15.0,>=1.8.2',
  25         'requests<2.19.0,>=2.18.4',
  26     ],
  27     # 'dask': [
  28     #     'dask[array]'
  29     # ],
  30     'xmlimport': ['uproot'],
  31     'minuit': ['iminuit'],
  32     'develop': [
  33         'pyflakes',
  34         'pytest>=3.5.1',
  35         'pytest-cov>=2.5.1',
  36         'pytest-benchmark[histogram]',
  37         'pytest-console-scripts',
  38         'python-coveralls',
  39         'coverage>=4.0',  # coveralls
  40         'matplotlib',
  41         'jupyter',
  42         'nbdime',
  43         'uproot>=3.0.0',
  44         'papermill',
  45         'graphviz',
  46         'bumpversion',
  47         'sphinx',
  48         'sphinxcontrib-bibtex',
  49         'sphinxcontrib-napoleon',
  50         'sphinx_rtd_theme',
  51         'nbsphinx',
  52         'sphinx-issues',
  53         'm2r',
  54         'jsonpatch',
  55         'ipython<7',  # jupyter_console and ipython clash in dependency requirement -- downgrade ipython for now
  56         'pre-commit',
  57         'black;python_version>="3.6"',  # Black is Python3 only
  58         'twine',
  59     ],
  60 }
  61 extras_require['complete'] = sorted(set(sum(extras_require.values(), [])))
  62 
  63 setup(
  64     name='pyhf',
  65     version='0.0.15',
  66     description='(partial) pure python histfactory implementation',
  67     long_description=long_description,
  68     long_description_content_type='text/markdown',
  69     url='https://github.com/diana-hep/pyhf',
  70     author='Lukas Heinrich',
  71     author_email='lukas.heinrich@cern.ch',
  72     license='Apache',
  73     keywords='physics fitting numpy scipy tensorflow pytorch mxnet dask',
  74     classifiers=[
  75         "Programming Language :: Python :: 2",
  76         "Programming Language :: Python :: 2.7",
  77         "Programming Language :: Python :: 3",
  78         "Programming Language :: Python :: 3.6",
  79     ],
  80     packages=find_packages(),
  81     include_package_data=True,
  82     python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*",
  83     install_requires=[
  84         'scipy',  # requires numpy, which is required by pyhf, tensorflow, and mxnet
  85         'click>=6.0',  # for console scripts,
  86         'tqdm',  # for readxml
  87         'six',  # for modifiers
  88         'jsonschema>=v3.0.0a2',  # for utils, alpha-release for draft 6
  89         'jsonpatch',
  90     ],
  91     extras_require=extras_require,
  92     entry_points={'console_scripts': ['pyhf=pyhf.commandline:pyhf']},
  93     dependency_links=[],
  94 )
  95
  [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
  @@ -31,7 +31,7 @@
       'minuit': ['iminuit'],
       'develop': [
           'pyflakes',
  -        'pytest>=3.5.1',
  +        'pytest<4.0.0,>=3.5.1',
           'pytest-cov>=2.5.1',
           'pytest-benchmark[histogram]',
           'pytest-console-scripts',
  @@ -41,7 +41,7 @@
           'jupyter',
           'nbdime',
           'uproot>=3.0.0',
  -        'papermill',
  +        'papermill>=0.16.0',
           'graphviz',
           'bumpversion',
           'sphinx',
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -31,7 +31,7 @@\n     'minuit': ['iminuit'],\n     'develop': [\n         'pyflakes',\n-        'pytest>=3.5.1',\n+        'pytest<4.0.0,>=3.5.1',\n         'pytest-cov>=2.5.1',\n         'pytest-benchmark[histogram]',\n         'pytest-console-scripts',\n@@ -41,7 +41,7 @@\n         'jupyter',\n         'nbdime',\n         'uproot>=3.0.0',\n-        'papermill',\n+        'papermill>=0.16.0',\n         'graphviz',\n         'bumpversion',\n         'sphinx',\n", "issue": "papermill seems to break? pin version?\n# Description\r\n\r\nIn the CI for @nikoladze's PR https://github.com/diana-hep/pyhf/pull/365 it seems like papermill is breaking for unrelated reasons. Did something change upstream? Maybe we need to pin the version? Maybe @matthewfeickert knows?\r\n\r\n\r\nhttps://travis-ci.org/diana-hep/pyhf/jobs/454931484\n", "before_files": [{"content": "#!/usr/bin/env python\n\nfrom setuptools import setup, find_packages\nfrom os import path\nimport sys\n\nthis_directory = path.abspath(path.dirname(__file__))\nif sys.version_info.major < 3:\n    from io import open\nwith open(path.join(this_directory, 'README.md'), encoding='utf-8') as readme_md:\n    long_description = readme_md.read()\n\nextras_require = {\n    'tensorflow': [\n        'tensorflow<1.12.0,>=1.10.0',\n        'tensorflow-probability==0.3.0',\n        'numpy<=1.14.5,>=1.14.0',  # Lower of 1.14.0 instead of 1.13.3 to ensure doctest pass\n        'setuptools<=39.1.0',\n    ],\n    'torch': ['torch>=0.4.0'],\n    'mxnet': [\n        'mxnet>=1.0.0',\n        'requests<2.19.0,>=2.18.4',\n        'numpy<1.15.0,>=1.8.2',\n        'requests<2.19.0,>=2.18.4',\n    ],\n    # 'dask': [\n    #     'dask[array]'\n    # ],\n    'xmlimport': ['uproot'],\n    'minuit': ['iminuit'],\n    'develop': [\n        'pyflakes',\n        'pytest>=3.5.1',\n        'pytest-cov>=2.5.1',\n        'pytest-benchmark[histogram]',\n        'pytest-console-scripts',\n        'python-coveralls',\n        'coverage>=4.0',  # coveralls\n        'matplotlib',\n        'jupyter',\n        'nbdime',\n        'uproot>=3.0.0',\n        'papermill',\n        'graphviz',\n        'bumpversion',\n        'sphinx',\n        'sphinxcontrib-bibtex',\n        'sphinxcontrib-napoleon',\n        'sphinx_rtd_theme',\n        'nbsphinx',\n        'sphinx-issues',\n        'm2r',\n        'jsonpatch',\n        'ipython<7',  # jupyter_console and ipython clash in dependency requirement -- downgrade ipython for now\n        'pre-commit',\n        'black;python_version>=\"3.6\"',  # Black is Python3 only\n        'twine',\n    ],\n}\nextras_require['complete'] = sorted(set(sum(extras_require.values(), [])))\n\nsetup(\n    name='pyhf',\n    version='0.0.15',\n    description='(partial) pure python histfactory implementation',\n    long_description=long_description,\n    long_description_content_type='text/markdown',\n    url='https://github.com/diana-hep/pyhf',\n    author='Lukas Heinrich',\n    author_email='lukas.heinrich@cern.ch',\n    license='Apache',\n    keywords='physics fitting numpy scipy tensorflow pytorch mxnet dask',\n    classifiers=[\n        \"Programming Language :: Python :: 2\",\n        \"Programming Language :: Python :: 2.7\",\n        \"Programming Language :: Python :: 3\",\n        \"Programming Language :: Python :: 3.6\",\n    ],\n    packages=find_packages(),\n    include_package_data=True,\n    python_requires=\">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*\",\n    install_requires=[\n        'scipy',  # requires numpy, which is required by pyhf, tensorflow, and mxnet\n        'click>=6.0',  # for console scripts,\n        'tqdm',  # for readxml\n        'six',  # for modifiers\n        'jsonschema>=v3.0.0a2',  # for utils, alpha-release for draft 6\n        'jsonpatch',\n    ],\n    extras_require=extras_require,\n    entry_points={'console_scripts': ['pyhf=pyhf.commandline:pyhf']},\n    dependency_links=[],\n)\n", "path": "setup.py"}]}