rigid 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|