Drop Python 2.6: OrderedDict is in collections from 2.7

This commit is contained in:
hugovk
2017-10-06 08:52:51 +03:00
committed by Hugo
parent 37f1d23c39
commit 006aa3de4f
5 changed files with 13 additions and 17 deletions
-3
View File
@@ -39,8 +39,6 @@ if is_py2:
from Cookie import Morsel
from StringIO import StringIO
from urllib3.packages.ordered_dict import OrderedDict
builtin_str = str
bytes = str
str = unicode
@@ -54,7 +52,6 @@ elif is_py3:
from http import cookiejar as cookielib
from http.cookies import Morsel
from io import StringIO
from collections import OrderedDict
builtin_str = str
str = str
+2 -2
View File
@@ -10,11 +10,11 @@ requests (cookies, auth, proxies).
import os
import platform
import time
from collections import Mapping
from collections import Mapping, OrderedDict
from datetime import timedelta
from .auth import _basic_auth_str
from .compat import cookielib, OrderedDict, urljoin, urlparse, is_py3, str
from .compat import cookielib, urljoin, urlparse, is_py3, str
from .cookies import (
cookiejar_from_dict, extract_cookies_to_jar, RequestsCookieJar,
merge_cookies, _copy_cookie_jar)
+1 -3
View File
@@ -9,8 +9,6 @@ Data structures that power Requests.
import collections
from .compat import OrderedDict
class CaseInsensitiveDict(collections.MutableMapping):
"""A case-insensitive ``dict``-like object.
@@ -40,7 +38,7 @@ class CaseInsensitiveDict(collections.MutableMapping):
"""
def __init__(self, data=None, **kwargs):
self._store = OrderedDict()
self._store = collections.OrderedDict()
if data is None:
data = {}
self.update(data, **kwargs)
+4 -4
View File
@@ -26,7 +26,7 @@ from . import certs
from ._internal_utils import to_native_string
from .compat import parse_http_list as _parse_list_header
from .compat import (
quote, urlparse, bytes, str, OrderedDict, unquote, getproxies,
quote, urlparse, bytes, str, unquote, getproxies,
proxy_bypass, urlunparse, basestring, integer_types, is_py2, is_py3,
proxy_bypass_environment, getproxies_environment)
from .cookies import cookiejar_from_dict
@@ -224,11 +224,11 @@ def from_key_val_list(value):
::
>>> from_key_val_list([('key', 'val')])
OrderedDict([('key', 'val')])
collections.OrderedDict([('key', 'val')])
>>> from_key_val_list('string')
ValueError: need more than 1 value to unpack
>>> from_key_val_list({'key': 'val'})
OrderedDict([('key', 'val')])
collections.OrderedDict([('key', 'val')])
:rtype: OrderedDict
"""
@@ -238,7 +238,7 @@ def from_key_val_list(value):
if isinstance(value, (str, bytes, bool, int)):
raise ValueError('cannot encode objects that are not 2-tuples')
return OrderedDict(value)
return collections.OrderedDict(value)
def to_key_val_list(value):
+6 -5
View File
@@ -18,7 +18,7 @@ from requests.adapters import HTTPAdapter
from requests.auth import HTTPDigestAuth, _basic_auth_str
from requests.compat import (
Morsel, cookielib, getproxies, str, urlparse,
builtin_str, OrderedDict)
builtin_str)
from requests.cookies import (
cookiejar_from_dict, morsel_to_cookie)
from requests.exceptions import (
@@ -144,7 +144,8 @@ class TestRequests:
assert request.url == expected
def test_params_original_order_is_preserved_by_default(self):
param_ordered_dict = OrderedDict((('z', 1), ('a', 1), ('k', 1), ('d', 1)))
param_ordered_dict = collections.OrderedDict(
(('z', 1), ('a', 1), ('k', 1), ('d', 1)))
session = requests.Session()
request = requests.Request('GET', 'http://example.com/', params=param_ordered_dict)
prep = session.prepare_request(request)
@@ -539,11 +540,11 @@ class TestRequests:
def test_headers_preserve_order(self, httpbin):
"""Preserve order when headers provided as OrderedDict."""
ses = requests.Session()
ses.headers = OrderedDict()
ses.headers = collections.OrderedDict()
ses.headers['Accept-Encoding'] = 'identity'
ses.headers['First'] = '1'
ses.headers['Second'] = '2'
headers = OrderedDict([('Third', '3'), ('Fourth', '4')])
headers = collections.OrderedDict([('Third', '3'), ('Fourth', '4')])
headers['Fifth'] = '5'
headers['Second'] = '222'
req = requests.Request('GET', httpbin('get'), headers=headers)
@@ -2103,7 +2104,7 @@ class TestRequests:
"""Ensure that if a user manually sets a content length header, when
the data is chunked, that an InvalidHeader error is raised.
"""
data = (i for i in [b'a', b'b', b'c'])
data = (i for i in [b'a', b'b', b'c'])
url = httpbin('post')
with pytest.raises(InvalidHeader):
r = requests.post(url, data=data, headers={'Content-Length': 'foo'})