prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Deprecate dependency on scipy for pyro-ppl package
  Once distributions are migrated upstream and we do not have a core dependency on scipy, we should remove this from our requirements in `setup.py` (add it to test dependencies), so that users do not need to install a separate 16MB file when they do a pip install of `pyro-ppl`.
  
  </issue>
  <code>
  [start of setup.py]
  1 from __future__ import absolute_import, division, print_function
  2 
  3 import sys
  4 
  5 from setuptools import find_packages, setup
  6 
  7 # Find pyro version.
  8 for line in open('pyro/__init__.py'):
  9     if line.startswith('__version__ = '):
  10         version = line.strip().split()[2][1:-1]
  11 
  12 # Convert README.md to rst for display at https://pypi.python.org/pypi/pyro-ppl
  13 # When releasing on pypi, make sure pandoc is on your system:
  14 # $ brew install pandoc          # OS X
  15 # $ sudo apt-get install pandoc  # Ubuntu Linux
  16 try:
  17     import pypandoc
  18     long_description = pypandoc.convert('README.md', 'rst')
  19 except (IOError, ImportError, OSError) as e:
  20     sys.stderr.write('Failed to convert README.md to rst:\n  {}\n'.format(e))
  21     sys.stderr.flush()
  22     long_description = open('README.md').read()
  23 
  24 # Remove badges since they will always be obsolete.
  25 blacklist = ['Build Status', 'Latest Version', 'travis-ci.org', 'pypi.python.org']
  26 long_description = '\n'.join(
  27     [line for line in long_description.split('\n') if not any(patt in line for patt in blacklist)])
  28 
  29 setup(
  30     name='pyro-ppl',
  31     version=version,
  32     description='A Python library for probabilistic modeling and inference',
  33     long_description=long_description,
  34     packages=find_packages(exclude=('tests*',)),
  35     url='http://pyro.ai',
  36     author='Uber AI Labs',
  37     author_email='pyro@uber.com',
  38     install_requires=[
  39         'numpy>=1.7',
  40         'scipy>=0.19.0',
  41         'cloudpickle>=0.3.1',
  42         'graphviz>=0.8',
  43         'networkx>=2.0.0',
  44         'observations>=0.1.4',
  45         'torch',
  46         'six>=1.10.0',
  47     ],
  48     extras_require={
  49         'notebooks': ['jupyter>=1.0.0'],
  50         'visualization': [
  51             'matplotlib>=1.3',
  52             'visdom>=0.1.4',
  53             'pillow',
  54         ],
  55         'test': [
  56             'pytest',
  57             'pytest-cov',
  58             'nbval',
  59             # examples/tutorials
  60             'matplotlib',
  61             'visdom',
  62             'torchvision',
  63         ],
  64         'profile': ['prettytable'],
  65         'dev': [
  66             'torchvision',
  67             'flake8',
  68             'yapf',
  69             'isort',
  70             'pytest',
  71             'pytest-xdist',
  72             'nbval',
  73             'nbstripout',
  74             'pypandoc',
  75             'sphinx',
  76             'sphinx_rtd_theme',
  77         ],
  78     },
  79     tests_require=['flake8', 'pytest'],
  80     keywords='machine learning statistics probabilistic programming bayesian modeling pytorch',
  81     license='MIT License',
  82     classifiers=[
  83         'Intended Audience :: Developers',
  84         'Intended Audience :: Education',
  85         'Intended Audience :: Science/Research',
  86         'Operating System :: POSIX :: Linux',
  87         'Operating System :: MacOS :: MacOS X',
  88         'Programming Language :: Python :: 2.7',
  89         'Programming Language :: Python :: 3.4',
  90     ],
  91     # yapf
  92 )
  93
  [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
  @@ -37,7 +37,6 @@
       author_email='pyro@uber.com',
       install_requires=[
           'numpy>=1.7',
  -        'scipy>=0.19.0',
           'cloudpickle>=0.3.1',
           'graphviz>=0.8',
           'networkx>=2.0.0',
  @@ -56,6 +55,7 @@
               'pytest',
               'pytest-cov',
               'nbval',
  +            'scipy>=0.19.0',
               # examples/tutorials
               'matplotlib',
               'visdom',
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -37,7 +37,6 @@\n     author_email='pyro@uber.com',\n     install_requires=[\n         'numpy>=1.7',\n-        'scipy>=0.19.0',\n         'cloudpickle>=0.3.1',\n         'graphviz>=0.8',\n         'networkx>=2.0.0',\n@@ -56,6 +55,7 @@\n             'pytest',\n             'pytest-cov',\n             'nbval',\n+            'scipy>=0.19.0',\n             # examples/tutorials\n             'matplotlib',\n             'visdom',\n", "issue": "Deprecate dependency on scipy for pyro-ppl package\nOnce distributions are migrated upstream and we do not have a core dependency on scipy, we should remove this from our requirements in `setup.py` (add it to test dependencies), so that users do not need to install a separate 16MB file when they do a pip install of `pyro-ppl`.\n", "before_files": [{"content": "from __future__ import absolute_import, division, print_function\n\nimport sys\n\nfrom setuptools import find_packages, setup\n\n# Find pyro version.\nfor line in open('pyro/__init__.py'):\n    if line.startswith('__version__ = '):\n        version = line.strip().split()[2][1:-1]\n\n# Convert README.md to rst for display at https://pypi.python.org/pypi/pyro-ppl\n# When releasing on pypi, make sure pandoc is on your system:\n# $ brew install pandoc          # OS X\n# $ sudo apt-get install pandoc  # Ubuntu Linux\ntry:\n    import pypandoc\n    long_description = pypandoc.convert('README.md', 'rst')\nexcept (IOError, ImportError, OSError) as e:\n    sys.stderr.write('Failed to convert README.md to rst:\\n  {}\\n'.format(e))\n    sys.stderr.flush()\n    long_description = open('README.md').read()\n\n# Remove badges since they will always be obsolete.\nblacklist = ['Build Status', 'Latest Version', 'travis-ci.org', 'pypi.python.org']\nlong_description = '\\n'.join(\n    [line for line in long_description.split('\\n') if not any(patt in line for patt in blacklist)])\n\nsetup(\n    name='pyro-ppl',\n    version=version,\n    description='A Python library for probabilistic modeling and inference',\n    long_description=long_description,\n    packages=find_packages(exclude=('tests*',)),\n    url='http://pyro.ai',\n    author='Uber AI Labs',\n    author_email='pyro@uber.com',\n    install_requires=[\n        'numpy>=1.7',\n        'scipy>=0.19.0',\n        'cloudpickle>=0.3.1',\n        'graphviz>=0.8',\n        'networkx>=2.0.0',\n        'observations>=0.1.4',\n        'torch',\n        'six>=1.10.0',\n    ],\n    extras_require={\n        'notebooks': ['jupyter>=1.0.0'],\n        'visualization': [\n            'matplotlib>=1.3',\n            'visdom>=0.1.4',\n            'pillow',\n        ],\n        'test': [\n            'pytest',\n            'pytest-cov',\n            'nbval',\n            # examples/tutorials\n            'matplotlib',\n            'visdom',\n            'torchvision',\n        ],\n        'profile': ['prettytable'],\n        'dev': [\n            'torchvision',\n            'flake8',\n            'yapf',\n            'isort',\n            'pytest',\n            'pytest-xdist',\n            'nbval',\n            'nbstripout',\n            'pypandoc',\n            'sphinx',\n            'sphinx_rtd_theme',\n        ],\n    },\n    tests_require=['flake8', 'pytest'],\n    keywords='machine learning statistics probabilistic programming bayesian modeling pytorch',\n    license='MIT License',\n    classifiers=[\n        'Intended Audience :: Developers',\n        'Intended Audience :: Education',\n        'Intended Audience :: Science/Research',\n        'Operating System :: POSIX :: Linux',\n        'Operating System :: MacOS :: MacOS X',\n        'Programming Language :: Python :: 2.7',\n        'Programming Language :: Python :: 3.4',\n    ],\n    # yapf\n)\n", "path": "setup.py"}]}