mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-04 12:30:11 +03:00
Add compat entry for urllib3 import due to new requests release
This commit is contained in:
parent
26623436f3
commit
08278a65fa
|
@ -199,6 +199,12 @@ except ImportError:
|
||||||
# requests is optional
|
# requests is optional
|
||||||
try:
|
try:
|
||||||
import requests
|
import requests
|
||||||
|
# requests >=2.16.0 no longer includes vendored packages and lists urllib3 as a dependency
|
||||||
|
try:
|
||||||
|
import urllib3
|
||||||
|
except ImportError:
|
||||||
|
# requests installation is <2.16.0
|
||||||
|
urllib3 = requests.packages.urllib3
|
||||||
except ImportError:
|
except ImportError:
|
||||||
requests = None
|
requests = None
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ from django.utils import six
|
||||||
from django.utils.encoding import force_bytes
|
from django.utils.encoding import force_bytes
|
||||||
from django.utils.http import urlencode
|
from django.utils.http import urlencode
|
||||||
|
|
||||||
from rest_framework.compat import coreapi, requests
|
from rest_framework.compat import coreapi, requests, urllib3
|
||||||
from rest_framework.settings import api_settings
|
from rest_framework.settings import api_settings
|
||||||
|
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ def force_authenticate(request, user=None, token=None):
|
||||||
|
|
||||||
|
|
||||||
if requests is not None:
|
if requests is not None:
|
||||||
class HeaderDict(requests.packages.urllib3._collections.HTTPHeaderDict):
|
class HeaderDict(urllib3._collections.HTTPHeaderDict):
|
||||||
def get_all(self, key, default):
|
def get_all(self, key, default):
|
||||||
return self.getheaders(key)
|
return self.getheaders(key)
|
||||||
|
|
||||||
|
@ -98,7 +98,7 @@ if requests is not None:
|
||||||
|
|
||||||
# Build the underlying urllib3.HTTPResponse
|
# Build the underlying urllib3.HTTPResponse
|
||||||
raw_kwargs['body'] = io.BytesIO(b''.join(wsgi_response))
|
raw_kwargs['body'] = io.BytesIO(b''.join(wsgi_response))
|
||||||
raw = requests.packages.urllib3.HTTPResponse(**raw_kwargs)
|
raw = urllib3.HTTPResponse(**raw_kwargs)
|
||||||
|
|
||||||
# Build the requests.Response
|
# Build the requests.Response
|
||||||
return self.build_response(request, raw)
|
return self.build_response(request, raw)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user