prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Release 1.1.7
  
  
  </issue>
  <code>
  [start of setup.py]
  1 #!/usr/bin/env python3
  2 
  3 from glob import glob as _glob
  4 
  5 try:
  6     from setuptools import setup
  7 except ImportError:
  8     from distutils.core import setup
  9 
  10 # from solaar import NAME, __version__
  11 __version__ = '1.1.7'
  12 NAME = 'Solaar'
  13 
  14 
  15 def _data_files():
  16     from os.path import dirname as _dirname
  17 
  18     yield 'share/solaar/icons', _glob('share/solaar/icons/solaar*.svg')
  19     yield 'share/solaar/icons', _glob('share/solaar/icons/light_*.png')
  20     yield 'share/icons/hicolor/scalable/apps', ['share/solaar/icons/solaar.svg']
  21 
  22     for mo in _glob('share/locale/*/LC_MESSAGES/solaar.mo'):
  23         yield _dirname(mo), [mo]
  24 
  25     yield 'share/applications', ['share/applications/solaar.desktop']
  26     yield 'share/solaar/udev-rules.d', ['rules.d/42-logitech-unify-permissions.rules']
  27     yield 'share/metainfo', ['share/solaar/io.github.pwr_solaar.solaar.metainfo.xml']
  28 
  29     del _dirname
  30 
  31 
  32 setup(
  33     name=NAME.lower(),
  34     version=__version__,
  35     description='Linux device manager for Logitech receivers, keyboards, mice, and tablets.',
  36     long_description='''
  37 Solaar is a Linux device manager for many Logitech peripherals that connect through
  38 Unifying and other receivers or via USB or Bluetooth.
  39 Solaar is able to pair/unpair devices with receivers and show and modify some of the
  40 modifiable features of devices.
  41 For instructions on installing Solaar see https://pwr-solaar.github.io/Solaar/installation'''.strip(),
  42     author='Daniel Pavel',
  43     license='GPLv2',
  44     url='http://pwr-solaar.github.io/Solaar/',
  45     classifiers=[
  46         'Development Status :: 4 - Beta',
  47         'Environment :: X11 Applications :: GTK',
  48         'Environment :: Console',
  49         'Intended Audience :: End Users/Desktop',
  50         'License :: DFSG approved',
  51         'License :: OSI Approved :: GNU General Public License v2 (GPLv2)',
  52         'Natural Language :: English',
  53         'Programming Language :: Python :: 3 :: Only',
  54         'Operating System :: POSIX :: Linux',
  55         'Topic :: Utilities',
  56     ],
  57     platforms=['linux'],
  58 
  59     # sudo apt install python-gi python3-gi \
  60     #        gir1.2-gtk-3.0 gir1.2-notify-0.7 gir1.2-ayatanaappindicator3-0.1
  61     # os_requires=['gi.repository.GObject (>= 2.0)', 'gi.repository.Gtk (>= 3.0)'],
  62     python_requires='>=3.7',
  63     install_requires=[
  64         'evdev (>= 1.1.2)',
  65         'pyudev (>= 0.13)',
  66         'PyYAML (>= 3.12)',
  67         'python-xlib (>= 0.27)',
  68         'psutil (>= 5.4.3)',
  69         'typing_extensions (>=4.0.0)',
  70     ],
  71     extras_require={
  72         'report-descriptor': ['hid-parser'],
  73         'desktop-notifications': ['Notify (>= 0.7)'],
  74     },
  75     package_dir={'': 'lib'},
  76     packages=['keysyms', 'hidapi', 'logitech_receiver', 'solaar', 'solaar.ui', 'solaar.cli'],
  77     data_files=list(_data_files()),
  78     scripts=_glob('bin/*'),
  79 )
  80
  [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
  @@ -66,7 +66,6 @@
           'PyYAML (>= 3.12)',
           'python-xlib (>= 0.27)',
           'psutil (>= 5.4.3)',
  -        'typing_extensions (>=4.0.0)',
       ],
       extras_require={
           'report-descriptor': ['hid-parser'],
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -66,7 +66,6 @@\n         'PyYAML (>= 3.12)',\n         'python-xlib (>= 0.27)',\n         'psutil (>= 5.4.3)',\n-        'typing_extensions (>=4.0.0)',\n     ],\n     extras_require={\n         'report-descriptor': ['hid-parser'],\n", "issue": "Release 1.1.7\n\n", "before_files": [{"content": "#!/usr/bin/env python3\n\nfrom glob import glob as _glob\n\ntry:\n    from setuptools import setup\nexcept ImportError:\n    from distutils.core import setup\n\n# from solaar import NAME, __version__\n__version__ = '1.1.7'\nNAME = 'Solaar'\n\n\ndef _data_files():\n    from os.path import dirname as _dirname\n\n    yield 'share/solaar/icons', _glob('share/solaar/icons/solaar*.svg')\n    yield 'share/solaar/icons', _glob('share/solaar/icons/light_*.png')\n    yield 'share/icons/hicolor/scalable/apps', ['share/solaar/icons/solaar.svg']\n\n    for mo in _glob('share/locale/*/LC_MESSAGES/solaar.mo'):\n        yield _dirname(mo), [mo]\n\n    yield 'share/applications', ['share/applications/solaar.desktop']\n    yield 'share/solaar/udev-rules.d', ['rules.d/42-logitech-unify-permissions.rules']\n    yield 'share/metainfo', ['share/solaar/io.github.pwr_solaar.solaar.metainfo.xml']\n\n    del _dirname\n\n\nsetup(\n    name=NAME.lower(),\n    version=__version__,\n    description='Linux device manager for Logitech receivers, keyboards, mice, and tablets.',\n    long_description='''\nSolaar is a Linux device manager for many Logitech peripherals that connect through\nUnifying and other receivers or via USB or Bluetooth.\nSolaar is able to pair/unpair devices with receivers and show and modify some of the\nmodifiable features of devices.\nFor instructions on installing Solaar see https://pwr-solaar.github.io/Solaar/installation'''.strip(),\n    author='Daniel Pavel',\n    license='GPLv2',\n    url='http://pwr-solaar.github.io/Solaar/',\n    classifiers=[\n        'Development Status :: 4 - Beta',\n        'Environment :: X11 Applications :: GTK',\n        'Environment :: Console',\n        'Intended Audience :: End Users/Desktop',\n        'License :: DFSG approved',\n        'License :: OSI Approved :: GNU General Public License v2 (GPLv2)',\n        'Natural Language :: English',\n        'Programming Language :: Python :: 3 :: Only',\n        'Operating System :: POSIX :: Linux',\n        'Topic :: Utilities',\n    ],\n    platforms=['linux'],\n\n    # sudo apt install python-gi python3-gi \\\n    #        gir1.2-gtk-3.0 gir1.2-notify-0.7 gir1.2-ayatanaappindicator3-0.1\n    # os_requires=['gi.repository.GObject (>= 2.0)', 'gi.repository.Gtk (>= 3.0)'],\n    python_requires='>=3.7',\n    install_requires=[\n        'evdev (>= 1.1.2)',\n        'pyudev (>= 0.13)',\n        'PyYAML (>= 3.12)',\n        'python-xlib (>= 0.27)',\n        'psutil (>= 5.4.3)',\n        'typing_extensions (>=4.0.0)',\n    ],\n    extras_require={\n        'report-descriptor': ['hid-parser'],\n        'desktop-notifications': ['Notify (>= 0.7)'],\n    },\n    package_dir={'': 'lib'},\n    packages=['keysyms', 'hidapi', 'logitech_receiver', 'solaar', 'solaar.ui', 'solaar.cli'],\n    data_files=list(_data_files()),\n    scripts=_glob('bin/*'),\n)\n", "path": "setup.py"}]}