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,73 @@
1
+ import sys
2
+
3
+
4
+ class VendorImporter:
5
+ """
6
+ A PEP 302 meta path importer for finding optionally-vendored
7
+ or otherwise naturally-installed packages from root_name.
8
+ """
9
+
10
+ def __init__(self, root_name, vendored_names=(), vendor_pkg=None):
11
+ self.root_name = root_name
12
+ self.vendored_names = set(vendored_names)
13
+ self.vendor_pkg = vendor_pkg or root_name.replace('extern', '_vendor')
14
+
15
+ @property
16
+ def search_path(self):
17
+ """
18
+ Search first the vendor package then as a natural package.
19
+ """
20
+ yield self.vendor_pkg + '.'
21
+ yield ''
22
+
23
+ def find_module(self, fullname, path=None):
24
+ """
25
+ Return self when fullname starts with root_name and the
26
+ target module is one vendored through this importer.
27
+ """
28
+ root, base, target = fullname.partition(self.root_name + '.')
29
+ if root:
30
+ return
31
+ if not any(map(target.startswith, self.vendored_names)):
32
+ return
33
+ return self
34
+
35
+ def load_module(self, fullname):
36
+ """
37
+ Iterate over the search path to locate and load fullname.
38
+ """
39
+ root, base, target = fullname.partition(self.root_name + '.')
40
+ for prefix in self.search_path:
41
+ try:
42
+ extant = prefix + target
43
+ __import__(extant)
44
+ mod = sys.modules[extant]
45
+ sys.modules[fullname] = mod
46
+ # mysterious hack:
47
+ # Remove the reference to the extant package/module
48
+ # on later Python versions to cause relative imports
49
+ # in the vendor package to resolve the same modules
50
+ # as those going through this importer.
51
+ if sys.version_info > (3, 3):
52
+ del sys.modules[extant]
53
+ return mod
54
+ except ImportError:
55
+ pass
56
+ else:
57
+ raise ImportError(
58
+ "The '{target}' package is required; "
59
+ "normally this is bundled with this package so if you get "
60
+ "this warning, consult the packager of your "
61
+ "distribution.".format(**locals())
62
+ )
63
+
64
+ def install(self):
65
+ """
66
+ Install this importer into sys.meta_path if not already present.
67
+ """
68
+ if self not in sys.meta_path:
69
+ sys.meta_path.append(self)
70
+
71
+
72
+ names = 'packaging', 'pyparsing', 'six', 'appdirs'
73
+ VendorImporter(__name__, names).install()
@@ -0,0 +1,86 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ # __
4
+ # /__) _ _ _ _ _/ _
5
+ # / ( (- (/ (/ (- _) / _)
6
+ # /
7
+
8
+ """
9
+ Requests HTTP library
10
+ ~~~~~~~~~~~~~~~~~~~~~
11
+
12
+ Requests is an HTTP library, written in Python, for human beings. Basic GET
13
+ usage:
14
+
15
+ >>> import requests
16
+ >>> r = requests.get('https://www.python.org')
17
+ >>> r.status_code
18
+ 200
19
+ >>> 'Python is a programming language' in r.content
20
+ True
21
+
22
+ ... or POST:
23
+
24
+ >>> payload = dict(key1='value1', key2='value2')
25
+ >>> r = requests.post('http://httpbin.org/post', data=payload)
26
+ >>> print(r.text)
27
+ {
28
+ ...
29
+ "form": {
30
+ "key2": "value2",
31
+ "key1": "value1"
32
+ },
33
+ ...
34
+ }
35
+
36
+ The other HTTP methods are supported - see `requests.api`. Full documentation
37
+ is at <http://python-requests.org>.
38
+
39
+ :copyright: (c) 2016 by Kenneth Reitz.
40
+ :license: Apache 2.0, see LICENSE for more details.
41
+ """
42
+
43
+ __title__ = 'requests'
44
+ __version__ = '2.11.1'
45
+ __build__ = 0x021101
46
+ __author__ = 'Kenneth Reitz'
47
+ __license__ = 'Apache 2.0'
48
+ __copyright__ = 'Copyright 2016 Kenneth Reitz'
49
+
50
+ # Attempt to enable urllib3's SNI support, if possible
51
+ try:
52
+ from .packages.urllib3.contrib import pyopenssl
53
+ pyopenssl.inject_into_urllib3()
54
+ except ImportError:
55
+ pass
56
+
57
+ import warnings
58
+
59
+ # urllib3's DependencyWarnings should be silenced.
60
+ from .packages.urllib3.exceptions import DependencyWarning
61
+ warnings.simplefilter('ignore', DependencyWarning)
62
+
63
+ from . import utils
64
+ from .models import Request, Response, PreparedRequest
65
+ from .api import request, get, head, post, patch, put, delete, options
66
+ from .sessions import session, Session
67
+ from .status_codes import codes
68
+ from .exceptions import (
69
+ RequestException, Timeout, URLRequired,
70
+ TooManyRedirects, HTTPError, ConnectionError,
71
+ FileModeWarning, ConnectTimeout, ReadTimeout
72
+ )
73
+
74
+ # Set default logging handler to avoid "No handler found" warnings.
75
+ import logging
76
+ try: # Python 2.7+
77
+ from logging import NullHandler
78
+ except ImportError:
79
+ class NullHandler(logging.Handler):
80
+ def emit(self, record):
81
+ pass
82
+
83
+ logging.getLogger(__name__).addHandler(NullHandler())
84
+
85
+ # FileModeWarnings go off per the default.
86
+ warnings.simplefilter('default', FileModeWarning, append=True)
Binary file
@@ -0,0 +1,503 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ """
4
+ requests.adapters
5
+ ~~~~~~~~~~~~~~~~~
6
+
7
+ This module contains the transport adapters that Requests uses to define
8
+ and maintain connections.
9
+ """
10
+
11
+ import os.path
12
+ import socket
13
+
14
+ from .models import Response
15
+ from .packages.urllib3.poolmanager import PoolManager, proxy_from_url
16
+ from .packages.urllib3.response import HTTPResponse
17
+ from .packages.urllib3.util import Timeout as TimeoutSauce
18
+ from .packages.urllib3.util.retry import Retry
19
+ from .compat import urlparse, basestring
20
+ from .utils import (DEFAULT_CA_BUNDLE_PATH, get_encoding_from_headers,
21
+ prepend_scheme_if_needed, get_auth_from_url, urldefragauth,
22
+ select_proxy, to_native_string)
23
+ from .structures import CaseInsensitiveDict
24
+ from .packages.urllib3.exceptions import ClosedPoolError
25
+ from .packages.urllib3.exceptions import ConnectTimeoutError
26
+ from .packages.urllib3.exceptions import HTTPError as _HTTPError
27
+ from .packages.urllib3.exceptions import MaxRetryError
28
+ from .packages.urllib3.exceptions import NewConnectionError
29
+ from .packages.urllib3.exceptions import ProxyError as _ProxyError
30
+ from .packages.urllib3.exceptions import ProtocolError
31
+ from .packages.urllib3.exceptions import ReadTimeoutError
32
+ from .packages.urllib3.exceptions import SSLError as _SSLError
33
+ from .packages.urllib3.exceptions import ResponseError
34
+ from .cookies import extract_cookies_to_jar
35
+ from .exceptions import (ConnectionError, ConnectTimeout, ReadTimeout, SSLError,
36
+ ProxyError, RetryError, InvalidSchema)
37
+ from .auth import _basic_auth_str
38
+
39
+ try:
40
+ from .packages.urllib3.contrib.socks import SOCKSProxyManager
41
+ except ImportError:
42
+ def SOCKSProxyManager(*args, **kwargs):
43
+ raise InvalidSchema("Missing dependencies for SOCKS support.")
44
+
45
+ DEFAULT_POOLBLOCK = False
46
+ DEFAULT_POOLSIZE = 10
47
+ DEFAULT_RETRIES = 0
48
+ DEFAULT_POOL_TIMEOUT = None
49
+
50
+
51
+ class BaseAdapter(object):
52
+ """The Base Transport Adapter"""
53
+
54
+ def __init__(self):
55
+ super(BaseAdapter, self).__init__()
56
+
57
+ def send(self, request, stream=False, timeout=None, verify=True,
58
+ cert=None, proxies=None):
59
+ """Sends PreparedRequest object. Returns Response object.
60
+
61
+ :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
62
+ :param stream: (optional) Whether to stream the request content.
63
+ :param timeout: (optional) How long to wait for the server to send
64
+ data before giving up, as a float, or a :ref:`(connect timeout,
65
+ read timeout) <timeouts>` tuple.
66
+ :type timeout: float or tuple
67
+ :param verify: (optional) Whether to verify SSL certificates.
68
+ :param cert: (optional) Any user-provided SSL certificate to be trusted.
69
+ :param proxies: (optional) The proxies dictionary to apply to the request.
70
+ """
71
+ raise NotImplementedError
72
+
73
+ def close(self):
74
+ """Cleans up adapter specific items."""
75
+ raise NotImplementedError
76
+
77
+
78
+ class HTTPAdapter(BaseAdapter):
79
+ """The built-in HTTP Adapter for urllib3.
80
+
81
+ Provides a general-case interface for Requests sessions to contact HTTP and
82
+ HTTPS urls by implementing the Transport Adapter interface. This class will
83
+ usually be created by the :class:`Session <Session>` class under the
84
+ covers.
85
+
86
+ :param pool_connections: The number of urllib3 connection pools to cache.
87
+ :param pool_maxsize: The maximum number of connections to save in the pool.
88
+ :param max_retries: The maximum number of retries each connection
89
+ should attempt. Note, this applies only to failed DNS lookups, socket
90
+ connections and connection timeouts, never to requests where data has
91
+ made it to the server. By default, Requests does not retry failed
92
+ connections. If you need granular control over the conditions under
93
+ which we retry a request, import urllib3's ``Retry`` class and pass
94
+ that instead.
95
+ :param pool_block: Whether the connection pool should block for connections.
96
+
97
+ Usage::
98
+
99
+ >>> import requests
100
+ >>> s = requests.Session()
101
+ >>> a = requests.adapters.HTTPAdapter(max_retries=3)
102
+ >>> s.mount('http://', a)
103
+ """
104
+ __attrs__ = ['max_retries', 'config', '_pool_connections', '_pool_maxsize',
105
+ '_pool_block']
106
+
107
+ def __init__(self, pool_connections=DEFAULT_POOLSIZE,
108
+ pool_maxsize=DEFAULT_POOLSIZE, max_retries=DEFAULT_RETRIES,
109
+ pool_block=DEFAULT_POOLBLOCK):
110
+ if max_retries == DEFAULT_RETRIES:
111
+ self.max_retries = Retry(0, read=False)
112
+ else:
113
+ self.max_retries = Retry.from_int(max_retries)
114
+ self.config = {}
115
+ self.proxy_manager = {}
116
+
117
+ super(HTTPAdapter, self).__init__()
118
+
119
+ self._pool_connections = pool_connections
120
+ self._pool_maxsize = pool_maxsize
121
+ self._pool_block = pool_block
122
+
123
+ self.init_poolmanager(pool_connections, pool_maxsize, block=pool_block)
124
+
125
+ def __getstate__(self):
126
+ return dict((attr, getattr(self, attr, None)) for attr in
127
+ self.__attrs__)
128
+
129
+ def __setstate__(self, state):
130
+ # Can't handle by adding 'proxy_manager' to self.__attrs__ because
131
+ # self.poolmanager uses a lambda function, which isn't pickleable.
132
+ self.proxy_manager = {}
133
+ self.config = {}
134
+
135
+ for attr, value in state.items():
136
+ setattr(self, attr, value)
137
+
138
+ self.init_poolmanager(self._pool_connections, self._pool_maxsize,
139
+ block=self._pool_block)
140
+
141
+ def init_poolmanager(self, connections, maxsize, block=DEFAULT_POOLBLOCK, **pool_kwargs):
142
+ """Initializes a urllib3 PoolManager.
143
+
144
+ This method should not be called from user code, and is only
145
+ exposed for use when subclassing the
146
+ :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`.
147
+
148
+ :param connections: The number of urllib3 connection pools to cache.
149
+ :param maxsize: The maximum number of connections to save in the pool.
150
+ :param block: Block when no free connections are available.
151
+ :param pool_kwargs: Extra keyword arguments used to initialize the Pool Manager.
152
+ """
153
+ # save these values for pickling
154
+ self._pool_connections = connections
155
+ self._pool_maxsize = maxsize
156
+ self._pool_block = block
157
+
158
+ self.poolmanager = PoolManager(num_pools=connections, maxsize=maxsize,
159
+ block=block, strict=True, **pool_kwargs)
160
+
161
+ def proxy_manager_for(self, proxy, **proxy_kwargs):
162
+ """Return urllib3 ProxyManager for the given proxy.
163
+
164
+ This method should not be called from user code, and is only
165
+ exposed for use when subclassing the
166
+ :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`.
167
+
168
+ :param proxy: The proxy to return a urllib3 ProxyManager for.
169
+ :param proxy_kwargs: Extra keyword arguments used to configure the Proxy Manager.
170
+ :returns: ProxyManager
171
+ :rtype: requests.packages.urllib3.ProxyManager
172
+ """
173
+ if proxy in self.proxy_manager:
174
+ manager = self.proxy_manager[proxy]
175
+ elif proxy.lower().startswith('socks'):
176
+ username, password = get_auth_from_url(proxy)
177
+ manager = self.proxy_manager[proxy] = SOCKSProxyManager(
178
+ proxy,
179
+ username=username,
180
+ password=password,
181
+ num_pools=self._pool_connections,
182
+ maxsize=self._pool_maxsize,
183
+ block=self._pool_block,
184
+ **proxy_kwargs
185
+ )
186
+ else:
187
+ proxy_headers = self.proxy_headers(proxy)
188
+ manager = self.proxy_manager[proxy] = proxy_from_url(
189
+ proxy,
190
+ proxy_headers=proxy_headers,
191
+ num_pools=self._pool_connections,
192
+ maxsize=self._pool_maxsize,
193
+ block=self._pool_block,
194
+ **proxy_kwargs)
195
+
196
+ return manager
197
+
198
+ def cert_verify(self, conn, url, verify, cert):
199
+ """Verify a SSL certificate. This method should not be called from user
200
+ code, and is only exposed for use when subclassing the
201
+ :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`.
202
+
203
+ :param conn: The urllib3 connection object associated with the cert.
204
+ :param url: The requested URL.
205
+ :param verify: Whether we should actually verify the certificate.
206
+ :param cert: The SSL certificate to verify.
207
+ """
208
+ if url.lower().startswith('https') and verify:
209
+
210
+ cert_loc = None
211
+
212
+ # Allow self-specified cert location.
213
+ if verify is not True:
214
+ cert_loc = verify
215
+
216
+ if not cert_loc:
217
+ cert_loc = DEFAULT_CA_BUNDLE_PATH
218
+
219
+ if not cert_loc:
220
+ raise Exception("Could not find a suitable SSL CA certificate bundle.")
221
+
222
+ conn.cert_reqs = 'CERT_REQUIRED'
223
+
224
+ if not os.path.isdir(cert_loc):
225
+ conn.ca_certs = cert_loc
226
+ else:
227
+ conn.ca_cert_dir = cert_loc
228
+ else:
229
+ conn.cert_reqs = 'CERT_NONE'
230
+ conn.ca_certs = None
231
+ conn.ca_cert_dir = None
232
+
233
+ if cert:
234
+ if not isinstance(cert, basestring):
235
+ conn.cert_file = cert[0]
236
+ conn.key_file = cert[1]
237
+ else:
238
+ conn.cert_file = cert
239
+
240
+ def build_response(self, req, resp):
241
+ """Builds a :class:`Response <requests.Response>` object from a urllib3
242
+ response. This should not be called from user code, and is only exposed
243
+ for use when subclassing the
244
+ :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`
245
+
246
+ :param req: The :class:`PreparedRequest <PreparedRequest>` used to generate the response.
247
+ :param resp: The urllib3 response object.
248
+ :rtype: requests.Response
249
+ """
250
+ response = Response()
251
+
252
+ # Fallback to None if there's no status_code, for whatever reason.
253
+ response.status_code = getattr(resp, 'status', None)
254
+
255
+ # Make headers case-insensitive.
256
+ response.headers = CaseInsensitiveDict(getattr(resp, 'headers', {}))
257
+
258
+ # Set encoding.
259
+ response.encoding = get_encoding_from_headers(response.headers)
260
+ response.raw = resp
261
+ response.reason = response.raw.reason
262
+
263
+ if isinstance(req.url, bytes):
264
+ response.url = req.url.decode('utf-8')
265
+ else:
266
+ response.url = req.url
267
+
268
+ # Add new cookies from the server.
269
+ extract_cookies_to_jar(response.cookies, req, resp)
270
+
271
+ # Give the Response some context.
272
+ response.request = req
273
+ response.connection = self
274
+
275
+ return response
276
+
277
+ def get_connection(self, url, proxies=None):
278
+ """Returns a urllib3 connection for the given URL. This should not be
279
+ called from user code, and is only exposed for use when subclassing the
280
+ :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`.
281
+
282
+ :param url: The URL to connect to.
283
+ :param proxies: (optional) A Requests-style dictionary of proxies used on this request.
284
+ :rtype: requests.packages.urllib3.ConnectionPool
285
+ """
286
+ proxy = select_proxy(url, proxies)
287
+
288
+ if proxy:
289
+ proxy = prepend_scheme_if_needed(proxy, 'http')
290
+ proxy_manager = self.proxy_manager_for(proxy)
291
+ conn = proxy_manager.connection_from_url(url)
292
+ else:
293
+ # Only scheme should be lower case
294
+ parsed = urlparse(url)
295
+ url = parsed.geturl()
296
+ conn = self.poolmanager.connection_from_url(url)
297
+
298
+ return conn
299
+
300
+ def close(self):
301
+ """Disposes of any internal state.
302
+
303
+ Currently, this closes the PoolManager and any active ProxyManager,
304
+ which closes any pooled connections.
305
+ """
306
+ self.poolmanager.clear()
307
+ for proxy in self.proxy_manager.values():
308
+ proxy.clear()
309
+
310
+ def request_url(self, request, proxies):
311
+ """Obtain the url to use when making the final request.
312
+
313
+ If the message is being sent through a HTTP proxy, the full URL has to
314
+ be used. Otherwise, we should only use the path portion of the URL.
315
+
316
+ This should not be called from user code, and is only exposed for use
317
+ when subclassing the
318
+ :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`.
319
+
320
+ :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
321
+ :param proxies: A dictionary of schemes or schemes and hosts to proxy URLs.
322
+ :rtype: str
323
+ """
324
+ proxy = select_proxy(request.url, proxies)
325
+ scheme = urlparse(request.url).scheme
326
+
327
+ is_proxied_http_request = (proxy and scheme != 'https')
328
+ using_socks_proxy = False
329
+ if proxy:
330
+ proxy_scheme = urlparse(proxy).scheme.lower()
331
+ using_socks_proxy = proxy_scheme.startswith('socks')
332
+
333
+ url = request.path_url
334
+ if is_proxied_http_request and not using_socks_proxy:
335
+ url = urldefragauth(request.url)
336
+
337
+ return url
338
+
339
+ def add_headers(self, request, **kwargs):
340
+ """Add any headers needed by the connection. As of v2.0 this does
341
+ nothing by default, but is left for overriding by users that subclass
342
+ the :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`.
343
+
344
+ This should not be called from user code, and is only exposed for use
345
+ when subclassing the
346
+ :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`.
347
+
348
+ :param request: The :class:`PreparedRequest <PreparedRequest>` to add headers to.
349
+ :param kwargs: The keyword arguments from the call to send().
350
+ """
351
+ pass
352
+
353
+ def proxy_headers(self, proxy):
354
+ """Returns a dictionary of the headers to add to any request sent
355
+ through a proxy. This works with urllib3 magic to ensure that they are
356
+ correctly sent to the proxy, rather than in a tunnelled request if
357
+ CONNECT is being used.
358
+
359
+ This should not be called from user code, and is only exposed for use
360
+ when subclassing the
361
+ :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`.
362
+
363
+ :param proxies: The url of the proxy being used for this request.
364
+ :rtype: dict
365
+ """
366
+ headers = {}
367
+ username, password = get_auth_from_url(proxy)
368
+
369
+ if username and password:
370
+ headers['Proxy-Authorization'] = _basic_auth_str(username,
371
+ password)
372
+
373
+ return headers
374
+
375
+ def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
376
+ """Sends PreparedRequest object. Returns Response object.
377
+
378
+ :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
379
+ :param stream: (optional) Whether to stream the request content.
380
+ :param timeout: (optional) How long to wait for the server to send
381
+ data before giving up, as a float, or a :ref:`(connect timeout,
382
+ read timeout) <timeouts>` tuple.
383
+ :type timeout: float or tuple
384
+ :param verify: (optional) Whether to verify SSL certificates.
385
+ :param cert: (optional) Any user-provided SSL certificate to be trusted.
386
+ :param proxies: (optional) The proxies dictionary to apply to the request.
387
+ :rtype: requests.Response
388
+ """
389
+
390
+ conn = self.get_connection(request.url, proxies)
391
+
392
+ self.cert_verify(conn, request.url, verify, cert)
393
+ url = self.request_url(request, proxies)
394
+ self.add_headers(request)
395
+
396
+ chunked = not (request.body is None or 'Content-Length' in request.headers)
397
+
398
+ if isinstance(timeout, tuple):
399
+ try:
400
+ connect, read = timeout
401
+ timeout = TimeoutSauce(connect=connect, read=read)
402
+ except ValueError as e:
403
+ # this may raise a string formatting error.
404
+ err = ("Invalid timeout {0}. Pass a (connect, read) "
405
+ "timeout tuple, or a single float to set "
406
+ "both timeouts to the same value".format(timeout))
407
+ raise ValueError(err)
408
+ else:
409
+ timeout = TimeoutSauce(connect=timeout, read=timeout)
410
+
411
+ try:
412
+ if not chunked:
413
+ resp = conn.urlopen(
414
+ method=request.method,
415
+ url=url,
416
+ body=request.body,
417
+ headers=request.headers,
418
+ redirect=False,
419
+ assert_same_host=False,
420
+ preload_content=False,
421
+ decode_content=False,
422
+ retries=self.max_retries,
423
+ timeout=timeout
424
+ )
425
+
426
+ # Send the request.
427
+ else:
428
+ if hasattr(conn, 'proxy_pool'):
429
+ conn = conn.proxy_pool
430
+
431
+ low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)
432
+
433
+ try:
434
+ low_conn.putrequest(request.method,
435
+ url,
436
+ skip_accept_encoding=True)
437
+
438
+ for header, value in request.headers.items():
439
+ low_conn.putheader(header, value)
440
+
441
+ low_conn.endheaders()
442
+
443
+ for i in request.body:
444
+ low_conn.send(hex(len(i))[2:].encode('utf-8'))
445
+ low_conn.send(b'\r\n')
446
+ low_conn.send(i)
447
+ low_conn.send(b'\r\n')
448
+ low_conn.send(b'0\r\n\r\n')
449
+
450
+ # Receive the response from the server
451
+ try:
452
+ # For Python 2.7+ versions, use buffering of HTTP
453
+ # responses
454
+ r = low_conn.getresponse(buffering=True)
455
+ except TypeError:
456
+ # For compatibility with Python 2.6 versions and back
457
+ r = low_conn.getresponse()
458
+
459
+ resp = HTTPResponse.from_httplib(
460
+ r,
461
+ pool=conn,
462
+ connection=low_conn,
463
+ preload_content=False,
464
+ decode_content=False
465
+ )
466
+ except:
467
+ # If we hit any problems here, clean up the connection.
468
+ # Then, reraise so that we can handle the actual exception.
469
+ low_conn.close()
470
+ raise
471
+
472
+ except (ProtocolError, socket.error) as err:
473
+ raise ConnectionError(err, request=request)
474
+
475
+ except MaxRetryError as e:
476
+ if isinstance(e.reason, ConnectTimeoutError):
477
+ # TODO: Remove this in 3.0.0: see #2811
478
+ if not isinstance(e.reason, NewConnectionError):
479
+ raise ConnectTimeout(e, request=request)
480
+
481
+ if isinstance(e.reason, ResponseError):
482
+ raise RetryError(e, request=request)
483
+
484
+ if isinstance(e.reason, _ProxyError):
485
+ raise ProxyError(e, request=request)
486
+
487
+ raise ConnectionError(e, request=request)
488
+
489
+ except ClosedPoolError as e:
490
+ raise ConnectionError(e, request=request)
491
+
492
+ except _ProxyError as e:
493
+ raise ProxyError(e)
494
+
495
+ except (_SSLError, _HTTPError) as e:
496
+ if isinstance(e, _SSLError):
497
+ raise SSLError(e, request=request)
498
+ elif isinstance(e, ReadTimeoutError):
499
+ raise ReadTimeout(e, request=request)
500
+ else:
501
+ raise
502
+
503
+ return self.build_response(request, resp)
Binary file