prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  PyOpenSSL: Fails to import after installation with the provided instructions
  The [Security documentation page](https://urllib3.readthedocs.org/en/latest/security.html#openssl-pyopenssl) indicates that to use PyOpenSSL that you must first install:
  - pip3 install pyopenssl ndg-httpsclient pyasn1
  
  And then in a Python interpreter run:
  - import urllib3.contrib.pyopenssl
  - urllib3.contrib.pyopenssl.inject_into_urllib3()
  
  However on Python 3.4.4 (the latest 3.4.x) on OS X 10.11 (the latest OS X) I get the following traceback when executing `import urllib3.contrib.pyopenssl`:
  
  ```
  Traceback (most recent call last):
    File "/Users/davidf/Projects/webcrystal/venv/lib/python3.4/site-packages/urllib3/contrib/pyopenssl.py", line 60, in <module>
      from socket import _fileobject
  ImportError: cannot import name '_fileobject'
  
  During handling of the above exception, another exception occurred:
  
  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "/Users/davidf/Projects/webcrystal/venv/lib/python3.4/site-packages/urllib3/contrib/pyopenssl.py", line 63, in <module>
      from urllib3.packages.backports.makefile import backport_makefile
  ImportError: No module named 'urllib3.packages.backports'
  ```
  
  Perhaps there is some missing step in the documentation?
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `setup.py`
  Content:
  ```
  1 #!/usr/bin/env python
  2 
  3 from setuptools import setup
  4 
  5 import os
  6 import re
  7 import codecs
  8 
  9 base_path = os.path.dirname(__file__)
  10 
  11 # Get the version (borrowed from SQLAlchemy)
  12 fp = open(os.path.join(base_path, 'urllib3', '__init__.py'))
  13 VERSION = re.compile(r".*__version__ = '(.*?)'",
  14                      re.S).match(fp.read()).group(1)
  15 fp.close()
  16 
  17 readme = codecs.open('README.rst', encoding='utf-8').read()
  18 changes = codecs.open('CHANGES.rst', encoding='utf-8').read()
  19 version = VERSION
  20 
  21 setup(name='urllib3',
  22       version=version,
  23       description="HTTP library with thread-safe connection pooling, file post, and more.",
  24       long_description=u'\n\n'.join([readme, changes]),
  25       classifiers=[
  26           'Environment :: Web Environment',
  27           'Intended Audience :: Developers',
  28           'License :: OSI Approved :: MIT License',
  29           'Operating System :: OS Independent',
  30           'Programming Language :: Python',
  31           'Programming Language :: Python :: 2',
  32           'Programming Language :: Python :: 3',
  33           'Topic :: Internet :: WWW/HTTP',
  34           'Topic :: Software Development :: Libraries',
  35       ],
  36       keywords='urllib httplib threadsafe filepost http https ssl pooling',
  37       author='Andrey Petrov',
  38       author_email='andrey.petrov@shazow.net',
  39       url='http://urllib3.readthedocs.org/',
  40       license='MIT',
  41       packages=['urllib3',
  42                 'urllib3.packages', 'urllib3.packages.ssl_match_hostname',
  43                 'urllib3.contrib', 'urllib3.util',
  44                 ],
  45       requires=[],
  46       tests_require=[
  47           # These are a less-specific subset of dev-requirements.txt, for the
  48           # convenience of distro package maintainers.
  49           'nose',
  50           'mock',
  51           'tornado',
  52       ],
  53       test_suite='test',
  54       extras_require={
  55           'secure': [
  56               'pyOpenSSL>=0.13',
  57               'ndg-httpsclient',
  58               'pyasn1',
  59               'certifi',
  60           ],
  61           'socks': [
  62               'PySocks>=1.5.6,<2.0',
  63           ]
  64       },
  65       )
  66
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/setup.py b/setup.py
  --- a/setup.py
  +++ b/setup.py
  @@ -40,7 +40,8 @@
         license='MIT',
         packages=['urllib3',
                   'urllib3.packages', 'urllib3.packages.ssl_match_hostname',
  -                'urllib3.contrib', 'urllib3.util',
  +                'urllib3.packages.backports', 'urllib3.contrib',
  +                'urllib3.util',
                   ],
         requires=[],
         tests_require=[
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -40,7 +40,8 @@\n       license='MIT',\n       packages=['urllib3',\n                 'urllib3.packages', 'urllib3.packages.ssl_match_hostname',\n-                'urllib3.contrib', 'urllib3.util',\n+                'urllib3.packages.backports', 'urllib3.contrib',\n+                'urllib3.util',\n                 ],\n       requires=[],\n       tests_require=[\n", "issue": "PyOpenSSL: Fails to import after installation with the provided instructions\nThe [Security documentation page](https://urllib3.readthedocs.org/en/latest/security.html#openssl-pyopenssl) indicates that to use PyOpenSSL that you must first install:\n- pip3 install pyopenssl ndg-httpsclient pyasn1\n\nAnd then in a Python interpreter run:\n- import urllib3.contrib.pyopenssl\n- urllib3.contrib.pyopenssl.inject_into_urllib3()\n\nHowever on Python 3.4.4 (the latest 3.4.x) on OS X 10.11 (the latest OS X) I get the following traceback when executing `import urllib3.contrib.pyopenssl`:\n\n```\nTraceback (most recent call last):\n  File \"/Users/davidf/Projects/webcrystal/venv/lib/python3.4/site-packages/urllib3/contrib/pyopenssl.py\", line 60, in <module>\n    from socket import _fileobject\nImportError: cannot import name '_fileobject'\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"<stdin>\", line 1, in <module>\n  File \"/Users/davidf/Projects/webcrystal/venv/lib/python3.4/site-packages/urllib3/contrib/pyopenssl.py\", line 63, in <module>\n    from urllib3.packages.backports.makefile import backport_makefile\nImportError: No module named 'urllib3.packages.backports'\n```\n\nPerhaps there is some missing step in the documentation?\n\n", "before_files": [{"content": "#!/usr/bin/env python\n\nfrom setuptools import setup\n\nimport os\nimport re\nimport codecs\n\nbase_path = os.path.dirname(__file__)\n\n# Get the version (borrowed from SQLAlchemy)\nfp = open(os.path.join(base_path, 'urllib3', '__init__.py'))\nVERSION = re.compile(r\".*__version__ = '(.*?)'\",\n                     re.S).match(fp.read()).group(1)\nfp.close()\n\nreadme = codecs.open('README.rst', encoding='utf-8').read()\nchanges = codecs.open('CHANGES.rst', encoding='utf-8').read()\nversion = VERSION\n\nsetup(name='urllib3',\n      version=version,\n      description=\"HTTP library with thread-safe connection pooling, file post, and more.\",\n      long_description=u'\\n\\n'.join([readme, changes]),\n      classifiers=[\n          'Environment :: Web Environment',\n          'Intended Audience :: Developers',\n          'License :: OSI Approved :: MIT License',\n          'Operating System :: OS Independent',\n          'Programming Language :: Python',\n          'Programming Language :: Python :: 2',\n          'Programming Language :: Python :: 3',\n          'Topic :: Internet :: WWW/HTTP',\n          'Topic :: Software Development :: Libraries',\n      ],\n      keywords='urllib httplib threadsafe filepost http https ssl pooling',\n      author='Andrey Petrov',\n      author_email='andrey.petrov@shazow.net',\n      url='http://urllib3.readthedocs.org/',\n      license='MIT',\n      packages=['urllib3',\n                'urllib3.packages', 'urllib3.packages.ssl_match_hostname',\n                'urllib3.contrib', 'urllib3.util',\n                ],\n      requires=[],\n      tests_require=[\n          # These are a less-specific subset of dev-requirements.txt, for the\n          # convenience of distro package maintainers.\n          'nose',\n          'mock',\n          'tornado',\n      ],\n      test_suite='test',\n      extras_require={\n          'secure': [\n              'pyOpenSSL>=0.13',\n              'ndg-httpsclient',\n              'pyasn1',\n              'certifi',\n          ],\n          'socks': [\n              'PySocks>=1.5.6,<2.0',\n          ]\n      },\n      )\n", "path": "setup.py"}], "after_files": [{"content": "#!/usr/bin/env python\n\nfrom setuptools import setup\n\nimport os\nimport re\nimport codecs\n\nbase_path = os.path.dirname(__file__)\n\n# Get the version (borrowed from SQLAlchemy)\nfp = open(os.path.join(base_path, 'urllib3', '__init__.py'))\nVERSION = re.compile(r\".*__version__ = '(.*?)'\",\n                     re.S).match(fp.read()).group(1)\nfp.close()\n\nreadme = codecs.open('README.rst', encoding='utf-8').read()\nchanges = codecs.open('CHANGES.rst', encoding='utf-8').read()\nversion = VERSION\n\nsetup(name='urllib3',\n      version=version,\n      description=\"HTTP library with thread-safe connection pooling, file post, and more.\",\n      long_description=u'\\n\\n'.join([readme, changes]),\n      classifiers=[\n          'Environment :: Web Environment',\n          'Intended Audience :: Developers',\n          'License :: OSI Approved :: MIT License',\n          'Operating System :: OS Independent',\n          'Programming Language :: Python',\n          'Programming Language :: Python :: 2',\n          'Programming Language :: Python :: 3',\n          'Topic :: Internet :: WWW/HTTP',\n          'Topic :: Software Development :: Libraries',\n      ],\n      keywords='urllib httplib threadsafe filepost http https ssl pooling',\n      author='Andrey Petrov',\n      author_email='andrey.petrov@shazow.net',\n      url='http://urllib3.readthedocs.org/',\n      license='MIT',\n      packages=['urllib3',\n                'urllib3.packages', 'urllib3.packages.ssl_match_hostname',\n                'urllib3.packages.backports', 'urllib3.contrib',\n                'urllib3.util',\n                ],\n      requires=[],\n      tests_require=[\n          # These are a less-specific subset of dev-requirements.txt, for the\n          # convenience of distro package maintainers.\n          'nose',\n          'mock',\n          'tornado',\n      ],\n      test_suite='test',\n      extras_require={\n          'secure': [\n              'pyOpenSSL>=0.13',\n              'ndg-httpsclient',\n              'pyasn1',\n              'certifi',\n          ],\n          'socks': [\n              'PySocks>=1.5.6,<2.0',\n          ]\n      },\n      )\n", "path": "setup.py"}]}