rigid 0.2.0

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