rigid 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/vendor/click/__init__.pyc +0 -0
- data/vendor/click/_bashcomplete.pyc +0 -0
- data/vendor/click/_compat.pyc +0 -0
- data/vendor/click/_termui_impl.pyc +0 -0
- data/vendor/click/_textwrap.pyc +0 -0
- data/vendor/click/_unicodefun.pyc +0 -0
- data/vendor/click/_winconsole.pyc +0 -0
- data/vendor/click/core.pyc +0 -0
- data/vendor/click/decorators.pyc +0 -0
- data/vendor/click/exceptions.pyc +0 -0
- data/vendor/click/formatting.pyc +0 -0
- data/vendor/click/globals.pyc +0 -0
- data/vendor/click/parser.pyc +0 -0
- data/vendor/click/termui.pyc +0 -0
- data/vendor/click/testing.pyc +0 -0
- data/vendor/click/types.pyc +0 -0
- data/vendor/click/utils.pyc +0 -0
- data/vendor/easy_install.pyc +0 -0
- data/vendor/pkg_resources/__init__.pyc +0 -0
- data/vendor/pkg_resources/_vendor/__init__.pyc +0 -0
- data/vendor/pkg_resources/_vendor/appdirs.pyc +0 -0
- data/vendor/pkg_resources/_vendor/packaging/__about__.pyc +0 -0
- data/vendor/pkg_resources/_vendor/packaging/__init__.pyc +0 -0
- data/vendor/pkg_resources/_vendor/packaging/_compat.pyc +0 -0
- data/vendor/pkg_resources/_vendor/packaging/_structures.pyc +0 -0
- data/vendor/pkg_resources/_vendor/packaging/markers.pyc +0 -0
- data/vendor/pkg_resources/_vendor/packaging/requirements.pyc +0 -0
- data/vendor/pkg_resources/_vendor/packaging/specifiers.pyc +0 -0
- data/vendor/pkg_resources/_vendor/packaging/utils.pyc +0 -0
- data/vendor/pkg_resources/_vendor/packaging/version.pyc +0 -0
- data/vendor/pkg_resources/_vendor/pyparsing.pyc +0 -0
- data/vendor/pkg_resources/_vendor/six.pyc +0 -0
- data/vendor/pkg_resources/extern/__init__.pyc +0 -0
- data/vendor/{requests-2.11.1.dist-info/METADATA → requests-2.12.1.dist-info/DESCRIPTION.rst} +51 -30
- data/vendor/{requests-2.11.1.dist-info → requests-2.12.1.dist-info}/INSTALLER +0 -0
- data/vendor/{requests-2.11.1.dist-info/DESCRIPTION.rst → requests-2.12.1.dist-info/METADATA} +80 -1
- data/vendor/{requests-2.11.1.dist-info → requests-2.12.1.dist-info}/RECORD +61 -41
- data/vendor/{requests-2.11.1.dist-info → requests-2.12.1.dist-info}/WHEEL +1 -1
- data/vendor/requests-2.12.1.dist-info/metadata.json +1 -0
- data/vendor/{requests-2.11.1.dist-info → requests-2.12.1.dist-info}/top_level.txt +0 -0
- data/vendor/requests/__init__.py +2 -2
- data/vendor/requests/__init__.pyc +0 -0
- data/vendor/requests/_internal_utils.py +27 -0
- data/vendor/requests/_internal_utils.pyc +0 -0
- data/vendor/requests/adapters.py +1 -1
- data/vendor/requests/adapters.pyc +0 -0
- data/vendor/requests/api.py +3 -1
- data/vendor/requests/api.pyc +0 -0
- data/vendor/requests/auth.py +2 -1
- data/vendor/requests/auth.pyc +0 -0
- data/vendor/requests/cacert.pem +448 -375
- data/vendor/requests/certs.pyc +0 -0
- data/vendor/requests/compat.py +2 -0
- data/vendor/requests/compat.pyc +0 -0
- data/vendor/requests/cookies.py +3 -1
- data/vendor/requests/cookies.pyc +0 -0
- data/vendor/requests/exceptions.py +2 -0
- data/vendor/requests/exceptions.pyc +0 -0
- data/vendor/requests/hooks.pyc +0 -0
- data/vendor/requests/models.py +53 -29
- data/vendor/requests/models.pyc +0 -0
- data/vendor/requests/packages/__init__.py +6 -0
- data/vendor/requests/packages/__init__.pyc +0 -0
- data/vendor/requests/packages/chardet/__init__.pyc +0 -0
- data/vendor/requests/packages/chardet/big5freq.pyc +0 -0
- data/vendor/requests/packages/chardet/big5prober.pyc +0 -0
- data/vendor/requests/packages/chardet/chardetect.pyc +0 -0
- data/vendor/requests/packages/chardet/chardistribution.pyc +0 -0
- data/vendor/requests/packages/chardet/charsetgroupprober.pyc +0 -0
- data/vendor/requests/packages/chardet/charsetprober.pyc +0 -0
- data/vendor/requests/packages/chardet/codingstatemachine.pyc +0 -0
- data/vendor/requests/packages/chardet/compat.pyc +0 -0
- data/vendor/requests/packages/chardet/constants.pyc +0 -0
- data/vendor/requests/packages/chardet/cp949prober.pyc +0 -0
- data/vendor/requests/packages/chardet/escprober.pyc +0 -0
- data/vendor/requests/packages/chardet/escsm.pyc +0 -0
- data/vendor/requests/packages/chardet/eucjpprober.pyc +0 -0
- data/vendor/requests/packages/chardet/euckrfreq.pyc +0 -0
- data/vendor/requests/packages/chardet/euckrprober.pyc +0 -0
- data/vendor/requests/packages/chardet/euctwfreq.pyc +0 -0
- data/vendor/requests/packages/chardet/euctwprober.pyc +0 -0
- data/vendor/requests/packages/chardet/gb2312freq.pyc +0 -0
- data/vendor/requests/packages/chardet/gb2312prober.pyc +0 -0
- data/vendor/requests/packages/chardet/hebrewprober.pyc +0 -0
- data/vendor/requests/packages/chardet/jisfreq.pyc +0 -0
- data/vendor/requests/packages/chardet/jpcntx.pyc +0 -0
- data/vendor/requests/packages/chardet/langbulgarianmodel.pyc +0 -0
- data/vendor/requests/packages/chardet/langcyrillicmodel.pyc +0 -0
- data/vendor/requests/packages/chardet/langgreekmodel.pyc +0 -0
- data/vendor/requests/packages/chardet/langhebrewmodel.pyc +0 -0
- data/vendor/requests/packages/chardet/langhungarianmodel.pyc +0 -0
- data/vendor/requests/packages/chardet/langthaimodel.pyc +0 -0
- data/vendor/requests/packages/chardet/latin1prober.pyc +0 -0
- data/vendor/requests/packages/chardet/mbcharsetprober.pyc +0 -0
- data/vendor/requests/packages/chardet/mbcsgroupprober.pyc +0 -0
- data/vendor/requests/packages/chardet/mbcssm.pyc +0 -0
- data/vendor/requests/packages/chardet/sbcharsetprober.pyc +0 -0
- data/vendor/requests/packages/chardet/sbcsgroupprober.pyc +0 -0
- data/vendor/requests/packages/chardet/sjisprober.pyc +0 -0
- data/vendor/requests/packages/chardet/universaldetector.pyc +0 -0
- data/vendor/requests/packages/chardet/utf8prober.pyc +0 -0
- data/vendor/requests/packages/idna/__init__.py +1 -0
- data/vendor/requests/packages/idna/__init__.pyc +0 -0
- data/vendor/requests/packages/idna/codec.py +118 -0
- data/vendor/requests/packages/idna/codec.pyc +0 -0
- data/vendor/requests/packages/idna/compat.py +12 -0
- data/vendor/requests/packages/idna/compat.pyc +0 -0
- data/vendor/requests/packages/idna/core.py +387 -0
- data/vendor/requests/packages/idna/core.pyc +0 -0
- data/vendor/requests/packages/idna/idnadata.py +1584 -0
- data/vendor/requests/packages/idna/idnadata.pyc +0 -0
- data/vendor/requests/packages/idna/intranges.py +46 -0
- data/vendor/requests/packages/idna/intranges.pyc +0 -0
- data/vendor/requests/packages/idna/uts46data.py +7267 -0
- data/vendor/requests/packages/idna/uts46data.pyc +0 -0
- data/vendor/requests/packages/urllib3/__init__.py +2 -1
- data/vendor/requests/packages/urllib3/__init__.pyc +0 -0
- data/vendor/requests/packages/urllib3/_collections.pyc +0 -0
- data/vendor/requests/packages/urllib3/connection.py +62 -26
- data/vendor/requests/packages/urllib3/connection.pyc +0 -0
- data/vendor/requests/packages/urllib3/connectionpool.py +25 -20
- data/vendor/requests/packages/urllib3/connectionpool.pyc +0 -0
- data/vendor/requests/packages/urllib3/contrib/__init__.pyc +0 -0
- data/vendor/requests/packages/urllib3/contrib/appengine.py +87 -22
- data/vendor/requests/packages/urllib3/contrib/appengine.pyc +0 -0
- data/vendor/requests/packages/urllib3/contrib/ntlmpool.py +2 -5
- data/vendor/requests/packages/urllib3/contrib/ntlmpool.pyc +0 -0
- data/vendor/requests/packages/urllib3/contrib/pyopenssl.py +191 -118
- data/vendor/requests/packages/urllib3/contrib/pyopenssl.pyc +0 -0
- data/vendor/requests/packages/urllib3/contrib/socks.py +11 -5
- data/vendor/requests/packages/urllib3/contrib/socks.pyc +0 -0
- data/vendor/requests/packages/urllib3/exceptions.py +32 -0
- data/vendor/requests/packages/urllib3/exceptions.pyc +0 -0
- data/vendor/requests/packages/urllib3/fields.py +1 -1
- data/vendor/requests/packages/urllib3/fields.pyc +0 -0
- data/vendor/requests/packages/urllib3/filepost.py +1 -1
- data/vendor/requests/packages/urllib3/filepost.pyc +0 -0
- data/vendor/requests/packages/urllib3/packages/__init__.pyc +0 -0
- data/vendor/requests/packages/urllib3/packages/backports/__init__.py +0 -0
- data/vendor/requests/packages/urllib3/packages/backports/__init__.pyc +0 -0
- data/vendor/requests/packages/urllib3/packages/backports/makefile.py +53 -0
- data/vendor/requests/packages/urllib3/packages/backports/makefile.pyc +0 -0
- data/vendor/requests/packages/urllib3/packages/ordered_dict.pyc +0 -0
- data/vendor/requests/packages/urllib3/packages/six.pyc +0 -0
- data/vendor/requests/packages/urllib3/packages/ssl_match_hostname/__init__.py +7 -1
- data/vendor/requests/packages/urllib3/packages/ssl_match_hostname/__init__.pyc +0 -0
- data/vendor/requests/packages/urllib3/packages/ssl_match_hostname/_implementation.py +55 -3
- data/vendor/requests/packages/urllib3/packages/ssl_match_hostname/_implementation.pyc +0 -0
- data/vendor/requests/packages/urllib3/poolmanager.py +2 -6
- data/vendor/requests/packages/urllib3/poolmanager.pyc +0 -0
- data/vendor/requests/packages/urllib3/request.py +1 -4
- data/vendor/requests/packages/urllib3/request.pyc +0 -0
- data/vendor/requests/packages/urllib3/response.py +94 -6
- data/vendor/requests/packages/urllib3/response.pyc +0 -0
- data/vendor/requests/packages/urllib3/util/__init__.pyc +0 -0
- data/vendor/requests/packages/urllib3/util/connection.py +1 -0
- data/vendor/requests/packages/urllib3/util/connection.pyc +0 -0
- data/vendor/requests/packages/urllib3/util/request.pyc +0 -0
- data/vendor/requests/packages/urllib3/util/response.py +7 -0
- data/vendor/requests/packages/urllib3/util/response.pyc +0 -0
- data/vendor/requests/packages/urllib3/util/retry.py +93 -17
- data/vendor/requests/packages/urllib3/util/retry.pyc +0 -0
- data/vendor/requests/packages/urllib3/util/ssl_.py +28 -12
- data/vendor/requests/packages/urllib3/util/ssl_.pyc +0 -0
- data/vendor/requests/packages/urllib3/util/timeout.py +9 -6
- data/vendor/requests/packages/urllib3/util/timeout.pyc +0 -0
- data/vendor/requests/packages/urllib3/util/url.py +14 -5
- data/vendor/requests/packages/urllib3/util/url.pyc +0 -0
- data/vendor/requests/sessions.py +18 -5
- data/vendor/requests/sessions.pyc +0 -0
- data/vendor/requests/status_codes.pyc +0 -0
- data/vendor/requests/structures.pyc +0 -0
- data/vendor/requests/utils.py +42 -32
- data/vendor/requests/utils.pyc +0 -0
- data/vendor/{rigid-0.2.0.dist-info → rigid-0.2.1.dist-info}/DESCRIPTION.rst +0 -0
- data/vendor/{rigid-0.2.0.dist-info → rigid-0.2.1.dist-info}/INSTALLER +0 -0
- data/vendor/{rigid-0.2.0.dist-info → rigid-0.2.1.dist-info}/METADATA +2 -2
- data/vendor/{rigid-0.2.0.dist-info → rigid-0.2.1.dist-info}/RECORD +18 -18
- data/vendor/{rigid-0.2.0.dist-info → rigid-0.2.1.dist-info}/WHEEL +0 -0
- data/vendor/{rigid-0.2.0.dist-info → rigid-0.2.1.dist-info}/entry_points.txt +0 -0
- data/vendor/{rigid-0.2.0.dist-info → rigid-0.2.1.dist-info}/metadata.json +1 -1
- data/vendor/{rigid-0.2.0.dist-info → rigid-0.2.1.dist-info}/top_level.txt +0 -0
- data/vendor/rigid/__init__.pyc +0 -0
- data/vendor/rigid/api.py +39 -2
- data/vendor/rigid/api.pyc +0 -0
- data/vendor/rigid/commands/__init__.py +71 -11
- data/vendor/rigid/commands/__init__.pyc +0 -0
- data/vendor/rigid/commands/deploy.pyc +0 -0
- data/vendor/rigid/deploy.py +1 -1
- data/vendor/rigid/deploy.pyc +0 -0
- data/vendor/rigid/file_scanner.py +1 -1
- data/vendor/rigid/file_scanner.pyc +0 -0
- data/vendor/rigid/utils.pyc +0 -0
- data/vendor/tests/__init__.pyc +0 -0
- data/vendor/tests/integration/__init__.pyc +0 -0
- data/vendor/tests/integration/test_app.py +12 -0
- data/vendor/tests/integration/test_app.pyc +0 -0
- data/vendor/tests/integration/test_apps.pyc +0 -0
- data/vendor/tests/integration/test_deploy.pyc +0 -0
- data/vendor/tests/integration/test_domains.pyc +0 -0
- data/vendor/tests/integration/test_login.pyc +0 -0
- data/vendor/tests/integration/test_promote.py +2 -2
- data/vendor/tests/integration/test_promote.pyc +0 -0
- data/vendor/tests/integration/test_token.pyc +0 -0
- data/vendor/tests/integration/test_whoami.pyc +0 -0
- data/vendor/tests/test_deploy.pyc +0 -0
- data/vendor/tests/test_file_scanner.pyc +0 -0
- data/vendor/tests/utils.py +5 -2
- data/vendor/tests/utils.pyc +0 -0
- data/vendor/yaml/__init__.pyc +0 -0
- data/vendor/yaml/composer.pyc +0 -0
- data/vendor/yaml/constructor.pyc +0 -0
- data/vendor/yaml/cyaml.pyc +0 -0
- data/vendor/yaml/dumper.pyc +0 -0
- data/vendor/yaml/emitter.pyc +0 -0
- data/vendor/yaml/error.pyc +0 -0
- data/vendor/yaml/events.pyc +0 -0
- data/vendor/yaml/loader.pyc +0 -0
- data/vendor/yaml/nodes.pyc +0 -0
- data/vendor/yaml/parser.pyc +0 -0
- data/vendor/yaml/reader.pyc +0 -0
- data/vendor/yaml/representer.pyc +0 -0
- data/vendor/yaml/resolver.pyc +0 -0
- data/vendor/yaml/scanner.pyc +0 -0
- data/vendor/yaml/serializer.pyc +0 -0
- data/vendor/yaml/tokens.pyc +0 -0
- metadata +37 -17
- data/vendor/requests-2.11.1.dist-info/metadata.json +0 -1
data/vendor/requests/certs.pyc
CHANGED
Binary file
|
data/vendor/requests/compat.py
CHANGED
@@ -50,6 +50,7 @@ if is_py2:
|
|
50
50
|
str = unicode
|
51
51
|
basestring = basestring
|
52
52
|
numeric_types = (int, long, float)
|
53
|
+
integer_types = (int, long)
|
53
54
|
|
54
55
|
elif is_py3:
|
55
56
|
from urllib.parse import urlparse, urlunparse, urljoin, urlsplit, urlencode, quote, unquote, quote_plus, unquote_plus, urldefrag
|
@@ -64,3 +65,4 @@ elif is_py3:
|
|
64
65
|
bytes = bytes
|
65
66
|
basestring = (str, bytes)
|
66
67
|
numeric_types = (int, float)
|
68
|
+
integer_types = (int,)
|
data/vendor/requests/compat.pyc
CHANGED
Binary file
|
data/vendor/requests/cookies.py
CHANGED
@@ -13,6 +13,8 @@ import copy
|
|
13
13
|
import time
|
14
14
|
import calendar
|
15
15
|
import collections
|
16
|
+
|
17
|
+
from ._internal_utils import to_native_string
|
16
18
|
from .compat import cookielib, urlparse, urlunparse, Morsel
|
17
19
|
|
18
20
|
try:
|
@@ -55,7 +57,7 @@ class MockRequest(object):
|
|
55
57
|
if not self._r.headers.get('Host'):
|
56
58
|
return self._r.url
|
57
59
|
# If they did set it, retrieve it and reconstruct the expected domain
|
58
|
-
host = self._r.headers['Host']
|
60
|
+
host = to_native_string(self._r.headers['Host'], encoding='utf-8')
|
59
61
|
parsed = urlparse(self._r.url)
|
60
62
|
# Reconstruct the URL as we expect it
|
61
63
|
return urlunparse([
|
data/vendor/requests/cookies.pyc
CHANGED
Binary file
|
@@ -100,6 +100,8 @@ class StreamConsumedError(RequestException, TypeError):
|
|
100
100
|
class RetryError(RequestException):
|
101
101
|
"""Custom retries logic failed"""
|
102
102
|
|
103
|
+
class UnrewindableBodyError(RequestException):
|
104
|
+
"""Requests encountered an error when trying to rewind a body"""
|
103
105
|
|
104
106
|
# Warnings
|
105
107
|
|
Binary file
|
data/vendor/requests/hooks.pyc
CHANGED
Binary file
|
data/vendor/requests/models.py
CHANGED
@@ -10,12 +10,18 @@ This module contains the primary objects that power Requests.
|
|
10
10
|
import collections
|
11
11
|
import datetime
|
12
12
|
|
13
|
+
# Import encoding now, to avoid implicit import later.
|
14
|
+
# Implicit import within threads may cause LookupError when standard library is in a ZIP,
|
15
|
+
# such as in Embedded Python. See https://github.com/kennethreitz/requests/issues/3578.
|
16
|
+
import encodings.idna
|
17
|
+
|
13
18
|
from io import BytesIO, UnsupportedOperation
|
14
19
|
from .hooks import default_hooks
|
15
20
|
from .structures import CaseInsensitiveDict
|
16
21
|
|
17
22
|
from .auth import HTTPBasicAuth
|
18
23
|
from .cookies import cookiejar_from_dict, get_cookie_header, _copy_cookie_jar
|
24
|
+
from .packages import idna
|
19
25
|
from .packages.urllib3.fields import RequestField
|
20
26
|
from .packages.urllib3.filepost import encode_multipart_formdata
|
21
27
|
from .packages.urllib3.util import parse_url
|
@@ -24,11 +30,11 @@ from .packages.urllib3.exceptions import (
|
|
24
30
|
from .exceptions import (
|
25
31
|
HTTPError, MissingSchema, InvalidURL, ChunkedEncodingError,
|
26
32
|
ContentDecodingError, ConnectionError, StreamConsumedError)
|
33
|
+
from ._internal_utils import to_native_string
|
27
34
|
from .utils import (
|
28
35
|
guess_filename, get_auth_from_url, requote_uri,
|
29
36
|
stream_decode_response_unicode, to_key_val_list, parse_header_links,
|
30
|
-
iter_slices, guess_json_utf, super_len,
|
31
|
-
check_header_validity)
|
37
|
+
iter_slices, guess_json_utf, super_len, check_header_validity)
|
32
38
|
from .compat import (
|
33
39
|
cookielib, urlunparse, urlsplit, urlencode, str, bytes, StringIO,
|
34
40
|
is_py2, chardet, builtin_str, basestring)
|
@@ -285,6 +291,8 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
|
|
285
291
|
self.body = None
|
286
292
|
#: dictionary of callback hooks, for internal usage.
|
287
293
|
self.hooks = default_hooks()
|
294
|
+
#: integer denoting starting position of a readable file-like body.
|
295
|
+
self._body_position = None
|
288
296
|
|
289
297
|
def prepare(self, method=None, url=None, headers=None, files=None,
|
290
298
|
data=None, params=None, auth=None, cookies=None, hooks=None, json=None):
|
@@ -314,6 +322,7 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
|
|
314
322
|
p._cookies = _copy_cookie_jar(self._cookies)
|
315
323
|
p.body = self.body
|
316
324
|
p.hooks = self.hooks
|
325
|
+
p._body_position = self._body_position
|
317
326
|
return p
|
318
327
|
|
319
328
|
def prepare_method(self, method):
|
@@ -358,8 +367,8 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
|
|
358
367
|
|
359
368
|
# Only want to apply IDNA to the hostname
|
360
369
|
try:
|
361
|
-
host =
|
362
|
-
except UnicodeError:
|
370
|
+
host = idna.encode(host, uts46=True).decode('utf-8')
|
371
|
+
except (UnicodeError, idna.IDNAError):
|
363
372
|
raise InvalidURL('URL has an invalid label.')
|
364
373
|
|
365
374
|
# Carefully reconstruct the network location
|
@@ -419,7 +428,6 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
|
|
419
428
|
# Nottin' on you.
|
420
429
|
body = None
|
421
430
|
content_type = None
|
422
|
-
length = None
|
423
431
|
|
424
432
|
if not data and json is not None:
|
425
433
|
# urllib3 requires a bytes-like body. Python 2's json.dumps
|
@@ -431,7 +439,7 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
|
|
431
439
|
|
432
440
|
is_stream = all([
|
433
441
|
hasattr(data, '__iter__'),
|
434
|
-
not isinstance(data, (basestring, list, tuple,
|
442
|
+
not isinstance(data, (basestring, list, tuple, collections.Mapping))
|
435
443
|
])
|
436
444
|
|
437
445
|
try:
|
@@ -442,6 +450,17 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
|
|
442
450
|
if is_stream:
|
443
451
|
body = data
|
444
452
|
|
453
|
+
if getattr(body, 'tell', None) is not None:
|
454
|
+
# Record the current file position before reading.
|
455
|
+
# This will allow us to rewind a file in the event
|
456
|
+
# of a redirect.
|
457
|
+
try:
|
458
|
+
self._body_position = body.tell()
|
459
|
+
except (IOError, OSError):
|
460
|
+
# This differentiates from None, allowing us to catch
|
461
|
+
# a failed `tell()` later when trying to rewind the body
|
462
|
+
self._body_position = object()
|
463
|
+
|
445
464
|
if files:
|
446
465
|
raise NotImplementedError('Streamed bodies and files are mutually exclusive.')
|
447
466
|
|
@@ -470,17 +489,16 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
|
|
470
489
|
self.body = body
|
471
490
|
|
472
491
|
def prepare_content_length(self, body):
|
473
|
-
|
474
|
-
|
475
|
-
body
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
elif (self.method not in ('GET', 'HEAD')) and (self.headers.get('Content-Length') is None):
|
492
|
+
"""Prepare Content-Length header based on request method and body"""
|
493
|
+
if body is not None:
|
494
|
+
length = super_len(body)
|
495
|
+
if length:
|
496
|
+
# If length exists, set it. Otherwise, we fallback
|
497
|
+
# to Transfer-Encoding: chunked.
|
498
|
+
self.headers['Content-Length'] = builtin_str(length)
|
499
|
+
elif self.method not in ('GET', 'HEAD') and self.headers.get('Content-Length') is None:
|
500
|
+
# Set Content-Length to 0 for methods that can have a body
|
501
|
+
# but don't provide one. (i.e. not GET or HEAD)
|
484
502
|
self.headers['Content-Length'] = '0'
|
485
503
|
|
486
504
|
def prepare_auth(self, auth, url=''):
|
@@ -744,18 +762,14 @@ class Response(object):
|
|
744
762
|
|
745
763
|
if self._content is False:
|
746
764
|
# Read the contents.
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
'The content for this response was already consumed')
|
751
|
-
|
752
|
-
if self.status_code == 0:
|
753
|
-
self._content = None
|
754
|
-
else:
|
755
|
-
self._content = bytes().join(self.iter_content(CONTENT_CHUNK_SIZE)) or bytes()
|
765
|
+
if self._content_consumed:
|
766
|
+
raise RuntimeError(
|
767
|
+
'The content for this response was already consumed')
|
756
768
|
|
757
|
-
|
769
|
+
if self.status_code == 0:
|
758
770
|
self._content = None
|
771
|
+
else:
|
772
|
+
self._content = bytes().join(self.iter_content(CONTENT_CHUNK_SIZE)) or bytes()
|
759
773
|
|
760
774
|
self._content_consumed = True
|
761
775
|
# don't need to release the connection; that's been handled by urllib3
|
@@ -804,6 +818,7 @@ class Response(object):
|
|
804
818
|
"""Returns the json-encoded content of a response, if any.
|
805
819
|
|
806
820
|
:param \*\*kwargs: Optional arguments that ``json.loads`` takes.
|
821
|
+
:raises ValueError: If the response body does not contain valid json.
|
807
822
|
"""
|
808
823
|
|
809
824
|
if not self.encoding and self.content and len(self.content) > 3:
|
@@ -848,7 +863,14 @@ class Response(object):
|
|
848
863
|
|
849
864
|
http_error_msg = ''
|
850
865
|
if isinstance(self.reason, bytes):
|
851
|
-
|
866
|
+
# We attempt to decode utf-8 first because some servers
|
867
|
+
# choose to localize their reason strings. If the string
|
868
|
+
# isn't utf-8, we fall back to iso-8859-1 for all other
|
869
|
+
# encodings. (See PR #3538)
|
870
|
+
try:
|
871
|
+
reason = self.reason.decode('utf-8')
|
872
|
+
except UnicodeDecodeError:
|
873
|
+
reason = self.reason.decode('iso-8859-1')
|
852
874
|
else:
|
853
875
|
reason = self.reason
|
854
876
|
|
@@ -870,4 +892,6 @@ class Response(object):
|
|
870
892
|
if not self._content_consumed:
|
871
893
|
self.raw.close()
|
872
894
|
|
873
|
-
|
895
|
+
release_conn = getattr(self.raw, 'release_conn', None)
|
896
|
+
if release_conn is not None:
|
897
|
+
release_conn()
|
data/vendor/requests/models.pyc
CHANGED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
from .core import *
|
Binary file
|
@@ -0,0 +1,118 @@
|
|
1
|
+
from .core import encode, decode, alabel, ulabel, IDNAError
|
2
|
+
import codecs
|
3
|
+
import re
|
4
|
+
|
5
|
+
_unicode_dots_re = re.compile(u'[\u002e\u3002\uff0e\uff61]')
|
6
|
+
|
7
|
+
class Codec(codecs.Codec):
|
8
|
+
|
9
|
+
def encode(self, data, errors='strict'):
|
10
|
+
|
11
|
+
if errors != 'strict':
|
12
|
+
raise IDNAError("Unsupported error handling \"{0}\"".format(errors))
|
13
|
+
|
14
|
+
if not data:
|
15
|
+
return "", 0
|
16
|
+
|
17
|
+
return encode(data), len(data)
|
18
|
+
|
19
|
+
def decode(self, data, errors='strict'):
|
20
|
+
|
21
|
+
if errors != 'strict':
|
22
|
+
raise IDNAError("Unsupported error handling \"{0}\"".format(errors))
|
23
|
+
|
24
|
+
if not data:
|
25
|
+
return u"", 0
|
26
|
+
|
27
|
+
return decode(data), len(data)
|
28
|
+
|
29
|
+
class IncrementalEncoder(codecs.BufferedIncrementalEncoder):
|
30
|
+
def _buffer_encode(self, data, errors, final):
|
31
|
+
if errors != 'strict':
|
32
|
+
raise IDNAError("Unsupported error handling \"{0}\"".format(errors))
|
33
|
+
|
34
|
+
if not data:
|
35
|
+
return ("", 0)
|
36
|
+
|
37
|
+
labels = _unicode_dots_re.split(data)
|
38
|
+
trailing_dot = u''
|
39
|
+
if labels:
|
40
|
+
if not labels[-1]:
|
41
|
+
trailing_dot = '.'
|
42
|
+
del labels[-1]
|
43
|
+
elif not final:
|
44
|
+
# Keep potentially unfinished label until the next call
|
45
|
+
del labels[-1]
|
46
|
+
if labels:
|
47
|
+
trailing_dot = '.'
|
48
|
+
|
49
|
+
result = []
|
50
|
+
size = 0
|
51
|
+
for label in labels:
|
52
|
+
result.append(alabel(label))
|
53
|
+
if size:
|
54
|
+
size += 1
|
55
|
+
size += len(label)
|
56
|
+
|
57
|
+
# Join with U+002E
|
58
|
+
result = ".".join(result) + trailing_dot
|
59
|
+
size += len(trailing_dot)
|
60
|
+
return (result, size)
|
61
|
+
|
62
|
+
class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
|
63
|
+
def _buffer_decode(self, data, errors, final):
|
64
|
+
if errors != 'strict':
|
65
|
+
raise IDNAError("Unsupported error handling \"{0}\"".format(errors))
|
66
|
+
|
67
|
+
if not data:
|
68
|
+
return (u"", 0)
|
69
|
+
|
70
|
+
# IDNA allows decoding to operate on Unicode strings, too.
|
71
|
+
if isinstance(data, unicode):
|
72
|
+
labels = _unicode_dots_re.split(data)
|
73
|
+
else:
|
74
|
+
# Must be ASCII string
|
75
|
+
data = str(data)
|
76
|
+
unicode(data, "ascii")
|
77
|
+
labels = data.split(".")
|
78
|
+
|
79
|
+
trailing_dot = u''
|
80
|
+
if labels:
|
81
|
+
if not labels[-1]:
|
82
|
+
trailing_dot = u'.'
|
83
|
+
del labels[-1]
|
84
|
+
elif not final:
|
85
|
+
# Keep potentially unfinished label until the next call
|
86
|
+
del labels[-1]
|
87
|
+
if labels:
|
88
|
+
trailing_dot = u'.'
|
89
|
+
|
90
|
+
result = []
|
91
|
+
size = 0
|
92
|
+
for label in labels:
|
93
|
+
result.append(ulabel(label))
|
94
|
+
if size:
|
95
|
+
size += 1
|
96
|
+
size += len(label)
|
97
|
+
|
98
|
+
result = u".".join(result) + trailing_dot
|
99
|
+
size += len(trailing_dot)
|
100
|
+
return (result, size)
|
101
|
+
|
102
|
+
|
103
|
+
class StreamWriter(Codec, codecs.StreamWriter):
|
104
|
+
pass
|
105
|
+
|
106
|
+
class StreamReader(Codec, codecs.StreamReader):
|
107
|
+
pass
|
108
|
+
|
109
|
+
def getregentry():
|
110
|
+
return codecs.CodecInfo(
|
111
|
+
name='idna',
|
112
|
+
encode=Codec().encode,
|
113
|
+
decode=Codec().decode,
|
114
|
+
incrementalencoder=IncrementalEncoder,
|
115
|
+
incrementaldecoder=IncrementalDecoder,
|
116
|
+
streamwriter=StreamWriter,
|
117
|
+
streamreader=StreamReader,
|
118
|
+
)
|
Binary file
|