rigid 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/bin/rigid +4 -0
- data/rigid +16 -0
- data/vendor/PyYAML-3.12.dist-info/DESCRIPTION.rst +12 -0
- data/vendor/PyYAML-3.12.dist-info/INSTALLER +1 -0
- data/vendor/PyYAML-3.12.dist-info/METADATA +35 -0
- data/vendor/PyYAML-3.12.dist-info/RECORD +42 -0
- data/vendor/PyYAML-3.12.dist-info/WHEEL +5 -0
- data/vendor/PyYAML-3.12.dist-info/metadata.json +1 -0
- data/vendor/PyYAML-3.12.dist-info/top_level.txt +2 -0
- data/vendor/_yaml.so +0 -0
- data/vendor/click/__init__.py +98 -0
- data/vendor/click/__init__.pyc +0 -0
- data/vendor/click/_bashcomplete.py +83 -0
- data/vendor/click/_bashcomplete.pyc +0 -0
- data/vendor/click/_compat.py +642 -0
- data/vendor/click/_compat.pyc +0 -0
- data/vendor/click/_termui_impl.py +547 -0
- data/vendor/click/_termui_impl.pyc +0 -0
- data/vendor/click/_textwrap.py +38 -0
- data/vendor/click/_textwrap.pyc +0 -0
- data/vendor/click/_unicodefun.py +119 -0
- data/vendor/click/_unicodefun.pyc +0 -0
- data/vendor/click/_winconsole.py +273 -0
- data/vendor/click/_winconsole.pyc +0 -0
- data/vendor/click/core.py +1738 -0
- data/vendor/click/core.pyc +0 -0
- data/vendor/click/decorators.py +304 -0
- data/vendor/click/decorators.pyc +0 -0
- data/vendor/click/exceptions.py +201 -0
- data/vendor/click/exceptions.pyc +0 -0
- data/vendor/click/formatting.py +256 -0
- data/vendor/click/formatting.pyc +0 -0
- data/vendor/click/globals.py +48 -0
- data/vendor/click/globals.pyc +0 -0
- data/vendor/click/parser.py +426 -0
- data/vendor/click/parser.pyc +0 -0
- data/vendor/click/termui.py +539 -0
- data/vendor/click/termui.pyc +0 -0
- data/vendor/click/testing.py +322 -0
- data/vendor/click/testing.pyc +0 -0
- data/vendor/click/types.py +550 -0
- data/vendor/click/types.pyc +0 -0
- data/vendor/click/utils.py +415 -0
- data/vendor/click/utils.pyc +0 -0
- data/vendor/click-6.6.dist-info/DESCRIPTION.rst +3 -0
- data/vendor/click-6.6.dist-info/INSTALLER +1 -0
- data/vendor/click-6.6.dist-info/METADATA +16 -0
- data/vendor/click-6.6.dist-info/RECORD +41 -0
- data/vendor/click-6.6.dist-info/WHEEL +6 -0
- data/vendor/click-6.6.dist-info/metadata.json +1 -0
- data/vendor/click-6.6.dist-info/top_level.txt +1 -0
- data/vendor/easy_install.py +5 -0
- data/vendor/easy_install.pyc +0 -0
- data/vendor/pip-9.0.1.dist-info/DESCRIPTION.rst +39 -0
- data/vendor/pip-9.0.1.dist-info/INSTALLER +1 -0
- data/vendor/pip-9.0.1.dist-info/METADATA +69 -0
- data/vendor/pip-9.0.1.dist-info/RECORD +501 -0
- data/vendor/pip-9.0.1.dist-info/WHEEL +6 -0
- data/vendor/pip-9.0.1.dist-info/entry_points.txt +5 -0
- data/vendor/pip-9.0.1.dist-info/metadata.json +1 -0
- data/vendor/pip-9.0.1.dist-info/top_level.txt +1 -0
- data/vendor/pkg_resources/__init__.py +3051 -0
- data/vendor/pkg_resources/__init__.pyc +0 -0
- data/vendor/pkg_resources/_vendor/__init__.py +0 -0
- data/vendor/pkg_resources/_vendor/__init__.pyc +0 -0
- data/vendor/pkg_resources/_vendor/appdirs.py +552 -0
- data/vendor/pkg_resources/_vendor/appdirs.pyc +0 -0
- data/vendor/pkg_resources/_vendor/packaging/__about__.py +21 -0
- data/vendor/pkg_resources/_vendor/packaging/__about__.pyc +0 -0
- data/vendor/pkg_resources/_vendor/packaging/__init__.py +14 -0
- data/vendor/pkg_resources/_vendor/packaging/__init__.pyc +0 -0
- data/vendor/pkg_resources/_vendor/packaging/_compat.py +30 -0
- data/vendor/pkg_resources/_vendor/packaging/_compat.pyc +0 -0
- data/vendor/pkg_resources/_vendor/packaging/_structures.py +68 -0
- data/vendor/pkg_resources/_vendor/packaging/_structures.pyc +0 -0
- data/vendor/pkg_resources/_vendor/packaging/markers.py +287 -0
- data/vendor/pkg_resources/_vendor/packaging/markers.pyc +0 -0
- data/vendor/pkg_resources/_vendor/packaging/requirements.py +127 -0
- data/vendor/pkg_resources/_vendor/packaging/requirements.pyc +0 -0
- data/vendor/pkg_resources/_vendor/packaging/specifiers.py +774 -0
- data/vendor/pkg_resources/_vendor/packaging/specifiers.pyc +0 -0
- data/vendor/pkg_resources/_vendor/packaging/utils.py +14 -0
- data/vendor/pkg_resources/_vendor/packaging/utils.pyc +0 -0
- data/vendor/pkg_resources/_vendor/packaging/version.py +393 -0
- data/vendor/pkg_resources/_vendor/packaging/version.pyc +0 -0
- data/vendor/pkg_resources/_vendor/pyparsing.py +5696 -0
- data/vendor/pkg_resources/_vendor/pyparsing.pyc +0 -0
- data/vendor/pkg_resources/_vendor/six.py +868 -0
- data/vendor/pkg_resources/_vendor/six.pyc +0 -0
- data/vendor/pkg_resources/extern/__init__.py +73 -0
- data/vendor/pkg_resources/extern/__init__.pyc +0 -0
- data/vendor/requests/__init__.py +86 -0
- data/vendor/requests/__init__.pyc +0 -0
- data/vendor/requests/adapters.py +503 -0
- data/vendor/requests/adapters.pyc +0 -0
- data/vendor/requests/api.py +148 -0
- data/vendor/requests/api.pyc +0 -0
- data/vendor/requests/auth.py +252 -0
- data/vendor/requests/auth.pyc +0 -0
- data/vendor/requests/cacert.pem +5616 -0
- data/vendor/requests/certs.py +25 -0
- data/vendor/requests/certs.pyc +0 -0
- data/vendor/requests/compat.py +66 -0
- data/vendor/requests/compat.pyc +0 -0
- data/vendor/requests/cookies.py +540 -0
- data/vendor/requests/cookies.pyc +0 -0
- data/vendor/requests/exceptions.py +114 -0
- data/vendor/requests/exceptions.pyc +0 -0
- data/vendor/requests/hooks.py +34 -0
- data/vendor/requests/hooks.pyc +0 -0
- data/vendor/requests/models.py +873 -0
- data/vendor/requests/models.pyc +0 -0
- data/vendor/requests/packages/__init__.py +36 -0
- data/vendor/requests/packages/__init__.pyc +0 -0
- data/vendor/requests/packages/chardet/__init__.py +32 -0
- data/vendor/requests/packages/chardet/__init__.pyc +0 -0
- data/vendor/requests/packages/chardet/big5freq.py +925 -0
- data/vendor/requests/packages/chardet/big5freq.pyc +0 -0
- data/vendor/requests/packages/chardet/big5prober.py +42 -0
- data/vendor/requests/packages/chardet/big5prober.pyc +0 -0
- data/vendor/requests/packages/chardet/chardetect.py +80 -0
- data/vendor/requests/packages/chardet/chardetect.pyc +0 -0
- data/vendor/requests/packages/chardet/chardistribution.py +231 -0
- data/vendor/requests/packages/chardet/chardistribution.pyc +0 -0
- data/vendor/requests/packages/chardet/charsetgroupprober.py +106 -0
- data/vendor/requests/packages/chardet/charsetgroupprober.pyc +0 -0
- data/vendor/requests/packages/chardet/charsetprober.py +62 -0
- data/vendor/requests/packages/chardet/charsetprober.pyc +0 -0
- data/vendor/requests/packages/chardet/codingstatemachine.py +61 -0
- data/vendor/requests/packages/chardet/codingstatemachine.pyc +0 -0
- data/vendor/requests/packages/chardet/compat.py +34 -0
- data/vendor/requests/packages/chardet/compat.pyc +0 -0
- data/vendor/requests/packages/chardet/constants.py +39 -0
- data/vendor/requests/packages/chardet/constants.pyc +0 -0
- data/vendor/requests/packages/chardet/cp949prober.py +44 -0
- data/vendor/requests/packages/chardet/cp949prober.pyc +0 -0
- data/vendor/requests/packages/chardet/escprober.py +86 -0
- data/vendor/requests/packages/chardet/escprober.pyc +0 -0
- data/vendor/requests/packages/chardet/escsm.py +242 -0
- data/vendor/requests/packages/chardet/escsm.pyc +0 -0
- data/vendor/requests/packages/chardet/eucjpprober.py +90 -0
- data/vendor/requests/packages/chardet/eucjpprober.pyc +0 -0
- data/vendor/requests/packages/chardet/euckrfreq.py +596 -0
- data/vendor/requests/packages/chardet/euckrfreq.pyc +0 -0
- data/vendor/requests/packages/chardet/euckrprober.py +42 -0
- data/vendor/requests/packages/chardet/euckrprober.pyc +0 -0
- data/vendor/requests/packages/chardet/euctwfreq.py +428 -0
- data/vendor/requests/packages/chardet/euctwfreq.pyc +0 -0
- data/vendor/requests/packages/chardet/euctwprober.py +41 -0
- data/vendor/requests/packages/chardet/euctwprober.pyc +0 -0
- data/vendor/requests/packages/chardet/gb2312freq.py +472 -0
- data/vendor/requests/packages/chardet/gb2312freq.pyc +0 -0
- data/vendor/requests/packages/chardet/gb2312prober.py +41 -0
- data/vendor/requests/packages/chardet/gb2312prober.pyc +0 -0
- data/vendor/requests/packages/chardet/hebrewprober.py +283 -0
- data/vendor/requests/packages/chardet/hebrewprober.pyc +0 -0
- data/vendor/requests/packages/chardet/jisfreq.py +569 -0
- data/vendor/requests/packages/chardet/jisfreq.pyc +0 -0
- data/vendor/requests/packages/chardet/jpcntx.py +227 -0
- data/vendor/requests/packages/chardet/jpcntx.pyc +0 -0
- data/vendor/requests/packages/chardet/langbulgarianmodel.py +229 -0
- data/vendor/requests/packages/chardet/langbulgarianmodel.pyc +0 -0
- data/vendor/requests/packages/chardet/langcyrillicmodel.py +329 -0
- data/vendor/requests/packages/chardet/langcyrillicmodel.pyc +0 -0
- data/vendor/requests/packages/chardet/langgreekmodel.py +225 -0
- data/vendor/requests/packages/chardet/langgreekmodel.pyc +0 -0
- data/vendor/requests/packages/chardet/langhebrewmodel.py +201 -0
- data/vendor/requests/packages/chardet/langhebrewmodel.pyc +0 -0
- data/vendor/requests/packages/chardet/langhungarianmodel.py +225 -0
- data/vendor/requests/packages/chardet/langhungarianmodel.pyc +0 -0
- data/vendor/requests/packages/chardet/langthaimodel.py +200 -0
- data/vendor/requests/packages/chardet/langthaimodel.pyc +0 -0
- data/vendor/requests/packages/chardet/latin1prober.py +139 -0
- data/vendor/requests/packages/chardet/latin1prober.pyc +0 -0
- data/vendor/requests/packages/chardet/mbcharsetprober.py +86 -0
- data/vendor/requests/packages/chardet/mbcharsetprober.pyc +0 -0
- data/vendor/requests/packages/chardet/mbcsgroupprober.py +54 -0
- data/vendor/requests/packages/chardet/mbcsgroupprober.pyc +0 -0
- data/vendor/requests/packages/chardet/mbcssm.py +572 -0
- data/vendor/requests/packages/chardet/mbcssm.pyc +0 -0
- data/vendor/requests/packages/chardet/sbcharsetprober.py +120 -0
- data/vendor/requests/packages/chardet/sbcharsetprober.pyc +0 -0
- data/vendor/requests/packages/chardet/sbcsgroupprober.py +69 -0
- data/vendor/requests/packages/chardet/sbcsgroupprober.pyc +0 -0
- data/vendor/requests/packages/chardet/sjisprober.py +91 -0
- data/vendor/requests/packages/chardet/sjisprober.pyc +0 -0
- data/vendor/requests/packages/chardet/universaldetector.py +170 -0
- data/vendor/requests/packages/chardet/universaldetector.pyc +0 -0
- data/vendor/requests/packages/chardet/utf8prober.py +76 -0
- data/vendor/requests/packages/chardet/utf8prober.pyc +0 -0
- data/vendor/requests/packages/urllib3/__init__.py +96 -0
- data/vendor/requests/packages/urllib3/__init__.pyc +0 -0
- data/vendor/requests/packages/urllib3/_collections.py +324 -0
- data/vendor/requests/packages/urllib3/_collections.pyc +0 -0
- data/vendor/requests/packages/urllib3/connection.py +330 -0
- data/vendor/requests/packages/urllib3/connection.pyc +0 -0
- data/vendor/requests/packages/urllib3/connectionpool.py +866 -0
- data/vendor/requests/packages/urllib3/connectionpool.pyc +0 -0
- data/vendor/requests/packages/urllib3/contrib/__init__.py +0 -0
- data/vendor/requests/packages/urllib3/contrib/__init__.pyc +0 -0
- data/vendor/requests/packages/urllib3/contrib/appengine.py +231 -0
- data/vendor/requests/packages/urllib3/contrib/appengine.pyc +0 -0
- data/vendor/requests/packages/urllib3/contrib/ntlmpool.py +115 -0
- data/vendor/requests/packages/urllib3/contrib/ntlmpool.pyc +0 -0
- data/vendor/requests/packages/urllib3/contrib/pyopenssl.py +358 -0
- data/vendor/requests/packages/urllib3/contrib/pyopenssl.pyc +0 -0
- data/vendor/requests/packages/urllib3/contrib/socks.py +172 -0
- data/vendor/requests/packages/urllib3/contrib/socks.pyc +0 -0
- data/vendor/requests/packages/urllib3/exceptions.py +209 -0
- data/vendor/requests/packages/urllib3/exceptions.pyc +0 -0
- data/vendor/requests/packages/urllib3/fields.py +178 -0
- data/vendor/requests/packages/urllib3/fields.pyc +0 -0
- data/vendor/requests/packages/urllib3/filepost.py +94 -0
- data/vendor/requests/packages/urllib3/filepost.pyc +0 -0
- data/vendor/requests/packages/urllib3/packages/__init__.py +5 -0
- data/vendor/requests/packages/urllib3/packages/__init__.pyc +0 -0
- data/vendor/requests/packages/urllib3/packages/ordered_dict.py +259 -0
- data/vendor/requests/packages/urllib3/packages/ordered_dict.pyc +0 -0
- data/vendor/requests/packages/urllib3/packages/six.py +868 -0
- data/vendor/requests/packages/urllib3/packages/six.pyc +0 -0
- data/vendor/requests/packages/urllib3/packages/ssl_match_hostname/__init__.py +13 -0
- data/vendor/requests/packages/urllib3/packages/ssl_match_hostname/__init__.pyc +0 -0
- data/vendor/requests/packages/urllib3/packages/ssl_match_hostname/_implementation.py +105 -0
- data/vendor/requests/packages/urllib3/packages/ssl_match_hostname/_implementation.pyc +0 -0
- data/vendor/requests/packages/urllib3/poolmanager.py +367 -0
- data/vendor/requests/packages/urllib3/poolmanager.pyc +0 -0
- data/vendor/requests/packages/urllib3/request.py +151 -0
- data/vendor/requests/packages/urllib3/request.pyc +0 -0
- data/vendor/requests/packages/urllib3/response.py +530 -0
- data/vendor/requests/packages/urllib3/response.pyc +0 -0
- data/vendor/requests/packages/urllib3/util/__init__.py +46 -0
- data/vendor/requests/packages/urllib3/util/__init__.pyc +0 -0
- data/vendor/requests/packages/urllib3/util/connection.py +144 -0
- data/vendor/requests/packages/urllib3/util/connection.pyc +0 -0
- data/vendor/requests/packages/urllib3/util/request.py +72 -0
- data/vendor/requests/packages/urllib3/util/request.pyc +0 -0
- data/vendor/requests/packages/urllib3/util/response.py +74 -0
- data/vendor/requests/packages/urllib3/util/response.pyc +0 -0
- data/vendor/requests/packages/urllib3/util/retry.py +300 -0
- data/vendor/requests/packages/urllib3/util/retry.pyc +0 -0
- data/vendor/requests/packages/urllib3/util/ssl_.py +320 -0
- data/vendor/requests/packages/urllib3/util/ssl_.pyc +0 -0
- data/vendor/requests/packages/urllib3/util/timeout.py +242 -0
- data/vendor/requests/packages/urllib3/util/timeout.pyc +0 -0
- data/vendor/requests/packages/urllib3/util/url.py +217 -0
- data/vendor/requests/packages/urllib3/util/url.pyc +0 -0
- data/vendor/requests/sessions.py +712 -0
- data/vendor/requests/sessions.pyc +0 -0
- data/vendor/requests/status_codes.py +91 -0
- data/vendor/requests/status_codes.pyc +0 -0
- data/vendor/requests/structures.py +105 -0
- data/vendor/requests/structures.pyc +0 -0
- data/vendor/requests/utils.py +817 -0
- data/vendor/requests/utils.pyc +0 -0
- data/vendor/requests-2.11.1.dist-info/DESCRIPTION.rst +1294 -0
- data/vendor/requests-2.11.1.dist-info/INSTALLER +1 -0
- data/vendor/requests-2.11.1.dist-info/METADATA +1323 -0
- data/vendor/requests-2.11.1.dist-info/RECORD +170 -0
- data/vendor/requests-2.11.1.dist-info/WHEEL +6 -0
- data/vendor/requests-2.11.1.dist-info/metadata.json +1 -0
- data/vendor/requests-2.11.1.dist-info/top_level.txt +1 -0
- data/vendor/rigid/__init__.py +1 -0
- data/vendor/rigid/__init__.pyc +0 -0
- data/vendor/rigid/api.py +129 -0
- data/vendor/rigid/api.pyc +0 -0
- data/vendor/rigid/commands/__init__.py +260 -0
- data/vendor/rigid/commands/__init__.pyc +0 -0
- data/vendor/rigid/commands/deploy.py +0 -0
- data/vendor/rigid/commands/deploy.pyc +0 -0
- data/vendor/rigid/deploy.py +70 -0
- data/vendor/rigid/deploy.pyc +0 -0
- data/vendor/rigid/file_scanner.py +63 -0
- data/vendor/rigid/file_scanner.pyc +0 -0
- data/vendor/rigid/utils.py +17 -0
- data/vendor/rigid/utils.pyc +0 -0
- data/vendor/rigid-0.2.0.dist-info/DESCRIPTION.rst +3 -0
- data/vendor/rigid-0.2.0.dist-info/INSTALLER +1 -0
- data/vendor/rigid-0.2.0.dist-info/METADATA +23 -0
- data/vendor/rigid-0.2.0.dist-info/RECORD +49 -0
- data/vendor/rigid-0.2.0.dist-info/WHEEL +5 -0
- data/vendor/rigid-0.2.0.dist-info/entry_points.txt +3 -0
- data/vendor/rigid-0.2.0.dist-info/metadata.json +1 -0
- data/vendor/rigid-0.2.0.dist-info/top_level.txt +2 -0
- data/vendor/setuptools-28.8.0.dist-info/DESCRIPTION.rst +243 -0
- data/vendor/setuptools-28.8.0.dist-info/INSTALLER +1 -0
- data/vendor/setuptools-28.8.0.dist-info/METADATA +272 -0
- data/vendor/setuptools-28.8.0.dist-info/RECORD +143 -0
- data/vendor/setuptools-28.8.0.dist-info/WHEEL +6 -0
- data/vendor/setuptools-28.8.0.dist-info/dependency_links.txt +2 -0
- data/vendor/setuptools-28.8.0.dist-info/entry_points.txt +63 -0
- data/vendor/setuptools-28.8.0.dist-info/metadata.json +1 -0
- data/vendor/setuptools-28.8.0.dist-info/top_level.txt +3 -0
- data/vendor/setuptools-28.8.0.dist-info/zip-safe +1 -0
- data/vendor/tests/__init__.py +0 -0
- data/vendor/tests/__init__.pyc +0 -0
- data/vendor/tests/integration/__init__.py +0 -0
- data/vendor/tests/integration/__init__.pyc +0 -0
- data/vendor/tests/integration/test_app.py +63 -0
- data/vendor/tests/integration/test_app.pyc +0 -0
- data/vendor/tests/integration/test_apps.py +27 -0
- data/vendor/tests/integration/test_apps.pyc +0 -0
- data/vendor/tests/integration/test_deploy.py +128 -0
- data/vendor/tests/integration/test_deploy.pyc +0 -0
- data/vendor/tests/integration/test_domains.py +35 -0
- data/vendor/tests/integration/test_domains.pyc +0 -0
- data/vendor/tests/integration/test_login.py +37 -0
- data/vendor/tests/integration/test_login.pyc +0 -0
- data/vendor/tests/integration/test_promote.py +24 -0
- data/vendor/tests/integration/test_promote.pyc +0 -0
- data/vendor/tests/integration/test_token.py +33 -0
- data/vendor/tests/integration/test_token.pyc +0 -0
- data/vendor/tests/integration/test_whoami.py +24 -0
- data/vendor/tests/integration/test_whoami.pyc +0 -0
- data/vendor/tests/test_deploy.py +33 -0
- data/vendor/tests/test_deploy.pyc +0 -0
- data/vendor/tests/test_file_scanner.py +89 -0
- data/vendor/tests/test_file_scanner.pyc +0 -0
- data/vendor/tests/utils.py +78 -0
- data/vendor/tests/utils.pyc +0 -0
- data/vendor/wheel-0.30.0a0.dist-info/DESCRIPTION.rst +325 -0
- data/vendor/wheel-0.30.0a0.dist-info/INSTALLER +1 -0
- data/vendor/wheel-0.30.0a0.dist-info/LICENSE.txt +22 -0
- data/vendor/wheel-0.30.0a0.dist-info/METADATA +357 -0
- data/vendor/wheel-0.30.0a0.dist-info/RECORD +86 -0
- data/vendor/wheel-0.30.0a0.dist-info/WHEEL +6 -0
- data/vendor/wheel-0.30.0a0.dist-info/entry_points.txt +6 -0
- data/vendor/wheel-0.30.0a0.dist-info/metadata.json +1 -0
- data/vendor/wheel-0.30.0a0.dist-info/top_level.txt +1 -0
- data/vendor/yaml/__init__.py +315 -0
- data/vendor/yaml/__init__.pyc +0 -0
- data/vendor/yaml/composer.py +139 -0
- data/vendor/yaml/composer.pyc +0 -0
- data/vendor/yaml/constructor.py +675 -0
- data/vendor/yaml/constructor.pyc +0 -0
- data/vendor/yaml/cyaml.py +85 -0
- data/vendor/yaml/cyaml.pyc +0 -0
- data/vendor/yaml/dumper.py +62 -0
- data/vendor/yaml/dumper.pyc +0 -0
- data/vendor/yaml/emitter.py +1140 -0
- data/vendor/yaml/emitter.pyc +0 -0
- data/vendor/yaml/error.py +75 -0
- data/vendor/yaml/error.pyc +0 -0
- data/vendor/yaml/events.py +86 -0
- data/vendor/yaml/events.pyc +0 -0
- data/vendor/yaml/loader.py +40 -0
- data/vendor/yaml/loader.pyc +0 -0
- data/vendor/yaml/nodes.py +49 -0
- data/vendor/yaml/nodes.pyc +0 -0
- data/vendor/yaml/parser.py +589 -0
- data/vendor/yaml/parser.pyc +0 -0
- data/vendor/yaml/reader.py +190 -0
- data/vendor/yaml/reader.pyc +0 -0
- data/vendor/yaml/representer.py +486 -0
- data/vendor/yaml/representer.pyc +0 -0
- data/vendor/yaml/resolver.py +227 -0
- data/vendor/yaml/resolver.pyc +0 -0
- data/vendor/yaml/scanner.py +1453 -0
- data/vendor/yaml/scanner.pyc +0 -0
- data/vendor/yaml/serializer.py +111 -0
- data/vendor/yaml/serializer.pyc +0 -0
- data/vendor/yaml/tokens.py +104 -0
- data/vendor/yaml/tokens.pyc +0 -0
- metadata +407 -0
@@ -0,0 +1,148 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
"""
|
4
|
+
requests.api
|
5
|
+
~~~~~~~~~~~~
|
6
|
+
|
7
|
+
This module implements the Requests API.
|
8
|
+
|
9
|
+
:copyright: (c) 2012 by Kenneth Reitz.
|
10
|
+
:license: Apache2, see LICENSE for more details.
|
11
|
+
"""
|
12
|
+
|
13
|
+
from . import sessions
|
14
|
+
|
15
|
+
|
16
|
+
def request(method, url, **kwargs):
|
17
|
+
"""Constructs and sends a :class:`Request <Request>`.
|
18
|
+
|
19
|
+
:param method: method for the new :class:`Request` object.
|
20
|
+
:param url: URL for the new :class:`Request` object.
|
21
|
+
:param params: (optional) Dictionary or bytes to be sent in the query string for the :class:`Request`.
|
22
|
+
:param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`.
|
23
|
+
:param json: (optional) json data to send in the body of the :class:`Request`.
|
24
|
+
:param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
|
25
|
+
:param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
|
26
|
+
:param files: (optional) Dictionary of ``'name': file-like-objects`` (or ``{'name': file-tuple}``) for multipart encoding upload.
|
27
|
+
``file-tuple`` can be a 2-tuple ``('filename', fileobj)``, 3-tuple ``('filename', fileobj, 'content_type')``
|
28
|
+
or a 4-tuple ``('filename', fileobj, 'content_type', custom_headers)``, where ``'content-type'`` is a string
|
29
|
+
defining the content type of the given file and ``custom_headers`` a dict-like object containing additional headers
|
30
|
+
to add for the file.
|
31
|
+
:param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
|
32
|
+
:param timeout: (optional) How long to wait for the server to send data
|
33
|
+
before giving up, as a float, or a :ref:`(connect timeout, read
|
34
|
+
timeout) <timeouts>` tuple.
|
35
|
+
:type timeout: float or tuple
|
36
|
+
:param allow_redirects: (optional) Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.
|
37
|
+
:type allow_redirects: bool
|
38
|
+
:param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
|
39
|
+
:param verify: (optional) whether the SSL cert will be verified. A CA_BUNDLE path can also be provided. Defaults to ``True``.
|
40
|
+
:param stream: (optional) if ``False``, the response content will be immediately downloaded.
|
41
|
+
:param cert: (optional) if String, path to ssl client cert file (.pem). If Tuple, ('cert', 'key') pair.
|
42
|
+
:return: :class:`Response <Response>` object
|
43
|
+
:rtype: requests.Response
|
44
|
+
|
45
|
+
Usage::
|
46
|
+
|
47
|
+
>>> import requests
|
48
|
+
>>> req = requests.request('GET', 'http://httpbin.org/get')
|
49
|
+
<Response [200]>
|
50
|
+
"""
|
51
|
+
|
52
|
+
# By using the 'with' statement we are sure the session is closed, thus we
|
53
|
+
# avoid leaving sockets open which can trigger a ResourceWarning in some
|
54
|
+
# cases, and look like a memory leak in others.
|
55
|
+
with sessions.Session() as session:
|
56
|
+
return session.request(method=method, url=url, **kwargs)
|
57
|
+
|
58
|
+
|
59
|
+
def get(url, params=None, **kwargs):
|
60
|
+
"""Sends a GET request.
|
61
|
+
|
62
|
+
:param url: URL for the new :class:`Request` object.
|
63
|
+
:param params: (optional) Dictionary or bytes to be sent in the query string for the :class:`Request`.
|
64
|
+
:param \*\*kwargs: Optional arguments that ``request`` takes.
|
65
|
+
:return: :class:`Response <Response>` object
|
66
|
+
:rtype: requests.Response
|
67
|
+
"""
|
68
|
+
|
69
|
+
kwargs.setdefault('allow_redirects', True)
|
70
|
+
return request('get', url, params=params, **kwargs)
|
71
|
+
|
72
|
+
|
73
|
+
def options(url, **kwargs):
|
74
|
+
"""Sends a OPTIONS request.
|
75
|
+
|
76
|
+
:param url: URL for the new :class:`Request` object.
|
77
|
+
:param \*\*kwargs: Optional arguments that ``request`` takes.
|
78
|
+
:return: :class:`Response <Response>` object
|
79
|
+
:rtype: requests.Response
|
80
|
+
"""
|
81
|
+
|
82
|
+
kwargs.setdefault('allow_redirects', True)
|
83
|
+
return request('options', url, **kwargs)
|
84
|
+
|
85
|
+
|
86
|
+
def head(url, **kwargs):
|
87
|
+
"""Sends a HEAD request.
|
88
|
+
|
89
|
+
:param url: URL for the new :class:`Request` object.
|
90
|
+
:param \*\*kwargs: Optional arguments that ``request`` takes.
|
91
|
+
:return: :class:`Response <Response>` object
|
92
|
+
:rtype: requests.Response
|
93
|
+
"""
|
94
|
+
|
95
|
+
kwargs.setdefault('allow_redirects', False)
|
96
|
+
return request('head', url, **kwargs)
|
97
|
+
|
98
|
+
|
99
|
+
def post(url, data=None, json=None, **kwargs):
|
100
|
+
"""Sends a POST request.
|
101
|
+
|
102
|
+
:param url: URL for the new :class:`Request` object.
|
103
|
+
:param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`.
|
104
|
+
:param json: (optional) json data to send in the body of the :class:`Request`.
|
105
|
+
:param \*\*kwargs: Optional arguments that ``request`` takes.
|
106
|
+
:return: :class:`Response <Response>` object
|
107
|
+
:rtype: requests.Response
|
108
|
+
"""
|
109
|
+
|
110
|
+
return request('post', url, data=data, json=json, **kwargs)
|
111
|
+
|
112
|
+
|
113
|
+
def put(url, data=None, **kwargs):
|
114
|
+
"""Sends a PUT request.
|
115
|
+
|
116
|
+
:param url: URL for the new :class:`Request` object.
|
117
|
+
:param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`.
|
118
|
+
:param \*\*kwargs: Optional arguments that ``request`` takes.
|
119
|
+
:return: :class:`Response <Response>` object
|
120
|
+
:rtype: requests.Response
|
121
|
+
"""
|
122
|
+
|
123
|
+
return request('put', url, data=data, **kwargs)
|
124
|
+
|
125
|
+
|
126
|
+
def patch(url, data=None, **kwargs):
|
127
|
+
"""Sends a PATCH request.
|
128
|
+
|
129
|
+
:param url: URL for the new :class:`Request` object.
|
130
|
+
:param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`.
|
131
|
+
:param \*\*kwargs: Optional arguments that ``request`` takes.
|
132
|
+
:return: :class:`Response <Response>` object
|
133
|
+
:rtype: requests.Response
|
134
|
+
"""
|
135
|
+
|
136
|
+
return request('patch', url, data=data, **kwargs)
|
137
|
+
|
138
|
+
|
139
|
+
def delete(url, **kwargs):
|
140
|
+
"""Sends a DELETE request.
|
141
|
+
|
142
|
+
:param url: URL for the new :class:`Request` object.
|
143
|
+
:param \*\*kwargs: Optional arguments that ``request`` takes.
|
144
|
+
:return: :class:`Response <Response>` object
|
145
|
+
:rtype: requests.Response
|
146
|
+
"""
|
147
|
+
|
148
|
+
return request('delete', url, **kwargs)
|
Binary file
|
@@ -0,0 +1,252 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
"""
|
4
|
+
requests.auth
|
5
|
+
~~~~~~~~~~~~~
|
6
|
+
|
7
|
+
This module contains the authentication handlers for Requests.
|
8
|
+
"""
|
9
|
+
|
10
|
+
import os
|
11
|
+
import re
|
12
|
+
import time
|
13
|
+
import hashlib
|
14
|
+
import threading
|
15
|
+
|
16
|
+
from base64 import b64encode
|
17
|
+
|
18
|
+
from .compat import urlparse, str
|
19
|
+
from .cookies import extract_cookies_to_jar
|
20
|
+
from .utils import parse_dict_header, to_native_string
|
21
|
+
from .status_codes import codes
|
22
|
+
|
23
|
+
CONTENT_TYPE_FORM_URLENCODED = 'application/x-www-form-urlencoded'
|
24
|
+
CONTENT_TYPE_MULTI_PART = 'multipart/form-data'
|
25
|
+
|
26
|
+
|
27
|
+
def _basic_auth_str(username, password):
|
28
|
+
"""Returns a Basic Auth string."""
|
29
|
+
|
30
|
+
authstr = 'Basic ' + to_native_string(
|
31
|
+
b64encode(('%s:%s' % (username, password)).encode('latin1')).strip()
|
32
|
+
)
|
33
|
+
|
34
|
+
return authstr
|
35
|
+
|
36
|
+
|
37
|
+
class AuthBase(object):
|
38
|
+
"""Base class that all auth implementations derive from"""
|
39
|
+
|
40
|
+
def __call__(self, r):
|
41
|
+
raise NotImplementedError('Auth hooks must be callable.')
|
42
|
+
|
43
|
+
|
44
|
+
class HTTPBasicAuth(AuthBase):
|
45
|
+
"""Attaches HTTP Basic Authentication to the given Request object."""
|
46
|
+
|
47
|
+
def __init__(self, username, password):
|
48
|
+
self.username = username
|
49
|
+
self.password = password
|
50
|
+
|
51
|
+
def __eq__(self, other):
|
52
|
+
return all([
|
53
|
+
self.username == getattr(other, 'username', None),
|
54
|
+
self.password == getattr(other, 'password', None)
|
55
|
+
])
|
56
|
+
|
57
|
+
def __ne__(self, other):
|
58
|
+
return not self == other
|
59
|
+
|
60
|
+
def __call__(self, r):
|
61
|
+
r.headers['Authorization'] = _basic_auth_str(self.username, self.password)
|
62
|
+
return r
|
63
|
+
|
64
|
+
|
65
|
+
class HTTPProxyAuth(HTTPBasicAuth):
|
66
|
+
"""Attaches HTTP Proxy Authentication to a given Request object."""
|
67
|
+
|
68
|
+
def __call__(self, r):
|
69
|
+
r.headers['Proxy-Authorization'] = _basic_auth_str(self.username, self.password)
|
70
|
+
return r
|
71
|
+
|
72
|
+
|
73
|
+
class HTTPDigestAuth(AuthBase):
|
74
|
+
"""Attaches HTTP Digest Authentication to the given Request object."""
|
75
|
+
|
76
|
+
def __init__(self, username, password):
|
77
|
+
self.username = username
|
78
|
+
self.password = password
|
79
|
+
# Keep state in per-thread local storage
|
80
|
+
self._thread_local = threading.local()
|
81
|
+
|
82
|
+
def init_per_thread_state(self):
|
83
|
+
# Ensure state is initialized just once per-thread
|
84
|
+
if not hasattr(self._thread_local, 'init'):
|
85
|
+
self._thread_local.init = True
|
86
|
+
self._thread_local.last_nonce = ''
|
87
|
+
self._thread_local.nonce_count = 0
|
88
|
+
self._thread_local.chal = {}
|
89
|
+
self._thread_local.pos = None
|
90
|
+
self._thread_local.num_401_calls = None
|
91
|
+
|
92
|
+
def build_digest_header(self, method, url):
|
93
|
+
"""
|
94
|
+
:rtype: str
|
95
|
+
"""
|
96
|
+
|
97
|
+
realm = self._thread_local.chal['realm']
|
98
|
+
nonce = self._thread_local.chal['nonce']
|
99
|
+
qop = self._thread_local.chal.get('qop')
|
100
|
+
algorithm = self._thread_local.chal.get('algorithm')
|
101
|
+
opaque = self._thread_local.chal.get('opaque')
|
102
|
+
hash_utf8 = None
|
103
|
+
|
104
|
+
if algorithm is None:
|
105
|
+
_algorithm = 'MD5'
|
106
|
+
else:
|
107
|
+
_algorithm = algorithm.upper()
|
108
|
+
# lambdas assume digest modules are imported at the top level
|
109
|
+
if _algorithm == 'MD5' or _algorithm == 'MD5-SESS':
|
110
|
+
def md5_utf8(x):
|
111
|
+
if isinstance(x, str):
|
112
|
+
x = x.encode('utf-8')
|
113
|
+
return hashlib.md5(x).hexdigest()
|
114
|
+
hash_utf8 = md5_utf8
|
115
|
+
elif _algorithm == 'SHA':
|
116
|
+
def sha_utf8(x):
|
117
|
+
if isinstance(x, str):
|
118
|
+
x = x.encode('utf-8')
|
119
|
+
return hashlib.sha1(x).hexdigest()
|
120
|
+
hash_utf8 = sha_utf8
|
121
|
+
|
122
|
+
KD = lambda s, d: hash_utf8("%s:%s" % (s, d))
|
123
|
+
|
124
|
+
if hash_utf8 is None:
|
125
|
+
return None
|
126
|
+
|
127
|
+
# XXX not implemented yet
|
128
|
+
entdig = None
|
129
|
+
p_parsed = urlparse(url)
|
130
|
+
#: path is request-uri defined in RFC 2616 which should not be empty
|
131
|
+
path = p_parsed.path or "/"
|
132
|
+
if p_parsed.query:
|
133
|
+
path += '?' + p_parsed.query
|
134
|
+
|
135
|
+
A1 = '%s:%s:%s' % (self.username, realm, self.password)
|
136
|
+
A2 = '%s:%s' % (method, path)
|
137
|
+
|
138
|
+
HA1 = hash_utf8(A1)
|
139
|
+
HA2 = hash_utf8(A2)
|
140
|
+
|
141
|
+
if nonce == self._thread_local.last_nonce:
|
142
|
+
self._thread_local.nonce_count += 1
|
143
|
+
else:
|
144
|
+
self._thread_local.nonce_count = 1
|
145
|
+
ncvalue = '%08x' % self._thread_local.nonce_count
|
146
|
+
s = str(self._thread_local.nonce_count).encode('utf-8')
|
147
|
+
s += nonce.encode('utf-8')
|
148
|
+
s += time.ctime().encode('utf-8')
|
149
|
+
s += os.urandom(8)
|
150
|
+
|
151
|
+
cnonce = (hashlib.sha1(s).hexdigest()[:16])
|
152
|
+
if _algorithm == 'MD5-SESS':
|
153
|
+
HA1 = hash_utf8('%s:%s:%s' % (HA1, nonce, cnonce))
|
154
|
+
|
155
|
+
if not qop:
|
156
|
+
respdig = KD(HA1, "%s:%s" % (nonce, HA2))
|
157
|
+
elif qop == 'auth' or 'auth' in qop.split(','):
|
158
|
+
noncebit = "%s:%s:%s:%s:%s" % (
|
159
|
+
nonce, ncvalue, cnonce, 'auth', HA2
|
160
|
+
)
|
161
|
+
respdig = KD(HA1, noncebit)
|
162
|
+
else:
|
163
|
+
# XXX handle auth-int.
|
164
|
+
return None
|
165
|
+
|
166
|
+
self._thread_local.last_nonce = nonce
|
167
|
+
|
168
|
+
# XXX should the partial digests be encoded too?
|
169
|
+
base = 'username="%s", realm="%s", nonce="%s", uri="%s", ' \
|
170
|
+
'response="%s"' % (self.username, realm, nonce, path, respdig)
|
171
|
+
if opaque:
|
172
|
+
base += ', opaque="%s"' % opaque
|
173
|
+
if algorithm:
|
174
|
+
base += ', algorithm="%s"' % algorithm
|
175
|
+
if entdig:
|
176
|
+
base += ', digest="%s"' % entdig
|
177
|
+
if qop:
|
178
|
+
base += ', qop="auth", nc=%s, cnonce="%s"' % (ncvalue, cnonce)
|
179
|
+
|
180
|
+
return 'Digest %s' % (base)
|
181
|
+
|
182
|
+
def handle_redirect(self, r, **kwargs):
|
183
|
+
"""Reset num_401_calls counter on redirects."""
|
184
|
+
if r.is_redirect:
|
185
|
+
self._thread_local.num_401_calls = 1
|
186
|
+
|
187
|
+
def handle_401(self, r, **kwargs):
|
188
|
+
"""
|
189
|
+
Takes the given response and tries digest-auth, if needed.
|
190
|
+
|
191
|
+
:rtype: requests.Response
|
192
|
+
"""
|
193
|
+
|
194
|
+
if self._thread_local.pos is not None:
|
195
|
+
# Rewind the file position indicator of the body to where
|
196
|
+
# it was to resend the request.
|
197
|
+
r.request.body.seek(self._thread_local.pos)
|
198
|
+
s_auth = r.headers.get('www-authenticate', '')
|
199
|
+
|
200
|
+
if 'digest' in s_auth.lower() and self._thread_local.num_401_calls < 2:
|
201
|
+
|
202
|
+
self._thread_local.num_401_calls += 1
|
203
|
+
pat = re.compile(r'digest ', flags=re.IGNORECASE)
|
204
|
+
self._thread_local.chal = parse_dict_header(pat.sub('', s_auth, count=1))
|
205
|
+
|
206
|
+
# Consume content and release the original connection
|
207
|
+
# to allow our new request to reuse the same one.
|
208
|
+
r.content
|
209
|
+
r.close()
|
210
|
+
prep = r.request.copy()
|
211
|
+
extract_cookies_to_jar(prep._cookies, r.request, r.raw)
|
212
|
+
prep.prepare_cookies(prep._cookies)
|
213
|
+
|
214
|
+
prep.headers['Authorization'] = self.build_digest_header(
|
215
|
+
prep.method, prep.url)
|
216
|
+
_r = r.connection.send(prep, **kwargs)
|
217
|
+
_r.history.append(r)
|
218
|
+
_r.request = prep
|
219
|
+
|
220
|
+
return _r
|
221
|
+
|
222
|
+
self._thread_local.num_401_calls = 1
|
223
|
+
return r
|
224
|
+
|
225
|
+
def __call__(self, r):
|
226
|
+
# Initialize per-thread state, if needed
|
227
|
+
self.init_per_thread_state()
|
228
|
+
# If we have a saved nonce, skip the 401
|
229
|
+
if self._thread_local.last_nonce:
|
230
|
+
r.headers['Authorization'] = self.build_digest_header(r.method, r.url)
|
231
|
+
try:
|
232
|
+
self._thread_local.pos = r.body.tell()
|
233
|
+
except AttributeError:
|
234
|
+
# In the case of HTTPDigestAuth being reused and the body of
|
235
|
+
# the previous request was a file-like object, pos has the
|
236
|
+
# file position of the previous body. Ensure it's set to
|
237
|
+
# None.
|
238
|
+
self._thread_local.pos = None
|
239
|
+
r.register_hook('response', self.handle_401)
|
240
|
+
r.register_hook('response', self.handle_redirect)
|
241
|
+
self._thread_local.num_401_calls = 1
|
242
|
+
|
243
|
+
return r
|
244
|
+
|
245
|
+
def __eq__(self, other):
|
246
|
+
return all([
|
247
|
+
self.username == getattr(other, 'username', None),
|
248
|
+
self.password == getattr(other, 'password', None)
|
249
|
+
])
|
250
|
+
|
251
|
+
def __ne__(self, other):
|
252
|
+
return not self == other
|
Binary file
|