com.googler.python 1.0.7 → 1.0.9

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 (354) hide show
  1. package/package.json +4 -2
  2. package/python3.4.2/lib/python3.4/site-packages/pip/__init__.py +1 -277
  3. package/python3.4.2/lib/python3.4/site-packages/pip/__main__.py +19 -7
  4. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/__init__.py +246 -0
  5. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/basecommand.py +373 -0
  6. package/python3.4.2/lib/python3.4/site-packages/pip/{baseparser.py → _internal/baseparser.py} +240 -224
  7. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/build_env.py +92 -0
  8. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/cache.py +202 -0
  9. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/cmdoptions.py +609 -0
  10. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/__init__.py +79 -0
  11. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/check.py +42 -0
  12. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/completion.py +94 -0
  13. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/configuration.py +227 -0
  14. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/download.py +233 -0
  15. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/freeze.py +96 -0
  16. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/hash.py +57 -0
  17. package/python3.4.2/lib/python3.4/site-packages/pip/{commands → _internal/commands}/help.py +36 -33
  18. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/install.py +477 -0
  19. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/list.py +343 -0
  20. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/search.py +135 -0
  21. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/show.py +164 -0
  22. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/uninstall.py +71 -0
  23. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/wheel.py +179 -0
  24. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/compat.py +235 -0
  25. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/configuration.py +378 -0
  26. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/download.py +922 -0
  27. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/exceptions.py +249 -0
  28. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/index.py +1117 -0
  29. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/locations.py +194 -0
  30. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/models/__init__.py +4 -0
  31. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/models/index.py +15 -0
  32. package/python3.4.2/lib/python3.4/site-packages/pip/{_vendor/requests/packages/urllib3/contrib → _internal/operations}/__init__.py +0 -0
  33. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/operations/check.py +106 -0
  34. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/operations/freeze.py +252 -0
  35. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/operations/prepare.py +378 -0
  36. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/pep425tags.py +317 -0
  37. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/req/__init__.py +69 -0
  38. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/req/req_file.py +338 -0
  39. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/req/req_install.py +1115 -0
  40. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/req/req_set.py +164 -0
  41. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/req/req_uninstall.py +455 -0
  42. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/resolve.py +354 -0
  43. package/python3.4.2/lib/python3.4/site-packages/pip/{status_codes.py → _internal/status_codes.py} +8 -6
  44. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/__init__.py +0 -0
  45. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/appdirs.py +258 -0
  46. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/deprecation.py +77 -0
  47. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/encoding.py +33 -0
  48. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/filesystem.py +28 -0
  49. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/glibc.py +84 -0
  50. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/hashes.py +94 -0
  51. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/logging.py +132 -0
  52. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/misc.py +851 -0
  53. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/outdated.py +163 -0
  54. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/packaging.py +70 -0
  55. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/setuptools_build.py +8 -0
  56. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/temp_dir.py +82 -0
  57. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/typing.py +29 -0
  58. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/ui.py +421 -0
  59. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/vcs/__init__.py +471 -0
  60. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/vcs/bazaar.py +113 -0
  61. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/vcs/git.py +311 -0
  62. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/vcs/mercurial.py +105 -0
  63. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/vcs/subversion.py +271 -0
  64. package/python3.4.2/lib/python3.4/site-packages/pip/_internal/wheel.py +817 -0
  65. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/__init__.py +109 -8
  66. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/appdirs.py +604 -0
  67. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/__init__.py +11 -0
  68. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/_cmd.py +60 -0
  69. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/adapter.py +134 -0
  70. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/cache.py +39 -0
  71. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +2 -0
  72. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +133 -0
  73. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +43 -0
  74. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/compat.py +29 -0
  75. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/controller.py +373 -0
  76. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/filewrapper.py +78 -0
  77. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/heuristics.py +138 -0
  78. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/serialize.py +194 -0
  79. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/wrapper.py +27 -0
  80. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/certifi/__init__.py +3 -0
  81. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/certifi/__main__.py +2 -0
  82. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests → certifi}/cacert.pem +1765 -2358
  83. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/certifi/core.py +37 -0
  84. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/__init__.py +39 -32
  85. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/big5freq.py +386 -0
  86. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/big5prober.py +47 -42
  87. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/chardistribution.py +233 -231
  88. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/charsetgroupprober.py +106 -0
  89. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/charsetprober.py +145 -0
  90. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/cli/__init__.py +1 -0
  91. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/cli/chardetect.py +85 -0
  92. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/codingstatemachine.py +88 -0
  93. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/compat.py +34 -34
  94. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/cp949prober.py +49 -44
  95. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/enums.py +76 -0
  96. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/escprober.py +101 -0
  97. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/escsm.py +246 -0
  98. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/eucjpprober.py +92 -0
  99. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/euckrfreq.py +195 -0
  100. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/euckrprober.py +47 -42
  101. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/euctwfreq.py +387 -428
  102. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/euctwprober.py +46 -41
  103. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/gb2312freq.py +283 -472
  104. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/gb2312prober.py +46 -41
  105. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/hebrewprober.py +292 -283
  106. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/jisfreq.py +325 -569
  107. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/jpcntx.py +233 -219
  108. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/langbulgarianmodel.py +228 -229
  109. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/langcyrillicmodel.py +333 -329
  110. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/langgreekmodel.py +225 -225
  111. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/langhebrewmodel.py +200 -201
  112. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/langhungarianmodel.py +225 -225
  113. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/langthaimodel.py +199 -200
  114. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/langturkishmodel.py +193 -0
  115. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/latin1prober.py +145 -139
  116. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/mbcharsetprober.py +91 -0
  117. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/mbcsgroupprober.py +54 -54
  118. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/mbcssm.py +572 -0
  119. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/sbcharsetprober.py +132 -0
  120. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/sbcsgroupprober.py +73 -69
  121. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/sjisprober.py +92 -0
  122. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/universaldetector.py +286 -0
  123. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/utf8prober.py +82 -76
  124. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/version.py +9 -0
  125. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/colorama/__init__.py +7 -7
  126. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/colorama/ansi.py +102 -50
  127. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/colorama/ansitowin32.py +236 -190
  128. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/colorama/initialise.py +82 -56
  129. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/colorama/win32.py +156 -137
  130. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/colorama/winterm.py +162 -120
  131. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/__init__.py +23 -23
  132. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/_backport/__init__.py +6 -6
  133. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/_backport/misc.py +41 -41
  134. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/_backport/shutil.py +761 -761
  135. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/_backport/sysconfig.cfg +84 -84
  136. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/_backport/sysconfig.py +788 -788
  137. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/_backport/tarfile.py +2607 -2607
  138. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/compat.py +1117 -1064
  139. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/database.py +1318 -1301
  140. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/index.py +516 -488
  141. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/locators.py +1292 -1194
  142. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/manifest.py +393 -364
  143. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/markers.py +131 -190
  144. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/metadata.py +1068 -1026
  145. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/resources.py +355 -317
  146. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/scripts.py +415 -323
  147. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/t32.exe +0 -0
  148. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/t64.exe +0 -0
  149. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/util.py +1755 -1575
  150. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/version.py +736 -721
  151. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/w32.exe +0 -0
  152. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/w64.exe +0 -0
  153. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/wheel.py +984 -958
  154. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distro.py +1104 -0
  155. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/__init__.py +35 -23
  156. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/{ihatexml.py → _ihatexml.py} +288 -285
  157. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/{inputstream.py → _inputstream.py} +923 -881
  158. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/{tokenizer.py → _tokenizer.py} +1721 -1731
  159. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/{trie → _trie}/__init__.py +14 -12
  160. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/{trie → _trie}/_base.py +37 -37
  161. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/{trie → _trie}/datrie.py +44 -44
  162. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/{trie → _trie}/py.py +67 -67
  163. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/{utils.py → _utils.py} +124 -82
  164. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/constants.py +2947 -3104
  165. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/filters/alphabeticalattributes.py +29 -20
  166. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/filters/{_base.py → base.py} +12 -12
  167. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/filters/inject_meta_charset.py +73 -65
  168. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/filters/lint.py +93 -93
  169. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/filters/optionaltags.py +207 -205
  170. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/filters/sanitizer.py +896 -12
  171. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/filters/whitespace.py +38 -38
  172. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/html5parser.py +2791 -2713
  173. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/serializer.py +409 -0
  174. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treeadapters/__init__.py +30 -0
  175. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treeadapters/genshi.py +54 -0
  176. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treeadapters/sax.py +50 -44
  177. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treebuilders/__init__.py +88 -76
  178. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treebuilders/{_base.py → base.py} +417 -377
  179. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treebuilders/dom.py +236 -227
  180. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treebuilders/etree.py +340 -337
  181. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treebuilders/etree_lxml.py +366 -369
  182. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treewalkers/__init__.py +154 -57
  183. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treewalkers/{_base.py → base.py} +252 -200
  184. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treewalkers/dom.py +43 -46
  185. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treewalkers/etree.py +130 -138
  186. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treewalkers/{lxmletree.py → etree_lxml.py} +213 -208
  187. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treewalkers/{genshistream.py → genshi.py} +69 -69
  188. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/idna/__init__.py +2 -0
  189. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/idna/codec.py +118 -0
  190. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/idna/compat.py +12 -0
  191. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/idna/core.py +387 -0
  192. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/idna/idnadata.py +1585 -0
  193. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/idna/intranges.py +53 -0
  194. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/idna/package_data.py +2 -0
  195. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/idna/uts46data.py +7634 -0
  196. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/ipaddress.py +2419 -0
  197. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/lockfile/__init__.py +347 -0
  198. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/lockfile/linklockfile.py +73 -0
  199. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/lockfile/mkdirlockfile.py +84 -0
  200. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/lockfile/pidlockfile.py +190 -0
  201. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/lockfile/sqlitelockfile.py +156 -0
  202. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/lockfile/symlinklockfile.py +70 -0
  203. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/msgpack/__init__.py +66 -0
  204. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/msgpack/_version.py +1 -0
  205. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/msgpack/exceptions.py +41 -0
  206. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/msgpack/fallback.py +971 -0
  207. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/packaging/__about__.py +21 -0
  208. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/packaging/__init__.py +14 -0
  209. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/packaging/_compat.py +30 -0
  210. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/packaging/_structures.py +70 -0
  211. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/packaging/markers.py +301 -0
  212. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/packaging/requirements.py +130 -0
  213. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/packaging/specifiers.py +774 -0
  214. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/packaging/utils.py +63 -0
  215. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/packaging/version.py +441 -0
  216. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{pkg_resources.py → pkg_resources/__init__.py} +3125 -2762
  217. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/pkg_resources/py31compat.py +22 -0
  218. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/progress/__init__.py +127 -0
  219. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/progress/bar.py +88 -0
  220. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/progress/counter.py +48 -0
  221. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/progress/helpers.py +91 -0
  222. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/progress/spinner.py +44 -0
  223. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/pyparsing.py +5720 -0
  224. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/pytoml/__init__.py +3 -0
  225. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/pytoml/core.py +13 -0
  226. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/pytoml/parser.py +374 -0
  227. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/pytoml/writer.py +127 -0
  228. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/__init__.py +123 -77
  229. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/__version__.py +14 -0
  230. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/_internal_utils.py +42 -0
  231. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/adapters.py +525 -388
  232. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/api.py +152 -120
  233. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/auth.py +293 -193
  234. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/certs.py +18 -24
  235. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/compat.py +73 -115
  236. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/cookies.py +542 -454
  237. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/exceptions.py +122 -75
  238. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/help.py +120 -0
  239. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/hooks.py +34 -45
  240. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/models.py +948 -803
  241. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages.py +16 -0
  242. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/sessions.py +737 -637
  243. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/status_codes.py +91 -88
  244. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/structures.py +105 -127
  245. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/utils.py +904 -673
  246. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/retrying.py +267 -0
  247. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/six.py +891 -646
  248. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/__init__.py +97 -0
  249. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/_collections.py +319 -0
  250. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/connection.py +373 -0
  251. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/connectionpool.py +905 -710
  252. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  253. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
  254. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +593 -0
  255. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +343 -0
  256. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/contrib/appengine.py +296 -0
  257. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/contrib/ntlmpool.py +112 -120
  258. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +455 -0
  259. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +810 -0
  260. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/contrib/socks.py +188 -0
  261. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/exceptions.py +246 -0
  262. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/fields.py +178 -177
  263. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/filepost.py +94 -100
  264. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/packages/__init__.py +5 -4
  265. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
  266. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +53 -0
  267. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/packages/ordered_dict.py +259 -260
  268. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/packages/six.py +868 -0
  269. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/packages/ssl_match_hostname/__init__.py +19 -13
  270. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/packages/ssl_match_hostname/_implementation.py +157 -105
  271. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/poolmanager.py +440 -0
  272. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/request.py +148 -141
  273. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/response.py +626 -0
  274. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/util/__init__.py +54 -0
  275. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/util/connection.py +130 -0
  276. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/util/request.py +118 -0
  277. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/util/response.py +81 -0
  278. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/util/retry.py +401 -0
  279. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/util/selectors.py +581 -0
  280. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/util/ssl_.py +341 -0
  281. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/util/timeout.py +242 -234
  282. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/util/url.py +230 -162
  283. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/util/wait.py +40 -0
  284. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/webencodings/__init__.py +342 -0
  285. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/webencodings/labels.py +231 -0
  286. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/webencodings/mklabels.py +59 -0
  287. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/webencodings/tests.py +153 -0
  288. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/webencodings/x_user_defined.py +325 -0
  289. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/_markerlib/__init__.py +0 -16
  290. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/_markerlib/markers.py +0 -119
  291. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/sanitizer.py +0 -271
  292. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/serializer/__init__.py +0 -16
  293. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/serializer/htmlserializer.py +0 -320
  294. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treewalkers/pulldom.py +0 -63
  295. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/re-vendor.py +0 -34
  296. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/__init__.py +0 -3
  297. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/big5freq.py +0 -925
  298. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/chardetect.py +0 -46
  299. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/charsetgroupprober.py +0 -106
  300. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/charsetprober.py +0 -62
  301. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/codingstatemachine.py +0 -61
  302. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/constants.py +0 -39
  303. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/escprober.py +0 -86
  304. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/escsm.py +0 -242
  305. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/eucjpprober.py +0 -90
  306. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/euckrfreq.py +0 -596
  307. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/mbcharsetprober.py +0 -86
  308. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/mbcssm.py +0 -575
  309. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/sbcharsetprober.py +0 -120
  310. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/sjisprober.py +0 -91
  311. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/universaldetector.py +0 -170
  312. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/__init__.py +0 -58
  313. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/_collections.py +0 -205
  314. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/connection.py +0 -204
  315. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/contrib/pyopenssl.py +0 -422
  316. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/exceptions.py +0 -126
  317. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/packages/six.py +0 -385
  318. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/poolmanager.py +0 -258
  319. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/response.py +0 -308
  320. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/util/__init__.py +0 -27
  321. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/util/connection.py +0 -45
  322. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/util/request.py +0 -68
  323. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/util/response.py +0 -13
  324. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py +0 -133
  325. package/python3.4.2/lib/python3.4/site-packages/pip/backwardcompat/__init__.py +0 -138
  326. package/python3.4.2/lib/python3.4/site-packages/pip/basecommand.py +0 -201
  327. package/python3.4.2/lib/python3.4/site-packages/pip/cmdoptions.py +0 -371
  328. package/python3.4.2/lib/python3.4/site-packages/pip/commands/__init__.py +0 -88
  329. package/python3.4.2/lib/python3.4/site-packages/pip/commands/bundle.py +0 -42
  330. package/python3.4.2/lib/python3.4/site-packages/pip/commands/completion.py +0 -59
  331. package/python3.4.2/lib/python3.4/site-packages/pip/commands/freeze.py +0 -114
  332. package/python3.4.2/lib/python3.4/site-packages/pip/commands/install.py +0 -314
  333. package/python3.4.2/lib/python3.4/site-packages/pip/commands/list.py +0 -162
  334. package/python3.4.2/lib/python3.4/site-packages/pip/commands/search.py +0 -132
  335. package/python3.4.2/lib/python3.4/site-packages/pip/commands/show.py +0 -80
  336. package/python3.4.2/lib/python3.4/site-packages/pip/commands/uninstall.py +0 -59
  337. package/python3.4.2/lib/python3.4/site-packages/pip/commands/unzip.py +0 -7
  338. package/python3.4.2/lib/python3.4/site-packages/pip/commands/wheel.py +0 -195
  339. package/python3.4.2/lib/python3.4/site-packages/pip/commands/zip.py +0 -351
  340. package/python3.4.2/lib/python3.4/site-packages/pip/download.py +0 -644
  341. package/python3.4.2/lib/python3.4/site-packages/pip/exceptions.py +0 -46
  342. package/python3.4.2/lib/python3.4/site-packages/pip/index.py +0 -990
  343. package/python3.4.2/lib/python3.4/site-packages/pip/locations.py +0 -171
  344. package/python3.4.2/lib/python3.4/site-packages/pip/log.py +0 -276
  345. package/python3.4.2/lib/python3.4/site-packages/pip/pep425tags.py +0 -102
  346. package/python3.4.2/lib/python3.4/site-packages/pip/req.py +0 -1931
  347. package/python3.4.2/lib/python3.4/site-packages/pip/runner.py +0 -18
  348. package/python3.4.2/lib/python3.4/site-packages/pip/util.py +0 -720
  349. package/python3.4.2/lib/python3.4/site-packages/pip/vcs/__init__.py +0 -251
  350. package/python3.4.2/lib/python3.4/site-packages/pip/vcs/bazaar.py +0 -131
  351. package/python3.4.2/lib/python3.4/site-packages/pip/vcs/git.py +0 -194
  352. package/python3.4.2/lib/python3.4/site-packages/pip/vcs/mercurial.py +0 -151
  353. package/python3.4.2/lib/python3.4/site-packages/pip/vcs/subversion.py +0 -273
  354. package/python3.4.2/lib/python3.4/site-packages/pip/wheel.py +0 -560
@@ -1,193 +1,293 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- """
4
- requests.auth
5
- ~~~~~~~~~~~~~
6
-
7
- This module contains the authentication handlers for Requests.
8
- """
9
-
10
- import os
11
- import re
12
- import time
13
- import hashlib
14
-
15
- from base64 import b64encode
16
-
17
- from .compat import urlparse, str
18
- from .cookies import extract_cookies_to_jar
19
- from .utils import parse_dict_header
20
-
21
- CONTENT_TYPE_FORM_URLENCODED = 'application/x-www-form-urlencoded'
22
- CONTENT_TYPE_MULTI_PART = 'multipart/form-data'
23
-
24
-
25
- def _basic_auth_str(username, password):
26
- """Returns a Basic Auth string."""
27
-
28
- return 'Basic ' + b64encode(('%s:%s' % (username, password)).encode('latin1')).strip().decode('latin1')
29
-
30
-
31
- class AuthBase(object):
32
- """Base class that all auth implementations derive from"""
33
-
34
- def __call__(self, r):
35
- raise NotImplementedError('Auth hooks must be callable.')
36
-
37
-
38
- class HTTPBasicAuth(AuthBase):
39
- """Attaches HTTP Basic Authentication to the given Request object."""
40
- def __init__(self, username, password):
41
- self.username = username
42
- self.password = password
43
-
44
- def __call__(self, r):
45
- r.headers['Authorization'] = _basic_auth_str(self.username, self.password)
46
- return r
47
-
48
-
49
- class HTTPProxyAuth(HTTPBasicAuth):
50
- """Attaches HTTP Proxy Authentication to a given Request object."""
51
- def __call__(self, r):
52
- r.headers['Proxy-Authorization'] = _basic_auth_str(self.username, self.password)
53
- return r
54
-
55
-
56
- class HTTPDigestAuth(AuthBase):
57
- """Attaches HTTP Digest Authentication to the given Request object."""
58
- def __init__(self, username, password):
59
- self.username = username
60
- self.password = password
61
- self.last_nonce = ''
62
- self.nonce_count = 0
63
- self.chal = {}
64
- self.pos = None
65
-
66
- def build_digest_header(self, method, url):
67
-
68
- realm = self.chal['realm']
69
- nonce = self.chal['nonce']
70
- qop = self.chal.get('qop')
71
- algorithm = self.chal.get('algorithm')
72
- opaque = self.chal.get('opaque')
73
-
74
- if algorithm is None:
75
- _algorithm = 'MD5'
76
- else:
77
- _algorithm = algorithm.upper()
78
- # lambdas assume digest modules are imported at the top level
79
- if _algorithm == 'MD5' or _algorithm == 'MD5-SESS':
80
- def md5_utf8(x):
81
- if isinstance(x, str):
82
- x = x.encode('utf-8')
83
- return hashlib.md5(x).hexdigest()
84
- hash_utf8 = md5_utf8
85
- elif _algorithm == 'SHA':
86
- def sha_utf8(x):
87
- if isinstance(x, str):
88
- x = x.encode('utf-8')
89
- return hashlib.sha1(x).hexdigest()
90
- hash_utf8 = sha_utf8
91
-
92
- KD = lambda s, d: hash_utf8("%s:%s" % (s, d))
93
-
94
- if hash_utf8 is None:
95
- return None
96
-
97
- # XXX not implemented yet
98
- entdig = None
99
- p_parsed = urlparse(url)
100
- path = p_parsed.path
101
- if p_parsed.query:
102
- path += '?' + p_parsed.query
103
-
104
- A1 = '%s:%s:%s' % (self.username, realm, self.password)
105
- A2 = '%s:%s' % (method, path)
106
-
107
- HA1 = hash_utf8(A1)
108
- HA2 = hash_utf8(A2)
109
-
110
- if nonce == self.last_nonce:
111
- self.nonce_count += 1
112
- else:
113
- self.nonce_count = 1
114
- ncvalue = '%08x' % self.nonce_count
115
- s = str(self.nonce_count).encode('utf-8')
116
- s += nonce.encode('utf-8')
117
- s += time.ctime().encode('utf-8')
118
- s += os.urandom(8)
119
-
120
- cnonce = (hashlib.sha1(s).hexdigest()[:16])
121
- noncebit = "%s:%s:%s:%s:%s" % (nonce, ncvalue, cnonce, qop, HA2)
122
- if _algorithm == 'MD5-SESS':
123
- HA1 = hash_utf8('%s:%s:%s' % (HA1, nonce, cnonce))
124
-
125
- if qop is None:
126
- respdig = KD(HA1, "%s:%s" % (nonce, HA2))
127
- elif qop == 'auth' or 'auth' in qop.split(','):
128
- respdig = KD(HA1, noncebit)
129
- else:
130
- # XXX handle auth-int.
131
- return None
132
-
133
- self.last_nonce = nonce
134
-
135
- # XXX should the partial digests be encoded too?
136
- base = 'username="%s", realm="%s", nonce="%s", uri="%s", ' \
137
- 'response="%s"' % (self.username, realm, nonce, path, respdig)
138
- if opaque:
139
- base += ', opaque="%s"' % opaque
140
- if algorithm:
141
- base += ', algorithm="%s"' % algorithm
142
- if entdig:
143
- base += ', digest="%s"' % entdig
144
- if qop:
145
- base += ', qop="auth", nc=%s, cnonce="%s"' % (ncvalue, cnonce)
146
-
147
- return 'Digest %s' % (base)
148
-
149
- def handle_401(self, r, **kwargs):
150
- """Takes the given response and tries digest-auth, if needed."""
151
-
152
- if self.pos is not None:
153
- # Rewind the file position indicator of the body to where
154
- # it was to resend the request.
155
- r.request.body.seek(self.pos)
156
- num_401_calls = getattr(self, 'num_401_calls', 1)
157
- s_auth = r.headers.get('www-authenticate', '')
158
-
159
- if 'digest' in s_auth.lower() and num_401_calls < 2:
160
-
161
- setattr(self, 'num_401_calls', num_401_calls + 1)
162
- pat = re.compile(r'digest ', flags=re.IGNORECASE)
163
- self.chal = parse_dict_header(pat.sub('', s_auth, count=1))
164
-
165
- # Consume content and release the original connection
166
- # to allow our new request to reuse the same one.
167
- r.content
168
- r.raw.release_conn()
169
- prep = r.request.copy()
170
- extract_cookies_to_jar(prep._cookies, r.request, r.raw)
171
- prep.prepare_cookies(prep._cookies)
172
-
173
- prep.headers['Authorization'] = self.build_digest_header(
174
- prep.method, prep.url)
175
- _r = r.connection.send(prep, **kwargs)
176
- _r.history.append(r)
177
- _r.request = prep
178
-
179
- return _r
180
-
181
- setattr(self, 'num_401_calls', 1)
182
- return r
183
-
184
- def __call__(self, r):
185
- # If we have a saved nonce, skip the 401
186
- if self.last_nonce:
187
- r.headers['Authorization'] = self.build_digest_header(r.method, r.url)
188
- try:
189
- self.pos = r.body.tell()
190
- except AttributeError:
191
- pass
192
- r.register_hook('response', self.handle_401)
193
- return r
1
+ # -*- coding: utf-8 -*-
2
+
3
+ """
4
+ requests.auth
5
+ ~~~~~~~~~~~~~
6
+
7
+ This module contains the authentication handlers for Requests.
8
+ """
9
+
10
+ import os
11
+ import re
12
+ import time
13
+ import hashlib
14
+ import threading
15
+ import warnings
16
+
17
+ from base64 import b64encode
18
+
19
+ from .compat import urlparse, str, basestring
20
+ from .cookies import extract_cookies_to_jar
21
+ from ._internal_utils import to_native_string
22
+ from .utils import parse_dict_header
23
+
24
+ CONTENT_TYPE_FORM_URLENCODED = 'application/x-www-form-urlencoded'
25
+ CONTENT_TYPE_MULTI_PART = 'multipart/form-data'
26
+
27
+
28
+ def _basic_auth_str(username, password):
29
+ """Returns a Basic Auth string."""
30
+
31
+ # "I want us to put a big-ol' comment on top of it that
32
+ # says that this behaviour is dumb but we need to preserve
33
+ # it because people are relying on it."
34
+ # - Lukasa
35
+ #
36
+ # These are here solely to maintain backwards compatibility
37
+ # for things like ints. This will be removed in 3.0.0.
38
+ if not isinstance(username, basestring):
39
+ warnings.warn(
40
+ "Non-string usernames will no longer be supported in Requests "
41
+ "3.0.0. Please convert the object you've passed in ({0!r}) to "
42
+ "a string or bytes object in the near future to avoid "
43
+ "problems.".format(username),
44
+ category=DeprecationWarning,
45
+ )
46
+ username = str(username)
47
+
48
+ if not isinstance(password, basestring):
49
+ warnings.warn(
50
+ "Non-string passwords will no longer be supported in Requests "
51
+ "3.0.0. Please convert the object you've passed in ({0!r}) to "
52
+ "a string or bytes object in the near future to avoid "
53
+ "problems.".format(password),
54
+ category=DeprecationWarning,
55
+ )
56
+ password = str(password)
57
+ # -- End Removal --
58
+
59
+ if isinstance(username, str):
60
+ username = username.encode('latin1')
61
+
62
+ if isinstance(password, str):
63
+ password = password.encode('latin1')
64
+
65
+ authstr = 'Basic ' + to_native_string(
66
+ b64encode(b':'.join((username, password))).strip()
67
+ )
68
+
69
+ return authstr
70
+
71
+
72
+ class AuthBase(object):
73
+ """Base class that all auth implementations derive from"""
74
+
75
+ def __call__(self, r):
76
+ raise NotImplementedError('Auth hooks must be callable.')
77
+
78
+
79
+ class HTTPBasicAuth(AuthBase):
80
+ """Attaches HTTP Basic Authentication to the given Request object."""
81
+
82
+ def __init__(self, username, password):
83
+ self.username = username
84
+ self.password = password
85
+
86
+ def __eq__(self, other):
87
+ return all([
88
+ self.username == getattr(other, 'username', None),
89
+ self.password == getattr(other, 'password', None)
90
+ ])
91
+
92
+ def __ne__(self, other):
93
+ return not self == other
94
+
95
+ def __call__(self, r):
96
+ r.headers['Authorization'] = _basic_auth_str(self.username, self.password)
97
+ return r
98
+
99
+
100
+ class HTTPProxyAuth(HTTPBasicAuth):
101
+ """Attaches HTTP Proxy Authentication to a given Request object."""
102
+
103
+ def __call__(self, r):
104
+ r.headers['Proxy-Authorization'] = _basic_auth_str(self.username, self.password)
105
+ return r
106
+
107
+
108
+ class HTTPDigestAuth(AuthBase):
109
+ """Attaches HTTP Digest Authentication to the given Request object."""
110
+
111
+ def __init__(self, username, password):
112
+ self.username = username
113
+ self.password = password
114
+ # Keep state in per-thread local storage
115
+ self._thread_local = threading.local()
116
+
117
+ def init_per_thread_state(self):
118
+ # Ensure state is initialized just once per-thread
119
+ if not hasattr(self._thread_local, 'init'):
120
+ self._thread_local.init = True
121
+ self._thread_local.last_nonce = ''
122
+ self._thread_local.nonce_count = 0
123
+ self._thread_local.chal = {}
124
+ self._thread_local.pos = None
125
+ self._thread_local.num_401_calls = None
126
+
127
+ def build_digest_header(self, method, url):
128
+ """
129
+ :rtype: str
130
+ """
131
+
132
+ realm = self._thread_local.chal['realm']
133
+ nonce = self._thread_local.chal['nonce']
134
+ qop = self._thread_local.chal.get('qop')
135
+ algorithm = self._thread_local.chal.get('algorithm')
136
+ opaque = self._thread_local.chal.get('opaque')
137
+ hash_utf8 = None
138
+
139
+ if algorithm is None:
140
+ _algorithm = 'MD5'
141
+ else:
142
+ _algorithm = algorithm.upper()
143
+ # lambdas assume digest modules are imported at the top level
144
+ if _algorithm == 'MD5' or _algorithm == 'MD5-SESS':
145
+ def md5_utf8(x):
146
+ if isinstance(x, str):
147
+ x = x.encode('utf-8')
148
+ return hashlib.md5(x).hexdigest()
149
+ hash_utf8 = md5_utf8
150
+ elif _algorithm == 'SHA':
151
+ def sha_utf8(x):
152
+ if isinstance(x, str):
153
+ x = x.encode('utf-8')
154
+ return hashlib.sha1(x).hexdigest()
155
+ hash_utf8 = sha_utf8
156
+
157
+ KD = lambda s, d: hash_utf8("%s:%s" % (s, d))
158
+
159
+ if hash_utf8 is None:
160
+ return None
161
+
162
+ # XXX not implemented yet
163
+ entdig = None
164
+ p_parsed = urlparse(url)
165
+ #: path is request-uri defined in RFC 2616 which should not be empty
166
+ path = p_parsed.path or "/"
167
+ if p_parsed.query:
168
+ path += '?' + p_parsed.query
169
+
170
+ A1 = '%s:%s:%s' % (self.username, realm, self.password)
171
+ A2 = '%s:%s' % (method, path)
172
+
173
+ HA1 = hash_utf8(A1)
174
+ HA2 = hash_utf8(A2)
175
+
176
+ if nonce == self._thread_local.last_nonce:
177
+ self._thread_local.nonce_count += 1
178
+ else:
179
+ self._thread_local.nonce_count = 1
180
+ ncvalue = '%08x' % self._thread_local.nonce_count
181
+ s = str(self._thread_local.nonce_count).encode('utf-8')
182
+ s += nonce.encode('utf-8')
183
+ s += time.ctime().encode('utf-8')
184
+ s += os.urandom(8)
185
+
186
+ cnonce = (hashlib.sha1(s).hexdigest()[:16])
187
+ if _algorithm == 'MD5-SESS':
188
+ HA1 = hash_utf8('%s:%s:%s' % (HA1, nonce, cnonce))
189
+
190
+ if not qop:
191
+ respdig = KD(HA1, "%s:%s" % (nonce, HA2))
192
+ elif qop == 'auth' or 'auth' in qop.split(','):
193
+ noncebit = "%s:%s:%s:%s:%s" % (
194
+ nonce, ncvalue, cnonce, 'auth', HA2
195
+ )
196
+ respdig = KD(HA1, noncebit)
197
+ else:
198
+ # XXX handle auth-int.
199
+ return None
200
+
201
+ self._thread_local.last_nonce = nonce
202
+
203
+ # XXX should the partial digests be encoded too?
204
+ base = 'username="%s", realm="%s", nonce="%s", uri="%s", ' \
205
+ 'response="%s"' % (self.username, realm, nonce, path, respdig)
206
+ if opaque:
207
+ base += ', opaque="%s"' % opaque
208
+ if algorithm:
209
+ base += ', algorithm="%s"' % algorithm
210
+ if entdig:
211
+ base += ', digest="%s"' % entdig
212
+ if qop:
213
+ base += ', qop="auth", nc=%s, cnonce="%s"' % (ncvalue, cnonce)
214
+
215
+ return 'Digest %s' % (base)
216
+
217
+ def handle_redirect(self, r, **kwargs):
218
+ """Reset num_401_calls counter on redirects."""
219
+ if r.is_redirect:
220
+ self._thread_local.num_401_calls = 1
221
+
222
+ def handle_401(self, r, **kwargs):
223
+ """
224
+ Takes the given response and tries digest-auth, if needed.
225
+
226
+ :rtype: requests.Response
227
+ """
228
+
229
+ # If response is not 4xx, do not auth
230
+ # See https://github.com/requests/requests/issues/3772
231
+ if not 400 <= r.status_code < 500:
232
+ self._thread_local.num_401_calls = 1
233
+ return r
234
+
235
+ if self._thread_local.pos is not None:
236
+ # Rewind the file position indicator of the body to where
237
+ # it was to resend the request.
238
+ r.request.body.seek(self._thread_local.pos)
239
+ s_auth = r.headers.get('www-authenticate', '')
240
+
241
+ if 'digest' in s_auth.lower() and self._thread_local.num_401_calls < 2:
242
+
243
+ self._thread_local.num_401_calls += 1
244
+ pat = re.compile(r'digest ', flags=re.IGNORECASE)
245
+ self._thread_local.chal = parse_dict_header(pat.sub('', s_auth, count=1))
246
+
247
+ # Consume content and release the original connection
248
+ # to allow our new request to reuse the same one.
249
+ r.content
250
+ r.close()
251
+ prep = r.request.copy()
252
+ extract_cookies_to_jar(prep._cookies, r.request, r.raw)
253
+ prep.prepare_cookies(prep._cookies)
254
+
255
+ prep.headers['Authorization'] = self.build_digest_header(
256
+ prep.method, prep.url)
257
+ _r = r.connection.send(prep, **kwargs)
258
+ _r.history.append(r)
259
+ _r.request = prep
260
+
261
+ return _r
262
+
263
+ self._thread_local.num_401_calls = 1
264
+ return r
265
+
266
+ def __call__(self, r):
267
+ # Initialize per-thread state, if needed
268
+ self.init_per_thread_state()
269
+ # If we have a saved nonce, skip the 401
270
+ if self._thread_local.last_nonce:
271
+ r.headers['Authorization'] = self.build_digest_header(r.method, r.url)
272
+ try:
273
+ self._thread_local.pos = r.body.tell()
274
+ except AttributeError:
275
+ # In the case of HTTPDigestAuth being reused and the body of
276
+ # the previous request was a file-like object, pos has the
277
+ # file position of the previous body. Ensure it's set to
278
+ # None.
279
+ self._thread_local.pos = None
280
+ r.register_hook('response', self.handle_401)
281
+ r.register_hook('response', self.handle_redirect)
282
+ self._thread_local.num_401_calls = 1
283
+
284
+ return r
285
+
286
+ def __eq__(self, other):
287
+ return all([
288
+ self.username == getattr(other, 'username', None),
289
+ self.password == getattr(other, 'password', None)
290
+ ])
291
+
292
+ def __ne__(self, other):
293
+ return not self == other
@@ -1,24 +1,18 @@
1
- #!/usr/bin/env python
2
- # -*- coding: utf-8 -*-
3
-
4
- """
5
- certs.py
6
- ~~~~~~~~
7
-
8
- This module returns the preferred default CA certificate bundle.
9
-
10
- If you are packaging Requests, e.g., for a Linux distribution or a managed
11
- environment, you can change the definition of where() to return a separately
12
- packaged CA bundle.
13
- """
14
-
15
- import os.path
16
-
17
-
18
- def where():
19
- """Return the preferred certificate bundle."""
20
- # vendored bundle inside Requests
21
- return os.path.join(os.path.dirname(__file__), 'cacert.pem')
22
-
23
- if __name__ == '__main__':
24
- print(where())
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+
4
+ """
5
+ requests.certs
6
+ ~~~~~~~~~~~~~~
7
+
8
+ This module returns the preferred default CA certificate bundle. There is
9
+ only one — the one from the certifi package.
10
+
11
+ If you are packaging Requests, e.g., for a Linux distribution or a managed
12
+ environment, you can change the definition of where() to return a separately
13
+ packaged CA bundle.
14
+ """
15
+ from pip._vendor.certifi import where
16
+
17
+ if __name__ == '__main__':
18
+ print(where())