prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  text-unidecode is released under the Artistic license
  `text-unidecode` is released under the Artistic license v1.0, which is considered non-free by the FSF (and therefore not compatible with the GPL). I believe this clause is also of concern to commercial users of faker too:
  
  > 5. You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own.
  
  Not being able to charge a fee for the software is problematic for those of us who are contractors, for example.
  
  I realise there aren't really any good alternatives (`unidecode` is GPL licensed as pointed out in #628 , `isounidecode` doesn't support Python 3), so would a patch making `text-unidecode` an optional dependency be acceptable?
  
  </issue>
  <code>
  [start of setup.py]
  1 #!/usr/bin/env python
  2 # coding=utf-8
  3 
  4 import io
  5 import os
  6 
  7 from setuptools import find_packages, setup
  8 
  9 here = os.path.abspath(os.path.dirname(__file__))
  10 with io.open(os.path.join(here, 'README.rst'), encoding='utf-8') as fp:
  11     README = fp.read()
  12 
  13 with io.open(os.path.join(here, 'VERSION')) as version_file:
  14     VERSION = version_file.read().strip()
  15 
  16 
  17 # this module can be zip-safe if the zipimporter implements iter_modules or if
  18 # pkgutil.iter_importer_modules has registered a dispatch for the zipimporter.
  19 try:
  20     import pkgutil
  21     import zipimport
  22     zip_safe = hasattr(zipimport.zipimporter, "iter_modules") or \
  23         zipimport.zipimporter in pkgutil.iter_importer_modules.registry.keys()
  24 except (ImportError, AttributeError):
  25     zip_safe = False
  26 
  27 setup(
  28     name='Faker',
  29     version=VERSION,
  30     description="Faker is a Python package that generates fake data for you.",
  31     long_description=README,
  32     entry_points={
  33         'console_scripts': ['faker=faker.cli:execute_from_command_line'],
  34     },
  35     classifiers=[
  36         # See https://pypi.org/pypi?%3Aaction=list_classifiers
  37         'Development Status :: 5 - Production/Stable',
  38         'Environment :: Console',
  39         'Intended Audience :: Developers',
  40         'Programming Language :: Python',
  41         'Programming Language :: Python :: 2',
  42         'Programming Language :: Python :: 2.7',
  43         'Programming Language :: Python :: 3',
  44         'Programming Language :: Python :: 3.4',
  45         'Programming Language :: Python :: 3.5',
  46         'Programming Language :: Python :: 3.6',
  47         'Programming Language :: Python :: 3.7',
  48         'Programming Language :: Python :: Implementation :: CPython',
  49         'Programming Language :: Python :: Implementation :: PyPy',
  50         'Topic :: Software Development :: Libraries :: Python Modules',
  51         'Topic :: Software Development :: Testing',
  52         'Topic :: Utilities',
  53         'License :: OSI Approved :: MIT License',
  54     ],
  55     keywords='faker fixtures data test mock generator',
  56     author='joke2k',
  57     author_email='joke2k@gmail.com',
  58     url='https://github.com/joke2k/faker',
  59     license='MIT License',
  60     packages=find_packages(exclude=["docs", "tests", "tests.*"]),
  61     platforms=["any"],
  62     test_suite='tests',
  63     zip_safe=zip_safe,
  64     python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
  65     setup_requires=["pytest-runner"],
  66     install_requires=[
  67         "python-dateutil>=2.4",
  68         "six>=1.10",
  69         "text-unidecode==1.2",
  70     ],
  71     tests_require=[
  72         "validators>=0.13.0",
  73         "ukpostcodeparser>=1.1.1",
  74         "mock ; python_version < '3.3'",
  75         "pytest>=3.8.0,<3.9",
  76         "more-itertools<6.0.0 ; python_version < '3.0'",
  77         # restricted because they may drop python2 support in future versions
  78         # https://github.com/joke2k/faker/issues/970
  79         "random2<1.1",
  80         "freezegun<0.4",
  81     ],
  82     extras_require={
  83         ':python_version<"3.3"': [
  84             'ipaddress',
  85         ],
  86     },
  87 )
  88
  [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,7 @@
       install_requires=[
           "python-dateutil>=2.4",
           "six>=1.10",
  -        "text-unidecode==1.2",
  +        "text-unidecode==1.3",
       ],
       tests_require=[
           "validators>=0.13.0",
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -66,7 +66,7 @@\n     install_requires=[\n         \"python-dateutil>=2.4\",\n         \"six>=1.10\",\n-        \"text-unidecode==1.2\",\n+        \"text-unidecode==1.3\",\n     ],\n     tests_require=[\n         \"validators>=0.13.0\",\n", "issue": "text-unidecode is released under the Artistic license\n`text-unidecode` is released under the Artistic license v1.0, which is considered non-free by the FSF (and therefore not compatible with the GPL). I believe this clause is also of concern to commercial users of faker too:\r\n\r\n> 5. You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own.\r\n\r\nNot being able to charge a fee for the software is problematic for those of us who are contractors, for example.\r\n\r\nI realise there aren't really any good alternatives (`unidecode` is GPL licensed as pointed out in #628 , `isounidecode` doesn't support Python 3), so would a patch making `text-unidecode` an optional dependency be acceptable?\n", "before_files": [{"content": "#!/usr/bin/env python\n# coding=utf-8\n\nimport io\nimport os\n\nfrom setuptools import find_packages, setup\n\nhere = os.path.abspath(os.path.dirname(__file__))\nwith io.open(os.path.join(here, 'README.rst'), encoding='utf-8') as fp:\n    README = fp.read()\n\nwith io.open(os.path.join(here, 'VERSION')) as version_file:\n    VERSION = version_file.read().strip()\n\n\n# this module can be zip-safe if the zipimporter implements iter_modules or if\n# pkgutil.iter_importer_modules has registered a dispatch for the zipimporter.\ntry:\n    import pkgutil\n    import zipimport\n    zip_safe = hasattr(zipimport.zipimporter, \"iter_modules\") or \\\n        zipimport.zipimporter in pkgutil.iter_importer_modules.registry.keys()\nexcept (ImportError, AttributeError):\n    zip_safe = False\n\nsetup(\n    name='Faker',\n    version=VERSION,\n    description=\"Faker is a Python package that generates fake data for you.\",\n    long_description=README,\n    entry_points={\n        'console_scripts': ['faker=faker.cli:execute_from_command_line'],\n    },\n    classifiers=[\n        # See https://pypi.org/pypi?%3Aaction=list_classifiers\n        'Development Status :: 5 - Production/Stable',\n        'Environment :: Console',\n        'Intended Audience :: Developers',\n        'Programming Language :: Python',\n        'Programming Language :: Python :: 2',\n        'Programming Language :: Python :: 2.7',\n        'Programming Language :: Python :: 3',\n        'Programming Language :: Python :: 3.4',\n        'Programming Language :: Python :: 3.5',\n        'Programming Language :: Python :: 3.6',\n        'Programming Language :: Python :: 3.7',\n        'Programming Language :: Python :: Implementation :: CPython',\n        'Programming Language :: Python :: Implementation :: PyPy',\n        'Topic :: Software Development :: Libraries :: Python Modules',\n        'Topic :: Software Development :: Testing',\n        'Topic :: Utilities',\n        'License :: OSI Approved :: MIT License',\n    ],\n    keywords='faker fixtures data test mock generator',\n    author='joke2k',\n    author_email='joke2k@gmail.com',\n    url='https://github.com/joke2k/faker',\n    license='MIT License',\n    packages=find_packages(exclude=[\"docs\", \"tests\", \"tests.*\"]),\n    platforms=[\"any\"],\n    test_suite='tests',\n    zip_safe=zip_safe,\n    python_requires=\">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*\",\n    setup_requires=[\"pytest-runner\"],\n    install_requires=[\n        \"python-dateutil>=2.4\",\n        \"six>=1.10\",\n        \"text-unidecode==1.2\",\n    ],\n    tests_require=[\n        \"validators>=0.13.0\",\n        \"ukpostcodeparser>=1.1.1\",\n        \"mock ; python_version < '3.3'\",\n        \"pytest>=3.8.0,<3.9\",\n        \"more-itertools<6.0.0 ; python_version < '3.0'\",\n        # restricted because they may drop python2 support in future versions\n        # https://github.com/joke2k/faker/issues/970\n        \"random2<1.1\",\n        \"freezegun<0.4\",\n    ],\n    extras_require={\n        ':python_version<\"3.3\"': [\n            'ipaddress',\n        ],\n    },\n)\n", "path": "setup.py"}]}