diff options
| author | Markus Unterwaditzer <markus@unterwaditzer.net> | 2017-05-29 21:41:58 +0200 |
|---|---|---|
| committer | Markus Unterwaditzer <markus@unterwaditzer.net> | 2017-05-29 21:41:59 +0200 |
| commit | 588e8f7f640f774e71d61b53ccb34d310172e0ad (patch) | |
| tree | c58e1827abbe513aec50f549c6bb4ebb862fe0f8 | |
| parent | 593cd18202e972874605f0bdda0bf8d7c284207d (diff) | |
| download | python-requests-588e8f7f640f774e71d61b53ccb34d310172e0ad.tar.gz | |
Preserve identity of unbundled deps
Fix #4102
| -rw-r--r-- | requests/packages.py | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/requests/packages.py b/requests/packages.py index 0ec4f5bb..1fc3a742 100644 --- a/requests/packages.py +++ b/requests/packages.py @@ -3,13 +3,12 @@ import sys # This code exists for backwards compatibility reasons. # I don't like it either. Just look the other way. :) -import urllib3 -sys.modules['requests.packages.urllib3'] = urllib3 - -import idna -sys.modules['requests.packages.idna'] = idna - -import chardet -sys.modules['requests.packages.chardet'] = chardet - -# Kinda cool, though, right?
\ No newline at end of file +for package in ('urllib3', 'idna', 'chardet'): + __import__(package) + # This traversal is apparently necessary such that the identities are + # preserved (requests.packages.urllib3.* is urllib3.*) + for mod in list(sys.modules): + if mod == package or mod.startswith(package + '.'): + sys.modules['requests.packages.' + mod] = sys.modules[mod] + +# Kinda cool, though, right? |
