prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Set up CI for automated testing and style checks
  Now that our codebase is growing (hooray!), we should set up CI for automated testing and style checks (PEP8, PEP257). 
  
  Choices include [CircleCI](https://circleci.com) and [TravisCI](https://travis-ci.org). These can be integrated into our repo such that every pull request will be checked before review. 
  
  </issue>
  <code>
  [start of setup.py]
  1 import os
  2 from setuptools import setup,find_packages
  3 
  4 # Utility function to read the README file.
  5 # Used for the long_description.  It's nice, because now 1) we have a top level
  6 # README file and 2) it's easier to type in the README file than to put a raw
  7 # string in below ...
  8 def read(fname):
  9     return open(os.path.join(os.path.dirname(__file__), fname)).read()
  10 
  11 requirements = read('requirements.txt').split()
  12 
  13 setup(
  14     name = "syft",
  15     version = "0.1.0",
  16     author = "Amber Trask",
  17     author_email = "contact@openmined.org",
  18     description = ("A library for Homomorphically Encrypted Deep Learning Algorithms"),
  19     license = "Apache-2.0",
  20     keywords = "deep learning machine artificial intelligence homomorphic encryption",
  21     packages=find_packages(exclude=['notebooks', 'test*','dist']),
  22     include_package_data=True,
  23     long_description=read('README.md'),
  24     url='github.com/OpenMined/Syft',
  25     classifiers=[
  26         "Development Status :: 1 - Alpha",
  27     ],
  28     scripts=['bin/syft_cmd'],
  29     install_requires=requirements,
  30     setup_requires=['pytest-runner'],
  31     tests_require=['pytest']
  32 )
  33
  [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
  @@ -28,5 +28,5 @@
       scripts=['bin/syft_cmd'],
       install_requires=requirements,
       setup_requires=['pytest-runner'],
  -    tests_require=['pytest']
  +    tests_require=['pytest', 'pytest-flake8']
   )
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -28,5 +28,5 @@\n     scripts=['bin/syft_cmd'],\n     install_requires=requirements,\n     setup_requires=['pytest-runner'],\n-    tests_require=['pytest']\n+    tests_require=['pytest', 'pytest-flake8']\n )\n", "issue": "Set up CI for automated testing and style checks\nNow that our codebase is growing (hooray!), we should set up CI for automated testing and style checks (PEP8, PEP257). \r\n\r\nChoices include [CircleCI](https://circleci.com) and [TravisCI](https://travis-ci.org). These can be integrated into our repo such that every pull request will be checked before review. \n", "before_files": [{"content": "import os\nfrom setuptools import setup,find_packages\n\n# Utility function to read the README file.\n# Used for the long_description.  It's nice, because now 1) we have a top level\n# README file and 2) it's easier to type in the README file than to put a raw\n# string in below ...\ndef read(fname):\n    return open(os.path.join(os.path.dirname(__file__), fname)).read()\n\nrequirements = read('requirements.txt').split()\n\nsetup(\n    name = \"syft\",\n    version = \"0.1.0\",\n    author = \"Amber Trask\",\n    author_email = \"contact@openmined.org\",\n    description = (\"A library for Homomorphically Encrypted Deep Learning Algorithms\"),\n    license = \"Apache-2.0\",\n    keywords = \"deep learning machine artificial intelligence homomorphic encryption\",\n    packages=find_packages(exclude=['notebooks', 'test*','dist']),\n    include_package_data=True,\n    long_description=read('README.md'),\n    url='github.com/OpenMined/Syft',\n    classifiers=[\n        \"Development Status :: 1 - Alpha\",\n    ],\n    scripts=['bin/syft_cmd'],\n    install_requires=requirements,\n    setup_requires=['pytest-runner'],\n    tests_require=['pytest']\n)\n", "path": "setup.py"}]}