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
@@ -0,0 +1,409 @@
1
+ from __future__ import absolute_import, division, unicode_literals
2
+ from pip._vendor.six import text_type
3
+
4
+ import re
5
+
6
+ from codecs import register_error, xmlcharrefreplace_errors
7
+
8
+ from .constants import voidElements, booleanAttributes, spaceCharacters
9
+ from .constants import rcdataElements, entities, xmlEntities
10
+ from . import treewalkers, _utils
11
+ from xml.sax.saxutils import escape
12
+
13
+ _quoteAttributeSpecChars = "".join(spaceCharacters) + "\"'=<>`"
14
+ _quoteAttributeSpec = re.compile("[" + _quoteAttributeSpecChars + "]")
15
+ _quoteAttributeLegacy = re.compile("[" + _quoteAttributeSpecChars +
16
+ "\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n"
17
+ "\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15"
18
+ "\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
19
+ "\x20\x2f\x60\xa0\u1680\u180e\u180f\u2000"
20
+ "\u2001\u2002\u2003\u2004\u2005\u2006\u2007"
21
+ "\u2008\u2009\u200a\u2028\u2029\u202f\u205f"
22
+ "\u3000]")
23
+
24
+
25
+ _encode_entity_map = {}
26
+ _is_ucs4 = len("\U0010FFFF") == 1
27
+ for k, v in list(entities.items()):
28
+ # skip multi-character entities
29
+ if ((_is_ucs4 and len(v) > 1) or
30
+ (not _is_ucs4 and len(v) > 2)):
31
+ continue
32
+ if v != "&":
33
+ if len(v) == 2:
34
+ v = _utils.surrogatePairToCodepoint(v)
35
+ else:
36
+ v = ord(v)
37
+ if v not in _encode_entity_map or k.islower():
38
+ # prefer &lt; over &LT; and similarly for &amp;, &gt;, etc.
39
+ _encode_entity_map[v] = k
40
+
41
+
42
+ def htmlentityreplace_errors(exc):
43
+ if isinstance(exc, (UnicodeEncodeError, UnicodeTranslateError)):
44
+ res = []
45
+ codepoints = []
46
+ skip = False
47
+ for i, c in enumerate(exc.object[exc.start:exc.end]):
48
+ if skip:
49
+ skip = False
50
+ continue
51
+ index = i + exc.start
52
+ if _utils.isSurrogatePair(exc.object[index:min([exc.end, index + 2])]):
53
+ codepoint = _utils.surrogatePairToCodepoint(exc.object[index:index + 2])
54
+ skip = True
55
+ else:
56
+ codepoint = ord(c)
57
+ codepoints.append(codepoint)
58
+ for cp in codepoints:
59
+ e = _encode_entity_map.get(cp)
60
+ if e:
61
+ res.append("&")
62
+ res.append(e)
63
+ if not e.endswith(";"):
64
+ res.append(";")
65
+ else:
66
+ res.append("&#x%s;" % (hex(cp)[2:]))
67
+ return ("".join(res), exc.end)
68
+ else:
69
+ return xmlcharrefreplace_errors(exc)
70
+
71
+
72
+ register_error("htmlentityreplace", htmlentityreplace_errors)
73
+
74
+
75
+ def serialize(input, tree="etree", encoding=None, **serializer_opts):
76
+ """Serializes the input token stream using the specified treewalker
77
+
78
+ :arg input: the token stream to serialize
79
+
80
+ :arg tree: the treewalker to use
81
+
82
+ :arg encoding: the encoding to use
83
+
84
+ :arg serializer_opts: any options to pass to the
85
+ :py:class:`html5lib.serializer.HTMLSerializer` that gets created
86
+
87
+ :returns: the tree serialized as a string
88
+
89
+ Example:
90
+
91
+ >>> from html5lib.html5parser import parse
92
+ >>> from html5lib.serializer import serialize
93
+ >>> token_stream = parse('<html><body><p>Hi!</p></body></html>')
94
+ >>> serialize(token_stream, omit_optional_tags=False)
95
+ '<html><head></head><body><p>Hi!</p></body></html>'
96
+
97
+ """
98
+ # XXX: Should we cache this?
99
+ walker = treewalkers.getTreeWalker(tree)
100
+ s = HTMLSerializer(**serializer_opts)
101
+ return s.render(walker(input), encoding)
102
+
103
+
104
+ class HTMLSerializer(object):
105
+
106
+ # attribute quoting options
107
+ quote_attr_values = "legacy" # be secure by default
108
+ quote_char = '"'
109
+ use_best_quote_char = True
110
+
111
+ # tag syntax options
112
+ omit_optional_tags = True
113
+ minimize_boolean_attributes = True
114
+ use_trailing_solidus = False
115
+ space_before_trailing_solidus = True
116
+
117
+ # escaping options
118
+ escape_lt_in_attrs = False
119
+ escape_rcdata = False
120
+ resolve_entities = True
121
+
122
+ # miscellaneous options
123
+ alphabetical_attributes = False
124
+ inject_meta_charset = True
125
+ strip_whitespace = False
126
+ sanitize = False
127
+
128
+ options = ("quote_attr_values", "quote_char", "use_best_quote_char",
129
+ "omit_optional_tags", "minimize_boolean_attributes",
130
+ "use_trailing_solidus", "space_before_trailing_solidus",
131
+ "escape_lt_in_attrs", "escape_rcdata", "resolve_entities",
132
+ "alphabetical_attributes", "inject_meta_charset",
133
+ "strip_whitespace", "sanitize")
134
+
135
+ def __init__(self, **kwargs):
136
+ """Initialize HTMLSerializer
137
+
138
+ :arg inject_meta_charset: Whether or not to inject the meta charset.
139
+
140
+ Defaults to ``True``.
141
+
142
+ :arg quote_attr_values: Whether to quote attribute values that don't
143
+ require quoting per legacy browser behavior (``"legacy"``), when
144
+ required by the standard (``"spec"``), or always (``"always"``).
145
+
146
+ Defaults to ``"legacy"``.
147
+
148
+ :arg quote_char: Use given quote character for attribute quoting.
149
+
150
+ Defaults to ``"`` which will use double quotes unless attribute
151
+ value contains a double quote, in which case single quotes are
152
+ used.
153
+
154
+ :arg escape_lt_in_attrs: Whether or not to escape ``<`` in attribute
155
+ values.
156
+
157
+ Defaults to ``False``.
158
+
159
+ :arg escape_rcdata: Whether to escape characters that need to be
160
+ escaped within normal elements within rcdata elements such as
161
+ style.
162
+
163
+ Defaults to ``False``.
164
+
165
+ :arg resolve_entities: Whether to resolve named character entities that
166
+ appear in the source tree. The XML predefined entities &lt; &gt;
167
+ &amp; &quot; &apos; are unaffected by this setting.
168
+
169
+ Defaults to ``True``.
170
+
171
+ :arg strip_whitespace: Whether to remove semantically meaningless
172
+ whitespace. (This compresses all whitespace to a single space
173
+ except within ``pre``.)
174
+
175
+ Defaults to ``False``.
176
+
177
+ :arg minimize_boolean_attributes: Shortens boolean attributes to give
178
+ just the attribute value, for example::
179
+
180
+ <input disabled="disabled">
181
+
182
+ becomes::
183
+
184
+ <input disabled>
185
+
186
+ Defaults to ``True``.
187
+
188
+ :arg use_trailing_solidus: Includes a close-tag slash at the end of the
189
+ start tag of void elements (empty elements whose end tag is
190
+ forbidden). E.g. ``<hr/>``.
191
+
192
+ Defaults to ``False``.
193
+
194
+ :arg space_before_trailing_solidus: Places a space immediately before
195
+ the closing slash in a tag using a trailing solidus. E.g.
196
+ ``<hr />``. Requires ``use_trailing_solidus=True``.
197
+
198
+ Defaults to ``True``.
199
+
200
+ :arg sanitize: Strip all unsafe or unknown constructs from output.
201
+ See :py:class:`html5lib.filters.sanitizer.Filter`.
202
+
203
+ Defaults to ``False``.
204
+
205
+ :arg omit_optional_tags: Omit start/end tags that are optional.
206
+
207
+ Defaults to ``True``.
208
+
209
+ :arg alphabetical_attributes: Reorder attributes to be in alphabetical order.
210
+
211
+ Defaults to ``False``.
212
+
213
+ """
214
+ unexpected_args = frozenset(kwargs) - frozenset(self.options)
215
+ if len(unexpected_args) > 0:
216
+ raise TypeError("__init__() got an unexpected keyword argument '%s'" % next(iter(unexpected_args)))
217
+ if 'quote_char' in kwargs:
218
+ self.use_best_quote_char = False
219
+ for attr in self.options:
220
+ setattr(self, attr, kwargs.get(attr, getattr(self, attr)))
221
+ self.errors = []
222
+ self.strict = False
223
+
224
+ def encode(self, string):
225
+ assert(isinstance(string, text_type))
226
+ if self.encoding:
227
+ return string.encode(self.encoding, "htmlentityreplace")
228
+ else:
229
+ return string
230
+
231
+ def encodeStrict(self, string):
232
+ assert(isinstance(string, text_type))
233
+ if self.encoding:
234
+ return string.encode(self.encoding, "strict")
235
+ else:
236
+ return string
237
+
238
+ def serialize(self, treewalker, encoding=None):
239
+ # pylint:disable=too-many-nested-blocks
240
+ self.encoding = encoding
241
+ in_cdata = False
242
+ self.errors = []
243
+
244
+ if encoding and self.inject_meta_charset:
245
+ from .filters.inject_meta_charset import Filter
246
+ treewalker = Filter(treewalker, encoding)
247
+ # Alphabetical attributes is here under the assumption that none of
248
+ # the later filters add or change order of attributes; it needs to be
249
+ # before the sanitizer so escaped elements come out correctly
250
+ if self.alphabetical_attributes:
251
+ from .filters.alphabeticalattributes import Filter
252
+ treewalker = Filter(treewalker)
253
+ # WhitespaceFilter should be used before OptionalTagFilter
254
+ # for maximum efficiently of this latter filter
255
+ if self.strip_whitespace:
256
+ from .filters.whitespace import Filter
257
+ treewalker = Filter(treewalker)
258
+ if self.sanitize:
259
+ from .filters.sanitizer import Filter
260
+ treewalker = Filter(treewalker)
261
+ if self.omit_optional_tags:
262
+ from .filters.optionaltags import Filter
263
+ treewalker = Filter(treewalker)
264
+
265
+ for token in treewalker:
266
+ type = token["type"]
267
+ if type == "Doctype":
268
+ doctype = "<!DOCTYPE %s" % token["name"]
269
+
270
+ if token["publicId"]:
271
+ doctype += ' PUBLIC "%s"' % token["publicId"]
272
+ elif token["systemId"]:
273
+ doctype += " SYSTEM"
274
+ if token["systemId"]:
275
+ if token["systemId"].find('"') >= 0:
276
+ if token["systemId"].find("'") >= 0:
277
+ self.serializeError("System identifer contains both single and double quote characters")
278
+ quote_char = "'"
279
+ else:
280
+ quote_char = '"'
281
+ doctype += " %s%s%s" % (quote_char, token["systemId"], quote_char)
282
+
283
+ doctype += ">"
284
+ yield self.encodeStrict(doctype)
285
+
286
+ elif type in ("Characters", "SpaceCharacters"):
287
+ if type == "SpaceCharacters" or in_cdata:
288
+ if in_cdata and token["data"].find("</") >= 0:
289
+ self.serializeError("Unexpected </ in CDATA")
290
+ yield self.encode(token["data"])
291
+ else:
292
+ yield self.encode(escape(token["data"]))
293
+
294
+ elif type in ("StartTag", "EmptyTag"):
295
+ name = token["name"]
296
+ yield self.encodeStrict("<%s" % name)
297
+ if name in rcdataElements and not self.escape_rcdata:
298
+ in_cdata = True
299
+ elif in_cdata:
300
+ self.serializeError("Unexpected child element of a CDATA element")
301
+ for (_, attr_name), attr_value in token["data"].items():
302
+ # TODO: Add namespace support here
303
+ k = attr_name
304
+ v = attr_value
305
+ yield self.encodeStrict(' ')
306
+
307
+ yield self.encodeStrict(k)
308
+ if not self.minimize_boolean_attributes or \
309
+ (k not in booleanAttributes.get(name, tuple()) and
310
+ k not in booleanAttributes.get("", tuple())):
311
+ yield self.encodeStrict("=")
312
+ if self.quote_attr_values == "always" or len(v) == 0:
313
+ quote_attr = True
314
+ elif self.quote_attr_values == "spec":
315
+ quote_attr = _quoteAttributeSpec.search(v) is not None
316
+ elif self.quote_attr_values == "legacy":
317
+ quote_attr = _quoteAttributeLegacy.search(v) is not None
318
+ else:
319
+ raise ValueError("quote_attr_values must be one of: "
320
+ "'always', 'spec', or 'legacy'")
321
+ v = v.replace("&", "&amp;")
322
+ if self.escape_lt_in_attrs:
323
+ v = v.replace("<", "&lt;")
324
+ if quote_attr:
325
+ quote_char = self.quote_char
326
+ if self.use_best_quote_char:
327
+ if "'" in v and '"' not in v:
328
+ quote_char = '"'
329
+ elif '"' in v and "'" not in v:
330
+ quote_char = "'"
331
+ if quote_char == "'":
332
+ v = v.replace("'", "&#39;")
333
+ else:
334
+ v = v.replace('"', "&quot;")
335
+ yield self.encodeStrict(quote_char)
336
+ yield self.encode(v)
337
+ yield self.encodeStrict(quote_char)
338
+ else:
339
+ yield self.encode(v)
340
+ if name in voidElements and self.use_trailing_solidus:
341
+ if self.space_before_trailing_solidus:
342
+ yield self.encodeStrict(" /")
343
+ else:
344
+ yield self.encodeStrict("/")
345
+ yield self.encode(">")
346
+
347
+ elif type == "EndTag":
348
+ name = token["name"]
349
+ if name in rcdataElements:
350
+ in_cdata = False
351
+ elif in_cdata:
352
+ self.serializeError("Unexpected child element of a CDATA element")
353
+ yield self.encodeStrict("</%s>" % name)
354
+
355
+ elif type == "Comment":
356
+ data = token["data"]
357
+ if data.find("--") >= 0:
358
+ self.serializeError("Comment contains --")
359
+ yield self.encodeStrict("<!--%s-->" % token["data"])
360
+
361
+ elif type == "Entity":
362
+ name = token["name"]
363
+ key = name + ";"
364
+ if key not in entities:
365
+ self.serializeError("Entity %s not recognized" % name)
366
+ if self.resolve_entities and key not in xmlEntities:
367
+ data = entities[key]
368
+ else:
369
+ data = "&%s;" % name
370
+ yield self.encodeStrict(data)
371
+
372
+ else:
373
+ self.serializeError(token["data"])
374
+
375
+ def render(self, treewalker, encoding=None):
376
+ """Serializes the stream from the treewalker into a string
377
+
378
+ :arg treewalker: the treewalker to serialize
379
+
380
+ :arg encoding: the string encoding to use
381
+
382
+ :returns: the serialized tree
383
+
384
+ Example:
385
+
386
+ >>> from html5lib import parse, getTreeWalker
387
+ >>> from html5lib.serializer import HTMLSerializer
388
+ >>> token_stream = parse('<html><body>Hi!</body></html>')
389
+ >>> walker = getTreeWalker('etree')
390
+ >>> serializer = HTMLSerializer(omit_optional_tags=False)
391
+ >>> serializer.render(walker(token_stream))
392
+ '<html><head></head><body>Hi!</body></html>'
393
+
394
+ """
395
+ if encoding:
396
+ return b"".join(list(self.serialize(treewalker, encoding)))
397
+ else:
398
+ return "".join(list(self.serialize(treewalker)))
399
+
400
+ def serializeError(self, data="XXX ERROR MESSAGE NEEDED"):
401
+ # XXX The idea is to make data mandatory.
402
+ self.errors.append(data)
403
+ if self.strict:
404
+ raise SerializeError
405
+
406
+
407
+ class SerializeError(Exception):
408
+ """Error in serialized tree"""
409
+ pass
@@ -0,0 +1,30 @@
1
+ """Tree adapters let you convert from one tree structure to another
2
+
3
+ Example:
4
+
5
+ .. code-block:: python
6
+
7
+ from pip._vendor import html5lib
8
+ from pip._vendor.html5lib.treeadapters import genshi
9
+
10
+ doc = '<html><body>Hi!</body></html>'
11
+ treebuilder = html5lib.getTreeBuilder('etree')
12
+ parser = html5lib.HTMLParser(tree=treebuilder)
13
+ tree = parser.parse(doc)
14
+ TreeWalker = html5lib.getTreeWalker('etree')
15
+
16
+ genshi_tree = genshi.to_genshi(TreeWalker(tree))
17
+
18
+ """
19
+ from __future__ import absolute_import, division, unicode_literals
20
+
21
+ from . import sax
22
+
23
+ __all__ = ["sax"]
24
+
25
+ try:
26
+ from . import genshi # noqa
27
+ except ImportError:
28
+ pass
29
+ else:
30
+ __all__.append("genshi")
@@ -0,0 +1,54 @@
1
+ from __future__ import absolute_import, division, unicode_literals
2
+
3
+ from genshi.core import QName, Attrs
4
+ from genshi.core import START, END, TEXT, COMMENT, DOCTYPE
5
+
6
+
7
+ def to_genshi(walker):
8
+ """Convert a tree to a genshi tree
9
+
10
+ :arg walker: the treewalker to use to walk the tree to convert it
11
+
12
+ :returns: generator of genshi nodes
13
+
14
+ """
15
+ text = []
16
+ for token in walker:
17
+ type = token["type"]
18
+ if type in ("Characters", "SpaceCharacters"):
19
+ text.append(token["data"])
20
+ elif text:
21
+ yield TEXT, "".join(text), (None, -1, -1)
22
+ text = []
23
+
24
+ if type in ("StartTag", "EmptyTag"):
25
+ if token["namespace"]:
26
+ name = "{%s}%s" % (token["namespace"], token["name"])
27
+ else:
28
+ name = token["name"]
29
+ attrs = Attrs([(QName("{%s}%s" % attr if attr[0] is not None else attr[1]), value)
30
+ for attr, value in token["data"].items()])
31
+ yield (START, (QName(name), attrs), (None, -1, -1))
32
+ if type == "EmptyTag":
33
+ type = "EndTag"
34
+
35
+ if type == "EndTag":
36
+ if token["namespace"]:
37
+ name = "{%s}%s" % (token["namespace"], token["name"])
38
+ else:
39
+ name = token["name"]
40
+
41
+ yield END, QName(name), (None, -1, -1)
42
+
43
+ elif type == "Comment":
44
+ yield COMMENT, token["data"], (None, -1, -1)
45
+
46
+ elif type == "Doctype":
47
+ yield DOCTYPE, (token["name"], token["publicId"],
48
+ token["systemId"]), (None, -1, -1)
49
+
50
+ else:
51
+ pass # FIXME: What to do?
52
+
53
+ if text:
54
+ yield TEXT, "".join(text), (None, -1, -1)
@@ -1,44 +1,50 @@
1
- from __future__ import absolute_import, division, unicode_literals
2
-
3
- from xml.sax.xmlreader import AttributesNSImpl
4
-
5
- from ..constants import adjustForeignAttributes, unadjustForeignAttributes
6
-
7
- prefix_mapping = {}
8
- for prefix, localName, namespace in adjustForeignAttributes.values():
9
- if prefix is not None:
10
- prefix_mapping[prefix] = namespace
11
-
12
-
13
- def to_sax(walker, handler):
14
- """Call SAX-like content handler based on treewalker walker"""
15
- handler.startDocument()
16
- for prefix, namespace in prefix_mapping.items():
17
- handler.startPrefixMapping(prefix, namespace)
18
-
19
- for token in walker:
20
- type = token["type"]
21
- if type == "Doctype":
22
- continue
23
- elif type in ("StartTag", "EmptyTag"):
24
- attrs = AttributesNSImpl(token["data"],
25
- unadjustForeignAttributes)
26
- handler.startElementNS((token["namespace"], token["name"]),
27
- token["name"],
28
- attrs)
29
- if type == "EmptyTag":
30
- handler.endElementNS((token["namespace"], token["name"]),
31
- token["name"])
32
- elif type == "EndTag":
33
- handler.endElementNS((token["namespace"], token["name"]),
34
- token["name"])
35
- elif type in ("Characters", "SpaceCharacters"):
36
- handler.characters(token["data"])
37
- elif type == "Comment":
38
- pass
39
- else:
40
- assert False, "Unknown token type"
41
-
42
- for prefix, namespace in prefix_mapping.items():
43
- handler.endPrefixMapping(prefix)
44
- handler.endDocument()
1
+ from __future__ import absolute_import, division, unicode_literals
2
+
3
+ from xml.sax.xmlreader import AttributesNSImpl
4
+
5
+ from ..constants import adjustForeignAttributes, unadjustForeignAttributes
6
+
7
+ prefix_mapping = {}
8
+ for prefix, localName, namespace in adjustForeignAttributes.values():
9
+ if prefix is not None:
10
+ prefix_mapping[prefix] = namespace
11
+
12
+
13
+ def to_sax(walker, handler):
14
+ """Call SAX-like content handler based on treewalker walker
15
+
16
+ :arg walker: the treewalker to use to walk the tree to convert it
17
+
18
+ :arg handler: SAX handler to use
19
+
20
+ """
21
+ handler.startDocument()
22
+ for prefix, namespace in prefix_mapping.items():
23
+ handler.startPrefixMapping(prefix, namespace)
24
+
25
+ for token in walker:
26
+ type = token["type"]
27
+ if type == "Doctype":
28
+ continue
29
+ elif type in ("StartTag", "EmptyTag"):
30
+ attrs = AttributesNSImpl(token["data"],
31
+ unadjustForeignAttributes)
32
+ handler.startElementNS((token["namespace"], token["name"]),
33
+ token["name"],
34
+ attrs)
35
+ if type == "EmptyTag":
36
+ handler.endElementNS((token["namespace"], token["name"]),
37
+ token["name"])
38
+ elif type == "EndTag":
39
+ handler.endElementNS((token["namespace"], token["name"]),
40
+ token["name"])
41
+ elif type in ("Characters", "SpaceCharacters"):
42
+ handler.characters(token["data"])
43
+ elif type == "Comment":
44
+ pass
45
+ else:
46
+ assert False, "Unknown token type"
47
+
48
+ for prefix, namespace in prefix_mapping.items():
49
+ handler.endPrefixMapping(prefix)
50
+ handler.endDocument()