diff options
author | Hanoh Haim <hhaim@cisco.com> | 2017-01-12 13:47:39 +0200 |
---|---|---|
committer | Hanoh Haim <hhaim@cisco.com> | 2017-01-15 17:10:16 +0200 |
commit | 420216e583706fbd7bf214818fcce0143a05e982 (patch) | |
tree | 0fd39bac06af7e12889406b0f20cd40527e0d18f /scripts/external_libs/requests/requests/packages/__init__.py | |
parent | 4e5a651c8e052cdbcad73f6af5ce065ffd6dbce4 (diff) |
add elk
Signed-off-by: Hanoh Haim <hhaim@cisco.com>
Diffstat (limited to 'scripts/external_libs/requests/requests/packages/__init__.py')
-rw-r--r-- | scripts/external_libs/requests/requests/packages/__init__.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/scripts/external_libs/requests/requests/packages/__init__.py b/scripts/external_libs/requests/requests/packages/__init__.py new file mode 100644 index 00000000..4077265e --- /dev/null +++ b/scripts/external_libs/requests/requests/packages/__init__.py @@ -0,0 +1,42 @@ +''' +Debian and other distributions "unbundle" requests' vendored dependencies, and +rewrite all imports to use the global versions of ``urllib3`` and ``chardet``. +The problem with this is that not only requests itself imports those +dependencies, but third-party code outside of the distros' control too. + +In reaction to these problems, the distro maintainers replaced +``requests.packages`` with a magical "stub module" that imports the correct +modules. The implementations were varying in quality and all had severe +problems. For example, a symlink (or hardlink) that links the correct modules +into place introduces problems regarding object identity, since you now have +two modules in `sys.modules` with the same API, but different identities:: + + requests.packages.urllib3 is not urllib3 + +With version ``2.5.2``, requests started to maintain its own stub, so that +distro-specific breakage would be reduced to a minimum, even though the whole +issue is not requests' fault in the first place. See +https://github.com/kennethreitz/requests/pull/2375 for the corresponding pull +request. +''' + +from __future__ import absolute_import +import sys + +try: + from . import urllib3 +except ImportError: + import urllib3 + sys.modules['%s.urllib3' % __name__] = urllib3 + +try: + from . import chardet +except ImportError: + import chardet + sys.modules['%s.chardet' % __name__] = chardet + +try: + from . import idna +except ImportError: + import idna + sys.modules['%s.idna' % __name__] = idna |