prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Move dev dependencies from setup.py to Pipfile
  The dev extra dependencies in setup.py are not required anymore, because we don't install it with setuptools for local development. Instead, we could move all dependencies in the `extras_require`-section to the Pipfile, which would have the advantage to be able to install new dev dependencies with `pipenv install <new-dependency>`.
  Move dev dependencies from setup.py to Pipfile
  The dev extra dependencies in setup.py are not required anymore, because we don't install it with setuptools for local development. Instead, we could move all dependencies in the `extras_require`-section to the Pipfile, which would have the advantage to be able to install new dev dependencies with `pipenv install <new-dependency>`.
  
  </issue>
  <code>
  [start of setup.py]
  1 #!/usr/bin/env python3
  2 """ Setup.py """
  3 
  4 import os
  5 import sys
  6 
  7 from setuptools import find_packages, setup
  8 
  9 # Add source directory to PATH variable to enable import of version number
  10 sys.path.append(os.path.abspath('src'))
  11 # pylint: disable=wrong-import-position
  12 from backend.settings import VERSION
  13 
  14 setup(
  15     name='integreat_cms',
  16     version=VERSION,
  17     packages=find_packages('src'),
  18     package_dir={'': 'src'},
  19     include_package_data=True,
  20     scripts=['src/integreat-cms-cli'],
  21     data_files=[
  22         (f'lib/integreat-{root}', [os.path.join(root, f) for f in files])
  23         for root, _, files in os.walk('src/cms/templates/')
  24     ] + [
  25         (f'lib/integreat-{root}', [os.path.join(root, f) for f in files])
  26         for root, _, files in os.walk('src/cms/static/')
  27     ] + [
  28         ('usr/lib/systemd/system/', ['systemd/integreat-cms@.service'])
  29     ],
  30     install_requires=[
  31         'cffi',
  32         'Django~=2.2.13',
  33         'django-cors-headers',
  34         'django-filer',
  35         'django-mptt',
  36         'django-widget-tweaks',
  37         'idna',
  38         'lxml',
  39         'psycopg2-binary',
  40         'python-dateutil',
  41         'requests',
  42         'rules',
  43         'six',
  44         'webauthn',
  45     ],
  46     extras_require={
  47         'dev': [
  48             'django-compressor',
  49             'django-compressor-toolkit',
  50             'packaging',
  51             'pylint',
  52             'pylint-django',
  53             'pylint_runner',
  54             'sphinx',
  55             'sphinxcontrib-django',
  56             'sphinx_rtd_theme',
  57             'coverage',
  58             'django_coverage_plugin',
  59         ]
  60     },
  61     author='Integreat App Project',
  62     author_email='info@integreat-app.de',
  63     description='Content Management System for the Integreat App',
  64     license='GPL-2.0-or-later',
  65     keywords='Django Integreat CMS',
  66     url='http://github.com/Integreat/',
  67     classifiers=[
  68         'Development Status :: 5 - Production/Stable',
  69         'Intended Audience :: Developers',
  70         'Programming Language :: Python :: 3.7',
  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
  @@ -12,7 +12,7 @@
   from backend.settings import VERSION
   
   setup(
  -    name='integreat_cms',
  +    name='integreat-cms',
       version=VERSION,
       packages=find_packages('src'),
       package_dir={'': 'src'},
  @@ -43,21 +43,6 @@
           'six',
           'webauthn',
       ],
  -    extras_require={
  -        'dev': [
  -            'django-compressor',
  -            'django-compressor-toolkit',
  -            'packaging',
  -            'pylint',
  -            'pylint-django',
  -            'pylint_runner',
  -            'sphinx',
  -            'sphinxcontrib-django',
  -            'sphinx_rtd_theme',
  -            'coverage',
  -            'django_coverage_plugin',
  -        ]
  -    },
       author='Integreat App Project',
       author_email='info@integreat-app.de',
       description='Content Management System for the Integreat App',
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -12,7 +12,7 @@\n from backend.settings import VERSION\n \n setup(\n-    name='integreat_cms',\n+    name='integreat-cms',\n     version=VERSION,\n     packages=find_packages('src'),\n     package_dir={'': 'src'},\n@@ -43,21 +43,6 @@\n         'six',\n         'webauthn',\n     ],\n-    extras_require={\n-        'dev': [\n-            'django-compressor',\n-            'django-compressor-toolkit',\n-            'packaging',\n-            'pylint',\n-            'pylint-django',\n-            'pylint_runner',\n-            'sphinx',\n-            'sphinxcontrib-django',\n-            'sphinx_rtd_theme',\n-            'coverage',\n-            'django_coverage_plugin',\n-        ]\n-    },\n     author='Integreat App Project',\n     author_email='info@integreat-app.de',\n     description='Content Management System for the Integreat App',\n", "issue": "Move dev dependencies from setup.py to Pipfile\nThe dev extra dependencies in setup.py are not required anymore, because we don't install it with setuptools for local development. Instead, we could move all dependencies in the `extras_require`-section to the Pipfile, which would have the advantage to be able to install new dev dependencies with `pipenv install <new-dependency>`.\nMove dev dependencies from setup.py to Pipfile\nThe dev extra dependencies in setup.py are not required anymore, because we don't install it with setuptools for local development. Instead, we could move all dependencies in the `extras_require`-section to the Pipfile, which would have the advantage to be able to install new dev dependencies with `pipenv install <new-dependency>`.\n", "before_files": [{"content": "#!/usr/bin/env python3\n\"\"\" Setup.py \"\"\"\n\nimport os\nimport sys\n\nfrom setuptools import find_packages, setup\n\n# Add source directory to PATH variable to enable import of version number\nsys.path.append(os.path.abspath('src'))\n# pylint: disable=wrong-import-position\nfrom backend.settings import VERSION\n\nsetup(\n    name='integreat_cms',\n    version=VERSION,\n    packages=find_packages('src'),\n    package_dir={'': 'src'},\n    include_package_data=True,\n    scripts=['src/integreat-cms-cli'],\n    data_files=[\n        (f'lib/integreat-{root}', [os.path.join(root, f) for f in files])\n        for root, _, files in os.walk('src/cms/templates/')\n    ] + [\n        (f'lib/integreat-{root}', [os.path.join(root, f) for f in files])\n        for root, _, files in os.walk('src/cms/static/')\n    ] + [\n        ('usr/lib/systemd/system/', ['systemd/integreat-cms@.service'])\n    ],\n    install_requires=[\n        'cffi',\n        'Django~=2.2.13',\n        'django-cors-headers',\n        'django-filer',\n        'django-mptt',\n        'django-widget-tweaks',\n        'idna',\n        'lxml',\n        'psycopg2-binary',\n        'python-dateutil',\n        'requests',\n        'rules',\n        'six',\n        'webauthn',\n    ],\n    extras_require={\n        'dev': [\n            'django-compressor',\n            'django-compressor-toolkit',\n            'packaging',\n            'pylint',\n            'pylint-django',\n            'pylint_runner',\n            'sphinx',\n            'sphinxcontrib-django',\n            'sphinx_rtd_theme',\n            'coverage',\n            'django_coverage_plugin',\n        ]\n    },\n    author='Integreat App Project',\n    author_email='info@integreat-app.de',\n    description='Content Management System for the Integreat App',\n    license='GPL-2.0-or-later',\n    keywords='Django Integreat CMS',\n    url='http://github.com/Integreat/',\n    classifiers=[\n        'Development Status :: 5 - Production/Stable',\n        'Intended Audience :: Developers',\n        'Programming Language :: Python :: 3.7',\n    ]\n)\n", "path": "setup.py"}]}