prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  `datasets.pbmc68k_reduced` isn't contained in the pypi package anymore
  This still works in `1.4.4.post1`. It's very likely caused by changes to `setup.py`. I experienced similar problems before and fixed them via `package_data`. But this got removed. It's probably only a problem for the source-based installs.
  
  https://github.com/theislab/scanpy/commit/881f0bef31cdfe0df7333641dc847a60894b5c41#diff-2eeaed663bd0d25b7e608891384b7298
  
  ```
  >>> import scanpy
  >>> scanpy.__version__
  <Version('1.4.5.post2')>
  >>> scanpy.datasets.pbmc68k_reduced()
  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "/Users/alexwolf/miniconda3/lib/python3.6/site-packages/scanpy/datasets/__init__.py", line 239, in pbmc68k_reduced
      return read(filename)
    File "/Users/alexwolf/miniconda3/lib/python3.6/site-packages/scanpy/readwrite.py", line 114, in read
      **kwargs,
    File "/Users/alexwolf/miniconda3/lib/python3.6/site-packages/scanpy/readwrite.py", line 524, in _read
      return read_h5ad(filename, backed=backed)
    File "/Users/alexwolf/miniconda3/lib/python3.6/site-packages/anndata/readwrite/read.py", line 447, in read_h5ad
      constructor_args = _read_args_from_h5ad(filename=filename, chunk_size=chunk_size)
    File "/Users/alexwolf/miniconda3/lib/python3.6/site-packages/anndata/readwrite/read.py", line 481, in _read_args_from_h5ad
      f = h5py.File(filename, 'r')
    File "/Users/alexwolf/miniconda3/lib/python3.6/site-packages/anndata/h5py/h5sparse.py", line 162, in __init__
      **kwds,
    File "/Users/alexwolf/miniconda3/lib/python3.6/site-packages/h5py/_hl/files.py", line 312, in __init__
      fid = make_fid(name, mode, userblock_size, fapl, swmr=swmr)
    File "/Users/alexwolf/miniconda3/lib/python3.6/site-packages/h5py/_hl/files.py", line 142, in make_fid
      fid = h5f.open(name, flags, fapl=fapl)
    File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
    File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
    File "h5py/h5f.pyx", line 78, in h5py.h5f.open
  ```
  
  </issue>
  <code>
  [start of setup.py]
  1 import sys
  2 
  3 if sys.version_info < (3, 6):
  4     sys.exit('scanpy requires Python >= 3.6')
  5 from pathlib import Path
  6 
  7 from setuptools import setup, find_packages
  8 
  9 
  10 try:
  11     from scanpy import __author__, __email__
  12 except ImportError:  # Deps not yet installed
  13     __author__ = __email__ = ''
  14 
  15 setup(
  16     name='scanpy',
  17     use_scm_version=True,
  18     setup_requires=['setuptools_scm'],
  19     description='Single-Cell Analysis in Python.',
  20     long_description=Path('README.rst').read_text('utf-8'),
  21     url='http://github.com/theislab/scanpy',
  22     author=__author__,
  23     author_email=__email__,
  24     license='BSD',
  25     python_requires='>=3.6',
  26     install_requires=[
  27         l.strip() for l in Path('requirements.txt').read_text('utf-8').splitlines()
  28     ],
  29     extras_require=dict(
  30         louvain=['python-igraph', 'louvain>=0.6'],
  31         leiden=['python-igraph', 'leidenalg'],
  32         bbknn=['bbknn'],
  33         rapids=['cudf', 'cuml', 'cugraph'],
  34         magic=['magic-impute>=2.0'],
  35         doc=[
  36             'sphinx',
  37             'sphinx_rtd_theme',
  38             'sphinx_autodoc_typehints',
  39             'scanpydoc>=0.4.3',
  40             'typing_extensions; python_version < "3.8"',  # for `Literal`
  41         ],
  42         test=[
  43             'pytest>=4.4',
  44             'dask[array]',
  45             'fsspec',
  46             'zappy',
  47             'zarr',
  48             'black',
  49             'profimp',
  50         ],
  51     ),
  52     packages=find_packages(),
  53     entry_points=dict(console_scripts=['scanpy=scanpy.cli:console_main']),
  54     zip_safe=False,
  55     classifiers=[
  56         'Development Status :: 5 - Production/Stable',
  57         'Environment :: Console',
  58         'Framework :: Jupyter',
  59         'Intended Audience :: Developers',
  60         'Intended Audience :: Science/Research',
  61         'Natural Language :: English',
  62         'Operating System :: MacOS :: MacOS X',
  63         'Operating System :: Microsoft :: Windows',
  64         'Operating System :: POSIX :: Linux',
  65         'Programming Language :: Python :: 3',
  66         'Programming Language :: Python :: 3.5',
  67         'Programming Language :: Python :: 3.6',
  68         'Programming Language :: Python :: 3.7',
  69         'Topic :: Scientific/Engineering :: Bio-Informatics',
  70         'Topic :: Scientific/Engineering :: Visualization',
  71     ],
  72 )
  73
  [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
  @@ -50,6 +50,7 @@
           ],
       ),
       packages=find_packages(),
  +    include_package_data=True,
       entry_points=dict(console_scripts=['scanpy=scanpy.cli:console_main']),
       zip_safe=False,
       classifiers=[
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -50,6 +50,7 @@\n         ],\n     ),\n     packages=find_packages(),\n+    include_package_data=True,\n     entry_points=dict(console_scripts=['scanpy=scanpy.cli:console_main']),\n     zip_safe=False,\n     classifiers=[\n", "issue": "`datasets.pbmc68k_reduced` isn't contained in the pypi package anymore\nThis still works in `1.4.4.post1`. It's very likely caused by changes to `setup.py`. I experienced similar problems before and fixed them via `package_data`. But this got removed. It's probably only a problem for the source-based installs.\r\n\r\nhttps://github.com/theislab/scanpy/commit/881f0bef31cdfe0df7333641dc847a60894b5c41#diff-2eeaed663bd0d25b7e608891384b7298\r\n\r\n```\r\n>>> import scanpy\r\n>>> scanpy.__version__\r\n<Version('1.4.5.post2')>\r\n>>> scanpy.datasets.pbmc68k_reduced()\r\nTraceback (most recent call last):\r\n  File \"<stdin>\", line 1, in <module>\r\n  File \"/Users/alexwolf/miniconda3/lib/python3.6/site-packages/scanpy/datasets/__init__.py\", line 239, in pbmc68k_reduced\r\n    return read(filename)\r\n  File \"/Users/alexwolf/miniconda3/lib/python3.6/site-packages/scanpy/readwrite.py\", line 114, in read\r\n    **kwargs,\r\n  File \"/Users/alexwolf/miniconda3/lib/python3.6/site-packages/scanpy/readwrite.py\", line 524, in _read\r\n    return read_h5ad(filename, backed=backed)\r\n  File \"/Users/alexwolf/miniconda3/lib/python3.6/site-packages/anndata/readwrite/read.py\", line 447, in read_h5ad\r\n    constructor_args = _read_args_from_h5ad(filename=filename, chunk_size=chunk_size)\r\n  File \"/Users/alexwolf/miniconda3/lib/python3.6/site-packages/anndata/readwrite/read.py\", line 481, in _read_args_from_h5ad\r\n    f = h5py.File(filename, 'r')\r\n  File \"/Users/alexwolf/miniconda3/lib/python3.6/site-packages/anndata/h5py/h5sparse.py\", line 162, in __init__\r\n    **kwds,\r\n  File \"/Users/alexwolf/miniconda3/lib/python3.6/site-packages/h5py/_hl/files.py\", line 312, in __init__\r\n    fid = make_fid(name, mode, userblock_size, fapl, swmr=swmr)\r\n  File \"/Users/alexwolf/miniconda3/lib/python3.6/site-packages/h5py/_hl/files.py\", line 142, in make_fid\r\n    fid = h5f.open(name, flags, fapl=fapl)\r\n  File \"h5py/_objects.pyx\", line 54, in h5py._objects.with_phil.wrapper\r\n  File \"h5py/_objects.pyx\", line 55, in h5py._objects.with_phil.wrapper\r\n  File \"h5py/h5f.pyx\", line 78, in h5py.h5f.open\r\n```\n", "before_files": [{"content": "import sys\n\nif sys.version_info < (3, 6):\n    sys.exit('scanpy requires Python >= 3.6')\nfrom pathlib import Path\n\nfrom setuptools import setup, find_packages\n\n\ntry:\n    from scanpy import __author__, __email__\nexcept ImportError:  # Deps not yet installed\n    __author__ = __email__ = ''\n\nsetup(\n    name='scanpy',\n    use_scm_version=True,\n    setup_requires=['setuptools_scm'],\n    description='Single-Cell Analysis in Python.',\n    long_description=Path('README.rst').read_text('utf-8'),\n    url='http://github.com/theislab/scanpy',\n    author=__author__,\n    author_email=__email__,\n    license='BSD',\n    python_requires='>=3.6',\n    install_requires=[\n        l.strip() for l in Path('requirements.txt').read_text('utf-8').splitlines()\n    ],\n    extras_require=dict(\n        louvain=['python-igraph', 'louvain>=0.6'],\n        leiden=['python-igraph', 'leidenalg'],\n        bbknn=['bbknn'],\n        rapids=['cudf', 'cuml', 'cugraph'],\n        magic=['magic-impute>=2.0'],\n        doc=[\n            'sphinx',\n            'sphinx_rtd_theme',\n            'sphinx_autodoc_typehints',\n            'scanpydoc>=0.4.3',\n            'typing_extensions; python_version < \"3.8\"',  # for `Literal`\n        ],\n        test=[\n            'pytest>=4.4',\n            'dask[array]',\n            'fsspec',\n            'zappy',\n            'zarr',\n            'black',\n            'profimp',\n        ],\n    ),\n    packages=find_packages(),\n    entry_points=dict(console_scripts=['scanpy=scanpy.cli:console_main']),\n    zip_safe=False,\n    classifiers=[\n        'Development Status :: 5 - Production/Stable',\n        'Environment :: Console',\n        'Framework :: Jupyter',\n        'Intended Audience :: Developers',\n        'Intended Audience :: Science/Research',\n        'Natural Language :: English',\n        'Operating System :: MacOS :: MacOS X',\n        'Operating System :: Microsoft :: Windows',\n        'Operating System :: POSIX :: Linux',\n        'Programming Language :: Python :: 3',\n        'Programming Language :: Python :: 3.5',\n        'Programming Language :: Python :: 3.6',\n        'Programming Language :: Python :: 3.7',\n        'Topic :: Scientific/Engineering :: Bio-Informatics',\n        'Topic :: Scientific/Engineering :: Visualization',\n    ],\n)\n", "path": "setup.py"}]}