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,317 +1,355 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2013 Vinay Sajip.
4
- # Licensed to the Python Software Foundation under a contributor agreement.
5
- # See LICENSE.txt and CONTRIBUTORS.txt.
6
- #
7
- from __future__ import unicode_literals
8
-
9
- import bisect
10
- import io
11
- import logging
12
- import os
13
- import pkgutil
14
- import shutil
15
- import sys
16
- import types
17
- import zipimport
18
-
19
- from . import DistlibException
20
- from .util import cached_property, get_cache_base, path_to_cache_dir, Cache
21
-
22
- logger = logging.getLogger(__name__)
23
-
24
-
25
- cache = None # created when needed
26
-
27
-
28
- class ResourceCache(Cache):
29
- def __init__(self, base=None):
30
- if base is None:
31
- # Use native string to avoid issues on 2.x: see Python #20140.
32
- base = os.path.join(get_cache_base(), str('resource-cache'))
33
- super(ResourceCache, self).__init__(base)
34
-
35
- def is_stale(self, resource, path):
36
- """
37
- Is the cache stale for the given resource?
38
-
39
- :param resource: The :class:`Resource` being cached.
40
- :param path: The path of the resource in the cache.
41
- :return: True if the cache is stale.
42
- """
43
- # Cache invalidation is a hard problem :-)
44
- return True
45
-
46
- def get(self, resource):
47
- """
48
- Get a resource into the cache,
49
-
50
- :param resource: A :class:`Resource` instance.
51
- :return: The pathname of the resource in the cache.
52
- """
53
- prefix, path = resource.finder.get_cache_info(resource)
54
- if prefix is None:
55
- result = path
56
- else:
57
- result = os.path.join(self.base, self.prefix_to_dir(prefix), path)
58
- dirname = os.path.dirname(result)
59
- if not os.path.isdir(dirname):
60
- os.makedirs(dirname)
61
- if not os.path.exists(result):
62
- stale = True
63
- else:
64
- stale = self.is_stale(resource, path)
65
- if stale:
66
- # write the bytes of the resource to the cache location
67
- with open(result, 'wb') as f:
68
- f.write(resource.bytes)
69
- return result
70
-
71
-
72
- class ResourceBase(object):
73
- def __init__(self, finder, name):
74
- self.finder = finder
75
- self.name = name
76
-
77
-
78
- class Resource(ResourceBase):
79
- """
80
- A class representing an in-package resource, such as a data file. This is
81
- not normally instantiated by user code, but rather by a
82
- :class:`ResourceFinder` which manages the resource.
83
- """
84
- is_container = False # Backwards compatibility
85
-
86
- def as_stream(self):
87
- """
88
- Get the resource as a stream.
89
-
90
- This is not a property to make it obvious that it returns a new stream
91
- each time.
92
- """
93
- return self.finder.get_stream(self)
94
-
95
- @cached_property
96
- def file_path(self):
97
- global cache
98
- if cache is None:
99
- cache = ResourceCache()
100
- return cache.get(self)
101
-
102
- @cached_property
103
- def bytes(self):
104
- return self.finder.get_bytes(self)
105
-
106
- @cached_property
107
- def size(self):
108
- return self.finder.get_size(self)
109
-
110
-
111
- class ResourceContainer(ResourceBase):
112
- is_container = True # Backwards compatibility
113
-
114
- @cached_property
115
- def resources(self):
116
- return self.finder.get_resources(self)
117
-
118
-
119
- class ResourceFinder(object):
120
- """
121
- Resource finder for file system resources.
122
- """
123
- def __init__(self, module):
124
- self.module = module
125
- self.loader = getattr(module, '__loader__', None)
126
- self.base = os.path.dirname(getattr(module, '__file__', ''))
127
-
128
- def _adjust_path(self, path):
129
- return os.path.realpath(path)
130
-
131
- def _make_path(self, resource_name):
132
- parts = resource_name.split('/')
133
- parts.insert(0, self.base)
134
- result = os.path.join(*parts)
135
- return self._adjust_path(result)
136
-
137
- def _find(self, path):
138
- return os.path.exists(path)
139
-
140
- def get_cache_info(self, resource):
141
- return None, resource.path
142
-
143
- def find(self, resource_name):
144
- path = self._make_path(resource_name)
145
- if not self._find(path):
146
- result = None
147
- else:
148
- if self._is_directory(path):
149
- result = ResourceContainer(self, resource_name)
150
- else:
151
- result = Resource(self, resource_name)
152
- result.path = path
153
- return result
154
-
155
- def get_stream(self, resource):
156
- return open(resource.path, 'rb')
157
-
158
- def get_bytes(self, resource):
159
- with open(resource.path, 'rb') as f:
160
- return f.read()
161
-
162
- def get_size(self, resource):
163
- return os.path.getsize(resource.path)
164
-
165
- def get_resources(self, resource):
166
- def allowed(f):
167
- return f != '__pycache__' and not f.endswith(('.pyc', '.pyo'))
168
- return set([f for f in os.listdir(resource.path) if allowed(f)])
169
-
170
- def is_container(self, resource):
171
- return self._is_directory(resource.path)
172
-
173
- _is_directory = staticmethod(os.path.isdir)
174
-
175
-
176
- class ZipResourceFinder(ResourceFinder):
177
- """
178
- Resource finder for resources in .zip files.
179
- """
180
- def __init__(self, module):
181
- super(ZipResourceFinder, self).__init__(module)
182
- archive = self.loader.archive
183
- self.prefix_len = 1 + len(archive)
184
- # PyPy doesn't have a _files attr on zipimporter, and you can't set one
185
- if hasattr(self.loader, '_files'):
186
- self._files = self.loader._files
187
- else:
188
- self._files = zipimport._zip_directory_cache[archive]
189
- self.index = sorted(self._files)
190
-
191
- def _adjust_path(self, path):
192
- return path
193
-
194
- def _find(self, path):
195
- path = path[self.prefix_len:]
196
- if path in self._files:
197
- result = True
198
- else:
199
- if path and path[-1] != os.sep:
200
- path = path + os.sep
201
- i = bisect.bisect(self.index, path)
202
- try:
203
- result = self.index[i].startswith(path)
204
- except IndexError:
205
- result = False
206
- if not result:
207
- logger.debug('_find failed: %r %r', path, self.loader.prefix)
208
- else:
209
- logger.debug('_find worked: %r %r', path, self.loader.prefix)
210
- return result
211
-
212
- def get_cache_info(self, resource):
213
- prefix = self.loader.archive
214
- path = resource.path[1 + len(prefix):]
215
- return prefix, path
216
-
217
- def get_bytes(self, resource):
218
- return self.loader.get_data(resource.path)
219
-
220
- def get_stream(self, resource):
221
- return io.BytesIO(self.get_bytes(resource))
222
-
223
- def get_size(self, resource):
224
- path = resource.path[self.prefix_len:]
225
- return self._files[path][3]
226
-
227
- def get_resources(self, resource):
228
- path = resource.path[self.prefix_len:]
229
- if path and path[-1] != os.sep:
230
- path += os.sep
231
- plen = len(path)
232
- result = set()
233
- i = bisect.bisect(self.index, path)
234
- while i < len(self.index):
235
- if not self.index[i].startswith(path):
236
- break
237
- s = self.index[i][plen:]
238
- result.add(s.split(os.sep, 1)[0]) # only immediate children
239
- i += 1
240
- return result
241
-
242
- def _is_directory(self, path):
243
- path = path[self.prefix_len:]
244
- if path and path[-1] != os.sep:
245
- path += os.sep
246
- i = bisect.bisect(self.index, path)
247
- try:
248
- result = self.index[i].startswith(path)
249
- except IndexError:
250
- result = False
251
- return result
252
-
253
- _finder_registry = {
254
- type(None): ResourceFinder,
255
- zipimport.zipimporter: ZipResourceFinder
256
- }
257
-
258
- try:
259
- import _frozen_importlib
260
- _finder_registry[_frozen_importlib.SourceFileLoader] = ResourceFinder
261
- _finder_registry[_frozen_importlib.FileFinder] = ResourceFinder
262
- except (ImportError, AttributeError):
263
- pass
264
-
265
-
266
- def register_finder(loader, finder_maker):
267
- _finder_registry[type(loader)] = finder_maker
268
-
269
- _finder_cache = {}
270
-
271
-
272
- def finder(package):
273
- """
274
- Return a resource finder for a package.
275
- :param package: The name of the package.
276
- :return: A :class:`ResourceFinder` instance for the package.
277
- """
278
- if package in _finder_cache:
279
- result = _finder_cache[package]
280
- else:
281
- if package not in sys.modules:
282
- __import__(package)
283
- module = sys.modules[package]
284
- path = getattr(module, '__path__', None)
285
- if path is None:
286
- raise DistlibException('You cannot get a finder for a module, '
287
- 'only for a package')
288
- loader = getattr(module, '__loader__', None)
289
- finder_maker = _finder_registry.get(type(loader))
290
- if finder_maker is None:
291
- raise DistlibException('Unable to locate finder for %r' % package)
292
- result = finder_maker(module)
293
- _finder_cache[package] = result
294
- return result
295
-
296
-
297
- _dummy_module = types.ModuleType(str('__dummy__'))
298
-
299
-
300
- def finder_for_path(path):
301
- """
302
- Return a resource finder for a path, which should represent a container.
303
-
304
- :param path: The path.
305
- :return: A :class:`ResourceFinder` instance for the path.
306
- """
307
- result = None
308
- # calls any path hooks, gets importer into cache
309
- pkgutil.get_importer(path)
310
- loader = sys.path_importer_cache.get(path)
311
- finder = _finder_registry.get(type(loader))
312
- if finder:
313
- module = _dummy_module
314
- module.__file__ = os.path.join(path, '')
315
- module.__loader__ = loader
316
- result = finder(module)
317
- return result
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright (C) 2013-2017 Vinay Sajip.
4
+ # Licensed to the Python Software Foundation under a contributor agreement.
5
+ # See LICENSE.txt and CONTRIBUTORS.txt.
6
+ #
7
+ from __future__ import unicode_literals
8
+
9
+ import bisect
10
+ import io
11
+ import logging
12
+ import os
13
+ import pkgutil
14
+ import shutil
15
+ import sys
16
+ import types
17
+ import zipimport
18
+
19
+ from . import DistlibException
20
+ from .util import cached_property, get_cache_base, path_to_cache_dir, Cache
21
+
22
+ logger = logging.getLogger(__name__)
23
+
24
+
25
+ cache = None # created when needed
26
+
27
+
28
+ class ResourceCache(Cache):
29
+ def __init__(self, base=None):
30
+ if base is None:
31
+ # Use native string to avoid issues on 2.x: see Python #20140.
32
+ base = os.path.join(get_cache_base(), str('resource-cache'))
33
+ super(ResourceCache, self).__init__(base)
34
+
35
+ def is_stale(self, resource, path):
36
+ """
37
+ Is the cache stale for the given resource?
38
+
39
+ :param resource: The :class:`Resource` being cached.
40
+ :param path: The path of the resource in the cache.
41
+ :return: True if the cache is stale.
42
+ """
43
+ # Cache invalidation is a hard problem :-)
44
+ return True
45
+
46
+ def get(self, resource):
47
+ """
48
+ Get a resource into the cache,
49
+
50
+ :param resource: A :class:`Resource` instance.
51
+ :return: The pathname of the resource in the cache.
52
+ """
53
+ prefix, path = resource.finder.get_cache_info(resource)
54
+ if prefix is None:
55
+ result = path
56
+ else:
57
+ result = os.path.join(self.base, self.prefix_to_dir(prefix), path)
58
+ dirname = os.path.dirname(result)
59
+ if not os.path.isdir(dirname):
60
+ os.makedirs(dirname)
61
+ if not os.path.exists(result):
62
+ stale = True
63
+ else:
64
+ stale = self.is_stale(resource, path)
65
+ if stale:
66
+ # write the bytes of the resource to the cache location
67
+ with open(result, 'wb') as f:
68
+ f.write(resource.bytes)
69
+ return result
70
+
71
+
72
+ class ResourceBase(object):
73
+ def __init__(self, finder, name):
74
+ self.finder = finder
75
+ self.name = name
76
+
77
+
78
+ class Resource(ResourceBase):
79
+ """
80
+ A class representing an in-package resource, such as a data file. This is
81
+ not normally instantiated by user code, but rather by a
82
+ :class:`ResourceFinder` which manages the resource.
83
+ """
84
+ is_container = False # Backwards compatibility
85
+
86
+ def as_stream(self):
87
+ """
88
+ Get the resource as a stream.
89
+
90
+ This is not a property to make it obvious that it returns a new stream
91
+ each time.
92
+ """
93
+ return self.finder.get_stream(self)
94
+
95
+ @cached_property
96
+ def file_path(self):
97
+ global cache
98
+ if cache is None:
99
+ cache = ResourceCache()
100
+ return cache.get(self)
101
+
102
+ @cached_property
103
+ def bytes(self):
104
+ return self.finder.get_bytes(self)
105
+
106
+ @cached_property
107
+ def size(self):
108
+ return self.finder.get_size(self)
109
+
110
+
111
+ class ResourceContainer(ResourceBase):
112
+ is_container = True # Backwards compatibility
113
+
114
+ @cached_property
115
+ def resources(self):
116
+ return self.finder.get_resources(self)
117
+
118
+
119
+ class ResourceFinder(object):
120
+ """
121
+ Resource finder for file system resources.
122
+ """
123
+
124
+ if sys.platform.startswith('java'):
125
+ skipped_extensions = ('.pyc', '.pyo', '.class')
126
+ else:
127
+ skipped_extensions = ('.pyc', '.pyo')
128
+
129
+ def __init__(self, module):
130
+ self.module = module
131
+ self.loader = getattr(module, '__loader__', None)
132
+ self.base = os.path.dirname(getattr(module, '__file__', ''))
133
+
134
+ def _adjust_path(self, path):
135
+ return os.path.realpath(path)
136
+
137
+ def _make_path(self, resource_name):
138
+ # Issue #50: need to preserve type of path on Python 2.x
139
+ # like os.path._get_sep
140
+ if isinstance(resource_name, bytes): # should only happen on 2.x
141
+ sep = b'/'
142
+ else:
143
+ sep = '/'
144
+ parts = resource_name.split(sep)
145
+ parts.insert(0, self.base)
146
+ result = os.path.join(*parts)
147
+ return self._adjust_path(result)
148
+
149
+ def _find(self, path):
150
+ return os.path.exists(path)
151
+
152
+ def get_cache_info(self, resource):
153
+ return None, resource.path
154
+
155
+ def find(self, resource_name):
156
+ path = self._make_path(resource_name)
157
+ if not self._find(path):
158
+ result = None
159
+ else:
160
+ if self._is_directory(path):
161
+ result = ResourceContainer(self, resource_name)
162
+ else:
163
+ result = Resource(self, resource_name)
164
+ result.path = path
165
+ return result
166
+
167
+ def get_stream(self, resource):
168
+ return open(resource.path, 'rb')
169
+
170
+ def get_bytes(self, resource):
171
+ with open(resource.path, 'rb') as f:
172
+ return f.read()
173
+
174
+ def get_size(self, resource):
175
+ return os.path.getsize(resource.path)
176
+
177
+ def get_resources(self, resource):
178
+ def allowed(f):
179
+ return (f != '__pycache__' and not
180
+ f.endswith(self.skipped_extensions))
181
+ return set([f for f in os.listdir(resource.path) if allowed(f)])
182
+
183
+ def is_container(self, resource):
184
+ return self._is_directory(resource.path)
185
+
186
+ _is_directory = staticmethod(os.path.isdir)
187
+
188
+ def iterator(self, resource_name):
189
+ resource = self.find(resource_name)
190
+ if resource is not None:
191
+ todo = [resource]
192
+ while todo:
193
+ resource = todo.pop(0)
194
+ yield resource
195
+ if resource.is_container:
196
+ rname = resource.name
197
+ for name in resource.resources:
198
+ if not rname:
199
+ new_name = name
200
+ else:
201
+ new_name = '/'.join([rname, name])
202
+ child = self.find(new_name)
203
+ if child.is_container:
204
+ todo.append(child)
205
+ else:
206
+ yield child
207
+
208
+
209
+ class ZipResourceFinder(ResourceFinder):
210
+ """
211
+ Resource finder for resources in .zip files.
212
+ """
213
+ def __init__(self, module):
214
+ super(ZipResourceFinder, self).__init__(module)
215
+ archive = self.loader.archive
216
+ self.prefix_len = 1 + len(archive)
217
+ # PyPy doesn't have a _files attr on zipimporter, and you can't set one
218
+ if hasattr(self.loader, '_files'):
219
+ self._files = self.loader._files
220
+ else:
221
+ self._files = zipimport._zip_directory_cache[archive]
222
+ self.index = sorted(self._files)
223
+
224
+ def _adjust_path(self, path):
225
+ return path
226
+
227
+ def _find(self, path):
228
+ path = path[self.prefix_len:]
229
+ if path in self._files:
230
+ result = True
231
+ else:
232
+ if path and path[-1] != os.sep:
233
+ path = path + os.sep
234
+ i = bisect.bisect(self.index, path)
235
+ try:
236
+ result = self.index[i].startswith(path)
237
+ except IndexError:
238
+ result = False
239
+ if not result:
240
+ logger.debug('_find failed: %r %r', path, self.loader.prefix)
241
+ else:
242
+ logger.debug('_find worked: %r %r', path, self.loader.prefix)
243
+ return result
244
+
245
+ def get_cache_info(self, resource):
246
+ prefix = self.loader.archive
247
+ path = resource.path[1 + len(prefix):]
248
+ return prefix, path
249
+
250
+ def get_bytes(self, resource):
251
+ return self.loader.get_data(resource.path)
252
+
253
+ def get_stream(self, resource):
254
+ return io.BytesIO(self.get_bytes(resource))
255
+
256
+ def get_size(self, resource):
257
+ path = resource.path[self.prefix_len:]
258
+ return self._files[path][3]
259
+
260
+ def get_resources(self, resource):
261
+ path = resource.path[self.prefix_len:]
262
+ if path and path[-1] != os.sep:
263
+ path += os.sep
264
+ plen = len(path)
265
+ result = set()
266
+ i = bisect.bisect(self.index, path)
267
+ while i < len(self.index):
268
+ if not self.index[i].startswith(path):
269
+ break
270
+ s = self.index[i][plen:]
271
+ result.add(s.split(os.sep, 1)[0]) # only immediate children
272
+ i += 1
273
+ return result
274
+
275
+ def _is_directory(self, path):
276
+ path = path[self.prefix_len:]
277
+ if path and path[-1] != os.sep:
278
+ path += os.sep
279
+ i = bisect.bisect(self.index, path)
280
+ try:
281
+ result = self.index[i].startswith(path)
282
+ except IndexError:
283
+ result = False
284
+ return result
285
+
286
+ _finder_registry = {
287
+ type(None): ResourceFinder,
288
+ zipimport.zipimporter: ZipResourceFinder
289
+ }
290
+
291
+ try:
292
+ # In Python 3.6, _frozen_importlib -> _frozen_importlib_external
293
+ try:
294
+ import _frozen_importlib_external as _fi
295
+ except ImportError:
296
+ import _frozen_importlib as _fi
297
+ _finder_registry[_fi.SourceFileLoader] = ResourceFinder
298
+ _finder_registry[_fi.FileFinder] = ResourceFinder
299
+ del _fi
300
+ except (ImportError, AttributeError):
301
+ pass
302
+
303
+
304
+ def register_finder(loader, finder_maker):
305
+ _finder_registry[type(loader)] = finder_maker
306
+
307
+ _finder_cache = {}
308
+
309
+
310
+ def finder(package):
311
+ """
312
+ Return a resource finder for a package.
313
+ :param package: The name of the package.
314
+ :return: A :class:`ResourceFinder` instance for the package.
315
+ """
316
+ if package in _finder_cache:
317
+ result = _finder_cache[package]
318
+ else:
319
+ if package not in sys.modules:
320
+ __import__(package)
321
+ module = sys.modules[package]
322
+ path = getattr(module, '__path__', None)
323
+ if path is None:
324
+ raise DistlibException('You cannot get a finder for a module, '
325
+ 'only for a package')
326
+ loader = getattr(module, '__loader__', None)
327
+ finder_maker = _finder_registry.get(type(loader))
328
+ if finder_maker is None:
329
+ raise DistlibException('Unable to locate finder for %r' % package)
330
+ result = finder_maker(module)
331
+ _finder_cache[package] = result
332
+ return result
333
+
334
+
335
+ _dummy_module = types.ModuleType(str('__dummy__'))
336
+
337
+
338
+ def finder_for_path(path):
339
+ """
340
+ Return a resource finder for a path, which should represent a container.
341
+
342
+ :param path: The path.
343
+ :return: A :class:`ResourceFinder` instance for the path.
344
+ """
345
+ result = None
346
+ # calls any path hooks, gets importer into cache
347
+ pkgutil.get_importer(path)
348
+ loader = sys.path_importer_cache.get(path)
349
+ finder = _finder_registry.get(type(loader))
350
+ if finder:
351
+ module = _dummy_module
352
+ module.__file__ = os.path.join(path, '')
353
+ module.__loader__ = loader
354
+ result = finder(module)
355
+ return result