com.googler.python 1.0.8 → 1.1.0

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 (365) hide show
  1. package/package.json +1 -1
  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-10.0.0.dist-info/LICENSE.txt +20 -0
  290. package/python3.4.2/lib/python3.4/site-packages/pip-10.0.0.dist-info/METADATA +78 -0
  291. package/python3.4.2/lib/python3.4/site-packages/pip-10.0.0.dist-info/RECORD +294 -0
  292. package/python3.4.2/lib/python3.4/site-packages/{pip-1.5.6.dist-info → pip-10.0.0.dist-info}/WHEEL +6 -6
  293. package/python3.4.2/lib/python3.4/site-packages/pip-10.0.0.dist-info/entry_points.txt +5 -0
  294. package/python3.4.2/lib/python3.4/site-packages/{pip-1.5.6.dist-info → pip-10.0.0.dist-info}/top_level.txt +0 -0
  295. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/_markerlib/__init__.py +0 -16
  296. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/_markerlib/markers.py +0 -119
  297. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/sanitizer.py +0 -271
  298. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/serializer/__init__.py +0 -16
  299. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/serializer/htmlserializer.py +0 -320
  300. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treewalkers/pulldom.py +0 -63
  301. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/re-vendor.py +0 -34
  302. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/__init__.py +0 -3
  303. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/big5freq.py +0 -925
  304. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/chardetect.py +0 -46
  305. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/charsetgroupprober.py +0 -106
  306. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/charsetprober.py +0 -62
  307. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/codingstatemachine.py +0 -61
  308. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/constants.py +0 -39
  309. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/escprober.py +0 -86
  310. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/escsm.py +0 -242
  311. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/eucjpprober.py +0 -90
  312. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/euckrfreq.py +0 -596
  313. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/mbcharsetprober.py +0 -86
  314. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/mbcssm.py +0 -575
  315. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/sbcharsetprober.py +0 -120
  316. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/sjisprober.py +0 -91
  317. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/universaldetector.py +0 -170
  318. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/__init__.py +0 -58
  319. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/_collections.py +0 -205
  320. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/connection.py +0 -204
  321. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/contrib/pyopenssl.py +0 -422
  322. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/exceptions.py +0 -126
  323. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/packages/six.py +0 -385
  324. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/poolmanager.py +0 -258
  325. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/response.py +0 -308
  326. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/util/__init__.py +0 -27
  327. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/util/connection.py +0 -45
  328. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/util/request.py +0 -68
  329. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/util/response.py +0 -13
  330. package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py +0 -133
  331. package/python3.4.2/lib/python3.4/site-packages/pip/backwardcompat/__init__.py +0 -138
  332. package/python3.4.2/lib/python3.4/site-packages/pip/basecommand.py +0 -201
  333. package/python3.4.2/lib/python3.4/site-packages/pip/cmdoptions.py +0 -371
  334. package/python3.4.2/lib/python3.4/site-packages/pip/commands/__init__.py +0 -88
  335. package/python3.4.2/lib/python3.4/site-packages/pip/commands/bundle.py +0 -42
  336. package/python3.4.2/lib/python3.4/site-packages/pip/commands/completion.py +0 -59
  337. package/python3.4.2/lib/python3.4/site-packages/pip/commands/freeze.py +0 -114
  338. package/python3.4.2/lib/python3.4/site-packages/pip/commands/install.py +0 -314
  339. package/python3.4.2/lib/python3.4/site-packages/pip/commands/list.py +0 -162
  340. package/python3.4.2/lib/python3.4/site-packages/pip/commands/search.py +0 -132
  341. package/python3.4.2/lib/python3.4/site-packages/pip/commands/show.py +0 -80
  342. package/python3.4.2/lib/python3.4/site-packages/pip/commands/uninstall.py +0 -59
  343. package/python3.4.2/lib/python3.4/site-packages/pip/commands/unzip.py +0 -7
  344. package/python3.4.2/lib/python3.4/site-packages/pip/commands/wheel.py +0 -195
  345. package/python3.4.2/lib/python3.4/site-packages/pip/commands/zip.py +0 -351
  346. package/python3.4.2/lib/python3.4/site-packages/pip/download.py +0 -644
  347. package/python3.4.2/lib/python3.4/site-packages/pip/exceptions.py +0 -46
  348. package/python3.4.2/lib/python3.4/site-packages/pip/index.py +0 -990
  349. package/python3.4.2/lib/python3.4/site-packages/pip/locations.py +0 -171
  350. package/python3.4.2/lib/python3.4/site-packages/pip/log.py +0 -276
  351. package/python3.4.2/lib/python3.4/site-packages/pip/pep425tags.py +0 -102
  352. package/python3.4.2/lib/python3.4/site-packages/pip/req.py +0 -1931
  353. package/python3.4.2/lib/python3.4/site-packages/pip/runner.py +0 -18
  354. package/python3.4.2/lib/python3.4/site-packages/pip/util.py +0 -720
  355. package/python3.4.2/lib/python3.4/site-packages/pip/vcs/__init__.py +0 -251
  356. package/python3.4.2/lib/python3.4/site-packages/pip/vcs/bazaar.py +0 -131
  357. package/python3.4.2/lib/python3.4/site-packages/pip/vcs/git.py +0 -194
  358. package/python3.4.2/lib/python3.4/site-packages/pip/vcs/mercurial.py +0 -151
  359. package/python3.4.2/lib/python3.4/site-packages/pip/vcs/subversion.py +0 -273
  360. package/python3.4.2/lib/python3.4/site-packages/pip/wheel.py +0 -560
  361. package/python3.4.2/lib/python3.4/site-packages/pip-1.5.6.dist-info/DESCRIPTION.rst +0 -71
  362. package/python3.4.2/lib/python3.4/site-packages/pip-1.5.6.dist-info/METADATA +0 -98
  363. package/python3.4.2/lib/python3.4/site-packages/pip-1.5.6.dist-info/RECORD +0 -373
  364. package/python3.4.2/lib/python3.4/site-packages/pip-1.5.6.dist-info/entry_points.txt +0 -5
  365. package/python3.4.2/lib/python3.4/site-packages/pip-1.5.6.dist-info/metadata.json +0 -1
@@ -1,271 +0,0 @@
1
- from __future__ import absolute_import, division, unicode_literals
2
-
3
- import re
4
- from xml.sax.saxutils import escape, unescape
5
-
6
- from .tokenizer import HTMLTokenizer
7
- from .constants import tokenTypes
8
-
9
-
10
- class HTMLSanitizerMixin(object):
11
- """ sanitization of XHTML+MathML+SVG and of inline style attributes."""
12
-
13
- acceptable_elements = ['a', 'abbr', 'acronym', 'address', 'area',
14
- 'article', 'aside', 'audio', 'b', 'big', 'blockquote', 'br', 'button',
15
- 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup',
16
- 'command', 'datagrid', 'datalist', 'dd', 'del', 'details', 'dfn',
17
- 'dialog', 'dir', 'div', 'dl', 'dt', 'em', 'event-source', 'fieldset',
18
- 'figcaption', 'figure', 'footer', 'font', 'form', 'header', 'h1',
19
- 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'input', 'ins',
20
- 'keygen', 'kbd', 'label', 'legend', 'li', 'm', 'map', 'menu', 'meter',
21
- 'multicol', 'nav', 'nextid', 'ol', 'output', 'optgroup', 'option',
22
- 'p', 'pre', 'progress', 'q', 's', 'samp', 'section', 'select',
23
- 'small', 'sound', 'source', 'spacer', 'span', 'strike', 'strong',
24
- 'sub', 'sup', 'table', 'tbody', 'td', 'textarea', 'time', 'tfoot',
25
- 'th', 'thead', 'tr', 'tt', 'u', 'ul', 'var', 'video']
26
-
27
- mathml_elements = ['maction', 'math', 'merror', 'mfrac', 'mi',
28
- 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom',
29
- 'mprescripts', 'mroot', 'mrow', 'mspace', 'msqrt', 'mstyle', 'msub',
30
- 'msubsup', 'msup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder',
31
- 'munderover', 'none']
32
-
33
- svg_elements = ['a', 'animate', 'animateColor', 'animateMotion',
34
- 'animateTransform', 'clipPath', 'circle', 'defs', 'desc', 'ellipse',
35
- 'font-face', 'font-face-name', 'font-face-src', 'g', 'glyph', 'hkern',
36
- 'linearGradient', 'line', 'marker', 'metadata', 'missing-glyph',
37
- 'mpath', 'path', 'polygon', 'polyline', 'radialGradient', 'rect',
38
- 'set', 'stop', 'svg', 'switch', 'text', 'title', 'tspan', 'use']
39
-
40
- acceptable_attributes = ['abbr', 'accept', 'accept-charset', 'accesskey',
41
- 'action', 'align', 'alt', 'autocomplete', 'autofocus', 'axis',
42
- 'background', 'balance', 'bgcolor', 'bgproperties', 'border',
43
- 'bordercolor', 'bordercolordark', 'bordercolorlight', 'bottompadding',
44
- 'cellpadding', 'cellspacing', 'ch', 'challenge', 'char', 'charoff',
45
- 'choff', 'charset', 'checked', 'cite', 'class', 'clear', 'color',
46
- 'cols', 'colspan', 'compact', 'contenteditable', 'controls', 'coords',
47
- 'data', 'datafld', 'datapagesize', 'datasrc', 'datetime', 'default',
48
- 'delay', 'dir', 'disabled', 'draggable', 'dynsrc', 'enctype', 'end',
49
- 'face', 'for', 'form', 'frame', 'galleryimg', 'gutter', 'headers',
50
- 'height', 'hidefocus', 'hidden', 'high', 'href', 'hreflang', 'hspace',
51
- 'icon', 'id', 'inputmode', 'ismap', 'keytype', 'label', 'leftspacing',
52
- 'lang', 'list', 'longdesc', 'loop', 'loopcount', 'loopend',
53
- 'loopstart', 'low', 'lowsrc', 'max', 'maxlength', 'media', 'method',
54
- 'min', 'multiple', 'name', 'nohref', 'noshade', 'nowrap', 'open',
55
- 'optimum', 'pattern', 'ping', 'point-size', 'poster', 'pqg', 'preload',
56
- 'prompt', 'radiogroup', 'readonly', 'rel', 'repeat-max', 'repeat-min',
57
- 'replace', 'required', 'rev', 'rightspacing', 'rows', 'rowspan',
58
- 'rules', 'scope', 'selected', 'shape', 'size', 'span', 'src', 'start',
59
- 'step', 'style', 'summary', 'suppress', 'tabindex', 'target',
60
- 'template', 'title', 'toppadding', 'type', 'unselectable', 'usemap',
61
- 'urn', 'valign', 'value', 'variable', 'volume', 'vspace', 'vrml',
62
- 'width', 'wrap', 'xml:lang']
63
-
64
- mathml_attributes = ['actiontype', 'align', 'columnalign', 'columnalign',
65
- 'columnalign', 'columnlines', 'columnspacing', 'columnspan', 'depth',
66
- 'display', 'displaystyle', 'equalcolumns', 'equalrows', 'fence',
67
- 'fontstyle', 'fontweight', 'frame', 'height', 'linethickness', 'lspace',
68
- 'mathbackground', 'mathcolor', 'mathvariant', 'mathvariant', 'maxsize',
69
- 'minsize', 'other', 'rowalign', 'rowalign', 'rowalign', 'rowlines',
70
- 'rowspacing', 'rowspan', 'rspace', 'scriptlevel', 'selection',
71
- 'separator', 'stretchy', 'width', 'width', 'xlink:href', 'xlink:show',
72
- 'xlink:type', 'xmlns', 'xmlns:xlink']
73
-
74
- svg_attributes = ['accent-height', 'accumulate', 'additive', 'alphabetic',
75
- 'arabic-form', 'ascent', 'attributeName', 'attributeType',
76
- 'baseProfile', 'bbox', 'begin', 'by', 'calcMode', 'cap-height',
77
- 'class', 'clip-path', 'color', 'color-rendering', 'content', 'cx',
78
- 'cy', 'd', 'dx', 'dy', 'descent', 'display', 'dur', 'end', 'fill',
79
- 'fill-opacity', 'fill-rule', 'font-family', 'font-size',
80
- 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'from',
81
- 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'gradientUnits', 'hanging',
82
- 'height', 'horiz-adv-x', 'horiz-origin-x', 'id', 'ideographic', 'k',
83
- 'keyPoints', 'keySplines', 'keyTimes', 'lang', 'marker-end',
84
- 'marker-mid', 'marker-start', 'markerHeight', 'markerUnits',
85
- 'markerWidth', 'mathematical', 'max', 'min', 'name', 'offset',
86
- 'opacity', 'orient', 'origin', 'overline-position',
87
- 'overline-thickness', 'panose-1', 'path', 'pathLength', 'points',
88
- 'preserveAspectRatio', 'r', 'refX', 'refY', 'repeatCount',
89
- 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart',
90
- 'rotate', 'rx', 'ry', 'slope', 'stemh', 'stemv', 'stop-color',
91
- 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness',
92
- 'stroke', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap',
93
- 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity',
94
- 'stroke-width', 'systemLanguage', 'target', 'text-anchor', 'to',
95
- 'transform', 'type', 'u1', 'u2', 'underline-position',
96
- 'underline-thickness', 'unicode', 'unicode-range', 'units-per-em',
97
- 'values', 'version', 'viewBox', 'visibility', 'width', 'widths', 'x',
98
- 'x-height', 'x1', 'x2', 'xlink:actuate', 'xlink:arcrole',
99
- 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type',
100
- 'xml:base', 'xml:lang', 'xml:space', 'xmlns', 'xmlns:xlink', 'y',
101
- 'y1', 'y2', 'zoomAndPan']
102
-
103
- attr_val_is_uri = ['href', 'src', 'cite', 'action', 'longdesc', 'poster',
104
- 'xlink:href', 'xml:base']
105
-
106
- svg_attr_val_allows_ref = ['clip-path', 'color-profile', 'cursor', 'fill',
107
- 'filter', 'marker', 'marker-start', 'marker-mid', 'marker-end',
108
- 'mask', 'stroke']
109
-
110
- svg_allow_local_href = ['altGlyph', 'animate', 'animateColor',
111
- 'animateMotion', 'animateTransform', 'cursor', 'feImage', 'filter',
112
- 'linearGradient', 'pattern', 'radialGradient', 'textpath', 'tref',
113
- 'set', 'use']
114
-
115
- acceptable_css_properties = ['azimuth', 'background-color',
116
- 'border-bottom-color', 'border-collapse', 'border-color',
117
- 'border-left-color', 'border-right-color', 'border-top-color', 'clear',
118
- 'color', 'cursor', 'direction', 'display', 'elevation', 'float', 'font',
119
- 'font-family', 'font-size', 'font-style', 'font-variant', 'font-weight',
120
- 'height', 'letter-spacing', 'line-height', 'overflow', 'pause',
121
- 'pause-after', 'pause-before', 'pitch', 'pitch-range', 'richness',
122
- 'speak', 'speak-header', 'speak-numeral', 'speak-punctuation',
123
- 'speech-rate', 'stress', 'text-align', 'text-decoration', 'text-indent',
124
- 'unicode-bidi', 'vertical-align', 'voice-family', 'volume',
125
- 'white-space', 'width']
126
-
127
- acceptable_css_keywords = ['auto', 'aqua', 'black', 'block', 'blue',
128
- 'bold', 'both', 'bottom', 'brown', 'center', 'collapse', 'dashed',
129
- 'dotted', 'fuchsia', 'gray', 'green', '!important', 'italic', 'left',
130
- 'lime', 'maroon', 'medium', 'none', 'navy', 'normal', 'nowrap', 'olive',
131
- 'pointer', 'purple', 'red', 'right', 'solid', 'silver', 'teal', 'top',
132
- 'transparent', 'underline', 'white', 'yellow']
133
-
134
- acceptable_svg_properties = ['fill', 'fill-opacity', 'fill-rule',
135
- 'stroke', 'stroke-width', 'stroke-linecap', 'stroke-linejoin',
136
- 'stroke-opacity']
137
-
138
- acceptable_protocols = ['ed2k', 'ftp', 'http', 'https', 'irc',
139
- 'mailto', 'news', 'gopher', 'nntp', 'telnet', 'webcal',
140
- 'xmpp', 'callto', 'feed', 'urn', 'aim', 'rsync', 'tag',
141
- 'ssh', 'sftp', 'rtsp', 'afs']
142
-
143
- # subclasses may define their own versions of these constants
144
- allowed_elements = acceptable_elements + mathml_elements + svg_elements
145
- allowed_attributes = acceptable_attributes + mathml_attributes + svg_attributes
146
- allowed_css_properties = acceptable_css_properties
147
- allowed_css_keywords = acceptable_css_keywords
148
- allowed_svg_properties = acceptable_svg_properties
149
- allowed_protocols = acceptable_protocols
150
-
151
- # Sanitize the +html+, escaping all elements not in ALLOWED_ELEMENTS, and
152
- # stripping out all # attributes not in ALLOWED_ATTRIBUTES. Style
153
- # attributes are parsed, and a restricted set, # specified by
154
- # ALLOWED_CSS_PROPERTIES and ALLOWED_CSS_KEYWORDS, are allowed through.
155
- # attributes in ATTR_VAL_IS_URI are scanned, and only URI schemes specified
156
- # in ALLOWED_PROTOCOLS are allowed.
157
- #
158
- # sanitize_html('<script> do_nasty_stuff() </script>')
159
- # => &lt;script> do_nasty_stuff() &lt;/script>
160
- # sanitize_html('<a href="javascript: sucker();">Click here for $100</a>')
161
- # => <a>Click here for $100</a>
162
- def sanitize_token(self, token):
163
-
164
- # accommodate filters which use token_type differently
165
- token_type = token["type"]
166
- if token_type in list(tokenTypes.keys()):
167
- token_type = tokenTypes[token_type]
168
-
169
- if token_type in (tokenTypes["StartTag"], tokenTypes["EndTag"],
170
- tokenTypes["EmptyTag"]):
171
- if token["name"] in self.allowed_elements:
172
- return self.allowed_token(token, token_type)
173
- else:
174
- return self.disallowed_token(token, token_type)
175
- elif token_type == tokenTypes["Comment"]:
176
- pass
177
- else:
178
- return token
179
-
180
- def allowed_token(self, token, token_type):
181
- if "data" in token:
182
- attrs = dict([(name, val) for name, val in
183
- token["data"][::-1]
184
- if name in self.allowed_attributes])
185
- for attr in self.attr_val_is_uri:
186
- if attr not in attrs:
187
- continue
188
- val_unescaped = re.sub("[`\000-\040\177-\240\s]+", '',
189
- unescape(attrs[attr])).lower()
190
- # remove replacement characters from unescaped characters
191
- val_unescaped = val_unescaped.replace("\ufffd", "")
192
- if (re.match("^[a-z0-9][-+.a-z0-9]*:", val_unescaped) and
193
- (val_unescaped.split(':')[0] not in
194
- self.allowed_protocols)):
195
- del attrs[attr]
196
- for attr in self.svg_attr_val_allows_ref:
197
- if attr in attrs:
198
- attrs[attr] = re.sub(r'url\s*\(\s*[^#\s][^)]+?\)',
199
- ' ',
200
- unescape(attrs[attr]))
201
- if (token["name"] in self.svg_allow_local_href and
202
- 'xlink:href' in attrs and re.search('^\s*[^#\s].*',
203
- attrs['xlink:href'])):
204
- del attrs['xlink:href']
205
- if 'style' in attrs:
206
- attrs['style'] = self.sanitize_css(attrs['style'])
207
- token["data"] = [[name, val] for name, val in list(attrs.items())]
208
- return token
209
-
210
- def disallowed_token(self, token, token_type):
211
- if token_type == tokenTypes["EndTag"]:
212
- token["data"] = "</%s>" % token["name"]
213
- elif token["data"]:
214
- attrs = ''.join([' %s="%s"' % (k, escape(v)) for k, v in token["data"]])
215
- token["data"] = "<%s%s>" % (token["name"], attrs)
216
- else:
217
- token["data"] = "<%s>" % token["name"]
218
- if token.get("selfClosing"):
219
- token["data"] = token["data"][:-1] + "/>"
220
-
221
- if token["type"] in list(tokenTypes.keys()):
222
- token["type"] = "Characters"
223
- else:
224
- token["type"] = tokenTypes["Characters"]
225
-
226
- del token["name"]
227
- return token
228
-
229
- def sanitize_css(self, style):
230
- # disallow urls
231
- style = re.compile('url\s*\(\s*[^\s)]+?\s*\)\s*').sub(' ', style)
232
-
233
- # gauntlet
234
- if not re.match("""^([:,;#%.\sa-zA-Z0-9!]|\w-\w|'[\s\w]+'|"[\s\w]+"|\([\d,\s]+\))*$""", style):
235
- return ''
236
- if not re.match("^\s*([-\w]+\s*:[^:;]*(;\s*|$))*$", style):
237
- return ''
238
-
239
- clean = []
240
- for prop, value in re.findall("([-\w]+)\s*:\s*([^:;]*)", style):
241
- if not value:
242
- continue
243
- if prop.lower() in self.allowed_css_properties:
244
- clean.append(prop + ': ' + value + ';')
245
- elif prop.split('-')[0].lower() in ['background', 'border', 'margin',
246
- 'padding']:
247
- for keyword in value.split():
248
- if not keyword in self.acceptable_css_keywords and \
249
- not re.match("^(#[0-9a-f]+|rgb\(\d+%?,\d*%?,?\d*%?\)?|\d{0,2}\.?\d{0,2}(cm|em|ex|in|mm|pc|pt|px|%|,|\))?)$", keyword):
250
- break
251
- else:
252
- clean.append(prop + ': ' + value + ';')
253
- elif prop.lower() in self.allowed_svg_properties:
254
- clean.append(prop + ': ' + value + ';')
255
-
256
- return ' '.join(clean)
257
-
258
-
259
- class HTMLSanitizer(HTMLTokenizer, HTMLSanitizerMixin):
260
- def __init__(self, stream, encoding=None, parseMeta=True, useChardet=True,
261
- lowercaseElementName=False, lowercaseAttrName=False, parser=None):
262
- # Change case matching defaults as we only output lowercase html anyway
263
- # This solution doesn't seem ideal...
264
- HTMLTokenizer.__init__(self, stream, encoding, parseMeta, useChardet,
265
- lowercaseElementName, lowercaseAttrName, parser=parser)
266
-
267
- def __iter__(self):
268
- for token in HTMLTokenizer.__iter__(self):
269
- token = self.sanitize_token(token)
270
- if token:
271
- yield token
@@ -1,16 +0,0 @@
1
- from __future__ import absolute_import, division, unicode_literals
2
-
3
- from .. import treewalkers
4
-
5
- from .htmlserializer import HTMLSerializer
6
-
7
-
8
- def serialize(input, tree="etree", format="html", encoding=None,
9
- **serializer_opts):
10
- # XXX: Should we cache this?
11
- walker = treewalkers.getTreeWalker(tree)
12
- if format == "html":
13
- s = HTMLSerializer(**serializer_opts)
14
- else:
15
- raise ValueError("type must be html")
16
- return s.render(walker(input), encoding)
@@ -1,320 +0,0 @@
1
- from __future__ import absolute_import, division, unicode_literals
2
- from pip._vendor.six import text_type
3
-
4
- import gettext
5
- _ = gettext.gettext
6
-
7
- try:
8
- from functools import reduce
9
- except ImportError:
10
- pass
11
-
12
- from ..constants import voidElements, booleanAttributes, spaceCharacters
13
- from ..constants import rcdataElements, entities, xmlEntities
14
- from .. import utils
15
- from xml.sax.saxutils import escape
16
-
17
- spaceCharacters = "".join(spaceCharacters)
18
-
19
- try:
20
- from codecs import register_error, xmlcharrefreplace_errors
21
- except ImportError:
22
- unicode_encode_errors = "strict"
23
- else:
24
- unicode_encode_errors = "htmlentityreplace"
25
-
26
- encode_entity_map = {}
27
- is_ucs4 = len("\U0010FFFF") == 1
28
- for k, v in list(entities.items()):
29
- # skip multi-character entities
30
- if ((is_ucs4 and len(v) > 1) or
31
- (not is_ucs4 and len(v) > 2)):
32
- continue
33
- if v != "&":
34
- if len(v) == 2:
35
- v = utils.surrogatePairToCodepoint(v)
36
- else:
37
- v = ord(v)
38
- if not v in encode_entity_map or k.islower():
39
- # prefer &lt; over &LT; and similarly for &amp;, &gt;, etc.
40
- encode_entity_map[v] = k
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
- register_error(unicode_encode_errors, htmlentityreplace_errors)
72
-
73
- del register_error
74
-
75
-
76
- class HTMLSerializer(object):
77
-
78
- # attribute quoting options
79
- quote_attr_values = False
80
- quote_char = '"'
81
- use_best_quote_char = True
82
-
83
- # tag syntax options
84
- omit_optional_tags = True
85
- minimize_boolean_attributes = True
86
- use_trailing_solidus = False
87
- space_before_trailing_solidus = True
88
-
89
- # escaping options
90
- escape_lt_in_attrs = False
91
- escape_rcdata = False
92
- resolve_entities = True
93
-
94
- # miscellaneous options
95
- alphabetical_attributes = False
96
- inject_meta_charset = True
97
- strip_whitespace = False
98
- sanitize = False
99
-
100
- options = ("quote_attr_values", "quote_char", "use_best_quote_char",
101
- "omit_optional_tags", "minimize_boolean_attributes",
102
- "use_trailing_solidus", "space_before_trailing_solidus",
103
- "escape_lt_in_attrs", "escape_rcdata", "resolve_entities",
104
- "alphabetical_attributes", "inject_meta_charset",
105
- "strip_whitespace", "sanitize")
106
-
107
- def __init__(self, **kwargs):
108
- """Initialize HTMLSerializer.
109
-
110
- Keyword options (default given first unless specified) include:
111
-
112
- inject_meta_charset=True|False
113
- Whether it insert a meta element to define the character set of the
114
- document.
115
- quote_attr_values=True|False
116
- Whether to quote attribute values that don't require quoting
117
- per HTML5 parsing rules.
118
- quote_char=u'"'|u"'"
119
- Use given quote character for attribute quoting. Default is to
120
- use double quote unless attribute value contains a double quote,
121
- in which case single quotes are used instead.
122
- escape_lt_in_attrs=False|True
123
- Whether to escape < in attribute values.
124
- escape_rcdata=False|True
125
- Whether to escape characters that need to be escaped within normal
126
- elements within rcdata elements such as style.
127
- resolve_entities=True|False
128
- Whether to resolve named character entities that appear in the
129
- source tree. The XML predefined entities &lt; &gt; &amp; &quot; &apos;
130
- are unaffected by this setting.
131
- strip_whitespace=False|True
132
- Whether to remove semantically meaningless whitespace. (This
133
- compresses all whitespace to a single space except within pre.)
134
- minimize_boolean_attributes=True|False
135
- Shortens boolean attributes to give just the attribute value,
136
- for example <input disabled="disabled"> becomes <input disabled>.
137
- use_trailing_solidus=False|True
138
- Includes a close-tag slash at the end of the start tag of void
139
- elements (empty elements whose end tag is forbidden). E.g. <hr/>.
140
- space_before_trailing_solidus=True|False
141
- Places a space immediately before the closing slash in a tag
142
- using a trailing solidus. E.g. <hr />. Requires use_trailing_solidus.
143
- sanitize=False|True
144
- Strip all unsafe or unknown constructs from output.
145
- See `html5lib user documentation`_
146
- omit_optional_tags=True|False
147
- Omit start/end tags that are optional.
148
- alphabetical_attributes=False|True
149
- Reorder attributes to be in alphabetical order.
150
-
151
- .. _html5lib user documentation: http://code.google.com/p/html5lib/wiki/UserDocumentation
152
- """
153
- if 'quote_char' in kwargs:
154
- self.use_best_quote_char = False
155
- for attr in self.options:
156
- setattr(self, attr, kwargs.get(attr, getattr(self, attr)))
157
- self.errors = []
158
- self.strict = False
159
-
160
- def encode(self, string):
161
- assert(isinstance(string, text_type))
162
- if self.encoding:
163
- return string.encode(self.encoding, unicode_encode_errors)
164
- else:
165
- return string
166
-
167
- def encodeStrict(self, string):
168
- assert(isinstance(string, text_type))
169
- if self.encoding:
170
- return string.encode(self.encoding, "strict")
171
- else:
172
- return string
173
-
174
- def serialize(self, treewalker, encoding=None):
175
- self.encoding = encoding
176
- in_cdata = False
177
- self.errors = []
178
-
179
- if encoding and self.inject_meta_charset:
180
- from ..filters.inject_meta_charset import Filter
181
- treewalker = Filter(treewalker, encoding)
182
- # WhitespaceFilter should be used before OptionalTagFilter
183
- # for maximum efficiently of this latter filter
184
- if self.strip_whitespace:
185
- from ..filters.whitespace import Filter
186
- treewalker = Filter(treewalker)
187
- if self.sanitize:
188
- from ..filters.sanitizer import Filter
189
- treewalker = Filter(treewalker)
190
- if self.omit_optional_tags:
191
- from ..filters.optionaltags import Filter
192
- treewalker = Filter(treewalker)
193
- # Alphabetical attributes must be last, as other filters
194
- # could add attributes and alter the order
195
- if self.alphabetical_attributes:
196
- from ..filters.alphabeticalattributes import Filter
197
- treewalker = Filter(treewalker)
198
-
199
- for token in treewalker:
200
- type = token["type"]
201
- if type == "Doctype":
202
- doctype = "<!DOCTYPE %s" % token["name"]
203
-
204
- if token["publicId"]:
205
- doctype += ' PUBLIC "%s"' % token["publicId"]
206
- elif token["systemId"]:
207
- doctype += " SYSTEM"
208
- if token["systemId"]:
209
- if token["systemId"].find('"') >= 0:
210
- if token["systemId"].find("'") >= 0:
211
- self.serializeError(_("System identifer contains both single and double quote characters"))
212
- quote_char = "'"
213
- else:
214
- quote_char = '"'
215
- doctype += " %s%s%s" % (quote_char, token["systemId"], quote_char)
216
-
217
- doctype += ">"
218
- yield self.encodeStrict(doctype)
219
-
220
- elif type in ("Characters", "SpaceCharacters"):
221
- if type == "SpaceCharacters" or in_cdata:
222
- if in_cdata and token["data"].find("</") >= 0:
223
- self.serializeError(_("Unexpected </ in CDATA"))
224
- yield self.encode(token["data"])
225
- else:
226
- yield self.encode(escape(token["data"]))
227
-
228
- elif type in ("StartTag", "EmptyTag"):
229
- name = token["name"]
230
- yield self.encodeStrict("<%s" % name)
231
- if name in rcdataElements and not self.escape_rcdata:
232
- in_cdata = True
233
- elif in_cdata:
234
- self.serializeError(_("Unexpected child element of a CDATA element"))
235
- for (attr_namespace, attr_name), attr_value in token["data"].items():
236
- # TODO: Add namespace support here
237
- k = attr_name
238
- v = attr_value
239
- yield self.encodeStrict(' ')
240
-
241
- yield self.encodeStrict(k)
242
- if not self.minimize_boolean_attributes or \
243
- (k not in booleanAttributes.get(name, tuple())
244
- and k not in booleanAttributes.get("", tuple())):
245
- yield self.encodeStrict("=")
246
- if self.quote_attr_values or not v:
247
- quote_attr = True
248
- else:
249
- quote_attr = reduce(lambda x, y: x or (y in v),
250
- spaceCharacters + ">\"'=", False)
251
- v = v.replace("&", "&amp;")
252
- if self.escape_lt_in_attrs:
253
- v = v.replace("<", "&lt;")
254
- if quote_attr:
255
- quote_char = self.quote_char
256
- if self.use_best_quote_char:
257
- if "'" in v and '"' not in v:
258
- quote_char = '"'
259
- elif '"' in v and "'" not in v:
260
- quote_char = "'"
261
- if quote_char == "'":
262
- v = v.replace("'", "&#39;")
263
- else:
264
- v = v.replace('"', "&quot;")
265
- yield self.encodeStrict(quote_char)
266
- yield self.encode(v)
267
- yield self.encodeStrict(quote_char)
268
- else:
269
- yield self.encode(v)
270
- if name in voidElements and self.use_trailing_solidus:
271
- if self.space_before_trailing_solidus:
272
- yield self.encodeStrict(" /")
273
- else:
274
- yield self.encodeStrict("/")
275
- yield self.encode(">")
276
-
277
- elif type == "EndTag":
278
- name = token["name"]
279
- if name in rcdataElements:
280
- in_cdata = False
281
- elif in_cdata:
282
- self.serializeError(_("Unexpected child element of a CDATA element"))
283
- yield self.encodeStrict("</%s>" % name)
284
-
285
- elif type == "Comment":
286
- data = token["data"]
287
- if data.find("--") >= 0:
288
- self.serializeError(_("Comment contains --"))
289
- yield self.encodeStrict("<!--%s-->" % token["data"])
290
-
291
- elif type == "Entity":
292
- name = token["name"]
293
- key = name + ";"
294
- if not key in entities:
295
- self.serializeError(_("Entity %s not recognized" % name))
296
- if self.resolve_entities and key not in xmlEntities:
297
- data = entities[key]
298
- else:
299
- data = "&%s;" % name
300
- yield self.encodeStrict(data)
301
-
302
- else:
303
- self.serializeError(token["data"])
304
-
305
- def render(self, treewalker, encoding=None):
306
- if encoding:
307
- return b"".join(list(self.serialize(treewalker, encoding)))
308
- else:
309
- return "".join(list(self.serialize(treewalker)))
310
-
311
- def serializeError(self, data="XXX ERROR MESSAGE NEEDED"):
312
- # XXX The idea is to make data mandatory.
313
- self.errors.append(data)
314
- if self.strict:
315
- raise SerializeError
316
-
317
-
318
- def SerializeError(Exception):
319
- """Error in serialized tree"""
320
- pass