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,323 +1,415 @@
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 io import BytesIO
8
- import logging
9
- import os
10
- import re
11
- import struct
12
- import sys
13
-
14
- from .compat import sysconfig, fsencode, detect_encoding, ZipFile
15
- from .resources import finder
16
- from .util import (FileOperator, get_export_entry, convert_path,
17
- get_executable, in_venv)
18
-
19
- logger = logging.getLogger(__name__)
20
-
21
- _DEFAULT_MANIFEST = '''
22
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
23
- <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
24
- <assemblyIdentity version="1.0.0.0"
25
- processorArchitecture="X86"
26
- name="%s"
27
- type="win32"/>
28
-
29
- <!-- Identify the application security requirements. -->
30
- <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
31
- <security>
32
- <requestedPrivileges>
33
- <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
34
- </requestedPrivileges>
35
- </security>
36
- </trustInfo>
37
- </assembly>'''.strip()
38
-
39
- # check if Python is called on the first line with this expression
40
- FIRST_LINE_RE = re.compile(b'^#!.*pythonw?[0-9.]*([ \t].*)?$')
41
- SCRIPT_TEMPLATE = '''# -*- coding: utf-8 -*-
42
- if __name__ == '__main__':
43
- import sys, re
44
-
45
- def _resolve(module, func):
46
- __import__(module)
47
- mod = sys.modules[module]
48
- parts = func.split('.')
49
- result = getattr(mod, parts.pop(0))
50
- for p in parts:
51
- result = getattr(result, p)
52
- return result
53
-
54
- try:
55
- sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
56
-
57
- func = _resolve('%(module)s', '%(func)s')
58
- rc = func() # None interpreted as 0
59
- except Exception as e: # only supporting Python >= 2.6
60
- sys.stderr.write('%%s\\n' %% e)
61
- rc = 1
62
- sys.exit(rc)
63
- '''
64
-
65
-
66
- class ScriptMaker(object):
67
- """
68
- A class to copy or create scripts from source scripts or callable
69
- specifications.
70
- """
71
- script_template = SCRIPT_TEMPLATE
72
-
73
- executable = None # for shebangs
74
-
75
- def __init__(self, source_dir, target_dir, add_launchers=True,
76
- dry_run=False, fileop=None):
77
- self.source_dir = source_dir
78
- self.target_dir = target_dir
79
- self.add_launchers = add_launchers
80
- self.force = False
81
- self.clobber = False
82
- # It only makes sense to set mode bits on POSIX.
83
- self.set_mode = (os.name == 'posix')
84
- self.variants = set(('', 'X.Y'))
85
- self._fileop = fileop or FileOperator(dry_run)
86
-
87
- def _get_alternate_executable(self, executable, options):
88
- if options.get('gui', False) and os.name == 'nt':
89
- dn, fn = os.path.split(executable)
90
- fn = fn.replace('python', 'pythonw')
91
- executable = os.path.join(dn, fn)
92
- return executable
93
-
94
- def _get_shebang(self, encoding, post_interp=b'', options=None):
95
- enquote = True
96
- if self.executable:
97
- executable = self.executable
98
- enquote = False # assume this will be taken care of
99
- elif not sysconfig.is_python_build():
100
- executable = get_executable()
101
- elif in_venv():
102
- executable = os.path.join(sysconfig.get_path('scripts'),
103
- 'python%s' % sysconfig.get_config_var('EXE'))
104
- else:
105
- executable = os.path.join(
106
- sysconfig.get_config_var('BINDIR'),
107
- 'python%s%s' % (sysconfig.get_config_var('VERSION'),
108
- sysconfig.get_config_var('EXE')))
109
- if options:
110
- executable = self._get_alternate_executable(executable, options)
111
-
112
- # If the user didn't specify an executable, it may be necessary to
113
- # cater for executable paths with spaces (not uncommon on Windows)
114
- if enquote and ' ' in executable:
115
- executable = '"%s"' % executable
116
- executable = fsencode(executable)
117
- shebang = b'#!' + executable + post_interp + b'\n'
118
- # Python parser starts to read a script using UTF-8 until
119
- # it gets a #coding:xxx cookie. The shebang has to be the
120
- # first line of a file, the #coding:xxx cookie cannot be
121
- # written before. So the shebang has to be decodable from
122
- # UTF-8.
123
- try:
124
- shebang.decode('utf-8')
125
- except UnicodeDecodeError:
126
- raise ValueError(
127
- 'The shebang (%r) is not decodable from utf-8' % shebang)
128
- # If the script is encoded to a custom encoding (use a
129
- # #coding:xxx cookie), the shebang has to be decodable from
130
- # the script encoding too.
131
- if encoding != 'utf-8':
132
- try:
133
- shebang.decode(encoding)
134
- except UnicodeDecodeError:
135
- raise ValueError(
136
- 'The shebang (%r) is not decodable '
137
- 'from the script encoding (%r)' % (shebang, encoding))
138
- return shebang
139
-
140
- def _get_script_text(self, entry):
141
- return self.script_template % dict(module=entry.prefix,
142
- func=entry.suffix)
143
-
144
- manifest = _DEFAULT_MANIFEST
145
-
146
- def get_manifest(self, exename):
147
- base = os.path.basename(exename)
148
- return self.manifest % base
149
-
150
- def _write_script(self, names, shebang, script_bytes, filenames, ext):
151
- use_launcher = self.add_launchers and os.name == 'nt'
152
- linesep = os.linesep.encode('utf-8')
153
- if not use_launcher:
154
- script_bytes = shebang + linesep + script_bytes
155
- else:
156
- if ext == 'py':
157
- launcher = self._get_launcher('t')
158
- else:
159
- launcher = self._get_launcher('w')
160
- stream = BytesIO()
161
- with ZipFile(stream, 'w') as zf:
162
- zf.writestr('__main__.py', script_bytes)
163
- zip_data = stream.getvalue()
164
- script_bytes = launcher + shebang + linesep + zip_data
165
- for name in names:
166
- outname = os.path.join(self.target_dir, name)
167
- if use_launcher:
168
- n, e = os.path.splitext(outname)
169
- if e.startswith('.py'):
170
- outname = n
171
- outname = '%s.exe' % outname
172
- try:
173
- self._fileop.write_binary_file(outname, script_bytes)
174
- except Exception:
175
- # Failed writing an executable - it might be in use.
176
- logger.warning('Failed to write executable - trying to '
177
- 'use .deleteme logic')
178
- dfname = '%s.deleteme' % outname
179
- if os.path.exists(dfname):
180
- os.remove(dfname) # Not allowed to fail here
181
- os.rename(outname, dfname) # nor here
182
- self._fileop.write_binary_file(outname, script_bytes)
183
- logger.debug('Able to replace executable using '
184
- '.deleteme logic')
185
- try:
186
- os.remove(dfname)
187
- except Exception:
188
- pass # still in use - ignore error
189
- else:
190
- if os.name == 'nt' and not outname.endswith('.' + ext):
191
- outname = '%s.%s' % (outname, ext)
192
- if os.path.exists(outname) and not self.clobber:
193
- logger.warning('Skipping existing file %s', outname)
194
- continue
195
- self._fileop.write_binary_file(outname, script_bytes)
196
- if self.set_mode:
197
- self._fileop.set_executable_mode([outname])
198
- filenames.append(outname)
199
-
200
- def _make_script(self, entry, filenames, options=None):
201
- shebang = self._get_shebang('utf-8', options=options)
202
- script = self._get_script_text(entry).encode('utf-8')
203
- name = entry.name
204
- scriptnames = set()
205
- if '' in self.variants:
206
- scriptnames.add(name)
207
- if 'X' in self.variants:
208
- scriptnames.add('%s%s' % (name, sys.version[0]))
209
- if 'X.Y' in self.variants:
210
- scriptnames.add('%s-%s' % (name, sys.version[:3]))
211
- if options and options.get('gui', False):
212
- ext = 'pyw'
213
- else:
214
- ext = 'py'
215
- self._write_script(scriptnames, shebang, script, filenames, ext)
216
-
217
- def _copy_script(self, script, filenames):
218
- adjust = False
219
- script = os.path.join(self.source_dir, convert_path(script))
220
- outname = os.path.join(self.target_dir, os.path.basename(script))
221
- if not self.force and not self._fileop.newer(script, outname):
222
- logger.debug('not copying %s (up-to-date)', script)
223
- return
224
-
225
- # Always open the file, but ignore failures in dry-run mode --
226
- # that way, we'll get accurate feedback if we can read the
227
- # script.
228
- try:
229
- f = open(script, 'rb')
230
- except IOError:
231
- if not self.dry_run:
232
- raise
233
- f = None
234
- else:
235
- encoding, lines = detect_encoding(f.readline)
236
- f.seek(0)
237
- first_line = f.readline()
238
- if not first_line:
239
- logger.warning('%s: %s is an empty file (skipping)',
240
- self.get_command_name(), script)
241
- return
242
-
243
- match = FIRST_LINE_RE.match(first_line.replace(b'\r\n', b'\n'))
244
- if match:
245
- adjust = True
246
- post_interp = match.group(1) or b''
247
-
248
- if not adjust:
249
- if f:
250
- f.close()
251
- self._fileop.copy_file(script, outname)
252
- if self.set_mode:
253
- self._fileop.set_executable_mode([outname])
254
- filenames.append(outname)
255
- else:
256
- logger.info('copying and adjusting %s -> %s', script,
257
- self.target_dir)
258
- if not self._fileop.dry_run:
259
- shebang = self._get_shebang(encoding, post_interp)
260
- if b'pythonw' in first_line:
261
- ext = 'pyw'
262
- else:
263
- ext = 'py'
264
- n = os.path.basename(outname)
265
- self._write_script([n], shebang, f.read(), filenames, ext)
266
- if f:
267
- f.close()
268
-
269
- @property
270
- def dry_run(self):
271
- return self._fileop.dry_run
272
-
273
- @dry_run.setter
274
- def dry_run(self, value):
275
- self._fileop.dry_run = value
276
-
277
- if os.name == 'nt':
278
- # Executable launcher support.
279
- # Launchers are from https://bitbucket.org/vinay.sajip/simple_launcher/
280
-
281
- def _get_launcher(self, kind):
282
- if struct.calcsize('P') == 8: # 64-bit
283
- bits = '64'
284
- else:
285
- bits = '32'
286
- name = '%s%s.exe' % (kind, bits)
287
- # Issue 31: don't hardcode an absolute package name, but
288
- # determine it relative to the current package
289
- distlib_package = __name__.rsplit('.', 1)[0]
290
- result = finder(distlib_package).find(name).bytes
291
- return result
292
-
293
- # Public API follows
294
-
295
- def make(self, specification, options=None):
296
- """
297
- Make a script.
298
-
299
- :param specification: The specification, which is either a valid export
300
- entry specification (to make a script from a
301
- callable) or a filename (to make a script by
302
- copying from a source location).
303
- :param options: A dictionary of options controlling script generation.
304
- :return: A list of all absolute pathnames written to.
305
- """
306
- filenames = []
307
- entry = get_export_entry(specification)
308
- if entry is None:
309
- self._copy_script(specification, filenames)
310
- else:
311
- self._make_script(entry, filenames, options=options)
312
- return filenames
313
-
314
- def make_multiple(self, specifications, options=None):
315
- """
316
- Take a list of specifications and make scripts from them,
317
- :param specifications: A list of specifications.
318
- :return: A list of all absolute pathnames written to,
319
- """
320
- filenames = []
321
- for specification in specifications:
322
- filenames.extend(self.make(specification, options))
323
- return filenames
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright (C) 2013-2015 Vinay Sajip.
4
+ # Licensed to the Python Software Foundation under a contributor agreement.
5
+ # See LICENSE.txt and CONTRIBUTORS.txt.
6
+ #
7
+ from io import BytesIO
8
+ import logging
9
+ import os
10
+ import re
11
+ import struct
12
+ import sys
13
+
14
+ from .compat import sysconfig, detect_encoding, ZipFile
15
+ from .resources import finder
16
+ from .util import (FileOperator, get_export_entry, convert_path,
17
+ get_executable, in_venv)
18
+
19
+ logger = logging.getLogger(__name__)
20
+
21
+ _DEFAULT_MANIFEST = '''
22
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
23
+ <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
24
+ <assemblyIdentity version="1.0.0.0"
25
+ processorArchitecture="X86"
26
+ name="%s"
27
+ type="win32"/>
28
+
29
+ <!-- Identify the application security requirements. -->
30
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
31
+ <security>
32
+ <requestedPrivileges>
33
+ <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
34
+ </requestedPrivileges>
35
+ </security>
36
+ </trustInfo>
37
+ </assembly>'''.strip()
38
+
39
+ # check if Python is called on the first line with this expression
40
+ FIRST_LINE_RE = re.compile(b'^#!.*pythonw?[0-9.]*([ \t].*)?$')
41
+ SCRIPT_TEMPLATE = r'''# -*- coding: utf-8 -*-
42
+ if __name__ == '__main__':
43
+ import sys, re
44
+
45
+ def _resolve(module, func):
46
+ __import__(module)
47
+ mod = sys.modules[module]
48
+ parts = func.split('.')
49
+ result = getattr(mod, parts.pop(0))
50
+ for p in parts:
51
+ result = getattr(result, p)
52
+ return result
53
+
54
+ try:
55
+ sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
56
+
57
+ func = _resolve('%(module)s', '%(func)s')
58
+ rc = func() # None interpreted as 0
59
+ except Exception as e: # only supporting Python >= 2.6
60
+ sys.stderr.write('%%s\n' %% e)
61
+ rc = 1
62
+ sys.exit(rc)
63
+ '''
64
+
65
+
66
+ def _enquote_executable(executable):
67
+ if ' ' in executable:
68
+ # make sure we quote only the executable in case of env
69
+ # for example /usr/bin/env "/dir with spaces/bin/jython"
70
+ # instead of "/usr/bin/env /dir with spaces/bin/jython"
71
+ # otherwise whole
72
+ if executable.startswith('/usr/bin/env '):
73
+ env, _executable = executable.split(' ', 1)
74
+ if ' ' in _executable and not _executable.startswith('"'):
75
+ executable = '%s "%s"' % (env, _executable)
76
+ else:
77
+ if not executable.startswith('"'):
78
+ executable = '"%s"' % executable
79
+ return executable
80
+
81
+
82
+ class ScriptMaker(object):
83
+ """
84
+ A class to copy or create scripts from source scripts or callable
85
+ specifications.
86
+ """
87
+ script_template = SCRIPT_TEMPLATE
88
+
89
+ executable = None # for shebangs
90
+
91
+ def __init__(self, source_dir, target_dir, add_launchers=True,
92
+ dry_run=False, fileop=None):
93
+ self.source_dir = source_dir
94
+ self.target_dir = target_dir
95
+ self.add_launchers = add_launchers
96
+ self.force = False
97
+ self.clobber = False
98
+ # It only makes sense to set mode bits on POSIX.
99
+ self.set_mode = (os.name == 'posix') or (os.name == 'java' and
100
+ os._name == 'posix')
101
+ self.variants = set(('', 'X.Y'))
102
+ self._fileop = fileop or FileOperator(dry_run)
103
+
104
+ self._is_nt = os.name == 'nt' or (
105
+ os.name == 'java' and os._name == 'nt')
106
+
107
+ def _get_alternate_executable(self, executable, options):
108
+ if options.get('gui', False) and self._is_nt: # pragma: no cover
109
+ dn, fn = os.path.split(executable)
110
+ fn = fn.replace('python', 'pythonw')
111
+ executable = os.path.join(dn, fn)
112
+ return executable
113
+
114
+ if sys.platform.startswith('java'): # pragma: no cover
115
+ def _is_shell(self, executable):
116
+ """
117
+ Determine if the specified executable is a script
118
+ (contains a #! line)
119
+ """
120
+ try:
121
+ with open(executable) as fp:
122
+ return fp.read(2) == '#!'
123
+ except (OSError, IOError):
124
+ logger.warning('Failed to open %s', executable)
125
+ return False
126
+
127
+ def _fix_jython_executable(self, executable):
128
+ if self._is_shell(executable):
129
+ # Workaround for Jython is not needed on Linux systems.
130
+ import java
131
+
132
+ if java.lang.System.getProperty('os.name') == 'Linux':
133
+ return executable
134
+ elif executable.lower().endswith('jython.exe'):
135
+ # Use wrapper exe for Jython on Windows
136
+ return executable
137
+ return '/usr/bin/env %s' % executable
138
+
139
+ def _build_shebang(self, executable, post_interp):
140
+ """
141
+ Build a shebang line. In the simple case (on Windows, or a shebang line
142
+ which is not too long or contains spaces) use a simple formulation for
143
+ the shebang. Otherwise, use /bin/sh as the executable, with a contrived
144
+ shebang which allows the script to run either under Python or sh, using
145
+ suitable quoting. Thanks to Harald Nordgren for his input.
146
+
147
+ See also: http://www.in-ulm.de/~mascheck/various/shebang/#length
148
+ https://hg.mozilla.org/mozilla-central/file/tip/mach
149
+ """
150
+ if os.name != 'posix':
151
+ simple_shebang = True
152
+ else:
153
+ # Add 3 for '#!' prefix and newline suffix.
154
+ shebang_length = len(executable) + len(post_interp) + 3
155
+ if sys.platform == 'darwin':
156
+ max_shebang_length = 512
157
+ else:
158
+ max_shebang_length = 127
159
+ simple_shebang = ((b' ' not in executable) and
160
+ (shebang_length <= max_shebang_length))
161
+
162
+ if simple_shebang:
163
+ result = b'#!' + executable + post_interp + b'\n'
164
+ else:
165
+ result = b'#!/bin/sh\n'
166
+ result += b"'''exec' " + executable + post_interp + b' "$0" "$@"\n'
167
+ result += b"' '''"
168
+ return result
169
+
170
+ def _get_shebang(self, encoding, post_interp=b'', options=None):
171
+ enquote = True
172
+ if self.executable:
173
+ executable = self.executable
174
+ enquote = False # assume this will be taken care of
175
+ elif not sysconfig.is_python_build():
176
+ executable = get_executable()
177
+ elif in_venv(): # pragma: no cover
178
+ executable = os.path.join(sysconfig.get_path('scripts'),
179
+ 'python%s' % sysconfig.get_config_var('EXE'))
180
+ else: # pragma: no cover
181
+ executable = os.path.join(
182
+ sysconfig.get_config_var('BINDIR'),
183
+ 'python%s%s' % (sysconfig.get_config_var('VERSION'),
184
+ sysconfig.get_config_var('EXE')))
185
+ if options:
186
+ executable = self._get_alternate_executable(executable, options)
187
+
188
+ if sys.platform.startswith('java'): # pragma: no cover
189
+ executable = self._fix_jython_executable(executable)
190
+ # Normalise case for Windows
191
+ executable = os.path.normcase(executable)
192
+ # If the user didn't specify an executable, it may be necessary to
193
+ # cater for executable paths with spaces (not uncommon on Windows)
194
+ if enquote:
195
+ executable = _enquote_executable(executable)
196
+ # Issue #51: don't use fsencode, since we later try to
197
+ # check that the shebang is decodable using utf-8.
198
+ executable = executable.encode('utf-8')
199
+ # in case of IronPython, play safe and enable frames support
200
+ if (sys.platform == 'cli' and '-X:Frames' not in post_interp
201
+ and '-X:FullFrames' not in post_interp): # pragma: no cover
202
+ post_interp += b' -X:Frames'
203
+ shebang = self._build_shebang(executable, post_interp)
204
+ # Python parser starts to read a script using UTF-8 until
205
+ # it gets a #coding:xxx cookie. The shebang has to be the
206
+ # first line of a file, the #coding:xxx cookie cannot be
207
+ # written before. So the shebang has to be decodable from
208
+ # UTF-8.
209
+ try:
210
+ shebang.decode('utf-8')
211
+ except UnicodeDecodeError: # pragma: no cover
212
+ raise ValueError(
213
+ 'The shebang (%r) is not decodable from utf-8' % shebang)
214
+ # If the script is encoded to a custom encoding (use a
215
+ # #coding:xxx cookie), the shebang has to be decodable from
216
+ # the script encoding too.
217
+ if encoding != 'utf-8':
218
+ try:
219
+ shebang.decode(encoding)
220
+ except UnicodeDecodeError: # pragma: no cover
221
+ raise ValueError(
222
+ 'The shebang (%r) is not decodable '
223
+ 'from the script encoding (%r)' % (shebang, encoding))
224
+ return shebang
225
+
226
+ def _get_script_text(self, entry):
227
+ return self.script_template % dict(module=entry.prefix,
228
+ func=entry.suffix)
229
+
230
+ manifest = _DEFAULT_MANIFEST
231
+
232
+ def get_manifest(self, exename):
233
+ base = os.path.basename(exename)
234
+ return self.manifest % base
235
+
236
+ def _write_script(self, names, shebang, script_bytes, filenames, ext):
237
+ use_launcher = self.add_launchers and self._is_nt
238
+ linesep = os.linesep.encode('utf-8')
239
+ if not use_launcher:
240
+ script_bytes = shebang + linesep + script_bytes
241
+ else: # pragma: no cover
242
+ if ext == 'py':
243
+ launcher = self._get_launcher('t')
244
+ else:
245
+ launcher = self._get_launcher('w')
246
+ stream = BytesIO()
247
+ with ZipFile(stream, 'w') as zf:
248
+ zf.writestr('__main__.py', script_bytes)
249
+ zip_data = stream.getvalue()
250
+ script_bytes = launcher + shebang + linesep + zip_data
251
+ for name in names:
252
+ outname = os.path.join(self.target_dir, name)
253
+ if use_launcher: # pragma: no cover
254
+ n, e = os.path.splitext(outname)
255
+ if e.startswith('.py'):
256
+ outname = n
257
+ outname = '%s.exe' % outname
258
+ try:
259
+ self._fileop.write_binary_file(outname, script_bytes)
260
+ except Exception:
261
+ # Failed writing an executable - it might be in use.
262
+ logger.warning('Failed to write executable - trying to '
263
+ 'use .deleteme logic')
264
+ dfname = '%s.deleteme' % outname
265
+ if os.path.exists(dfname):
266
+ os.remove(dfname) # Not allowed to fail here
267
+ os.rename(outname, dfname) # nor here
268
+ self._fileop.write_binary_file(outname, script_bytes)
269
+ logger.debug('Able to replace executable using '
270
+ '.deleteme logic')
271
+ try:
272
+ os.remove(dfname)
273
+ except Exception:
274
+ pass # still in use - ignore error
275
+ else:
276
+ if self._is_nt and not outname.endswith('.' + ext): # pragma: no cover
277
+ outname = '%s.%s' % (outname, ext)
278
+ if os.path.exists(outname) and not self.clobber:
279
+ logger.warning('Skipping existing file %s', outname)
280
+ continue
281
+ self._fileop.write_binary_file(outname, script_bytes)
282
+ if self.set_mode:
283
+ self._fileop.set_executable_mode([outname])
284
+ filenames.append(outname)
285
+
286
+ def _make_script(self, entry, filenames, options=None):
287
+ post_interp = b''
288
+ if options:
289
+ args = options.get('interpreter_args', [])
290
+ if args:
291
+ args = ' %s' % ' '.join(args)
292
+ post_interp = args.encode('utf-8')
293
+ shebang = self._get_shebang('utf-8', post_interp, options=options)
294
+ script = self._get_script_text(entry).encode('utf-8')
295
+ name = entry.name
296
+ scriptnames = set()
297
+ if '' in self.variants:
298
+ scriptnames.add(name)
299
+ if 'X' in self.variants:
300
+ scriptnames.add('%s%s' % (name, sys.version[0]))
301
+ if 'X.Y' in self.variants:
302
+ scriptnames.add('%s-%s' % (name, sys.version[:3]))
303
+ if options and options.get('gui', False):
304
+ ext = 'pyw'
305
+ else:
306
+ ext = 'py'
307
+ self._write_script(scriptnames, shebang, script, filenames, ext)
308
+
309
+ def _copy_script(self, script, filenames):
310
+ adjust = False
311
+ script = os.path.join(self.source_dir, convert_path(script))
312
+ outname = os.path.join(self.target_dir, os.path.basename(script))
313
+ if not self.force and not self._fileop.newer(script, outname):
314
+ logger.debug('not copying %s (up-to-date)', script)
315
+ return
316
+
317
+ # Always open the file, but ignore failures in dry-run mode --
318
+ # that way, we'll get accurate feedback if we can read the
319
+ # script.
320
+ try:
321
+ f = open(script, 'rb')
322
+ except IOError: # pragma: no cover
323
+ if not self.dry_run:
324
+ raise
325
+ f = None
326
+ else:
327
+ first_line = f.readline()
328
+ if not first_line: # pragma: no cover
329
+ logger.warning('%s: %s is an empty file (skipping)',
330
+ self.get_command_name(), script)
331
+ return
332
+
333
+ match = FIRST_LINE_RE.match(first_line.replace(b'\r\n', b'\n'))
334
+ if match:
335
+ adjust = True
336
+ post_interp = match.group(1) or b''
337
+
338
+ if not adjust:
339
+ if f:
340
+ f.close()
341
+ self._fileop.copy_file(script, outname)
342
+ if self.set_mode:
343
+ self._fileop.set_executable_mode([outname])
344
+ filenames.append(outname)
345
+ else:
346
+ logger.info('copying and adjusting %s -> %s', script,
347
+ self.target_dir)
348
+ if not self._fileop.dry_run:
349
+ encoding, lines = detect_encoding(f.readline)
350
+ f.seek(0)
351
+ shebang = self._get_shebang(encoding, post_interp)
352
+ if b'pythonw' in first_line: # pragma: no cover
353
+ ext = 'pyw'
354
+ else:
355
+ ext = 'py'
356
+ n = os.path.basename(outname)
357
+ self._write_script([n], shebang, f.read(), filenames, ext)
358
+ if f:
359
+ f.close()
360
+
361
+ @property
362
+ def dry_run(self):
363
+ return self._fileop.dry_run
364
+
365
+ @dry_run.setter
366
+ def dry_run(self, value):
367
+ self._fileop.dry_run = value
368
+
369
+ if os.name == 'nt' or (os.name == 'java' and os._name == 'nt'): # pragma: no cover
370
+ # Executable launcher support.
371
+ # Launchers are from https://bitbucket.org/vinay.sajip/simple_launcher/
372
+
373
+ def _get_launcher(self, kind):
374
+ if struct.calcsize('P') == 8: # 64-bit
375
+ bits = '64'
376
+ else:
377
+ bits = '32'
378
+ name = '%s%s.exe' % (kind, bits)
379
+ # Issue 31: don't hardcode an absolute package name, but
380
+ # determine it relative to the current package
381
+ distlib_package = __name__.rsplit('.', 1)[0]
382
+ result = finder(distlib_package).find(name).bytes
383
+ return result
384
+
385
+ # Public API follows
386
+
387
+ def make(self, specification, options=None):
388
+ """
389
+ Make a script.
390
+
391
+ :param specification: The specification, which is either a valid export
392
+ entry specification (to make a script from a
393
+ callable) or a filename (to make a script by
394
+ copying from a source location).
395
+ :param options: A dictionary of options controlling script generation.
396
+ :return: A list of all absolute pathnames written to.
397
+ """
398
+ filenames = []
399
+ entry = get_export_entry(specification)
400
+ if entry is None:
401
+ self._copy_script(specification, filenames)
402
+ else:
403
+ self._make_script(entry, filenames, options=options)
404
+ return filenames
405
+
406
+ def make_multiple(self, specifications, options=None):
407
+ """
408
+ Take a list of specifications and make scripts from them,
409
+ :param specifications: A list of specifications.
410
+ :return: A list of all absolute pathnames written to,
411
+ """
412
+ filenames = []
413
+ for specification in specifications:
414
+ filenames.extend(self.make(specification, options))
415
+ return filenames