prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Docs build broken with Sphinx v3.1.0
  # Description
  
  Today (2020-06-08) [Sphinx `v3.1.0`](https://github.com/sphinx-doc/sphinx/releases/tag/v3.1.0) was released which now classifies pyhf's particular usages of the "autoclass" directive as an Error in the docs generated for [`interpolators/code0.py`](https://github.com/scikit-hep/pyhf/blob/62becc2e469f89babf75534a2decfb3ace6ff179/src/pyhf/interpolators/code0.py)
  
  ```
  Warning, treated as error:
  /home/runner/work/pyhf/pyhf/docs/_generated/pyhf.interpolators.code0.rst:8:Error in "autoclass" directive:
  1 argument(s) required, 0 supplied.
  
  .. autoclass::
     :show-inheritance:
  
  
  
  
  
  
  
     .. rubric:: Methods
  
  
  
     .. automethod:: .__init__
  ##[error]Process completed with exit code 1.
  ```
  
  </issue>
  <code>
  [start of setup.py]
  1 from setuptools import setup
  2 
  3 extras_require = {
  4     'tensorflow': ['tensorflow~=2.0', 'tensorflow-probability~=0.8'],
  5     'torch': ['torch~=1.2'],
  6     'jax': ['jax~=0.1,>0.1.51', 'jaxlib~=0.1,>0.1.33'],
  7     'xmlio': ['uproot'],
  8     'minuit': ['iminuit'],
  9 }
  10 extras_require['backends'] = sorted(
  11     set(
  12         extras_require['tensorflow']
  13         + extras_require['torch']
  14         + extras_require['jax']
  15         + extras_require['minuit']
  16     )
  17 )
  18 extras_require['contrib'] = sorted(set(['matplotlib']))
  19 
  20 extras_require['test'] = sorted(
  21     set(
  22         extras_require['backends']
  23         + extras_require['xmlio']
  24         + extras_require['contrib']
  25         + [
  26             'pyflakes',
  27             'pytest~=3.5',
  28             'pytest-cov>=2.5.1',
  29             'pytest-mock',
  30             'pytest-benchmark[histogram]',
  31             'pytest-console-scripts',
  32             'pytest-mpl',
  33             'pydocstyle',
  34             'coverage>=4.0',  # coveralls
  35             'papermill~=2.0',
  36             'nteract-scrapbook~=0.2',
  37             'check-manifest',
  38             'jupyter',
  39             'uproot~=3.3',
  40             'graphviz',
  41             'jsonpatch',
  42             'black',
  43         ]
  44     )
  45 )
  46 extras_require['docs'] = sorted(
  47     set(
  48         [
  49             'sphinx',
  50             'sphinxcontrib-bibtex',
  51             'sphinx-click',
  52             'sphinx_rtd_theme',
  53             'nbsphinx',
  54             'ipywidgets',
  55             'sphinx-issues',
  56             'sphinx-copybutton>0.2.9',
  57         ]
  58     )
  59 )
  60 extras_require['develop'] = sorted(
  61     set(
  62         extras_require['docs']
  63         + extras_require['test']
  64         + ['nbdime', 'bumpversion', 'ipython', 'pre-commit', 'twine']
  65     )
  66 )
  67 extras_require['complete'] = sorted(set(sum(extras_require.values(), [])))
  68 
  69 
  70 setup(
  71     extras_require=extras_require,
  72     use_scm_version=lambda: {'local_scheme': lambda version: ''},
  73 )
  74
  [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
  @@ -46,7 +46,7 @@
   extras_require['docs'] = sorted(
       set(
           [
  -            'sphinx',
  +            'sphinx!=3.1.0',
               'sphinxcontrib-bibtex',
               'sphinx-click',
               'sphinx_rtd_theme',
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -46,7 +46,7 @@\n extras_require['docs'] = sorted(\n     set(\n         [\n-            'sphinx',\n+            'sphinx!=3.1.0',\n             'sphinxcontrib-bibtex',\n             'sphinx-click',\n             'sphinx_rtd_theme',\n", "issue": "Docs build broken with Sphinx v3.1.0\n# Description\r\n\r\nToday (2020-06-08) [Sphinx `v3.1.0`](https://github.com/sphinx-doc/sphinx/releases/tag/v3.1.0) was released which now classifies pyhf's particular usages of the \"autoclass\" directive as an Error in the docs generated for [`interpolators/code0.py`](https://github.com/scikit-hep/pyhf/blob/62becc2e469f89babf75534a2decfb3ace6ff179/src/pyhf/interpolators/code0.py)\r\n\r\n```\r\nWarning, treated as error:\r\n/home/runner/work/pyhf/pyhf/docs/_generated/pyhf.interpolators.code0.rst:8:Error in \"autoclass\" directive:\r\n1 argument(s) required, 0 supplied.\r\n\r\n.. autoclass::\r\n   :show-inheritance:\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n   .. rubric:: Methods\r\n\r\n\r\n\r\n   .. automethod:: .__init__\r\n##[error]Process completed with exit code 1.\r\n```\n", "before_files": [{"content": "from setuptools import setup\n\nextras_require = {\n    'tensorflow': ['tensorflow~=2.0', 'tensorflow-probability~=0.8'],\n    'torch': ['torch~=1.2'],\n    'jax': ['jax~=0.1,>0.1.51', 'jaxlib~=0.1,>0.1.33'],\n    'xmlio': ['uproot'],\n    'minuit': ['iminuit'],\n}\nextras_require['backends'] = sorted(\n    set(\n        extras_require['tensorflow']\n        + extras_require['torch']\n        + extras_require['jax']\n        + extras_require['minuit']\n    )\n)\nextras_require['contrib'] = sorted(set(['matplotlib']))\n\nextras_require['test'] = sorted(\n    set(\n        extras_require['backends']\n        + extras_require['xmlio']\n        + extras_require['contrib']\n        + [\n            'pyflakes',\n            'pytest~=3.5',\n            'pytest-cov>=2.5.1',\n            'pytest-mock',\n            'pytest-benchmark[histogram]',\n            'pytest-console-scripts',\n            'pytest-mpl',\n            'pydocstyle',\n            'coverage>=4.0',  # coveralls\n            'papermill~=2.0',\n            'nteract-scrapbook~=0.2',\n            'check-manifest',\n            'jupyter',\n            'uproot~=3.3',\n            'graphviz',\n            'jsonpatch',\n            'black',\n        ]\n    )\n)\nextras_require['docs'] = sorted(\n    set(\n        [\n            'sphinx',\n            'sphinxcontrib-bibtex',\n            'sphinx-click',\n            'sphinx_rtd_theme',\n            'nbsphinx',\n            'ipywidgets',\n            'sphinx-issues',\n            'sphinx-copybutton>0.2.9',\n        ]\n    )\n)\nextras_require['develop'] = sorted(\n    set(\n        extras_require['docs']\n        + extras_require['test']\n        + ['nbdime', 'bumpversion', 'ipython', 'pre-commit', 'twine']\n    )\n)\nextras_require['complete'] = sorted(set(sum(extras_require.values(), [])))\n\n\nsetup(\n    extras_require=extras_require,\n    use_scm_version=lambda: {'local_scheme': lambda version: ''},\n)\n", "path": "setup.py"}]}