Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F120492688
__init__.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Fri, Jul 4, 18:50
Size
1 KB
Mime Type
text/x-python
Expires
Sun, Jul 6, 18:50 (2 d)
Engine
blob
Format
Raw Data
Handle
27185727
Attached To
R3852 EMS for Smart-Building
__init__.py
View Options
'''
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
Event Timeline
Log In to Comment