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,170 @@
|
|
1
|
+
requests/__init__.py,sha256=Ux4f4IDgg6CeBgQthcFexd1CBlFxz5fegPiRLjynEEw,2197
|
2
|
+
requests/adapters.py,sha256=DJdgax91PyS2s6_oZPELbuLWNlM2xGguNu62sqcOUik,19740
|
3
|
+
requests/api.py,sha256=PgminOpD8hLLKLNs0RWLKr1HpNc4Qxr_6uen8q2c9CI,5794
|
4
|
+
requests/auth.py,sha256=eBLtJlcTZxRG7xKXCvGQBLO9a-PxFgMf2qTUbtZwMJM,8175
|
5
|
+
requests/cacert.pem,sha256=5xzWFRrSP0ZsXiW6emg8UQ_w497lT4qWCv32OO8R1ME,344712
|
6
|
+
requests/certs.py,sha256=Aa-oStu9f2lVi8VM9Aw1xaAtTIz7bhu5CGKNPEW1waM,625
|
7
|
+
requests/compat.py,sha256=hASxD1xa4BrmTqLuUTlWhb5n21VAueqRBk9rJ6ZHarQ,1568
|
8
|
+
requests/cookies.py,sha256=awMI0hm3SKheMEDTqO8AIadc2XmnCGKPCTNw_4hlM3Q,18208
|
9
|
+
requests/exceptions.py,sha256=x-MGvDASYKSstuCNYTA5IT_EAcxTp5knE3WPMrgkrlI,2860
|
10
|
+
requests/hooks.py,sha256=HXAHoC1FNTFRZX6-lNdvPM7Tst4kvGwYTN-AOKRxoRU,767
|
11
|
+
requests/models.py,sha256=YHuL2khGDFxeWc-NMJIcfFqvYJ0dKs1mXfj1Fuff1J8,30532
|
12
|
+
requests/sessions.py,sha256=H7HpKRLKeu1MSH5W1-PI2GMCFLN4bz5i3OFqjjgzE5k,25609
|
13
|
+
requests/status_codes.py,sha256=uwVHcMPkHV3FElDLlnDTH3KULZIAGxaovbBxrjWm8N0,3316
|
14
|
+
requests/structures.py,sha256=yexCvWbX40M6E8mLQOpAGZZ-ZoAnyaT2dni-Bp-b42g,3012
|
15
|
+
requests/utils.py,sha256=dc8LZv6SJWD_ABHa_iuldmSt4eAlv2BNYGPFI2CRSaQ,24162
|
16
|
+
requests/packages/__init__.py,sha256=CVheqNRcXIkAi5037RhxeqbAqd0QhrK1o9R9kS2xvuI,1384
|
17
|
+
requests/packages/chardet/__init__.py,sha256=XuTKCYOR7JwsoHxqZTYH86LVyMDbDI3s1s0W_qoGEBM,1295
|
18
|
+
requests/packages/chardet/big5freq.py,sha256=D8oTdz-GM7Jg8TsaWJDm65vM_OLHC3xub6qUJ3rOgsQ,82594
|
19
|
+
requests/packages/chardet/big5prober.py,sha256=XX96C--6WKYW36mL-z7pJSAtc169Z8ZImByCP4pEN9A,1684
|
20
|
+
requests/packages/chardet/chardetect.py,sha256=f4299UZG6uWd3i3r_N0OdrFj2sA9JFI54PAmDLAFmWA,2504
|
21
|
+
requests/packages/chardet/chardistribution.py,sha256=cUARQFr1oTLXeJCDQrDRkUP778AvSMzhSCnG8VLCV58,9226
|
22
|
+
requests/packages/chardet/charsetgroupprober.py,sha256=0lKk7VE516fgMw119tNefFqLOxKfIE9WfdkpIT69OKU,3791
|
23
|
+
requests/packages/chardet/charsetprober.py,sha256=Z48o2KiOj23FNqYH8FqzhH5m1qdm3rI8DcTm2Yqtklg,1902
|
24
|
+
requests/packages/chardet/codingstatemachine.py,sha256=E85rYhHVMw9xDEJVgiQhp0OnLGr6i2r8_7QOWMKTH08,2318
|
25
|
+
requests/packages/chardet/compat.py,sha256=5mm6yrHwef1JEG5OxkPJlSq5lkjLVpEGh3iPgFBkpkM,1157
|
26
|
+
requests/packages/chardet/constants.py,sha256=-UnY8U7EP7z9fTyd09yq35BEkSFEAUAiv9ohd1DW1s4,1335
|
27
|
+
requests/packages/chardet/cp949prober.py,sha256=FMvdLyB7fejPXRsTbca7LK1P3RUvvssmjUNyaEfz8zY,1782
|
28
|
+
requests/packages/chardet/escprober.py,sha256=q5TcQKeVq31WxrW7Sv8yjpZkjEoaHO8S92EJZ9hodys,3187
|
29
|
+
requests/packages/chardet/escsm.py,sha256=7iljEKN8lXTh8JFXPUSwlibMno6R6ksq4evLxbkzfro,7839
|
30
|
+
requests/packages/chardet/eucjpprober.py,sha256=5IpfSEjAb7h3hcGMd6dkU80O900C2N6xku28rdYFKuc,3678
|
31
|
+
requests/packages/chardet/euckrfreq.py,sha256=T5saK5mImySG5ygQPtsp6o2uKulouCwYm2ElOyFkJqU,45978
|
32
|
+
requests/packages/chardet/euckrprober.py,sha256=Wo7dnZ5Erw_nB4H-m5alMiOxOuJUmGHlwCSaGqExDZA,1675
|
33
|
+
requests/packages/chardet/euctwfreq.py,sha256=G_I0BW9i1w0ONeeUwIYqV7_U09buIHdqh-wNHVaql7I,34872
|
34
|
+
requests/packages/chardet/euctwprober.py,sha256=upS2P6GuT5ujOxXYw-RJLcT7A4PTuo27KGUKU4UZpIQ,1676
|
35
|
+
requests/packages/chardet/gb2312freq.py,sha256=M2gFdo_qQ_BslStEchrPW5CrPEZEacC0uyDLw4ok-kY,36011
|
36
|
+
requests/packages/chardet/gb2312prober.py,sha256=VWnjoRa83Y6V6oczMaxyUr0uy48iCnC2nzk9zfEIRHc,1681
|
37
|
+
requests/packages/chardet/hebrewprober.py,sha256=8pdoUfsVXf_L4BnJde_BewS6H2yInV5688eu0nFhLHY,13359
|
38
|
+
requests/packages/chardet/jisfreq.py,sha256=ZcL4R5ekHHbP2KCYGakVMBsiKqZZZAABzhwi-uRkOps,47315
|
39
|
+
requests/packages/chardet/jpcntx.py,sha256=yftmp0QaF6RJO5SJs8I7LU5AF4rwP23ebeCQL4BM1OY,19348
|
40
|
+
requests/packages/chardet/langbulgarianmodel.py,sha256=ZyPsA796MSVhYdfWhMCgKWckupAKAnKqWcE3Cl3ej6o,12784
|
41
|
+
requests/packages/chardet/langcyrillicmodel.py,sha256=fkcd5OvogUp-GrNDWAZPgkYsSRCD2omotAEvqjlmLKE,17725
|
42
|
+
requests/packages/chardet/langgreekmodel.py,sha256=QHMy31CH_ot67UCtmurCEKqKx2WwoaKrw2YCYYBK2Lw,12628
|
43
|
+
requests/packages/chardet/langhebrewmodel.py,sha256=4ASl5vzKJPng4H278VHKtRYC03TpQpenlHTcsmZH1rE,11318
|
44
|
+
requests/packages/chardet/langhungarianmodel.py,sha256=SXwuUzh49_cBeMXhshRHdrhlkz0T8_pZWV_pdqBKNFk,12536
|
45
|
+
requests/packages/chardet/langthaimodel.py,sha256=-k7djh3dGKngAGnt3WfuoJN7acDcWcmHAPojhaUd7q4,11275
|
46
|
+
requests/packages/chardet/latin1prober.py,sha256=238JHOxH8aRudJY2NmeSv5s7i0Qe3GuklIU3HlYybvg,5232
|
47
|
+
requests/packages/chardet/mbcharsetprober.py,sha256=9rOCjDVsmSMp6e7q2syqak22j7lrbUZhJhMee2gbVL0,3268
|
48
|
+
requests/packages/chardet/mbcsgroupprober.py,sha256=SHRzNPLpDXfMJLA8phCHVU0WgqbgDCNxDQMolGX_7yk,1967
|
49
|
+
requests/packages/chardet/mbcssm.py,sha256=IKwJXyxu34n6NojmxVxC60MLFtJKm-hIfxaFEnb3uBA,19590
|
50
|
+
requests/packages/chardet/sbcharsetprober.py,sha256=Xq0lODqJnDgxglBiQI4BqTFiPbn63-0a5XNA5-hVu7U,4793
|
51
|
+
requests/packages/chardet/sbcsgroupprober.py,sha256=8hLyH8RAG-aohBo7o_KciWVgRo42ZE_zEtuNG1JMRYI,3291
|
52
|
+
requests/packages/chardet/sjisprober.py,sha256=UYOmiMDzttYIkSDoOB08UEagivJpUXz4tuWiWzTiOr8,3764
|
53
|
+
requests/packages/chardet/universaldetector.py,sha256=h-E2x6XSCzlNjycYWG0Fe4Cf1SGdaIzUNu2HCphpMZA,6840
|
54
|
+
requests/packages/chardet/utf8prober.py,sha256=7tdNZGrJY7jZUBD483GGMkiP0Tx8Fp-cGvWHoAsilHg,2652
|
55
|
+
requests/packages/urllib3/__init__.py,sha256=EF9pbHgMzqQek2Y6EZ82A8B6wETFeW7bK0K-HoZ3Ffo,2852
|
56
|
+
requests/packages/urllib3/_collections.py,sha256=RP-cHyTx4AgYwvoETK8q1IVRbWFJnE0VV692ZHSbU68,10553
|
57
|
+
requests/packages/urllib3/connection.py,sha256=QCmkelYgtbc06DfJtgs22na78kRTLCTbLb-OSWLbt-A,11617
|
58
|
+
requests/packages/urllib3/connectionpool.py,sha256=fls19n1Y4jnwOBsZz_9F01i08xH2gZXEIyyDmWd-mKU,33591
|
59
|
+
requests/packages/urllib3/exceptions.py,sha256=zGjhZCR1wefEnCN5b7WouQ3UhXesJ2bRKYIeWusaFJs,5599
|
60
|
+
requests/packages/urllib3/fields.py,sha256=WUMvCLvnw7XemBq6AmCgNPJwyIJL_vWaMHaA2FLlscM,5931
|
61
|
+
requests/packages/urllib3/filepost.py,sha256=NvLlFsdt8ih_Q4S2ekQF3CJG0nOXs32YI-G04_AdT2g,2320
|
62
|
+
requests/packages/urllib3/poolmanager.py,sha256=9Uf0fUk0aR_s1auXgwceoN2gbaIQ08lrum_cGEA9-_U,13092
|
63
|
+
requests/packages/urllib3/request.py,sha256=jET7OvA3FSjxABBRGhCyMdPvM9XuJA6df9gRhkJiJiY,5988
|
64
|
+
requests/packages/urllib3/response.py,sha256=wxJSV_6pyh6Cgx7XFVGpNhpZCbh4eL7lCSFaU4ixXXc,18615
|
65
|
+
requests/packages/urllib3/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
66
|
+
requests/packages/urllib3/contrib/appengine.py,sha256=NdN_xOgDLMadUPe_dN3wdan_DH9-fxVNqFgq19tbqQs,7937
|
67
|
+
requests/packages/urllib3/contrib/ntlmpool.py,sha256=r-vMDMXAGbix9a7-IhbKVTATmAst-5g4hKYOLf8Kd5M,4531
|
68
|
+
requests/packages/urllib3/contrib/pyopenssl.py,sha256=JsdAh0gL4XvQzhOEBRoFtJN91qLf1LFIDEFZs95445I,11778
|
69
|
+
requests/packages/urllib3/contrib/socks.py,sha256=uPHtE6R8uyUbD9R8l2wO80c87WDGZ9rou3kNOwV74eA,5668
|
70
|
+
requests/packages/urllib3/packages/__init__.py,sha256=nlChrGzkjCkmhCX9HrF_qHPUgosfsPQkVIJxiiLhk9g,109
|
71
|
+
requests/packages/urllib3/packages/ordered_dict.py,sha256=VQaPONfhVMsb8B63Xg7ZOydJqIE_jzeMhVN3Pec6ogw,8935
|
72
|
+
requests/packages/urllib3/packages/six.py,sha256=A6hdJZVjI3t_geebZ9BzUvwRrIXo0lfwzQlM2LcKyas,30098
|
73
|
+
requests/packages/urllib3/packages/ssl_match_hostname/__init__.py,sha256=cOWMIn1orgJoA35p6pSzO_-Dc6iOX9Dhl6D2sL9b_2o,460
|
74
|
+
requests/packages/urllib3/packages/ssl_match_hostname/_implementation.py,sha256=fK28k37hL7-D79v9iM2fHgNK9Q1Pw0M7qVRL4rkfFjQ,3778
|
75
|
+
requests/packages/urllib3/util/__init__.py,sha256=n2QE9_0Bb6u8tf7LUc4qKe8V-Hz9G8lEOc9j_30Q8d0,892
|
76
|
+
requests/packages/urllib3/util/connection.py,sha256=7B5Mmepg5Xd399VKE__VHxD2ObapYFrB3mWJ_EnIebs,4744
|
77
|
+
requests/packages/urllib3/util/request.py,sha256=ZMDewRK-mjlK72szGIIjzYnLIn-zPP0WgJUMjKeZ6Tg,2128
|
78
|
+
requests/packages/urllib3/util/response.py,sha256=1UFd5TIp9MyBp4xgnZoyQZscZVPPr0tWRaXNR5w_vds,2165
|
79
|
+
requests/packages/urllib3/util/retry.py,sha256=5eA3GHR_L14qz66NU6gr-v5VbKYsvdEqOvCcsx1oLKo,10664
|
80
|
+
requests/packages/urllib3/util/ssl_.py,sha256=7xR_jvQLTQA1U006wJ1bl2KuLGnD1qQvUcFM2uysedw,11622
|
81
|
+
requests/packages/urllib3/util/timeout.py,sha256=ioAIYptFyBG7eU_r8_ZmO45hpj1dJE6WCvrGR9dNFjs,9596
|
82
|
+
requests/packages/urllib3/util/url.py,sha256=EcX4ZfmgKWcqM4sY9FlC-yN4y_snuURPV0TpUPHNjnc,5879
|
83
|
+
requests-2.11.1.dist-info/DESCRIPTION.rst,sha256=izJPhJJj7bDM4YCqiCwWSn8gZeAbpyiwbSOPpZOPN_I,38378
|
84
|
+
requests-2.11.1.dist-info/METADATA,sha256=IE22qy-BM0SnsaOanuGMKZQ58XRWkLkkGiAlYiglzD4,39530
|
85
|
+
requests-2.11.1.dist-info/RECORD,,
|
86
|
+
requests-2.11.1.dist-info/WHEEL,sha256=GrqQvamwgBV4nLoJe0vhYRSWzWsx7xjlt74FT0SWYfE,110
|
87
|
+
requests-2.11.1.dist-info/metadata.json,sha256=a2O5XY2AiRqLEb16gYs0-rwVSQnUJl64yWUozD9CEaI,1281
|
88
|
+
requests-2.11.1.dist-info/top_level.txt,sha256=fMSVmHfb5rbGOo6xv-O_tUX6j-WyixssE-SnwcDRxNQ,9
|
89
|
+
requests-2.11.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
90
|
+
requests/packages/chardet/sbcsgroupprober.pyc,,
|
91
|
+
requests/status_codes.pyc,,
|
92
|
+
requests/packages/chardet/mbcsgroupprober.pyc,,
|
93
|
+
requests/certs.pyc,,
|
94
|
+
requests/packages/chardet/langhebrewmodel.pyc,,
|
95
|
+
requests/packages/chardet/euctwfreq.pyc,,
|
96
|
+
requests/packages/urllib3/contrib/pyopenssl.pyc,,
|
97
|
+
requests/packages/urllib3/util/__init__.pyc,,
|
98
|
+
requests/packages/chardet/latin1prober.pyc,,
|
99
|
+
requests/api.pyc,,
|
100
|
+
requests/packages/chardet/big5prober.pyc,,
|
101
|
+
requests/packages/urllib3/contrib/__init__.pyc,,
|
102
|
+
requests/packages/chardet/constants.pyc,,
|
103
|
+
requests/packages/chardet/eucjpprober.pyc,,
|
104
|
+
requests/packages/chardet/euckrfreq.pyc,,
|
105
|
+
requests/packages/chardet/codingstatemachine.pyc,,
|
106
|
+
requests/compat.pyc,,
|
107
|
+
requests/packages/urllib3/packages/six.pyc,,
|
108
|
+
requests/structures.pyc,,
|
109
|
+
requests/sessions.pyc,,
|
110
|
+
requests/models.pyc,,
|
111
|
+
requests/packages/urllib3/packages/ssl_match_hostname/_implementation.pyc,,
|
112
|
+
requests/packages/chardet/universaldetector.pyc,,
|
113
|
+
requests/packages/chardet/escsm.pyc,,
|
114
|
+
requests/packages/chardet/jpcntx.pyc,,
|
115
|
+
requests/packages/urllib3/util/retry.pyc,,
|
116
|
+
requests/packages/chardet/chardetect.pyc,,
|
117
|
+
requests/packages/chardet/gb2312freq.pyc,,
|
118
|
+
requests/packages/urllib3/util/ssl_.pyc,,
|
119
|
+
requests/packages/urllib3/util/request.pyc,,
|
120
|
+
requests/packages/urllib3/poolmanager.pyc,,
|
121
|
+
requests/packages/chardet/jisfreq.pyc,,
|
122
|
+
requests/auth.pyc,,
|
123
|
+
requests/packages/chardet/big5freq.pyc,,
|
124
|
+
requests/adapters.pyc,,
|
125
|
+
requests/packages/chardet/charsetprober.pyc,,
|
126
|
+
requests/packages/urllib3/request.pyc,,
|
127
|
+
requests/packages/urllib3/fields.pyc,,
|
128
|
+
requests/packages/urllib3/util/url.pyc,,
|
129
|
+
requests/packages/chardet/chardistribution.pyc,,
|
130
|
+
requests/hooks.pyc,,
|
131
|
+
requests/packages/urllib3/filepost.pyc,,
|
132
|
+
requests/packages/chardet/langthaimodel.pyc,,
|
133
|
+
requests/packages/chardet/charsetgroupprober.pyc,,
|
134
|
+
requests/packages/urllib3/packages/__init__.pyc,,
|
135
|
+
requests/packages/urllib3/contrib/socks.pyc,,
|
136
|
+
requests/packages/chardet/compat.pyc,,
|
137
|
+
requests/packages/chardet/utf8prober.pyc,,
|
138
|
+
requests/packages/urllib3/util/response.pyc,,
|
139
|
+
requests/packages/chardet/sbcharsetprober.pyc,,
|
140
|
+
requests/packages/chardet/gb2312prober.pyc,,
|
141
|
+
requests/packages/chardet/mbcharsetprober.pyc,,
|
142
|
+
requests/packages/chardet/langbulgarianmodel.pyc,,
|
143
|
+
requests/utils.pyc,,
|
144
|
+
requests/packages/__init__.pyc,,
|
145
|
+
requests/packages/chardet/__init__.pyc,,
|
146
|
+
requests/packages/urllib3/connection.pyc,,
|
147
|
+
requests/packages/urllib3/util/connection.pyc,,
|
148
|
+
requests/packages/chardet/sjisprober.pyc,,
|
149
|
+
requests/packages/chardet/langcyrillicmodel.pyc,,
|
150
|
+
requests/packages/urllib3/contrib/appengine.pyc,,
|
151
|
+
requests/packages/chardet/langgreekmodel.pyc,,
|
152
|
+
requests/packages/urllib3/packages/ssl_match_hostname/__init__.pyc,,
|
153
|
+
requests/packages/urllib3/util/timeout.pyc,,
|
154
|
+
requests/packages/chardet/langhungarianmodel.pyc,,
|
155
|
+
requests/packages/urllib3/_collections.pyc,,
|
156
|
+
requests/packages/chardet/euckrprober.pyc,,
|
157
|
+
requests/packages/chardet/cp949prober.pyc,,
|
158
|
+
requests/packages/chardet/mbcssm.pyc,,
|
159
|
+
requests/packages/urllib3/packages/ordered_dict.pyc,,
|
160
|
+
requests/packages/urllib3/contrib/ntlmpool.pyc,,
|
161
|
+
requests/cookies.pyc,,
|
162
|
+
requests/packages/chardet/hebrewprober.pyc,,
|
163
|
+
requests/packages/urllib3/exceptions.pyc,,
|
164
|
+
requests/packages/urllib3/__init__.pyc,,
|
165
|
+
requests/packages/chardet/escprober.pyc,,
|
166
|
+
requests/packages/urllib3/response.pyc,,
|
167
|
+
requests/packages/urllib3/connectionpool.pyc,,
|
168
|
+
requests/__init__.pyc,,
|
169
|
+
requests/exceptions.pyc,,
|
170
|
+
requests/packages/chardet/euctwprober.pyc,,
|
@@ -0,0 +1 @@
|
|
1
|
+
{"generator": "bdist_wheel (0.26.0)", "summary": "Python HTTP for Humans.", "classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Natural Language :: English", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy"], "extensions": {"python.details": {"project_urls": {"Home": "http://python-requests.org"}, "contacts": [{"email": "me@kennethreitz.com", "name": "Kenneth Reitz", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}}}, "license": "Apache 2.0", "metadata_version": "2.0", "name": "requests", "extras": ["security", "socks"], "run_requires": [{"requires": ["PySocks (>=1.5.6)"], "extra": "socks"}, {"requires": ["ndg-httpsclient", "pyOpenSSL (>=0.13)", "pyasn1"], "extra": "security"}], "version": "2.11.1", "test_requires": [{"requires": ["pytest (>=2.8.0)", "pytest-cov", "pytest-httpbin (==0.0.7)"]}]}
|
@@ -0,0 +1 @@
|
|
1
|
+
requests
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = '0.2.0'
|
Binary file
|
data/vendor/rigid/api.py
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
import os
|
2
|
+
import sys
|
3
|
+
import platform
|
4
|
+
import urlparse
|
5
|
+
import requests
|
6
|
+
import click
|
7
|
+
|
8
|
+
from rigid import __version__
|
9
|
+
|
10
|
+
DEFAULT_API_BASE = 'https://rigid-api.herokuapp.com'
|
11
|
+
|
12
|
+
|
13
|
+
class Client(object):
|
14
|
+
def __init__(self, base=None):
|
15
|
+
python_version = '{}.{}.{}'.format(sys.version_info.major, sys.version_info.minor, sys.version_info.micro)
|
16
|
+
self.base = base or os.environ.get('RIGID_API', DEFAULT_API_BASE)
|
17
|
+
self.session = requests.Session()
|
18
|
+
self.session.headers.update({'User-Agent': 'Rigid/{} Python/{} {}/{}'.format(__version__, python_version, platform.system(), platform.release())})
|
19
|
+
|
20
|
+
token = None
|
21
|
+
|
22
|
+
path = os.path.expanduser('~/.rigid/credentials')
|
23
|
+
if os.path.exists(path):
|
24
|
+
with open(path) as fp:
|
25
|
+
token = fp.read().strip()
|
26
|
+
|
27
|
+
if 'RIGID_TOKEN' in os.environ:
|
28
|
+
token = os.environ['RIGID_TOKEN']
|
29
|
+
|
30
|
+
if token:
|
31
|
+
self.session.headers.update({'Authorization': 'Bearer {}'.format(token)})
|
32
|
+
|
33
|
+
@property
|
34
|
+
def host(self):
|
35
|
+
return urlparse.urlparse(self.base).hostname
|
36
|
+
|
37
|
+
def url(self, *components):
|
38
|
+
return '/'.join([self.base] + list(components))
|
39
|
+
|
40
|
+
def validate(self, response):
|
41
|
+
if response.status_code == 401:
|
42
|
+
exception = click.ClickException('You are not logged in. Use `rigid login` to get started.')
|
43
|
+
exception.response = response
|
44
|
+
raise exception
|
45
|
+
|
46
|
+
if 400 <= response.status_code < 600:
|
47
|
+
try:
|
48
|
+
payload = response.json()
|
49
|
+
except:
|
50
|
+
payload = None
|
51
|
+
|
52
|
+
if isinstance(payload, list):
|
53
|
+
exception = click.ClickException('\n'.join(payload))
|
54
|
+
exception.response = response
|
55
|
+
raise exception
|
56
|
+
|
57
|
+
if payload and 'detail' in payload:
|
58
|
+
exception = click.ClickException(payload['detail'])
|
59
|
+
exception.response = response
|
60
|
+
raise exception
|
61
|
+
|
62
|
+
if payload and len(payload):
|
63
|
+
payload = map(lambda item: [item[0], ', '.join(item[1])], payload.items())
|
64
|
+
reasons = map('{0[0]}: {0[1]}'.format, payload)
|
65
|
+
exception = click.ClickException('\n'.join(reasons))
|
66
|
+
exception.response = response
|
67
|
+
raise exception
|
68
|
+
|
69
|
+
response.raise_for_status()
|
70
|
+
|
71
|
+
def user(self):
|
72
|
+
response = self.session.get(self.url('user'))
|
73
|
+
self.validate(response)
|
74
|
+
return response.json()
|
75
|
+
|
76
|
+
def token(self, auth=None, scopes=None):
|
77
|
+
payload = {}
|
78
|
+
if scopes:
|
79
|
+
payload['scopes'] = scopes
|
80
|
+
|
81
|
+
response = self.session.post(self.url('authorizations'), json=payload, auth=auth)
|
82
|
+
self.validate(response)
|
83
|
+
return response.json()['token']
|
84
|
+
|
85
|
+
# Applications
|
86
|
+
|
87
|
+
def apps(self):
|
88
|
+
response = self.session.get(self.url('apps'))
|
89
|
+
self.validate(response)
|
90
|
+
return response.json()
|
91
|
+
|
92
|
+
def app(self, name):
|
93
|
+
response = self.session.get(self.url('apps', name))
|
94
|
+
self.validate(response)
|
95
|
+
return response.json()
|
96
|
+
|
97
|
+
def create_app(self, name=None):
|
98
|
+
payload = None
|
99
|
+
if name:
|
100
|
+
payload = {'name': name}
|
101
|
+
|
102
|
+
response = self.session.post(self.url('apps'), json=payload)
|
103
|
+
self.validate(response)
|
104
|
+
return response.json()
|
105
|
+
|
106
|
+
def delete_app(self, name):
|
107
|
+
response = self.session.delete(self.url('apps', name))
|
108
|
+
self.validate(response)
|
109
|
+
|
110
|
+
def promote(self, app, alias, version, config=None):
|
111
|
+
payload = {
|
112
|
+
'version': version,
|
113
|
+
}
|
114
|
+
|
115
|
+
if config:
|
116
|
+
payload['config'] = config
|
117
|
+
|
118
|
+
response = self.session.put(self.url('apps', app, 'aliases', alias), json=payload)
|
119
|
+
self.validate(response)
|
120
|
+
return response.json()
|
121
|
+
|
122
|
+
def add_domain(self, app, alias, domain):
|
123
|
+
response = self.session.post(self.url('apps', app, 'aliases', alias, 'domains'), json={'domain': domain})
|
124
|
+
self.validate(response)
|
125
|
+
return response.json()
|
126
|
+
|
127
|
+
def remove_domain(self, app, alias, domain):
|
128
|
+
response = self.session.delete(self.url('apps', app, 'aliases', alias, 'domains', domain))
|
129
|
+
self.validate(response)
|
Binary file
|
@@ -0,0 +1,260 @@
|
|
1
|
+
import os
|
2
|
+
import time
|
3
|
+
import netrc
|
4
|
+
|
5
|
+
import click
|
6
|
+
import requests
|
7
|
+
import yaml
|
8
|
+
|
9
|
+
from rigid import __version__
|
10
|
+
from rigid.api import Client
|
11
|
+
from rigid.deploy import Deploy
|
12
|
+
|
13
|
+
|
14
|
+
def load_config(config_file, alias):
|
15
|
+
config = None
|
16
|
+
|
17
|
+
if not config_file:
|
18
|
+
if os.path.exists('.rigid-{}.yaml'.format(alias)):
|
19
|
+
config_file = '.rigid-{}.yaml'.format(alias)
|
20
|
+
elif os.path.exists('.rigid.yaml'):
|
21
|
+
config_file = '.rigid.yaml'
|
22
|
+
|
23
|
+
if config_file:
|
24
|
+
with open(config_file) as fp:
|
25
|
+
config = yaml.safe_load(fp)
|
26
|
+
|
27
|
+
return config
|
28
|
+
|
29
|
+
|
30
|
+
@click.group()
|
31
|
+
@click.version_option(__version__)
|
32
|
+
@click.pass_context
|
33
|
+
def cli(ctx):
|
34
|
+
ctx.obj = Client()
|
35
|
+
|
36
|
+
|
37
|
+
@cli.command('login')
|
38
|
+
@click.pass_context
|
39
|
+
def login(ctx):
|
40
|
+
"""Login with your Rigid credentials"""
|
41
|
+
|
42
|
+
click.echo('Enter your Rigid credentials.')
|
43
|
+
|
44
|
+
email = click.prompt('Email', type=str)
|
45
|
+
password = click.prompt('Password', type=str, hide_input=True)
|
46
|
+
|
47
|
+
try:
|
48
|
+
token = ctx.obj.token(auth=(email, password))
|
49
|
+
except click.ClickException as e:
|
50
|
+
if e.response.status_code == 401:
|
51
|
+
raise click.ClickException('Invalid Credentials')
|
52
|
+
|
53
|
+
raise
|
54
|
+
|
55
|
+
path = os.path.expanduser('~/.rigid')
|
56
|
+
|
57
|
+
try:
|
58
|
+
os.mkdir(path)
|
59
|
+
except:
|
60
|
+
pass
|
61
|
+
|
62
|
+
with open(os.path.join(path, 'credentials'), 'w') as fp:
|
63
|
+
fp.write(token)
|
64
|
+
|
65
|
+
|
66
|
+
@cli.command('logout')
|
67
|
+
def logout():
|
68
|
+
path = os.path.expanduser('~/.rigid')
|
69
|
+
os.remove(os.path.join(path, 'credentials'))
|
70
|
+
|
71
|
+
|
72
|
+
@cli.command('whoami')
|
73
|
+
@click.pass_context
|
74
|
+
def whoami(ctx):
|
75
|
+
"""Show your Rigid login"""
|
76
|
+
click.echo(ctx.obj.user()['email'])
|
77
|
+
|
78
|
+
|
79
|
+
@cli.command('token')
|
80
|
+
@click.option('--scope', '-s', multiple=True)
|
81
|
+
@click.pass_context
|
82
|
+
def token(ctx, scope):
|
83
|
+
"""Generate an authentication token"""
|
84
|
+
click.echo(ctx.obj.token(scopes=scope))
|
85
|
+
|
86
|
+
|
87
|
+
@cli.command('app')
|
88
|
+
@click.argument('app')
|
89
|
+
@click.option('--create', is_flag=True)
|
90
|
+
@click.option('--delete', is_flag=True)
|
91
|
+
@click.pass_context
|
92
|
+
def app(ctx, app, create, delete):
|
93
|
+
"""View or manage a specific application"""
|
94
|
+
|
95
|
+
if create:
|
96
|
+
payload = ctx.obj.create_app(app)
|
97
|
+
click.echo('{name} ({web_url}) has been created.'.format(**payload))
|
98
|
+
return
|
99
|
+
|
100
|
+
if delete:
|
101
|
+
click.confirm('Are you sure you want to delete {}?'.format(app), abort=True)
|
102
|
+
ctx.obj.delete_app(app)
|
103
|
+
click.echo('{} has been deleted.'.format(app))
|
104
|
+
return
|
105
|
+
|
106
|
+
payload = ctx.obj.app(app)
|
107
|
+
|
108
|
+
click.echo('{} - {}'.format(payload['name'], payload['web_url']))
|
109
|
+
|
110
|
+
if 'versions' in payload:
|
111
|
+
click.echo()
|
112
|
+
click.echo('Versions')
|
113
|
+
|
114
|
+
for version in payload['versions']:
|
115
|
+
click.echo('- ' + version['uuid'])
|
116
|
+
|
117
|
+
if 'aliases' in payload:
|
118
|
+
click.echo()
|
119
|
+
click.echo('Aliases')
|
120
|
+
|
121
|
+
for alias in payload['aliases']:
|
122
|
+
name = alias['name']
|
123
|
+
version = alias.get('version', None)
|
124
|
+
web_url = alias.get('web_url', None)
|
125
|
+
domains = alias.get('domains', None)
|
126
|
+
|
127
|
+
click.echo('- Name: {}'.format(name))
|
128
|
+
|
129
|
+
if web_url:
|
130
|
+
click.echo(' URL: {}'.format(web_url))
|
131
|
+
|
132
|
+
if version:
|
133
|
+
click.echo(' Version: {}'.format(version))
|
134
|
+
|
135
|
+
if domains:
|
136
|
+
click.echo(' Domains:')
|
137
|
+
|
138
|
+
for domain in domains:
|
139
|
+
click.echo(' - {}'.format(domain['domain']))
|
140
|
+
|
141
|
+
|
142
|
+
@cli.command('apps')
|
143
|
+
@click.pass_context
|
144
|
+
def apps(ctx):
|
145
|
+
"""List your Rigid apps"""
|
146
|
+
|
147
|
+
apps = ctx.obj.apps()
|
148
|
+
|
149
|
+
for app in apps:
|
150
|
+
click.echo(app['name'])
|
151
|
+
|
152
|
+
if len(apps) == 0:
|
153
|
+
click.echo("You don't have any apps yet.")
|
154
|
+
|
155
|
+
|
156
|
+
@cli.command('deploy')
|
157
|
+
@click.argument('source', type=click.Path(exists=True))
|
158
|
+
@click.option('--app', '-a', required=False)
|
159
|
+
@click.option('--alias', default='production')
|
160
|
+
@click.option('--create', default=False, is_flag=True)
|
161
|
+
@click.option('--config', type=click.Path(exists=True))
|
162
|
+
@click.option('--verbose', default=False, is_flag=True)
|
163
|
+
@click.pass_context
|
164
|
+
def deploy(ctx, source, app, alias, create, config, verbose):
|
165
|
+
"""Deploy a new version"""
|
166
|
+
|
167
|
+
if app is None and not create:
|
168
|
+
raise click.MissingParameter(param_type='option "--app" / "-a"')
|
169
|
+
|
170
|
+
config = load_config(config, alias)
|
171
|
+
deploy = Deploy(ctx.obj, source)
|
172
|
+
|
173
|
+
if create:
|
174
|
+
new_app = ctx.obj.create_app(app)
|
175
|
+
app = new_app['name']
|
176
|
+
click.echo('Application {} has been created.'.format(app))
|
177
|
+
else:
|
178
|
+
deploy.validate(app)
|
179
|
+
|
180
|
+
if verbose:
|
181
|
+
files = deploy.collect_files()
|
182
|
+
click.echo('{} source files:'.format(len(files)))
|
183
|
+
|
184
|
+
for name in files:
|
185
|
+
click.echo('- {}'.format(name))
|
186
|
+
|
187
|
+
uploader, length = deploy.upload(app)
|
188
|
+
|
189
|
+
with click.progressbar(length=length, label='Uploading Source') as progress:
|
190
|
+
source_uuid = uploader(progress.update)
|
191
|
+
|
192
|
+
version_uuid = deploy.upload_version(app, source_uuid)
|
193
|
+
|
194
|
+
click.echo('Version {} has been created'.format(version_uuid))
|
195
|
+
|
196
|
+
with click.progressbar(length=100, label='Promoting to {}'.format(alias)) as progress:
|
197
|
+
counter = 0
|
198
|
+
|
199
|
+
while True:
|
200
|
+
try:
|
201
|
+
ctx.obj.promote(app, alias, version_uuid, config)
|
202
|
+
break
|
203
|
+
except click.ClickException as e:
|
204
|
+
progress.update(1)
|
205
|
+
|
206
|
+
if hasattr(e, 'response') and e.response.status_code == 400:
|
207
|
+
payload = e.response.json()
|
208
|
+
|
209
|
+
if len(payload) == 1 and 'version' in payload:
|
210
|
+
pass
|
211
|
+
else:
|
212
|
+
raise
|
213
|
+
else:
|
214
|
+
raise
|
215
|
+
|
216
|
+
counter += 1
|
217
|
+
time.sleep(2)
|
218
|
+
|
219
|
+
if counter % 2:
|
220
|
+
time.sleep(2)
|
221
|
+
|
222
|
+
click.echo('{} ({}) has been deployed.'.format(app, alias))
|
223
|
+
|
224
|
+
|
225
|
+
@cli.command('domains')
|
226
|
+
@click.option('--app', '-a', required=True)
|
227
|
+
@click.option('--alias', default='production')
|
228
|
+
@click.argument('domain')
|
229
|
+
@click.option('--add', is_flag=True)
|
230
|
+
@click.option('--remove', is_flag=True)
|
231
|
+
@click.pass_context
|
232
|
+
def domains(ctx, app, alias, domain, add, remove):
|
233
|
+
"""
|
234
|
+
Manage custom domains for an app
|
235
|
+
"""
|
236
|
+
|
237
|
+
if not add and not remove:
|
238
|
+
raise click.ClickException('--add or --remove must be provided')
|
239
|
+
|
240
|
+
if add:
|
241
|
+
ctx.obj.add_domain(app, alias, domain)
|
242
|
+
click.echo('{} has been added to {}.'.format(domain, app))
|
243
|
+
|
244
|
+
if remove:
|
245
|
+
ctx.obj.remove_domain(app, alias, domain)
|
246
|
+
click.echo('{} has been removed from {}.'.format(domain, app))
|
247
|
+
|
248
|
+
|
249
|
+
@cli.command('promote')
|
250
|
+
@click.option('--app', '-a', required=True)
|
251
|
+
@click.option('--alias', default='production')
|
252
|
+
@click.option('--config', type=click.Path(exists=True))
|
253
|
+
@click.argument('version')
|
254
|
+
@click.pass_context
|
255
|
+
def promote(ctx, app, alias, config, version):
|
256
|
+
"""Promote a version to an alias."""
|
257
|
+
|
258
|
+
config = load_config(config, alias)
|
259
|
+
payload = ctx.obj.promote(app, alias, version, config)
|
260
|
+
click.echo('{}/{} is now running {}.'.format(app, alias, payload['version']))
|
Binary file
|
File without changes
|
Binary file
|
@@ -0,0 +1,70 @@
|
|
1
|
+
import os
|
2
|
+
import tempfile
|
3
|
+
from rigid.utils import ObservedFileWrapper
|
4
|
+
|
5
|
+
import requests
|
6
|
+
|
7
|
+
from rigid.file_scanner import scan, tar, Skipper
|
8
|
+
|
9
|
+
|
10
|
+
class Deploy(object):
|
11
|
+
def __init__(self, client, source):
|
12
|
+
self.client = client
|
13
|
+
self.source = source
|
14
|
+
|
15
|
+
def collect_files(self):
|
16
|
+
ignore_file = '.rignore'
|
17
|
+
ignore_path = os.path.join(self.source, ignore_file)
|
18
|
+
|
19
|
+
if os.path.exists(ignore_path):
|
20
|
+
skipper = Skipper.open(ignore_path)
|
21
|
+
skipper.rules.append(ignore_file)
|
22
|
+
else:
|
23
|
+
skipper = Skipper([])
|
24
|
+
|
25
|
+
return filter(skipper, scan(self.source))
|
26
|
+
|
27
|
+
def create_tarball(self, path):
|
28
|
+
tar(path, self.collect_files(), self.source)
|
29
|
+
|
30
|
+
def validate(self, app):
|
31
|
+
response = self.client.session.head(self.client.url('apps', app))
|
32
|
+
self.client.validate(response)
|
33
|
+
|
34
|
+
def create_source(self):
|
35
|
+
response = self.client.session.post(self.client.url('sources'))
|
36
|
+
self.client.validate(response)
|
37
|
+
payload = response.json()
|
38
|
+
return (payload['uuid'], payload['upload'])
|
39
|
+
|
40
|
+
def upload_source(self, method, url, path, updater):
|
41
|
+
with open(path, 'rb') as fd:
|
42
|
+
fd = ObservedFileWrapper(fd, updater)
|
43
|
+
response = requests.request(method, url, data=fd)
|
44
|
+
response.raise_for_status()
|
45
|
+
|
46
|
+
def create_version(self, url, source_uuid):
|
47
|
+
response = self.client.session.post(url, json={'source': source_uuid})
|
48
|
+
self.client.validate(response)
|
49
|
+
json = response.json()
|
50
|
+
return (json['uuid'])
|
51
|
+
|
52
|
+
# API
|
53
|
+
|
54
|
+
def upload(self, app):
|
55
|
+
fd = tempfile.NamedTemporaryFile()
|
56
|
+
self.create_tarball(fd.name)
|
57
|
+
source_uuid, source_upload = self.create_source()
|
58
|
+
size = os.fstat(fd.fileno()).st_size
|
59
|
+
|
60
|
+
def func(updater):
|
61
|
+
self.upload_source(source_upload['method'], source_upload['url'], fd.name, updater)
|
62
|
+
fd.close()
|
63
|
+
return source_uuid
|
64
|
+
|
65
|
+
return (func, size)
|
66
|
+
|
67
|
+
def upload_version(self, app, source_uuid):
|
68
|
+
url = self.client.url('apps', app, 'versions')
|
69
|
+
version_uuid = self.create_version(url, source_uuid)
|
70
|
+
return version_uuid
|
Binary file
|