We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Add Python 3.8 to CI
# Description

The branch [`ci/add-Python-3.8-to-CI`](https://github.com/diana-hep/pyhf/compare/ci/add-Python-3.8-to-CI) adds Python 3.8 to the CI. However, as [PyTorch won't have a Python 3.8 wheel until the next release](https://github.com/pytorch/pytorch/issues/21741#issuecomment-541242504) this won't be able to happen until around December 2019.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `setup.py`
Content:
```
1 from setuptools import setup, find_packages
2 from pathlib import Path
3 
4 this_directory = Path(__file__).parent.resolve()
5 with open(Path(this_directory).joinpath('README.rst'), encoding='utf-8') as readme_rst:
6     long_description = readme_rst.read()
7 
8 extras_require = {
9     'tensorflow': ['tensorflow~=2.0', 'tensorflow-probability~=0.8'],
10     'torch': ['torch~=1.2'],
11     'jax': ['jax~=0.1,>0.1.51', 'jaxlib~=0.1,>0.1.33'],
12     'xmlio': ['uproot'],
13     'minuit': ['iminuit'],
14 }
15 extras_require['backends'] = sorted(
16     set(
17         extras_require['tensorflow']
18         + extras_require['torch']
19         + extras_require['jax']
20         + extras_require['minuit']
21     )
22 )
23 extras_require['contrib'] = sorted(set(['matplotlib']))
24 
25 extras_require['test'] = sorted(
26     set(
27         extras_require['backends']
28         + extras_require['xmlio']
29         + extras_require['contrib']
30         + [
31             'pyflakes',
32             'pytest~=3.5',
33             'pytest-cov>=2.5.1',
34             'pytest-mock',
35             'pytest-benchmark[histogram]',
36             'pytest-console-scripts',
37             'pytest-mpl',
38             'pydocstyle',
39             'coverage>=4.0',  # coveralls
40             'papermill~=2.0',
41             'nteract-scrapbook~=0.2',
42             'check-manifest',
43             'jupyter',
44             'uproot~=3.3',
45             'graphviz',
46             'jsonpatch',
47             'black',
48         ]
49     )
50 )
51 extras_require['docs'] = sorted(
52     set(
53         [
54             'sphinx',
55             'sphinxcontrib-bibtex',
56             'sphinx-click',
57             'sphinx_rtd_theme',
58             'nbsphinx',
59             'ipywidgets',
60             'sphinx-issues',
61             'sphinx-copybutton>0.2.9',
62         ]
63     )
64 )
65 extras_require['develop'] = sorted(
66     set(
67         extras_require['docs']
68         + extras_require['test']
69         + ['nbdime', 'bumpversion', 'ipython', 'pre-commit', 'twine']
70     )
71 )
72 extras_require['complete'] = sorted(set(sum(extras_require.values(), [])))
73 
74 
75 setup(
76     name='pyhf',
77     version='0.4.1',
78     description='(partial) pure python histfactory implementation',
79     long_description=long_description,
80     long_description_content_type='text/x-rst',
81     url='https://github.com/scikit-hep/pyhf',
82     author='Lukas Heinrich, Matthew Feickert, Giordon Stark',
83     author_email='lukas.heinrich@cern.ch, matthew.feickert@cern.ch, gstark@cern.ch',
84     license='Apache',
85     keywords='physics fitting numpy scipy tensorflow pytorch',
86     classifiers=[
87         "Programming Language :: Python :: 3",
88         "Programming Language :: Python :: 3.6",
89         "Programming Language :: Python :: 3.7",
90     ],
91     package_dir={'': 'src'},
92     packages=find_packages(where='src'),
93     include_package_data=True,
94     python_requires=">=3.6",
95     install_requires=[
96         'scipy',  # requires numpy, which is required by pyhf and tensorflow
97         'click>=6.0',  # for console scripts,
98         'tqdm',  # for readxml
99         'jsonschema>=3.2.0',  # for utils
100         'jsonpatch',
101         'pyyaml',  # for parsing CLI equal-delimited options
102     ],
103     extras_require=extras_require,
104     entry_points={'console_scripts': ['pyhf=pyhf.cli:cli']},
105     dependency_links=[],
106     use_scm_version=lambda: {'local_scheme': lambda version: ''},
107 )
108
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -87,6 +87,7 @@
         "Programming Language :: Python :: 3",
         "Programming Language :: Python :: 3.6",
         "Programming Language :: Python :: 3.7",
+        "Programming Language :: Python :: 3.8",
     ],
     package_dir={'': 'src'},
     packages=find_packages(where='src'),

{"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -87,6 +87,7 @@\n         \"Programming Language :: Python :: 3\",\n         \"Programming Language :: Python :: 3.6\",\n         \"Programming Language :: Python :: 3.7\",\n+        \"Programming Language :: Python :: 3.8\",\n     ],\n     package_dir={'': 'src'},\n     packages=find_packages(where='src'),\n", "issue": "Add Python 3.8 to CI\n# Description\r\n\r\nThe branch [`ci/add-Python-3.8-to-CI`](https://github.com/diana-hep/pyhf/compare/ci/add-Python-3.8-to-CI) adds Python 3.8 to the CI. However, as [PyTorch won't have a Python 3.8 wheel until the next release](https://github.com/pytorch/pytorch/issues/21741#issuecomment-541242504) this won't be able to happen until around December 2019.\n", "before_files": [{"content": "from setuptools import setup, find_packages\nfrom pathlib import Path\n\nthis_directory = Path(__file__).parent.resolve()\nwith open(Path(this_directory).joinpath('README.rst'), encoding='utf-8') as readme_rst:\n    long_description = readme_rst.read()\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    name='pyhf',\n    version='0.4.1',\n    description='(partial) pure python histfactory implementation',\n    long_description=long_description,\n    long_description_content_type='text/x-rst',\n    url='https://github.com/scikit-hep/pyhf',\n    author='Lukas Heinrich, Matthew Feickert, Giordon Stark',\n    author_email='lukas.heinrich@cern.ch, matthew.feickert@cern.ch, gstark@cern.ch',\n    license='Apache',\n    keywords='physics fitting numpy scipy tensorflow pytorch',\n    classifiers=[\n        \"Programming Language :: Python :: 3\",\n        \"Programming Language :: Python :: 3.6\",\n        \"Programming Language :: Python :: 3.7\",\n    ],\n    package_dir={'': 'src'},\n    packages=find_packages(where='src'),\n    include_package_data=True,\n    python_requires=\">=3.6\",\n    install_requires=[\n        'scipy',  # requires numpy, which is required by pyhf and tensorflow\n        'click>=6.0',  # for console scripts,\n        'tqdm',  # for readxml\n        'jsonschema>=3.2.0',  # for utils\n        'jsonpatch',\n        'pyyaml',  # for parsing CLI equal-delimited options\n    ],\n    extras_require=extras_require,\n    entry_points={'console_scripts': ['pyhf=pyhf.cli:cli']},\n    dependency_links=[],\n    use_scm_version=lambda: {'local_scheme': lambda version: ''},\n)\n", "path": "setup.py"}], "after_files": [{"content": "from setuptools import setup, find_packages\nfrom pathlib import Path\n\nthis_directory = Path(__file__).parent.resolve()\nwith open(Path(this_directory).joinpath('README.rst'), encoding='utf-8') as readme_rst:\n    long_description = readme_rst.read()\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    name='pyhf',\n    version='0.4.1',\n    description='(partial) pure python histfactory implementation',\n    long_description=long_description,\n    long_description_content_type='text/x-rst',\n    url='https://github.com/scikit-hep/pyhf',\n    author='Lukas Heinrich, Matthew Feickert, Giordon Stark',\n    author_email='lukas.heinrich@cern.ch, matthew.feickert@cern.ch, gstark@cern.ch',\n    license='Apache',\n    keywords='physics fitting numpy scipy tensorflow pytorch',\n    classifiers=[\n        \"Programming Language :: Python :: 3\",\n        \"Programming Language :: Python :: 3.6\",\n        \"Programming Language :: Python :: 3.7\",\n        \"Programming Language :: Python :: 3.8\",\n    ],\n    package_dir={'': 'src'},\n    packages=find_packages(where='src'),\n    include_package_data=True,\n    python_requires=\">=3.6\",\n    install_requires=[\n        'scipy',  # requires numpy, which is required by pyhf and tensorflow\n        'click>=6.0',  # for console scripts,\n        'tqdm',  # for readxml\n        'jsonschema>=3.2.0',  # for utils\n        'jsonpatch',\n        'pyyaml',  # for parsing CLI equal-delimited options\n    ],\n    extras_require=extras_require,\n    entry_points={'console_scripts': ['pyhf=pyhf.cli:cli']},\n    dependency_links=[],\n    use_scm_version=lambda: {'local_scheme': lambda version: ''},\n)\n", "path": "setup.py"}]}