prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  installing latest 5.0.3 on windows machines is still using pywin32==227 but not pywin32==301
  [Bump pywin32 from 227 to 301 ]( https://github.com/docker/docker-py/commit/e0d186d754693feb7d27c2352e455c5febb4a5cd) was already merged in to bump pywin32 from 227 to 301. But, when installing latest 5.0.3 on windows machines is resulting in install of pywin32==227
  
  Most likely extras_require needs updated
  https://github.com/docker/docker-py/blob/a48a5a9647761406d66e8271f19fab7fa0c5f582/setup.py#L19
  
  
  
  
  Pywin32 upgrade
  Fix issue #2902
  
  @aiordache @ulyssessouza, please, accept this PR to fix this annoying bug
  
  Don't pin to pywin32 227
  The hard pin to 227 is keeping us from using docker with other projects that depend on a newer version of pywin32.
  
  </issue>
  <code>
  [start of setup.py]
  1 #!/usr/bin/env python
  2 
  3 import codecs
  4 import os
  5 
  6 from setuptools import find_packages
  7 from setuptools import setup
  8 
  9 ROOT_DIR = os.path.dirname(__file__)
  10 SOURCE_DIR = os.path.join(ROOT_DIR)
  11 
  12 requirements = [
  13     'websocket-client >= 0.32.0',
  14     'requests >= 2.14.2, != 2.18.0',
  15 ]
  16 
  17 extras_require = {
  18     # win32 APIs if on Windows (required for npipe support)
  19     ':sys_platform == "win32"': 'pywin32==227',
  20 
  21     # If using docker-py over TLS, highly recommend this option is
  22     # pip-installed or pinned.
  23 
  24     # TODO: if pip installing both "requests" and "requests[security]", the
  25     # extra package from the "security" option are not installed (see
  26     # https://github.com/pypa/pip/issues/4391).  Once that's fixed, instead of
  27     # installing the extra dependencies, install the following instead:
  28     # 'requests[security] >= 2.5.2, != 2.11.0, != 2.12.2'
  29     'tls': ['pyOpenSSL>=17.5.0', 'cryptography>=3.4.7', 'idna>=2.0.0'],
  30 
  31     # Only required when connecting using the ssh:// protocol
  32     'ssh': ['paramiko>=2.4.3'],
  33 
  34 }
  35 
  36 version = None
  37 exec(open('docker/version.py').read())
  38 
  39 with open('./test-requirements.txt') as test_reqs_txt:
  40     test_requirements = [line for line in test_reqs_txt]
  41 
  42 
  43 long_description = ''
  44 with codecs.open('./README.md', encoding='utf-8') as readme_md:
  45     long_description = readme_md.read()
  46 
  47 setup(
  48     name="docker",
  49     version=version,
  50     description="A Python library for the Docker Engine API.",
  51     long_description=long_description,
  52     long_description_content_type='text/markdown',
  53     url='https://github.com/docker/docker-py',
  54     project_urls={
  55         'Documentation': 'https://docker-py.readthedocs.io',
  56         'Changelog': 'https://docker-py.readthedocs.io/en/stable/change-log.html',  # noqa: E501
  57         'Source': 'https://github.com/docker/docker-py',
  58         'Tracker': 'https://github.com/docker/docker-py/issues',
  59     },
  60     packages=find_packages(exclude=["tests.*", "tests"]),
  61     install_requires=requirements,
  62     tests_require=test_requirements,
  63     extras_require=extras_require,
  64     python_requires='>=3.6',
  65     zip_safe=False,
  66     test_suite='tests',
  67     classifiers=[
  68         'Development Status :: 5 - Production/Stable',
  69         'Environment :: Other Environment',
  70         'Intended Audience :: Developers',
  71         'Operating System :: OS Independent',
  72         'Programming Language :: Python',
  73         'Programming Language :: Python :: 3',
  74         'Programming Language :: Python :: 3.6',
  75         'Programming Language :: Python :: 3.7',
  76         'Programming Language :: Python :: 3.8',
  77         'Programming Language :: Python :: 3.9',
  78         'Programming Language :: Python :: 3.10',
  79         'Topic :: Software Development',
  80         'Topic :: Utilities',
  81         'License :: OSI Approved :: Apache Software License',
  82     ],
  83     maintainer='Ulysses Souza',
  84     maintainer_email='ulysses.souza@docker.com',
  85 )
  86
  [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
  @@ -16,7 +16,7 @@
   
   extras_require = {
       # win32 APIs if on Windows (required for npipe support)
  -    ':sys_platform == "win32"': 'pywin32==227',
  +    ':sys_platform == "win32"': 'pywin32>=304',
   
       # If using docker-py over TLS, highly recommend this option is
       # pip-installed or pinned.
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -16,7 +16,7 @@\n \n extras_require = {\n     # win32 APIs if on Windows (required for npipe support)\n-    ':sys_platform == \"win32\"': 'pywin32==227',\n+    ':sys_platform == \"win32\"': 'pywin32>=304',\n \n     # If using docker-py over TLS, highly recommend this option is\n     # pip-installed or pinned.\n", "issue": "installing latest 5.0.3 on windows machines is still using pywin32==227 but not pywin32==301\n[Bump pywin32 from 227 to 301 ]( https://github.com/docker/docker-py/commit/e0d186d754693feb7d27c2352e455c5febb4a5cd) was already merged in to bump pywin32 from 227 to 301. But, when installing latest 5.0.3 on windows machines is resulting in install of pywin32==227\r\n\r\nMost likely extras_require needs updated\r\nhttps://github.com/docker/docker-py/blob/a48a5a9647761406d66e8271f19fab7fa0c5f582/setup.py#L19\r\n\r\n\r\n\r\n\nPywin32 upgrade\nFix issue #2902\r\n\r\n@aiordache @ulyssessouza, please, accept this PR to fix this annoying bug\r\n\nDon't pin to pywin32 227\nThe hard pin to 227 is keeping us from using docker with other projects that depend on a newer version of pywin32.\n", "before_files": [{"content": "#!/usr/bin/env python\n\nimport codecs\nimport os\n\nfrom setuptools import find_packages\nfrom setuptools import setup\n\nROOT_DIR = os.path.dirname(__file__)\nSOURCE_DIR = os.path.join(ROOT_DIR)\n\nrequirements = [\n    'websocket-client >= 0.32.0',\n    'requests >= 2.14.2, != 2.18.0',\n]\n\nextras_require = {\n    # win32 APIs if on Windows (required for npipe support)\n    ':sys_platform == \"win32\"': 'pywin32==227',\n\n    # If using docker-py over TLS, highly recommend this option is\n    # pip-installed or pinned.\n\n    # TODO: if pip installing both \"requests\" and \"requests[security]\", the\n    # extra package from the \"security\" option are not installed (see\n    # https://github.com/pypa/pip/issues/4391).  Once that's fixed, instead of\n    # installing the extra dependencies, install the following instead:\n    # 'requests[security] >= 2.5.2, != 2.11.0, != 2.12.2'\n    'tls': ['pyOpenSSL>=17.5.0', 'cryptography>=3.4.7', 'idna>=2.0.0'],\n\n    # Only required when connecting using the ssh:// protocol\n    'ssh': ['paramiko>=2.4.3'],\n\n}\n\nversion = None\nexec(open('docker/version.py').read())\n\nwith open('./test-requirements.txt') as test_reqs_txt:\n    test_requirements = [line for line in test_reqs_txt]\n\n\nlong_description = ''\nwith codecs.open('./README.md', encoding='utf-8') as readme_md:\n    long_description = readme_md.read()\n\nsetup(\n    name=\"docker\",\n    version=version,\n    description=\"A Python library for the Docker Engine API.\",\n    long_description=long_description,\n    long_description_content_type='text/markdown',\n    url='https://github.com/docker/docker-py',\n    project_urls={\n        'Documentation': 'https://docker-py.readthedocs.io',\n        'Changelog': 'https://docker-py.readthedocs.io/en/stable/change-log.html',  # noqa: E501\n        'Source': 'https://github.com/docker/docker-py',\n        'Tracker': 'https://github.com/docker/docker-py/issues',\n    },\n    packages=find_packages(exclude=[\"tests.*\", \"tests\"]),\n    install_requires=requirements,\n    tests_require=test_requirements,\n    extras_require=extras_require,\n    python_requires='>=3.6',\n    zip_safe=False,\n    test_suite='tests',\n    classifiers=[\n        'Development Status :: 5 - Production/Stable',\n        'Environment :: Other Environment',\n        'Intended Audience :: Developers',\n        'Operating System :: OS Independent',\n        'Programming Language :: Python',\n        'Programming Language :: Python :: 3',\n        'Programming Language :: Python :: 3.6',\n        'Programming Language :: Python :: 3.7',\n        'Programming Language :: Python :: 3.8',\n        'Programming Language :: Python :: 3.9',\n        'Programming Language :: Python :: 3.10',\n        'Topic :: Software Development',\n        'Topic :: Utilities',\n        'License :: OSI Approved :: Apache Software License',\n    ],\n    maintainer='Ulysses Souza',\n    maintainer_email='ulysses.souza@docker.com',\n)\n", "path": "setup.py"}]}