|
- from eventlet import patcher
- from eventlet.green import ftplib, http, os, socket, time
- from eventlet.green.http import client as http_client
- from eventlet.green.urllib import error, parse, response
-
- # TODO should we also have green email version?
- # import email
-
-
- to_patch = [
- # This (http module) is needed here, otherwise test__greenness hangs
- # forever on Python 3 because parts of non-green http (including
- # http.client) leak into our patched urllib.request. There may be a nicer
- # way to handle this (I didn't dig too deep) but this does the job. Jakub
- ('http', http),
-
- ('http.client', http_client),
- ('os', os),
- ('socket', socket),
- ('time', time),
- ('urllib.error', error),
- ('urllib.parse', parse),
- ('urllib.response', response),
- ]
-
- try:
- from eventlet.green import ssl
- except ImportError:
- pass
- else:
- to_patch.append(('ssl', ssl))
-
- patcher.inject('urllib.request', globals(), *to_patch)
- del to_patch
-
- to_patch_in_functions = [('ftplib', ftplib)]
- del ftplib
-
- FTPHandler.ftp_open = patcher.patch_function(FTPHandler.ftp_open, *to_patch_in_functions)
- URLopener.open_ftp = patcher.patch_function(URLopener.open_ftp, *to_patch_in_functions)
-
- ftperrors = patcher.patch_function(ftperrors, *to_patch_in_functions)
-
- ftpwrapper.init = patcher.patch_function(ftpwrapper.init, *to_patch_in_functions)
- ftpwrapper.retrfile = patcher.patch_function(ftpwrapper.retrfile, *to_patch_in_functions)
-
- del error
- del parse
- del response
- del to_patch_in_functions
|