prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  version requirements for cryptography should be consistent
  Hi
  It seems that version requirements for cryptography in setup.py and requirements.txt are not consistent
  In setup.py, it is cryptography>=1.3.4
  In requirements.txt, it is cryptography==3.2
  Note that in pypi, the version of cryptography is always updating( now 3.4.6). Inconsistent version requirements will result in installing different version for cryptography if I use different  ways of installation. 
  
  </issue>
  <code>
  [start of setup.py]
  1 #!/usr/bin/env python
  2 from __future__ import print_function
  3 
  4 import codecs
  5 import os
  6 
  7 from setuptools import find_packages
  8 from setuptools import setup
  9 
  10 ROOT_DIR = os.path.dirname(__file__)
  11 SOURCE_DIR = os.path.join(ROOT_DIR)
  12 
  13 requirements = [
  14     'websocket-client >= 0.32.0',
  15     'requests >= 2.14.2, != 2.18.0',
  16 ]
  17 
  18 extras_require = {
  19     # win32 APIs if on Windows (required for npipe support)
  20     ':sys_platform == "win32"': 'pywin32==227',
  21 
  22     # If using docker-py over TLS, highly recommend this option is
  23     # pip-installed or pinned.
  24 
  25     # TODO: if pip installing both "requests" and "requests[security]", the
  26     # extra package from the "security" option are not installed (see
  27     # https://github.com/pypa/pip/issues/4391).  Once that's fixed, instead of
  28     # installing the extra dependencies, install the following instead:
  29     # 'requests[security] >= 2.5.2, != 2.11.0, != 2.12.2'
  30     'tls': ['pyOpenSSL>=17.5.0', 'cryptography>=1.3.4', 'idna>=2.0.0'],
  31 
  32     # Only required when connecting using the ssh:// protocol
  33     'ssh': ['paramiko>=2.4.2'],
  34 
  35 }
  36 
  37 version = None
  38 exec(open('docker/version.py').read())
  39 
  40 with open('./test-requirements.txt') as test_reqs_txt:
  41     test_requirements = [line for line in test_reqs_txt]
  42 
  43 
  44 long_description = ''
  45 with codecs.open('./README.md', encoding='utf-8') as readme_md:
  46     long_description = readme_md.read()
  47 
  48 setup(
  49     name="docker",
  50     version=version,
  51     description="A Python library for the Docker Engine API.",
  52     long_description=long_description,
  53     long_description_content_type='text/markdown',
  54     url='https://github.com/docker/docker-py',
  55     project_urls={
  56         'Documentation': 'https://docker-py.readthedocs.io',
  57         'Changelog': 'https://docker-py.readthedocs.io/en/stable/change-log.html',  # noqa: E501
  58         'Source': 'https://github.com/docker/docker-py',
  59         'Tracker': 'https://github.com/docker/docker-py/issues',
  60     },
  61     packages=find_packages(exclude=["tests.*", "tests"]),
  62     install_requires=requirements,
  63     tests_require=test_requirements,
  64     extras_require=extras_require,
  65     python_requires='>=3.6',
  66     zip_safe=False,
  67     test_suite='tests',
  68     classifiers=[
  69         'Development Status :: 5 - Production/Stable',
  70         'Environment :: Other Environment',
  71         'Intended Audience :: Developers',
  72         'Operating System :: OS Independent',
  73         'Programming Language :: Python',
  74         'Programming Language :: Python :: 3',
  75         'Programming Language :: Python :: 3.6',
  76         'Programming Language :: Python :: 3.7',
  77         'Programming Language :: Python :: 3.8',
  78         'Programming Language :: Python :: 3.9',
  79         'Topic :: Software Development',
  80         'Topic :: Utilities',
  81         'License :: OSI Approved :: Apache Software License',
  82     ],
  83     maintainer='Joffrey F',
  84     maintainer_email='joffrey@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
  @@ -27,7 +27,7 @@
       # https://github.com/pypa/pip/issues/4391).  Once that's fixed, instead of
       # installing the extra dependencies, install the following instead:
       # 'requests[security] >= 2.5.2, != 2.11.0, != 2.12.2'
  -    'tls': ['pyOpenSSL>=17.5.0', 'cryptography>=1.3.4', 'idna>=2.0.0'],
  +    'tls': ['pyOpenSSL>=17.5.0', 'cryptography>=3.4.7', 'idna>=2.0.0'],
   
       # Only required when connecting using the ssh:// protocol
       'ssh': ['paramiko>=2.4.2'],
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -27,7 +27,7 @@\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>=1.3.4', 'idna>=2.0.0'],\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.2'],\n", "issue": "version requirements for cryptography should be consistent\nHi\r\nIt seems that version requirements for cryptography in setup.py and requirements.txt are not consistent\r\nIn setup.py, it is cryptography>=1.3.4\r\nIn requirements.txt, it is cryptography==3.2\r\nNote that in pypi, the version of cryptography is always updating( now 3.4.6). Inconsistent version requirements will result in installing different version for cryptography if I use different  ways of installation. \n", "before_files": [{"content": "#!/usr/bin/env python\nfrom __future__ import print_function\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>=1.3.4', 'idna>=2.0.0'],\n\n    # Only required when connecting using the ssh:// protocol\n    'ssh': ['paramiko>=2.4.2'],\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        'Topic :: Software Development',\n        'Topic :: Utilities',\n        'License :: OSI Approved :: Apache Software License',\n    ],\n    maintainer='Joffrey F',\n    maintainer_email='joffrey@docker.com',\n)\n", "path": "setup.py"}]}