rigid 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (364) hide show
  1. checksums.yaml +7 -0
  2. data/bin/rigid +4 -0
  3. data/rigid +16 -0
  4. data/vendor/PyYAML-3.12.dist-info/DESCRIPTION.rst +12 -0
  5. data/vendor/PyYAML-3.12.dist-info/INSTALLER +1 -0
  6. data/vendor/PyYAML-3.12.dist-info/METADATA +35 -0
  7. data/vendor/PyYAML-3.12.dist-info/RECORD +42 -0
  8. data/vendor/PyYAML-3.12.dist-info/WHEEL +5 -0
  9. data/vendor/PyYAML-3.12.dist-info/metadata.json +1 -0
  10. data/vendor/PyYAML-3.12.dist-info/top_level.txt +2 -0
  11. data/vendor/_yaml.so +0 -0
  12. data/vendor/click/__init__.py +98 -0
  13. data/vendor/click/__init__.pyc +0 -0
  14. data/vendor/click/_bashcomplete.py +83 -0
  15. data/vendor/click/_bashcomplete.pyc +0 -0
  16. data/vendor/click/_compat.py +642 -0
  17. data/vendor/click/_compat.pyc +0 -0
  18. data/vendor/click/_termui_impl.py +547 -0
  19. data/vendor/click/_termui_impl.pyc +0 -0
  20. data/vendor/click/_textwrap.py +38 -0
  21. data/vendor/click/_textwrap.pyc +0 -0
  22. data/vendor/click/_unicodefun.py +119 -0
  23. data/vendor/click/_unicodefun.pyc +0 -0
  24. data/vendor/click/_winconsole.py +273 -0
  25. data/vendor/click/_winconsole.pyc +0 -0
  26. data/vendor/click/core.py +1738 -0
  27. data/vendor/click/core.pyc +0 -0
  28. data/vendor/click/decorators.py +304 -0
  29. data/vendor/click/decorators.pyc +0 -0
  30. data/vendor/click/exceptions.py +201 -0
  31. data/vendor/click/exceptions.pyc +0 -0
  32. data/vendor/click/formatting.py +256 -0
  33. data/vendor/click/formatting.pyc +0 -0
  34. data/vendor/click/globals.py +48 -0
  35. data/vendor/click/globals.pyc +0 -0
  36. data/vendor/click/parser.py +426 -0
  37. data/vendor/click/parser.pyc +0 -0
  38. data/vendor/click/termui.py +539 -0
  39. data/vendor/click/termui.pyc +0 -0
  40. data/vendor/click/testing.py +322 -0
  41. data/vendor/click/testing.pyc +0 -0
  42. data/vendor/click/types.py +550 -0
  43. data/vendor/click/types.pyc +0 -0
  44. data/vendor/click/utils.py +415 -0
  45. data/vendor/click/utils.pyc +0 -0
  46. data/vendor/click-6.6.dist-info/DESCRIPTION.rst +3 -0
  47. data/vendor/click-6.6.dist-info/INSTALLER +1 -0
  48. data/vendor/click-6.6.dist-info/METADATA +16 -0
  49. data/vendor/click-6.6.dist-info/RECORD +41 -0
  50. data/vendor/click-6.6.dist-info/WHEEL +6 -0
  51. data/vendor/click-6.6.dist-info/metadata.json +1 -0
  52. data/vendor/click-6.6.dist-info/top_level.txt +1 -0
  53. data/vendor/easy_install.py +5 -0
  54. data/vendor/easy_install.pyc +0 -0
  55. data/vendor/pip-9.0.1.dist-info/DESCRIPTION.rst +39 -0
  56. data/vendor/pip-9.0.1.dist-info/INSTALLER +1 -0
  57. data/vendor/pip-9.0.1.dist-info/METADATA +69 -0
  58. data/vendor/pip-9.0.1.dist-info/RECORD +501 -0
  59. data/vendor/pip-9.0.1.dist-info/WHEEL +6 -0
  60. data/vendor/pip-9.0.1.dist-info/entry_points.txt +5 -0
  61. data/vendor/pip-9.0.1.dist-info/metadata.json +1 -0
  62. data/vendor/pip-9.0.1.dist-info/top_level.txt +1 -0
  63. data/vendor/pkg_resources/__init__.py +3051 -0
  64. data/vendor/pkg_resources/__init__.pyc +0 -0
  65. data/vendor/pkg_resources/_vendor/__init__.py +0 -0
  66. data/vendor/pkg_resources/_vendor/__init__.pyc +0 -0
  67. data/vendor/pkg_resources/_vendor/appdirs.py +552 -0
  68. data/vendor/pkg_resources/_vendor/appdirs.pyc +0 -0
  69. data/vendor/pkg_resources/_vendor/packaging/__about__.py +21 -0
  70. data/vendor/pkg_resources/_vendor/packaging/__about__.pyc +0 -0
  71. data/vendor/pkg_resources/_vendor/packaging/__init__.py +14 -0
  72. data/vendor/pkg_resources/_vendor/packaging/__init__.pyc +0 -0
  73. data/vendor/pkg_resources/_vendor/packaging/_compat.py +30 -0
  74. data/vendor/pkg_resources/_vendor/packaging/_compat.pyc +0 -0
  75. data/vendor/pkg_resources/_vendor/packaging/_structures.py +68 -0
  76. data/vendor/pkg_resources/_vendor/packaging/_structures.pyc +0 -0
  77. data/vendor/pkg_resources/_vendor/packaging/markers.py +287 -0
  78. data/vendor/pkg_resources/_vendor/packaging/markers.pyc +0 -0
  79. data/vendor/pkg_resources/_vendor/packaging/requirements.py +127 -0
  80. data/vendor/pkg_resources/_vendor/packaging/requirements.pyc +0 -0
  81. data/vendor/pkg_resources/_vendor/packaging/specifiers.py +774 -0
  82. data/vendor/pkg_resources/_vendor/packaging/specifiers.pyc +0 -0
  83. data/vendor/pkg_resources/_vendor/packaging/utils.py +14 -0
  84. data/vendor/pkg_resources/_vendor/packaging/utils.pyc +0 -0
  85. data/vendor/pkg_resources/_vendor/packaging/version.py +393 -0
  86. data/vendor/pkg_resources/_vendor/packaging/version.pyc +0 -0
  87. data/vendor/pkg_resources/_vendor/pyparsing.py +5696 -0
  88. data/vendor/pkg_resources/_vendor/pyparsing.pyc +0 -0
  89. data/vendor/pkg_resources/_vendor/six.py +868 -0
  90. data/vendor/pkg_resources/_vendor/six.pyc +0 -0
  91. data/vendor/pkg_resources/extern/__init__.py +73 -0
  92. data/vendor/pkg_resources/extern/__init__.pyc +0 -0
  93. data/vendor/requests/__init__.py +86 -0
  94. data/vendor/requests/__init__.pyc +0 -0
  95. data/vendor/requests/adapters.py +503 -0
  96. data/vendor/requests/adapters.pyc +0 -0
  97. data/vendor/requests/api.py +148 -0
  98. data/vendor/requests/api.pyc +0 -0
  99. data/vendor/requests/auth.py +252 -0
  100. data/vendor/requests/auth.pyc +0 -0
  101. data/vendor/requests/cacert.pem +5616 -0
  102. data/vendor/requests/certs.py +25 -0
  103. data/vendor/requests/certs.pyc +0 -0
  104. data/vendor/requests/compat.py +66 -0
  105. data/vendor/requests/compat.pyc +0 -0
  106. data/vendor/requests/cookies.py +540 -0
  107. data/vendor/requests/cookies.pyc +0 -0
  108. data/vendor/requests/exceptions.py +114 -0
  109. data/vendor/requests/exceptions.pyc +0 -0
  110. data/vendor/requests/hooks.py +34 -0
  111. data/vendor/requests/hooks.pyc +0 -0
  112. data/vendor/requests/models.py +873 -0
  113. data/vendor/requests/models.pyc +0 -0
  114. data/vendor/requests/packages/__init__.py +36 -0
  115. data/vendor/requests/packages/__init__.pyc +0 -0
  116. data/vendor/requests/packages/chardet/__init__.py +32 -0
  117. data/vendor/requests/packages/chardet/__init__.pyc +0 -0
  118. data/vendor/requests/packages/chardet/big5freq.py +925 -0
  119. data/vendor/requests/packages/chardet/big5freq.pyc +0 -0
  120. data/vendor/requests/packages/chardet/big5prober.py +42 -0
  121. data/vendor/requests/packages/chardet/big5prober.pyc +0 -0
  122. data/vendor/requests/packages/chardet/chardetect.py +80 -0
  123. data/vendor/requests/packages/chardet/chardetect.pyc +0 -0
  124. data/vendor/requests/packages/chardet/chardistribution.py +231 -0
  125. data/vendor/requests/packages/chardet/chardistribution.pyc +0 -0
  126. data/vendor/requests/packages/chardet/charsetgroupprober.py +106 -0
  127. data/vendor/requests/packages/chardet/charsetgroupprober.pyc +0 -0
  128. data/vendor/requests/packages/chardet/charsetprober.py +62 -0
  129. data/vendor/requests/packages/chardet/charsetprober.pyc +0 -0
  130. data/vendor/requests/packages/chardet/codingstatemachine.py +61 -0
  131. data/vendor/requests/packages/chardet/codingstatemachine.pyc +0 -0
  132. data/vendor/requests/packages/chardet/compat.py +34 -0
  133. data/vendor/requests/packages/chardet/compat.pyc +0 -0
  134. data/vendor/requests/packages/chardet/constants.py +39 -0
  135. data/vendor/requests/packages/chardet/constants.pyc +0 -0
  136. data/vendor/requests/packages/chardet/cp949prober.py +44 -0
  137. data/vendor/requests/packages/chardet/cp949prober.pyc +0 -0
  138. data/vendor/requests/packages/chardet/escprober.py +86 -0
  139. data/vendor/requests/packages/chardet/escprober.pyc +0 -0
  140. data/vendor/requests/packages/chardet/escsm.py +242 -0
  141. data/vendor/requests/packages/chardet/escsm.pyc +0 -0
  142. data/vendor/requests/packages/chardet/eucjpprober.py +90 -0
  143. data/vendor/requests/packages/chardet/eucjpprober.pyc +0 -0
  144. data/vendor/requests/packages/chardet/euckrfreq.py +596 -0
  145. data/vendor/requests/packages/chardet/euckrfreq.pyc +0 -0
  146. data/vendor/requests/packages/chardet/euckrprober.py +42 -0
  147. data/vendor/requests/packages/chardet/euckrprober.pyc +0 -0
  148. data/vendor/requests/packages/chardet/euctwfreq.py +428 -0
  149. data/vendor/requests/packages/chardet/euctwfreq.pyc +0 -0
  150. data/vendor/requests/packages/chardet/euctwprober.py +41 -0
  151. data/vendor/requests/packages/chardet/euctwprober.pyc +0 -0
  152. data/vendor/requests/packages/chardet/gb2312freq.py +472 -0
  153. data/vendor/requests/packages/chardet/gb2312freq.pyc +0 -0
  154. data/vendor/requests/packages/chardet/gb2312prober.py +41 -0
  155. data/vendor/requests/packages/chardet/gb2312prober.pyc +0 -0
  156. data/vendor/requests/packages/chardet/hebrewprober.py +283 -0
  157. data/vendor/requests/packages/chardet/hebrewprober.pyc +0 -0
  158. data/vendor/requests/packages/chardet/jisfreq.py +569 -0
  159. data/vendor/requests/packages/chardet/jisfreq.pyc +0 -0
  160. data/vendor/requests/packages/chardet/jpcntx.py +227 -0
  161. data/vendor/requests/packages/chardet/jpcntx.pyc +0 -0
  162. data/vendor/requests/packages/chardet/langbulgarianmodel.py +229 -0
  163. data/vendor/requests/packages/chardet/langbulgarianmodel.pyc +0 -0
  164. data/vendor/requests/packages/chardet/langcyrillicmodel.py +329 -0
  165. data/vendor/requests/packages/chardet/langcyrillicmodel.pyc +0 -0
  166. data/vendor/requests/packages/chardet/langgreekmodel.py +225 -0
  167. data/vendor/requests/packages/chardet/langgreekmodel.pyc +0 -0
  168. data/vendor/requests/packages/chardet/langhebrewmodel.py +201 -0
  169. data/vendor/requests/packages/chardet/langhebrewmodel.pyc +0 -0
  170. data/vendor/requests/packages/chardet/langhungarianmodel.py +225 -0
  171. data/vendor/requests/packages/chardet/langhungarianmodel.pyc +0 -0
  172. data/vendor/requests/packages/chardet/langthaimodel.py +200 -0
  173. data/vendor/requests/packages/chardet/langthaimodel.pyc +0 -0
  174. data/vendor/requests/packages/chardet/latin1prober.py +139 -0
  175. data/vendor/requests/packages/chardet/latin1prober.pyc +0 -0
  176. data/vendor/requests/packages/chardet/mbcharsetprober.py +86 -0
  177. data/vendor/requests/packages/chardet/mbcharsetprober.pyc +0 -0
  178. data/vendor/requests/packages/chardet/mbcsgroupprober.py +54 -0
  179. data/vendor/requests/packages/chardet/mbcsgroupprober.pyc +0 -0
  180. data/vendor/requests/packages/chardet/mbcssm.py +572 -0
  181. data/vendor/requests/packages/chardet/mbcssm.pyc +0 -0
  182. data/vendor/requests/packages/chardet/sbcharsetprober.py +120 -0
  183. data/vendor/requests/packages/chardet/sbcharsetprober.pyc +0 -0
  184. data/vendor/requests/packages/chardet/sbcsgroupprober.py +69 -0
  185. data/vendor/requests/packages/chardet/sbcsgroupprober.pyc +0 -0
  186. data/vendor/requests/packages/chardet/sjisprober.py +91 -0
  187. data/vendor/requests/packages/chardet/sjisprober.pyc +0 -0
  188. data/vendor/requests/packages/chardet/universaldetector.py +170 -0
  189. data/vendor/requests/packages/chardet/universaldetector.pyc +0 -0
  190. data/vendor/requests/packages/chardet/utf8prober.py +76 -0
  191. data/vendor/requests/packages/chardet/utf8prober.pyc +0 -0
  192. data/vendor/requests/packages/urllib3/__init__.py +96 -0
  193. data/vendor/requests/packages/urllib3/__init__.pyc +0 -0
  194. data/vendor/requests/packages/urllib3/_collections.py +324 -0
  195. data/vendor/requests/packages/urllib3/_collections.pyc +0 -0
  196. data/vendor/requests/packages/urllib3/connection.py +330 -0
  197. data/vendor/requests/packages/urllib3/connection.pyc +0 -0
  198. data/vendor/requests/packages/urllib3/connectionpool.py +866 -0
  199. data/vendor/requests/packages/urllib3/connectionpool.pyc +0 -0
  200. data/vendor/requests/packages/urllib3/contrib/__init__.py +0 -0
  201. data/vendor/requests/packages/urllib3/contrib/__init__.pyc +0 -0
  202. data/vendor/requests/packages/urllib3/contrib/appengine.py +231 -0
  203. data/vendor/requests/packages/urllib3/contrib/appengine.pyc +0 -0
  204. data/vendor/requests/packages/urllib3/contrib/ntlmpool.py +115 -0
  205. data/vendor/requests/packages/urllib3/contrib/ntlmpool.pyc +0 -0
  206. data/vendor/requests/packages/urllib3/contrib/pyopenssl.py +358 -0
  207. data/vendor/requests/packages/urllib3/contrib/pyopenssl.pyc +0 -0
  208. data/vendor/requests/packages/urllib3/contrib/socks.py +172 -0
  209. data/vendor/requests/packages/urllib3/contrib/socks.pyc +0 -0
  210. data/vendor/requests/packages/urllib3/exceptions.py +209 -0
  211. data/vendor/requests/packages/urllib3/exceptions.pyc +0 -0
  212. data/vendor/requests/packages/urllib3/fields.py +178 -0
  213. data/vendor/requests/packages/urllib3/fields.pyc +0 -0
  214. data/vendor/requests/packages/urllib3/filepost.py +94 -0
  215. data/vendor/requests/packages/urllib3/filepost.pyc +0 -0
  216. data/vendor/requests/packages/urllib3/packages/__init__.py +5 -0
  217. data/vendor/requests/packages/urllib3/packages/__init__.pyc +0 -0
  218. data/vendor/requests/packages/urllib3/packages/ordered_dict.py +259 -0
  219. data/vendor/requests/packages/urllib3/packages/ordered_dict.pyc +0 -0
  220. data/vendor/requests/packages/urllib3/packages/six.py +868 -0
  221. data/vendor/requests/packages/urllib3/packages/six.pyc +0 -0
  222. data/vendor/requests/packages/urllib3/packages/ssl_match_hostname/__init__.py +13 -0
  223. data/vendor/requests/packages/urllib3/packages/ssl_match_hostname/__init__.pyc +0 -0
  224. data/vendor/requests/packages/urllib3/packages/ssl_match_hostname/_implementation.py +105 -0
  225. data/vendor/requests/packages/urllib3/packages/ssl_match_hostname/_implementation.pyc +0 -0
  226. data/vendor/requests/packages/urllib3/poolmanager.py +367 -0
  227. data/vendor/requests/packages/urllib3/poolmanager.pyc +0 -0
  228. data/vendor/requests/packages/urllib3/request.py +151 -0
  229. data/vendor/requests/packages/urllib3/request.pyc +0 -0
  230. data/vendor/requests/packages/urllib3/response.py +530 -0
  231. data/vendor/requests/packages/urllib3/response.pyc +0 -0
  232. data/vendor/requests/packages/urllib3/util/__init__.py +46 -0
  233. data/vendor/requests/packages/urllib3/util/__init__.pyc +0 -0
  234. data/vendor/requests/packages/urllib3/util/connection.py +144 -0
  235. data/vendor/requests/packages/urllib3/util/connection.pyc +0 -0
  236. data/vendor/requests/packages/urllib3/util/request.py +72 -0
  237. data/vendor/requests/packages/urllib3/util/request.pyc +0 -0
  238. data/vendor/requests/packages/urllib3/util/response.py +74 -0
  239. data/vendor/requests/packages/urllib3/util/response.pyc +0 -0
  240. data/vendor/requests/packages/urllib3/util/retry.py +300 -0
  241. data/vendor/requests/packages/urllib3/util/retry.pyc +0 -0
  242. data/vendor/requests/packages/urllib3/util/ssl_.py +320 -0
  243. data/vendor/requests/packages/urllib3/util/ssl_.pyc +0 -0
  244. data/vendor/requests/packages/urllib3/util/timeout.py +242 -0
  245. data/vendor/requests/packages/urllib3/util/timeout.pyc +0 -0
  246. data/vendor/requests/packages/urllib3/util/url.py +217 -0
  247. data/vendor/requests/packages/urllib3/util/url.pyc +0 -0
  248. data/vendor/requests/sessions.py +712 -0
  249. data/vendor/requests/sessions.pyc +0 -0
  250. data/vendor/requests/status_codes.py +91 -0
  251. data/vendor/requests/status_codes.pyc +0 -0
  252. data/vendor/requests/structures.py +105 -0
  253. data/vendor/requests/structures.pyc +0 -0
  254. data/vendor/requests/utils.py +817 -0
  255. data/vendor/requests/utils.pyc +0 -0
  256. data/vendor/requests-2.11.1.dist-info/DESCRIPTION.rst +1294 -0
  257. data/vendor/requests-2.11.1.dist-info/INSTALLER +1 -0
  258. data/vendor/requests-2.11.1.dist-info/METADATA +1323 -0
  259. data/vendor/requests-2.11.1.dist-info/RECORD +170 -0
  260. data/vendor/requests-2.11.1.dist-info/WHEEL +6 -0
  261. data/vendor/requests-2.11.1.dist-info/metadata.json +1 -0
  262. data/vendor/requests-2.11.1.dist-info/top_level.txt +1 -0
  263. data/vendor/rigid/__init__.py +1 -0
  264. data/vendor/rigid/__init__.pyc +0 -0
  265. data/vendor/rigid/api.py +129 -0
  266. data/vendor/rigid/api.pyc +0 -0
  267. data/vendor/rigid/commands/__init__.py +260 -0
  268. data/vendor/rigid/commands/__init__.pyc +0 -0
  269. data/vendor/rigid/commands/deploy.py +0 -0
  270. data/vendor/rigid/commands/deploy.pyc +0 -0
  271. data/vendor/rigid/deploy.py +70 -0
  272. data/vendor/rigid/deploy.pyc +0 -0
  273. data/vendor/rigid/file_scanner.py +63 -0
  274. data/vendor/rigid/file_scanner.pyc +0 -0
  275. data/vendor/rigid/utils.py +17 -0
  276. data/vendor/rigid/utils.pyc +0 -0
  277. data/vendor/rigid-0.2.0.dist-info/DESCRIPTION.rst +3 -0
  278. data/vendor/rigid-0.2.0.dist-info/INSTALLER +1 -0
  279. data/vendor/rigid-0.2.0.dist-info/METADATA +23 -0
  280. data/vendor/rigid-0.2.0.dist-info/RECORD +49 -0
  281. data/vendor/rigid-0.2.0.dist-info/WHEEL +5 -0
  282. data/vendor/rigid-0.2.0.dist-info/entry_points.txt +3 -0
  283. data/vendor/rigid-0.2.0.dist-info/metadata.json +1 -0
  284. data/vendor/rigid-0.2.0.dist-info/top_level.txt +2 -0
  285. data/vendor/setuptools-28.8.0.dist-info/DESCRIPTION.rst +243 -0
  286. data/vendor/setuptools-28.8.0.dist-info/INSTALLER +1 -0
  287. data/vendor/setuptools-28.8.0.dist-info/METADATA +272 -0
  288. data/vendor/setuptools-28.8.0.dist-info/RECORD +143 -0
  289. data/vendor/setuptools-28.8.0.dist-info/WHEEL +6 -0
  290. data/vendor/setuptools-28.8.0.dist-info/dependency_links.txt +2 -0
  291. data/vendor/setuptools-28.8.0.dist-info/entry_points.txt +63 -0
  292. data/vendor/setuptools-28.8.0.dist-info/metadata.json +1 -0
  293. data/vendor/setuptools-28.8.0.dist-info/top_level.txt +3 -0
  294. data/vendor/setuptools-28.8.0.dist-info/zip-safe +1 -0
  295. data/vendor/tests/__init__.py +0 -0
  296. data/vendor/tests/__init__.pyc +0 -0
  297. data/vendor/tests/integration/__init__.py +0 -0
  298. data/vendor/tests/integration/__init__.pyc +0 -0
  299. data/vendor/tests/integration/test_app.py +63 -0
  300. data/vendor/tests/integration/test_app.pyc +0 -0
  301. data/vendor/tests/integration/test_apps.py +27 -0
  302. data/vendor/tests/integration/test_apps.pyc +0 -0
  303. data/vendor/tests/integration/test_deploy.py +128 -0
  304. data/vendor/tests/integration/test_deploy.pyc +0 -0
  305. data/vendor/tests/integration/test_domains.py +35 -0
  306. data/vendor/tests/integration/test_domains.pyc +0 -0
  307. data/vendor/tests/integration/test_login.py +37 -0
  308. data/vendor/tests/integration/test_login.pyc +0 -0
  309. data/vendor/tests/integration/test_promote.py +24 -0
  310. data/vendor/tests/integration/test_promote.pyc +0 -0
  311. data/vendor/tests/integration/test_token.py +33 -0
  312. data/vendor/tests/integration/test_token.pyc +0 -0
  313. data/vendor/tests/integration/test_whoami.py +24 -0
  314. data/vendor/tests/integration/test_whoami.pyc +0 -0
  315. data/vendor/tests/test_deploy.py +33 -0
  316. data/vendor/tests/test_deploy.pyc +0 -0
  317. data/vendor/tests/test_file_scanner.py +89 -0
  318. data/vendor/tests/test_file_scanner.pyc +0 -0
  319. data/vendor/tests/utils.py +78 -0
  320. data/vendor/tests/utils.pyc +0 -0
  321. data/vendor/wheel-0.30.0a0.dist-info/DESCRIPTION.rst +325 -0
  322. data/vendor/wheel-0.30.0a0.dist-info/INSTALLER +1 -0
  323. data/vendor/wheel-0.30.0a0.dist-info/LICENSE.txt +22 -0
  324. data/vendor/wheel-0.30.0a0.dist-info/METADATA +357 -0
  325. data/vendor/wheel-0.30.0a0.dist-info/RECORD +86 -0
  326. data/vendor/wheel-0.30.0a0.dist-info/WHEEL +6 -0
  327. data/vendor/wheel-0.30.0a0.dist-info/entry_points.txt +6 -0
  328. data/vendor/wheel-0.30.0a0.dist-info/metadata.json +1 -0
  329. data/vendor/wheel-0.30.0a0.dist-info/top_level.txt +1 -0
  330. data/vendor/yaml/__init__.py +315 -0
  331. data/vendor/yaml/__init__.pyc +0 -0
  332. data/vendor/yaml/composer.py +139 -0
  333. data/vendor/yaml/composer.pyc +0 -0
  334. data/vendor/yaml/constructor.py +675 -0
  335. data/vendor/yaml/constructor.pyc +0 -0
  336. data/vendor/yaml/cyaml.py +85 -0
  337. data/vendor/yaml/cyaml.pyc +0 -0
  338. data/vendor/yaml/dumper.py +62 -0
  339. data/vendor/yaml/dumper.pyc +0 -0
  340. data/vendor/yaml/emitter.py +1140 -0
  341. data/vendor/yaml/emitter.pyc +0 -0
  342. data/vendor/yaml/error.py +75 -0
  343. data/vendor/yaml/error.pyc +0 -0
  344. data/vendor/yaml/events.py +86 -0
  345. data/vendor/yaml/events.pyc +0 -0
  346. data/vendor/yaml/loader.py +40 -0
  347. data/vendor/yaml/loader.pyc +0 -0
  348. data/vendor/yaml/nodes.py +49 -0
  349. data/vendor/yaml/nodes.pyc +0 -0
  350. data/vendor/yaml/parser.py +589 -0
  351. data/vendor/yaml/parser.pyc +0 -0
  352. data/vendor/yaml/reader.py +190 -0
  353. data/vendor/yaml/reader.pyc +0 -0
  354. data/vendor/yaml/representer.py +486 -0
  355. data/vendor/yaml/representer.pyc +0 -0
  356. data/vendor/yaml/resolver.py +227 -0
  357. data/vendor/yaml/resolver.pyc +0 -0
  358. data/vendor/yaml/scanner.py +1453 -0
  359. data/vendor/yaml/scanner.pyc +0 -0
  360. data/vendor/yaml/serializer.py +111 -0
  361. data/vendor/yaml/serializer.pyc +0 -0
  362. data/vendor/yaml/tokens.py +104 -0
  363. data/vendor/yaml/tokens.pyc +0 -0
  364. metadata +407 -0
@@ -0,0 +1,231 @@
1
+ from __future__ import absolute_import
2
+ import logging
3
+ import os
4
+ import warnings
5
+
6
+ from ..exceptions import (
7
+ HTTPError,
8
+ HTTPWarning,
9
+ MaxRetryError,
10
+ ProtocolError,
11
+ TimeoutError,
12
+ SSLError
13
+ )
14
+
15
+ from ..packages.six import BytesIO
16
+ from ..request import RequestMethods
17
+ from ..response import HTTPResponse
18
+ from ..util.timeout import Timeout
19
+ from ..util.retry import Retry
20
+
21
+ try:
22
+ from google.appengine.api import urlfetch
23
+ except ImportError:
24
+ urlfetch = None
25
+
26
+
27
+ log = logging.getLogger(__name__)
28
+
29
+
30
+ class AppEnginePlatformWarning(HTTPWarning):
31
+ pass
32
+
33
+
34
+ class AppEnginePlatformError(HTTPError):
35
+ pass
36
+
37
+
38
+ class AppEngineManager(RequestMethods):
39
+ """
40
+ Connection manager for Google App Engine sandbox applications.
41
+
42
+ This manager uses the URLFetch service directly instead of using the
43
+ emulated httplib, and is subject to URLFetch limitations as described in
44
+ the App Engine documentation here:
45
+
46
+ https://cloud.google.com/appengine/docs/python/urlfetch
47
+
48
+ Notably it will raise an AppEnginePlatformError if:
49
+ * URLFetch is not available.
50
+ * If you attempt to use this on GAEv2 (Managed VMs), as full socket
51
+ support is available.
52
+ * If a request size is more than 10 megabytes.
53
+ * If a response size is more than 32 megabtyes.
54
+ * If you use an unsupported request method such as OPTIONS.
55
+
56
+ Beyond those cases, it will raise normal urllib3 errors.
57
+ """
58
+
59
+ def __init__(self, headers=None, retries=None, validate_certificate=True):
60
+ if not urlfetch:
61
+ raise AppEnginePlatformError(
62
+ "URLFetch is not available in this environment.")
63
+
64
+ if is_prod_appengine_mvms():
65
+ raise AppEnginePlatformError(
66
+ "Use normal urllib3.PoolManager instead of AppEngineManager"
67
+ "on Managed VMs, as using URLFetch is not necessary in "
68
+ "this environment.")
69
+
70
+ warnings.warn(
71
+ "urllib3 is using URLFetch on Google App Engine sandbox instead "
72
+ "of sockets. To use sockets directly instead of URLFetch see "
73
+ "https://urllib3.readthedocs.io/en/latest/contrib.html.",
74
+ AppEnginePlatformWarning)
75
+
76
+ RequestMethods.__init__(self, headers)
77
+ self.validate_certificate = validate_certificate
78
+
79
+ self.retries = retries or Retry.DEFAULT
80
+
81
+ def __enter__(self):
82
+ return self
83
+
84
+ def __exit__(self, exc_type, exc_val, exc_tb):
85
+ # Return False to re-raise any potential exceptions
86
+ return False
87
+
88
+ def urlopen(self, method, url, body=None, headers=None,
89
+ retries=None, redirect=True, timeout=Timeout.DEFAULT_TIMEOUT,
90
+ **response_kw):
91
+
92
+ retries = self._get_retries(retries, redirect)
93
+
94
+ try:
95
+ response = urlfetch.fetch(
96
+ url,
97
+ payload=body,
98
+ method=method,
99
+ headers=headers or {},
100
+ allow_truncated=False,
101
+ follow_redirects=(
102
+ redirect and
103
+ retries.redirect != 0 and
104
+ retries.total),
105
+ deadline=self._get_absolute_timeout(timeout),
106
+ validate_certificate=self.validate_certificate,
107
+ )
108
+ except urlfetch.DeadlineExceededError as e:
109
+ raise TimeoutError(self, e)
110
+
111
+ except urlfetch.InvalidURLError as e:
112
+ if 'too large' in str(e):
113
+ raise AppEnginePlatformError(
114
+ "URLFetch request too large, URLFetch only "
115
+ "supports requests up to 10mb in size.", e)
116
+ raise ProtocolError(e)
117
+
118
+ except urlfetch.DownloadError as e:
119
+ if 'Too many redirects' in str(e):
120
+ raise MaxRetryError(self, url, reason=e)
121
+ raise ProtocolError(e)
122
+
123
+ except urlfetch.ResponseTooLargeError as e:
124
+ raise AppEnginePlatformError(
125
+ "URLFetch response too large, URLFetch only supports"
126
+ "responses up to 32mb in size.", e)
127
+
128
+ except urlfetch.SSLCertificateError as e:
129
+ raise SSLError(e)
130
+
131
+ except urlfetch.InvalidMethodError as e:
132
+ raise AppEnginePlatformError(
133
+ "URLFetch does not support method: %s" % method, e)
134
+
135
+ http_response = self._urlfetch_response_to_http_response(
136
+ response, **response_kw)
137
+
138
+ # Check for redirect response
139
+ if (http_response.get_redirect_location() and
140
+ retries.raise_on_redirect and redirect):
141
+ raise MaxRetryError(self, url, "too many redirects")
142
+
143
+ # Check if we should retry the HTTP response.
144
+ if retries.is_forced_retry(method, status_code=http_response.status):
145
+ retries = retries.increment(
146
+ method, url, response=http_response, _pool=self)
147
+ log.info("Forced retry: %s", url)
148
+ retries.sleep()
149
+ return self.urlopen(
150
+ method, url,
151
+ body=body, headers=headers,
152
+ retries=retries, redirect=redirect,
153
+ timeout=timeout, **response_kw)
154
+
155
+ return http_response
156
+
157
+ def _urlfetch_response_to_http_response(self, urlfetch_resp, **response_kw):
158
+
159
+ if is_prod_appengine():
160
+ # Production GAE handles deflate encoding automatically, but does
161
+ # not remove the encoding header.
162
+ content_encoding = urlfetch_resp.headers.get('content-encoding')
163
+
164
+ if content_encoding == 'deflate':
165
+ del urlfetch_resp.headers['content-encoding']
166
+
167
+ transfer_encoding = urlfetch_resp.headers.get('transfer-encoding')
168
+ # We have a full response's content,
169
+ # so let's make sure we don't report ourselves as chunked data.
170
+ if transfer_encoding == 'chunked':
171
+ encodings = transfer_encoding.split(",")
172
+ encodings.remove('chunked')
173
+ urlfetch_resp.headers['transfer-encoding'] = ','.join(encodings)
174
+
175
+ return HTTPResponse(
176
+ # In order for decoding to work, we must present the content as
177
+ # a file-like object.
178
+ body=BytesIO(urlfetch_resp.content),
179
+ headers=urlfetch_resp.headers,
180
+ status=urlfetch_resp.status_code,
181
+ **response_kw
182
+ )
183
+
184
+ def _get_absolute_timeout(self, timeout):
185
+ if timeout is Timeout.DEFAULT_TIMEOUT:
186
+ return 5 # 5s is the default timeout for URLFetch.
187
+ if isinstance(timeout, Timeout):
188
+ if timeout._read is not timeout._connect:
189
+ warnings.warn(
190
+ "URLFetch does not support granular timeout settings, "
191
+ "reverting to total timeout.", AppEnginePlatformWarning)
192
+ return timeout.total
193
+ return timeout
194
+
195
+ def _get_retries(self, retries, redirect):
196
+ if not isinstance(retries, Retry):
197
+ retries = Retry.from_int(
198
+ retries, redirect=redirect, default=self.retries)
199
+
200
+ if retries.connect or retries.read or retries.redirect:
201
+ warnings.warn(
202
+ "URLFetch only supports total retries and does not "
203
+ "recognize connect, read, or redirect retry parameters.",
204
+ AppEnginePlatformWarning)
205
+
206
+ return retries
207
+
208
+
209
+ def is_appengine():
210
+ return (is_local_appengine() or
211
+ is_prod_appengine() or
212
+ is_prod_appengine_mvms())
213
+
214
+
215
+ def is_appengine_sandbox():
216
+ return is_appengine() and not is_prod_appengine_mvms()
217
+
218
+
219
+ def is_local_appengine():
220
+ return ('APPENGINE_RUNTIME' in os.environ and
221
+ 'Development/' in os.environ['SERVER_SOFTWARE'])
222
+
223
+
224
+ def is_prod_appengine():
225
+ return ('APPENGINE_RUNTIME' in os.environ and
226
+ 'Google App Engine/' in os.environ['SERVER_SOFTWARE'] and
227
+ not is_prod_appengine_mvms())
228
+
229
+
230
+ def is_prod_appengine_mvms():
231
+ return os.environ.get('GAE_VM', False) == 'true'
@@ -0,0 +1,115 @@
1
+ """
2
+ NTLM authenticating pool, contributed by erikcederstran
3
+
4
+ Issue #10, see: http://code.google.com/p/urllib3/issues/detail?id=10
5
+ """
6
+ from __future__ import absolute_import
7
+
8
+ try:
9
+ from http.client import HTTPSConnection
10
+ except ImportError:
11
+ from httplib import HTTPSConnection
12
+ from logging import getLogger
13
+ from ntlm import ntlm
14
+
15
+ from urllib3 import HTTPSConnectionPool
16
+
17
+
18
+ log = getLogger(__name__)
19
+
20
+
21
+ class NTLMConnectionPool(HTTPSConnectionPool):
22
+ """
23
+ Implements an NTLM authentication version of an urllib3 connection pool
24
+ """
25
+
26
+ scheme = 'https'
27
+
28
+ def __init__(self, user, pw, authurl, *args, **kwargs):
29
+ """
30
+ authurl is a random URL on the server that is protected by NTLM.
31
+ user is the Windows user, probably in the DOMAIN\\username format.
32
+ pw is the password for the user.
33
+ """
34
+ super(NTLMConnectionPool, self).__init__(*args, **kwargs)
35
+ self.authurl = authurl
36
+ self.rawuser = user
37
+ user_parts = user.split('\\', 1)
38
+ self.domain = user_parts[0].upper()
39
+ self.user = user_parts[1]
40
+ self.pw = pw
41
+
42
+ def _new_conn(self):
43
+ # Performs the NTLM handshake that secures the connection. The socket
44
+ # must be kept open while requests are performed.
45
+ self.num_connections += 1
46
+ log.debug('Starting NTLM HTTPS connection no. %d: https://%s%s',
47
+ self.num_connections, self.host, self.authurl)
48
+
49
+ headers = {}
50
+ headers['Connection'] = 'Keep-Alive'
51
+ req_header = 'Authorization'
52
+ resp_header = 'www-authenticate'
53
+
54
+ conn = HTTPSConnection(host=self.host, port=self.port)
55
+
56
+ # Send negotiation message
57
+ headers[req_header] = (
58
+ 'NTLM %s' % ntlm.create_NTLM_NEGOTIATE_MESSAGE(self.rawuser))
59
+ log.debug('Request headers: %s', headers)
60
+ conn.request('GET', self.authurl, None, headers)
61
+ res = conn.getresponse()
62
+ reshdr = dict(res.getheaders())
63
+ log.debug('Response status: %s %s', res.status, res.reason)
64
+ log.debug('Response headers: %s', reshdr)
65
+ log.debug('Response data: %s [...]', res.read(100))
66
+
67
+ # Remove the reference to the socket, so that it can not be closed by
68
+ # the response object (we want to keep the socket open)
69
+ res.fp = None
70
+
71
+ # Server should respond with a challenge message
72
+ auth_header_values = reshdr[resp_header].split(', ')
73
+ auth_header_value = None
74
+ for s in auth_header_values:
75
+ if s[:5] == 'NTLM ':
76
+ auth_header_value = s[5:]
77
+ if auth_header_value is None:
78
+ raise Exception('Unexpected %s response header: %s' %
79
+ (resp_header, reshdr[resp_header]))
80
+
81
+ # Send authentication message
82
+ ServerChallenge, NegotiateFlags = \
83
+ ntlm.parse_NTLM_CHALLENGE_MESSAGE(auth_header_value)
84
+ auth_msg = ntlm.create_NTLM_AUTHENTICATE_MESSAGE(ServerChallenge,
85
+ self.user,
86
+ self.domain,
87
+ self.pw,
88
+ NegotiateFlags)
89
+ headers[req_header] = 'NTLM %s' % auth_msg
90
+ log.debug('Request headers: %s', headers)
91
+ conn.request('GET', self.authurl, None, headers)
92
+ res = conn.getresponse()
93
+ log.debug('Response status: %s %s', res.status, res.reason)
94
+ log.debug('Response headers: %s', dict(res.getheaders()))
95
+ log.debug('Response data: %s [...]', res.read()[:100])
96
+ if res.status != 200:
97
+ if res.status == 401:
98
+ raise Exception('Server rejected request: wrong '
99
+ 'username or password')
100
+ raise Exception('Wrong server response: %s %s' %
101
+ (res.status, res.reason))
102
+
103
+ res.fp = None
104
+ log.debug('Connection established')
105
+ return conn
106
+
107
+ def urlopen(self, method, url, body=None, headers=None, retries=3,
108
+ redirect=True, assert_same_host=True):
109
+ if headers is None:
110
+ headers = {}
111
+ headers['Connection'] = 'Keep-Alive'
112
+ return super(NTLMConnectionPool, self).urlopen(method, url, body,
113
+ headers, retries,
114
+ redirect,
115
+ assert_same_host)