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,530 @@
1
+ from __future__ import absolute_import
2
+ from contextlib import contextmanager
3
+ import zlib
4
+ import io
5
+ from socket import timeout as SocketTimeout
6
+ from socket import error as SocketError
7
+
8
+ from ._collections import HTTPHeaderDict
9
+ from .exceptions import (
10
+ ProtocolError, DecodeError, ReadTimeoutError, ResponseNotChunked
11
+ )
12
+ from .packages.six import string_types as basestring, binary_type, PY3
13
+ from .packages.six.moves import http_client as httplib
14
+ from .connection import HTTPException, BaseSSLError
15
+ from .util.response import is_fp_closed, is_response_to_head
16
+
17
+
18
+ class DeflateDecoder(object):
19
+
20
+ def __init__(self):
21
+ self._first_try = True
22
+ self._data = binary_type()
23
+ self._obj = zlib.decompressobj()
24
+
25
+ def __getattr__(self, name):
26
+ return getattr(self._obj, name)
27
+
28
+ def decompress(self, data):
29
+ if not data:
30
+ return data
31
+
32
+ if not self._first_try:
33
+ return self._obj.decompress(data)
34
+
35
+ self._data += data
36
+ try:
37
+ return self._obj.decompress(data)
38
+ except zlib.error:
39
+ self._first_try = False
40
+ self._obj = zlib.decompressobj(-zlib.MAX_WBITS)
41
+ try:
42
+ return self.decompress(self._data)
43
+ finally:
44
+ self._data = None
45
+
46
+
47
+ class GzipDecoder(object):
48
+
49
+ def __init__(self):
50
+ self._obj = zlib.decompressobj(16 + zlib.MAX_WBITS)
51
+
52
+ def __getattr__(self, name):
53
+ return getattr(self._obj, name)
54
+
55
+ def decompress(self, data):
56
+ if not data:
57
+ return data
58
+ return self._obj.decompress(data)
59
+
60
+
61
+ def _get_decoder(mode):
62
+ if mode == 'gzip':
63
+ return GzipDecoder()
64
+
65
+ return DeflateDecoder()
66
+
67
+
68
+ class HTTPResponse(io.IOBase):
69
+ """
70
+ HTTP Response container.
71
+
72
+ Backwards-compatible to httplib's HTTPResponse but the response ``body`` is
73
+ loaded and decoded on-demand when the ``data`` property is accessed. This
74
+ class is also compatible with the Python standard library's :mod:`io`
75
+ module, and can hence be treated as a readable object in the context of that
76
+ framework.
77
+
78
+ Extra parameters for behaviour not present in httplib.HTTPResponse:
79
+
80
+ :param preload_content:
81
+ If True, the response's body will be preloaded during construction.
82
+
83
+ :param decode_content:
84
+ If True, attempts to decode specific content-encoding's based on headers
85
+ (like 'gzip' and 'deflate') will be skipped and raw data will be used
86
+ instead.
87
+
88
+ :param original_response:
89
+ When this HTTPResponse wrapper is generated from an httplib.HTTPResponse
90
+ object, it's convenient to include the original for debug purposes. It's
91
+ otherwise unused.
92
+ """
93
+
94
+ CONTENT_DECODERS = ['gzip', 'deflate']
95
+ REDIRECT_STATUSES = [301, 302, 303, 307, 308]
96
+
97
+ def __init__(self, body='', headers=None, status=0, version=0, reason=None,
98
+ strict=0, preload_content=True, decode_content=True,
99
+ original_response=None, pool=None, connection=None):
100
+
101
+ if isinstance(headers, HTTPHeaderDict):
102
+ self.headers = headers
103
+ else:
104
+ self.headers = HTTPHeaderDict(headers)
105
+ self.status = status
106
+ self.version = version
107
+ self.reason = reason
108
+ self.strict = strict
109
+ self.decode_content = decode_content
110
+
111
+ self._decoder = None
112
+ self._body = None
113
+ self._fp = None
114
+ self._original_response = original_response
115
+ self._fp_bytes_read = 0
116
+
117
+ if body and isinstance(body, (basestring, binary_type)):
118
+ self._body = body
119
+
120
+ self._pool = pool
121
+ self._connection = connection
122
+
123
+ if hasattr(body, 'read'):
124
+ self._fp = body
125
+
126
+ # Are we using the chunked-style of transfer encoding?
127
+ self.chunked = False
128
+ self.chunk_left = None
129
+ tr_enc = self.headers.get('transfer-encoding', '').lower()
130
+ # Don't incur the penalty of creating a list and then discarding it
131
+ encodings = (enc.strip() for enc in tr_enc.split(","))
132
+ if "chunked" in encodings:
133
+ self.chunked = True
134
+
135
+ # If requested, preload the body.
136
+ if preload_content and not self._body:
137
+ self._body = self.read(decode_content=decode_content)
138
+
139
+ def get_redirect_location(self):
140
+ """
141
+ Should we redirect and where to?
142
+
143
+ :returns: Truthy redirect location string if we got a redirect status
144
+ code and valid location. ``None`` if redirect status and no
145
+ location. ``False`` if not a redirect status code.
146
+ """
147
+ if self.status in self.REDIRECT_STATUSES:
148
+ return self.headers.get('location')
149
+
150
+ return False
151
+
152
+ def release_conn(self):
153
+ if not self._pool or not self._connection:
154
+ return
155
+
156
+ self._pool._put_conn(self._connection)
157
+ self._connection = None
158
+
159
+ @property
160
+ def data(self):
161
+ # For backwords-compat with earlier urllib3 0.4 and earlier.
162
+ if self._body:
163
+ return self._body
164
+
165
+ if self._fp:
166
+ return self.read(cache_content=True)
167
+
168
+ @property
169
+ def connection(self):
170
+ return self._connection
171
+
172
+ def tell(self):
173
+ """
174
+ Obtain the number of bytes pulled over the wire so far. May differ from
175
+ the amount of content returned by :meth:``HTTPResponse.read`` if bytes
176
+ are encoded on the wire (e.g, compressed).
177
+ """
178
+ return self._fp_bytes_read
179
+
180
+ def _init_decoder(self):
181
+ """
182
+ Set-up the _decoder attribute if necessar.
183
+ """
184
+ # Note: content-encoding value should be case-insensitive, per RFC 7230
185
+ # Section 3.2
186
+ content_encoding = self.headers.get('content-encoding', '').lower()
187
+ if self._decoder is None and content_encoding in self.CONTENT_DECODERS:
188
+ self._decoder = _get_decoder(content_encoding)
189
+
190
+ def _decode(self, data, decode_content, flush_decoder):
191
+ """
192
+ Decode the data passed in and potentially flush the decoder.
193
+ """
194
+ try:
195
+ if decode_content and self._decoder:
196
+ data = self._decoder.decompress(data)
197
+ except (IOError, zlib.error) as e:
198
+ content_encoding = self.headers.get('content-encoding', '').lower()
199
+ raise DecodeError(
200
+ "Received response with content-encoding: %s, but "
201
+ "failed to decode it." % content_encoding, e)
202
+
203
+ if flush_decoder and decode_content:
204
+ data += self._flush_decoder()
205
+
206
+ return data
207
+
208
+ def _flush_decoder(self):
209
+ """
210
+ Flushes the decoder. Should only be called if the decoder is actually
211
+ being used.
212
+ """
213
+ if self._decoder:
214
+ buf = self._decoder.decompress(b'')
215
+ return buf + self._decoder.flush()
216
+
217
+ return b''
218
+
219
+ @contextmanager
220
+ def _error_catcher(self):
221
+ """
222
+ Catch low-level python exceptions, instead re-raising urllib3
223
+ variants, so that low-level exceptions are not leaked in the
224
+ high-level api.
225
+
226
+ On exit, release the connection back to the pool.
227
+ """
228
+ clean_exit = False
229
+
230
+ try:
231
+ try:
232
+ yield
233
+
234
+ except SocketTimeout:
235
+ # FIXME: Ideally we'd like to include the url in the ReadTimeoutError but
236
+ # there is yet no clean way to get at it from this context.
237
+ raise ReadTimeoutError(self._pool, None, 'Read timed out.')
238
+
239
+ except BaseSSLError as e:
240
+ # FIXME: Is there a better way to differentiate between SSLErrors?
241
+ if 'read operation timed out' not in str(e): # Defensive:
242
+ # This shouldn't happen but just in case we're missing an edge
243
+ # case, let's avoid swallowing SSL errors.
244
+ raise
245
+
246
+ raise ReadTimeoutError(self._pool, None, 'Read timed out.')
247
+
248
+ except (HTTPException, SocketError) as e:
249
+ # This includes IncompleteRead.
250
+ raise ProtocolError('Connection broken: %r' % e, e)
251
+
252
+ # If no exception is thrown, we should avoid cleaning up
253
+ # unnecessarily.
254
+ clean_exit = True
255
+ finally:
256
+ # If we didn't terminate cleanly, we need to throw away our
257
+ # connection.
258
+ if not clean_exit:
259
+ # The response may not be closed but we're not going to use it
260
+ # anymore so close it now to ensure that the connection is
261
+ # released back to the pool.
262
+ if self._original_response:
263
+ self._original_response.close()
264
+
265
+ # Closing the response may not actually be sufficient to close
266
+ # everything, so if we have a hold of the connection close that
267
+ # too.
268
+ if self._connection:
269
+ self._connection.close()
270
+
271
+ # If we hold the original response but it's closed now, we should
272
+ # return the connection back to the pool.
273
+ if self._original_response and self._original_response.isclosed():
274
+ self.release_conn()
275
+
276
+ def read(self, amt=None, decode_content=None, cache_content=False):
277
+ """
278
+ Similar to :meth:`httplib.HTTPResponse.read`, but with two additional
279
+ parameters: ``decode_content`` and ``cache_content``.
280
+
281
+ :param amt:
282
+ How much of the content to read. If specified, caching is skipped
283
+ because it doesn't make sense to cache partial content as the full
284
+ response.
285
+
286
+ :param decode_content:
287
+ If True, will attempt to decode the body based on the
288
+ 'content-encoding' header.
289
+
290
+ :param cache_content:
291
+ If True, will save the returned data such that the same result is
292
+ returned despite of the state of the underlying file object. This
293
+ is useful if you want the ``.data`` property to continue working
294
+ after having ``.read()`` the file object. (Overridden if ``amt`` is
295
+ set.)
296
+ """
297
+ self._init_decoder()
298
+ if decode_content is None:
299
+ decode_content = self.decode_content
300
+
301
+ if self._fp is None:
302
+ return
303
+
304
+ flush_decoder = False
305
+ data = None
306
+
307
+ with self._error_catcher():
308
+ if amt is None:
309
+ # cStringIO doesn't like amt=None
310
+ data = self._fp.read()
311
+ flush_decoder = True
312
+ else:
313
+ cache_content = False
314
+ data = self._fp.read(amt)
315
+ if amt != 0 and not data: # Platform-specific: Buggy versions of Python.
316
+ # Close the connection when no data is returned
317
+ #
318
+ # This is redundant to what httplib/http.client _should_
319
+ # already do. However, versions of python released before
320
+ # December 15, 2012 (http://bugs.python.org/issue16298) do
321
+ # not properly close the connection in all cases. There is
322
+ # no harm in redundantly calling close.
323
+ self._fp.close()
324
+ flush_decoder = True
325
+
326
+ if data:
327
+ self._fp_bytes_read += len(data)
328
+
329
+ data = self._decode(data, decode_content, flush_decoder)
330
+
331
+ if cache_content:
332
+ self._body = data
333
+
334
+ return data
335
+
336
+ def stream(self, amt=2**16, decode_content=None):
337
+ """
338
+ A generator wrapper for the read() method. A call will block until
339
+ ``amt`` bytes have been read from the connection or until the
340
+ connection is closed.
341
+
342
+ :param amt:
343
+ How much of the content to read. The generator will return up to
344
+ much data per iteration, but may return less. This is particularly
345
+ likely when using compressed data. However, the empty string will
346
+ never be returned.
347
+
348
+ :param decode_content:
349
+ If True, will attempt to decode the body based on the
350
+ 'content-encoding' header.
351
+ """
352
+ if self.chunked:
353
+ for line in self.read_chunked(amt, decode_content=decode_content):
354
+ yield line
355
+ else:
356
+ while not is_fp_closed(self._fp):
357
+ data = self.read(amt=amt, decode_content=decode_content)
358
+
359
+ if data:
360
+ yield data
361
+
362
+ @classmethod
363
+ def from_httplib(ResponseCls, r, **response_kw):
364
+ """
365
+ Given an :class:`httplib.HTTPResponse` instance ``r``, return a
366
+ corresponding :class:`urllib3.response.HTTPResponse` object.
367
+
368
+ Remaining parameters are passed to the HTTPResponse constructor, along
369
+ with ``original_response=r``.
370
+ """
371
+ headers = r.msg
372
+
373
+ if not isinstance(headers, HTTPHeaderDict):
374
+ if PY3: # Python 3
375
+ headers = HTTPHeaderDict(headers.items())
376
+ else: # Python 2
377
+ headers = HTTPHeaderDict.from_httplib(headers)
378
+
379
+ # HTTPResponse objects in Python 3 don't have a .strict attribute
380
+ strict = getattr(r, 'strict', 0)
381
+ resp = ResponseCls(body=r,
382
+ headers=headers,
383
+ status=r.status,
384
+ version=r.version,
385
+ reason=r.reason,
386
+ strict=strict,
387
+ original_response=r,
388
+ **response_kw)
389
+ return resp
390
+
391
+ # Backwards-compatibility methods for httplib.HTTPResponse
392
+ def getheaders(self):
393
+ return self.headers
394
+
395
+ def getheader(self, name, default=None):
396
+ return self.headers.get(name, default)
397
+
398
+ # Overrides from io.IOBase
399
+ def close(self):
400
+ if not self.closed:
401
+ self._fp.close()
402
+
403
+ if self._connection:
404
+ self._connection.close()
405
+
406
+ @property
407
+ def closed(self):
408
+ if self._fp is None:
409
+ return True
410
+ elif hasattr(self._fp, 'closed'):
411
+ return self._fp.closed
412
+ elif hasattr(self._fp, 'isclosed'): # Python 2
413
+ return self._fp.isclosed()
414
+ else:
415
+ return True
416
+
417
+ def fileno(self):
418
+ if self._fp is None:
419
+ raise IOError("HTTPResponse has no file to get a fileno from")
420
+ elif hasattr(self._fp, "fileno"):
421
+ return self._fp.fileno()
422
+ else:
423
+ raise IOError("The file-like object this HTTPResponse is wrapped "
424
+ "around has no file descriptor")
425
+
426
+ def flush(self):
427
+ if self._fp is not None and hasattr(self._fp, 'flush'):
428
+ return self._fp.flush()
429
+
430
+ def readable(self):
431
+ # This method is required for `io` module compatibility.
432
+ return True
433
+
434
+ def readinto(self, b):
435
+ # This method is required for `io` module compatibility.
436
+ temp = self.read(len(b))
437
+ if len(temp) == 0:
438
+ return 0
439
+ else:
440
+ b[:len(temp)] = temp
441
+ return len(temp)
442
+
443
+ def _update_chunk_length(self):
444
+ # First, we'll figure out length of a chunk and then
445
+ # we'll try to read it from socket.
446
+ if self.chunk_left is not None:
447
+ return
448
+ line = self._fp.fp.readline()
449
+ line = line.split(b';', 1)[0]
450
+ try:
451
+ self.chunk_left = int(line, 16)
452
+ except ValueError:
453
+ # Invalid chunked protocol response, abort.
454
+ self.close()
455
+ raise httplib.IncompleteRead(line)
456
+
457
+ def _handle_chunk(self, amt):
458
+ returned_chunk = None
459
+ if amt is None:
460
+ chunk = self._fp._safe_read(self.chunk_left)
461
+ returned_chunk = chunk
462
+ self._fp._safe_read(2) # Toss the CRLF at the end of the chunk.
463
+ self.chunk_left = None
464
+ elif amt < self.chunk_left:
465
+ value = self._fp._safe_read(amt)
466
+ self.chunk_left = self.chunk_left - amt
467
+ returned_chunk = value
468
+ elif amt == self.chunk_left:
469
+ value = self._fp._safe_read(amt)
470
+ self._fp._safe_read(2) # Toss the CRLF at the end of the chunk.
471
+ self.chunk_left = None
472
+ returned_chunk = value
473
+ else: # amt > self.chunk_left
474
+ returned_chunk = self._fp._safe_read(self.chunk_left)
475
+ self._fp._safe_read(2) # Toss the CRLF at the end of the chunk.
476
+ self.chunk_left = None
477
+ return returned_chunk
478
+
479
+ def read_chunked(self, amt=None, decode_content=None):
480
+ """
481
+ Similar to :meth:`HTTPResponse.read`, but with an additional
482
+ parameter: ``decode_content``.
483
+
484
+ :param decode_content:
485
+ If True, will attempt to decode the body based on the
486
+ 'content-encoding' header.
487
+ """
488
+ self._init_decoder()
489
+ # FIXME: Rewrite this method and make it a class with a better structured logic.
490
+ if not self.chunked:
491
+ raise ResponseNotChunked(
492
+ "Response is not chunked. "
493
+ "Header 'transfer-encoding: chunked' is missing.")
494
+
495
+ # Don't bother reading the body of a HEAD request.
496
+ if self._original_response and is_response_to_head(self._original_response):
497
+ self._original_response.close()
498
+ return
499
+
500
+ with self._error_catcher():
501
+ while True:
502
+ self._update_chunk_length()
503
+ if self.chunk_left == 0:
504
+ break
505
+ chunk = self._handle_chunk(amt)
506
+ decoded = self._decode(chunk, decode_content=decode_content,
507
+ flush_decoder=False)
508
+ if decoded:
509
+ yield decoded
510
+
511
+ if decode_content:
512
+ # On CPython and PyPy, we should never need to flush the
513
+ # decoder. However, on Jython we *might* need to, so
514
+ # lets defensively do it anyway.
515
+ decoded = self._flush_decoder()
516
+ if decoded: # Platform-specific: Jython.
517
+ yield decoded
518
+
519
+ # Chunk content ends with \r\n: discard it.
520
+ while True:
521
+ line = self._fp.fp.readline()
522
+ if not line:
523
+ # Some sites may not end with '\r\n'.
524
+ break
525
+ if line == b'\r\n':
526
+ break
527
+
528
+ # We read everything; close the "file".
529
+ if self._original_response:
530
+ self._original_response.close()
@@ -0,0 +1,46 @@
1
+ from __future__ import absolute_import
2
+ # For backwards compatibility, provide imports that used to be here.
3
+ from .connection import is_connection_dropped
4
+ from .request import make_headers
5
+ from .response import is_fp_closed
6
+ from .ssl_ import (
7
+ SSLContext,
8
+ HAS_SNI,
9
+ IS_PYOPENSSL,
10
+ assert_fingerprint,
11
+ resolve_cert_reqs,
12
+ resolve_ssl_version,
13
+ ssl_wrap_socket,
14
+ )
15
+ from .timeout import (
16
+ current_time,
17
+ Timeout,
18
+ )
19
+
20
+ from .retry import Retry
21
+ from .url import (
22
+ get_host,
23
+ parse_url,
24
+ split_first,
25
+ Url,
26
+ )
27
+
28
+ __all__ = (
29
+ 'HAS_SNI',
30
+ 'IS_PYOPENSSL',
31
+ 'SSLContext',
32
+ 'Retry',
33
+ 'Timeout',
34
+ 'Url',
35
+ 'assert_fingerprint',
36
+ 'current_time',
37
+ 'is_connection_dropped',
38
+ 'is_fp_closed',
39
+ 'get_host',
40
+ 'parse_url',
41
+ 'make_headers',
42
+ 'resolve_cert_reqs',
43
+ 'resolve_ssl_version',
44
+ 'split_first',
45
+ 'ssl_wrap_socket',
46
+ )