libv8 6.7.288.46.1 → 7.3.492.27.0beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (408) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -0
  3. data/CHANGELOG.md +4 -0
  4. data/README.md +2 -0
  5. data/ext/libv8/builder.rb +6 -2
  6. data/lib/libv8/version.rb +1 -1
  7. data/vendor/depot_tools/.gitattributes +1 -0
  8. data/vendor/depot_tools/.gitignore +7 -0
  9. data/vendor/depot_tools/CROS_OWNERS +5 -0
  10. data/vendor/depot_tools/OWNERS +12 -1
  11. data/vendor/depot_tools/PRESUBMIT.py +16 -9
  12. data/vendor/depot_tools/README.md +9 -2
  13. data/vendor/depot_tools/autoninja +14 -6
  14. data/vendor/depot_tools/autoninja.bat +11 -1
  15. data/vendor/depot_tools/autoninja.py +40 -18
  16. data/vendor/depot_tools/bb +12 -0
  17. data/vendor/depot_tools/bb.bat +7 -0
  18. data/vendor/depot_tools/bootstrap/win/manifest.txt +1 -1
  19. data/vendor/depot_tools/bootstrap/win/manifest_bleeding_edge.txt +1 -1
  20. data/vendor/depot_tools/bootstrap/win/win_tools.py +2 -1
  21. data/vendor/depot_tools/buildbucket.py +57 -4
  22. data/vendor/depot_tools/cipd +157 -44
  23. data/vendor/depot_tools/cipd.bat +51 -14
  24. data/vendor/depot_tools/cipd.ps1 +104 -42
  25. data/vendor/depot_tools/cipd_client_version +1 -1
  26. data/vendor/depot_tools/cipd_client_version.digests +21 -0
  27. data/vendor/depot_tools/cipd_manifest.txt +19 -6
  28. data/vendor/depot_tools/cipd_manifest.versions +318 -0
  29. data/vendor/depot_tools/clang_format.py +4 -4
  30. data/vendor/depot_tools/cpplint.py +44 -199
  31. data/vendor/depot_tools/dart_format.py +2 -2
  32. data/vendor/depot_tools/detect_host_arch.py +8 -3
  33. data/vendor/depot_tools/download_from_google_storage.py +47 -39
  34. data/vendor/depot_tools/fetch.py +30 -18
  35. data/vendor/depot_tools/fetch_configs/android_internal.py +34 -0
  36. data/vendor/depot_tools/fetch_configs/chromium.py +18 -1
  37. data/vendor/depot_tools/fetch_configs/config_util.py +4 -2
  38. data/vendor/depot_tools/fetch_configs/inspector_protocol.py +40 -0
  39. data/vendor/depot_tools/fetch_configs/node-ci.py +41 -0
  40. data/vendor/depot_tools/fix_encoding.py +3 -3
  41. data/vendor/depot_tools/gclient +1 -1
  42. data/vendor/depot_tools/gclient.py +415 -198
  43. data/vendor/depot_tools/gclient_eval.py +220 -171
  44. data/vendor/depot_tools/gclient_paths.py +142 -0
  45. data/vendor/depot_tools/gclient_scm.py +200 -51
  46. data/vendor/depot_tools/gclient_utils.py +88 -191
  47. data/vendor/depot_tools/gerrit_client.py +13 -0
  48. data/vendor/depot_tools/gerrit_util.py +158 -23
  49. data/vendor/depot_tools/git-nav-upstream +1 -1
  50. data/vendor/depot_tools/git_cache.py +77 -24
  51. data/vendor/depot_tools/git_cl.py +705 -1099
  52. data/vendor/depot_tools/git_common.py +9 -6
  53. data/vendor/depot_tools/git_map_branches.py +19 -2
  54. data/vendor/depot_tools/git_nav_downstream.py +3 -4
  55. data/vendor/depot_tools/git_rebase_update.py +14 -0
  56. data/vendor/depot_tools/git_reparent_branch.py +8 -2
  57. data/vendor/depot_tools/gn.py +38 -3
  58. data/vendor/depot_tools/gsutil.py +8 -3
  59. data/vendor/depot_tools/gsutil.py.bat +15 -0
  60. data/vendor/depot_tools/gsutil.vpython +16 -0
  61. data/vendor/depot_tools/infra/config/OWNERS +0 -1
  62. data/vendor/depot_tools/infra/config/recipes.cfg +3 -2
  63. data/vendor/depot_tools/lucicfg +12 -0
  64. data/vendor/depot_tools/lucicfg.bat +7 -0
  65. data/vendor/depot_tools/man/html/git-map-branches.html +34 -2
  66. data/vendor/depot_tools/man/html/git-new-branch.html +40 -32
  67. data/vendor/depot_tools/man/man1/git-map-branches.1 +24 -5
  68. data/vendor/depot_tools/man/man1/git-new-branch.1 +35 -27
  69. data/vendor/depot_tools/man/src/git-map-branches.demo.1.sh +1 -0
  70. data/vendor/depot_tools/man/src/git-map-branches.txt +10 -0
  71. data/vendor/depot_tools/man/src/git-new-branch.demo.1.sh +9 -4
  72. data/vendor/depot_tools/man/src/git-new-branch.txt +1 -1
  73. data/vendor/depot_tools/metrics.README.md +98 -0
  74. data/vendor/depot_tools/metrics.py +296 -0
  75. data/vendor/depot_tools/metrics_utils.py +303 -0
  76. data/vendor/depot_tools/my_activity.py +91 -29
  77. data/vendor/depot_tools/ninja +1 -1
  78. data/vendor/depot_tools/ninjalog.README.md +64 -0
  79. data/vendor/depot_tools/ninjalog_uploader.py +232 -0
  80. data/vendor/depot_tools/ninjalog_uploader_wrapper.py +116 -0
  81. data/vendor/depot_tools/owners.py +30 -13
  82. data/vendor/depot_tools/owners_finder.py +5 -2
  83. data/vendor/depot_tools/presubmit_canned_checks.py +188 -29
  84. data/vendor/depot_tools/presubmit_support.py +18 -41
  85. data/vendor/depot_tools/pylintrc +23 -19
  86. data/vendor/depot_tools/recipes/OWNERS +2 -0
  87. data/vendor/depot_tools/recipes/README.recipes.md +344 -151
  88. data/vendor/depot_tools/recipes/recipe_modules/bot_update/OWNERS +2 -0
  89. data/vendor/depot_tools/recipes/recipe_modules/bot_update/__init__.py +2 -16
  90. data/vendor/depot_tools/recipes/recipe_modules/bot_update/api.py +141 -99
  91. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic.json +5 -8
  92. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_luci.json +5 -8
  93. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_with_branch_heads.json +6 -98
  94. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/clobber.json +4 -9
  95. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/deprecated_got_revision_mapping.json +45 -5
  96. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_rebase_patch_ref.json +4 -9
  97. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_reset.json +4 -9
  98. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/{tryjob.json → input_commit_with_id_without_repo.json} +6 -11
  99. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/{tryjob_empty_revision.json → multiple_patch_refs.json} +8 -9
  100. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_apply_patch_on_gclient.json +19 -29
  101. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/{trychange.json → refs.json} +4 -9
  102. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/reset_root_solution_revision.json +4 -9
  103. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail.json +51 -6
  104. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch.json +50 -6
  105. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch_download.json +51 -6
  106. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle.json +17 -25
  107. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_branch_heads.json +17 -25
  108. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_feature_branch.json +18 -26
  109. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8_feature_branch.json +18 -26
  110. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_webrtc.json +26 -28
  111. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8.json +45 -5
  112. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8_head_by_default.json +17 -25
  113. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/unrecognized_commit_repo.json +13 -0
  114. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_manifest_name.json +13 -152
  115. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_tags.json +4 -9
  116. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.py +185 -202
  117. data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/bot_update.py +52 -157
  118. data/vendor/depot_tools/recipes/recipe_modules/bot_update/test_api.py +5 -14
  119. data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/ensure_checkout.py +34 -0
  120. data/vendor/depot_tools/recipes/recipe_modules/cipd/api.py +14 -2
  121. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic.json +4 -5
  122. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic_pkg.json +4 -5
  123. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-failed.json +7 -5
  124. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-many-instances.json +4 -5
  125. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/mac64.json +4 -5
  126. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_file.json +9 -3
  127. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_mode.json +9 -3
  128. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_verfile.json +9 -3
  129. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/win64.json +4 -5
  130. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk arch.json +2 -3
  131. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk bits.json +2 -3
  132. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_32.json +2 -3
  133. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_64.json +2 -3
  134. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_32.json +2 -3
  135. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_64.json +2 -3
  136. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_mips_64.json +2 -3
  137. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/mac_intel_64.json +2 -3
  138. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_32.json +2 -3
  139. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_64.json +2 -3
  140. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/api.py +13 -8
  141. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic.json +18 -12
  142. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic_luci.json +18 -12
  143. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/win.json +18 -12
  144. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.py +3 -0
  145. data/vendor/depot_tools/recipes/recipe_modules/gclient/__init__.py +1 -0
  146. data/vendor/depot_tools/recipes/recipe_modules/gclient/api.py +58 -46
  147. data/vendor/depot_tools/recipes/recipe_modules/gclient/config.py +65 -22
  148. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/basic.json +20 -21
  149. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/buildbot.json +20 -21
  150. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/revision.json +20 -21
  151. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/tryserver.json +20 -21
  152. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.py +5 -2
  153. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/patch_project.py +62 -14
  154. data/vendor/depot_tools/recipes/recipe_modules/gerrit/api.py +24 -38
  155. data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.expected/basic.json +56 -50
  156. data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.py +15 -9
  157. data/vendor/depot_tools/recipes/recipe_modules/git/__init__.py +4 -1
  158. data/vendor/depot_tools/recipes/recipe_modules/git/api.py +34 -22
  159. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic.json +5 -6
  160. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_branch.json +5 -6
  161. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_file_name.json +5 -6
  162. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_hash.json +5 -6
  163. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_luci.json +222 -0
  164. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_ref.json +5 -6
  165. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_submodule_update_force.json +5 -6
  166. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_tags.json +224 -0
  167. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/can_fail_build.json +10 -6
  168. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cannot_fail_build.json +5 -7
  169. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cat-file_test.json +5 -6
  170. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_delta.json +5 -6
  171. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_failed.json +5 -7
  172. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output.json +5 -6
  173. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output_fails_build.json +10 -5
  174. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/curl_trace_file.json +5 -6
  175. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/git-cache-checkout.json +8 -9
  176. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/platform_win.json +5 -6
  177. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/rebase_failed.json +12 -8
  178. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/remote_not_origin.json +5 -6
  179. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/set_got_revision.json +5 -6
  180. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.py +27 -11
  181. data/vendor/depot_tools/recipes/recipe_modules/git_cl/api.py +1 -1
  182. data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.expected/basic.json +12 -13
  183. data/vendor/depot_tools/recipes/recipe_modules/gitiles/__init__.py +5 -0
  184. data/vendor/depot_tools/recipes/recipe_modules/gitiles/api.py +120 -5
  185. data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.expected/basic.json +45 -3
  186. data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.py +25 -0
  187. data/vendor/depot_tools/recipes/recipe_modules/gitiles/resources/gerrit_client.py +56 -4
  188. data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.expected/basic.json +6 -0
  189. data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.py +49 -0
  190. data/vendor/depot_tools/recipes/recipe_modules/gsutil/api.py +24 -13
  191. data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.expected/basic.json +13 -14
  192. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/basic.json +2 -3
  193. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_linux.json +2 -3
  194. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_mac.json +2 -3
  195. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_win.json +2 -3
  196. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_linux.json +2 -3
  197. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_mac.json +2 -3
  198. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_win.json +2 -3
  199. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_linux.json +2 -3
  200. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_mac.json +2 -3
  201. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_win.json +2 -3
  202. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/path_config.py +1 -2
  203. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/__init__.py +35 -0
  204. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/api.py +116 -0
  205. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/linux.json +22 -0
  206. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/mac.json +82 -0
  207. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/win.json +22 -0
  208. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.py +23 -0
  209. data/vendor/depot_tools/recipes/recipe_modules/presubmit/__init__.py +1 -0
  210. data/vendor/depot_tools/recipes/recipe_modules/presubmit/api.py +2 -7
  211. data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.expected/basic.json +7 -6
  212. data/vendor/depot_tools/recipes/recipe_modules/tryserver/__init__.py +1 -0
  213. data/vendor/depot_tools/recipes/recipe_modules/tryserver/api.py +117 -8
  214. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/basic_tags.json +4 -5
  215. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/set_failure_hash_with_no_steps.json +7 -4
  216. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch.json +98 -7
  217. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch_and_target_ref.json +147 -0
  218. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_git_patch.json +8 -5
  219. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_git_patch_luci.json +8 -5
  220. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch.json +9 -6
  221. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch_new.json +9 -6
  222. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.py +27 -2
  223. data/vendor/depot_tools/recipes/recipe_modules/tryserver/test_api.py +14 -0
  224. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/__init__.py +25 -0
  225. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/api.py +137 -0
  226. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/linux.json +22 -0
  227. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/mac.json +22 -0
  228. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/win.json +107 -0
  229. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.py +26 -0
  230. data/vendor/depot_tools/recipes/recipes.py +37 -27
  231. data/vendor/depot_tools/recipes/recipes/fetch_end_to_end_test.expected/basic.json +7 -10
  232. data/vendor/depot_tools/repo +34 -8
  233. data/vendor/depot_tools/roll_dep.py +52 -49
  234. data/vendor/depot_tools/scm.py +38 -23
  235. data/vendor/depot_tools/setup_color.py +4 -2
  236. data/vendor/depot_tools/split_cl.py +32 -4
  237. data/vendor/depot_tools/subprocess2.py +22 -4
  238. data/vendor/depot_tools/third_party/httplib2/README.chromium +2 -2
  239. data/vendor/depot_tools/third_party/httplib2/__init__.py +242 -158
  240. data/vendor/depot_tools/third_party/httplib2/cacerts.txt +57 -44
  241. data/vendor/depot_tools/third_party/httplib2/socks.py +15 -5
  242. data/vendor/depot_tools/third_party/logilab/README.chromium +2 -4
  243. data/vendor/depot_tools/third_party/logilab/astroid/README.chromium +2 -1
  244. data/vendor/depot_tools/third_party/logilab/astroid/__init__.py +10 -5
  245. data/vendor/depot_tools/third_party/logilab/astroid/__pkginfo__.py +5 -5
  246. data/vendor/depot_tools/third_party/logilab/astroid/arguments.py +233 -0
  247. data/vendor/depot_tools/third_party/logilab/astroid/as_string.py +82 -33
  248. data/vendor/depot_tools/third_party/logilab/astroid/bases.py +137 -153
  249. data/vendor/depot_tools/third_party/logilab/astroid/brain/{builtin_inference.py → brain_builtin_inference.py} +117 -26
  250. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_dateutil.py +15 -0
  251. data/vendor/depot_tools/third_party/logilab/astroid/brain/{py2gi.py → brain_gi.py} +48 -8
  252. data/vendor/depot_tools/third_party/logilab/astroid/brain/{py2mechanize.py → brain_mechanize.py} +0 -0
  253. data/vendor/depot_tools/third_party/logilab/astroid/brain/{pynose.py → brain_nose.py} +4 -1
  254. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_numpy.py +62 -0
  255. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_pytest.py +76 -0
  256. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_qt.py +44 -0
  257. data/vendor/depot_tools/third_party/logilab/astroid/brain/{pysix_moves.py → brain_six.py} +28 -1
  258. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_ssl.py +65 -0
  259. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_stdlib.py +473 -0
  260. data/vendor/depot_tools/third_party/logilab/astroid/builder.py +104 -81
  261. data/vendor/depot_tools/third_party/logilab/astroid/context.py +81 -0
  262. data/vendor/depot_tools/third_party/logilab/astroid/decorators.py +75 -0
  263. data/vendor/depot_tools/third_party/logilab/astroid/exceptions.py +20 -0
  264. data/vendor/depot_tools/third_party/logilab/astroid/inference.py +137 -183
  265. data/vendor/depot_tools/third_party/logilab/astroid/manager.py +45 -169
  266. data/vendor/depot_tools/third_party/logilab/astroid/mixins.py +37 -14
  267. data/vendor/depot_tools/third_party/logilab/astroid/modutils.py +112 -41
  268. data/vendor/depot_tools/third_party/logilab/astroid/node_classes.py +243 -156
  269. data/vendor/depot_tools/third_party/logilab/astroid/nodes.py +35 -22
  270. data/vendor/depot_tools/third_party/logilab/astroid/objects.py +186 -0
  271. data/vendor/depot_tools/third_party/logilab/astroid/protocols.py +157 -102
  272. data/vendor/depot_tools/third_party/logilab/astroid/raw_building.py +32 -8
  273. data/vendor/depot_tools/third_party/logilab/astroid/rebuilder.py +372 -309
  274. data/vendor/depot_tools/third_party/logilab/astroid/scoped_nodes.py +652 -420
  275. data/vendor/depot_tools/third_party/logilab/astroid/test_utils.py +4 -21
  276. data/vendor/depot_tools/third_party/logilab/astroid/transforms.py +96 -0
  277. data/vendor/depot_tools/third_party/logilab/astroid/util.py +89 -0
  278. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/LICENSE +19 -0
  279. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/README.chromium +11 -0
  280. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/__init__.py +20 -0
  281. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/cext.c +1421 -0
  282. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/compat.py +9 -0
  283. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/simple.py +246 -0
  284. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/slots.py +414 -0
  285. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/utils.py +13 -0
  286. data/vendor/depot_tools/third_party/logilab/wrapt/LICENSE +24 -0
  287. data/vendor/depot_tools/third_party/logilab/wrapt/README.chromium +11 -0
  288. data/vendor/depot_tools/third_party/logilab/wrapt/__init__.py +19 -0
  289. data/vendor/depot_tools/third_party/logilab/wrapt/_wrappers.c +2729 -0
  290. data/vendor/depot_tools/third_party/logilab/wrapt/arguments.py +96 -0
  291. data/vendor/depot_tools/third_party/logilab/wrapt/decorators.py +512 -0
  292. data/vendor/depot_tools/third_party/logilab/wrapt/importer.py +228 -0
  293. data/vendor/depot_tools/third_party/logilab/wrapt/wrappers.py +901 -0
  294. data/vendor/depot_tools/third_party/pylint/README.chromium +2 -25
  295. data/vendor/depot_tools/third_party/pylint/__pkginfo__.py +13 -3
  296. data/vendor/depot_tools/third_party/pylint/checkers/__init__.py +1 -2
  297. data/vendor/depot_tools/third_party/pylint/checkers/async.py +82 -0
  298. data/vendor/depot_tools/third_party/pylint/checkers/base.py +893 -119
  299. data/vendor/depot_tools/third_party/pylint/checkers/classes.py +342 -204
  300. data/vendor/depot_tools/third_party/pylint/checkers/design_analysis.py +51 -34
  301. data/vendor/depot_tools/third_party/pylint/checkers/exceptions.py +84 -47
  302. data/vendor/depot_tools/third_party/pylint/checkers/format.py +55 -30
  303. data/vendor/depot_tools/third_party/pylint/checkers/imports.py +314 -73
  304. data/vendor/depot_tools/third_party/pylint/checkers/logging.py +10 -8
  305. data/vendor/depot_tools/third_party/pylint/checkers/misc.py +2 -1
  306. data/vendor/depot_tools/third_party/pylint/checkers/newstyle.py +45 -48
  307. data/vendor/depot_tools/third_party/pylint/checkers/python3.py +31 -21
  308. data/vendor/depot_tools/third_party/pylint/checkers/raw_metrics.py +3 -3
  309. data/vendor/depot_tools/third_party/pylint/checkers/similar.py +4 -5
  310. data/vendor/depot_tools/third_party/pylint/checkers/spelling.py +24 -10
  311. data/vendor/depot_tools/third_party/pylint/checkers/stdlib.py +120 -56
  312. data/vendor/depot_tools/third_party/pylint/checkers/strings.py +38 -35
  313. data/vendor/depot_tools/third_party/pylint/checkers/typecheck.py +485 -138
  314. data/vendor/depot_tools/third_party/pylint/checkers/utils.py +319 -142
  315. data/vendor/depot_tools/third_party/pylint/checkers/variables.py +329 -207
  316. data/vendor/depot_tools/third_party/pylint/config.py +739 -76
  317. data/vendor/depot_tools/third_party/pylint/epylint.py +9 -5
  318. data/vendor/depot_tools/third_party/pylint/extensions/__init__.py +0 -0
  319. data/vendor/depot_tools/third_party/pylint/extensions/check_docs.py +311 -0
  320. data/vendor/depot_tools/third_party/pylint/extensions/check_elif.py +62 -0
  321. data/vendor/depot_tools/third_party/{logilab/common → pylint}/graph.py +30 -133
  322. data/vendor/depot_tools/third_party/pylint/gui.py +2 -2
  323. data/vendor/depot_tools/third_party/pylint/interfaces.py +21 -3
  324. data/vendor/depot_tools/third_party/pylint/lint.py +123 -140
  325. data/vendor/depot_tools/third_party/pylint/pyreverse/diadefslib.py +10 -13
  326. data/vendor/depot_tools/third_party/pylint/pyreverse/diagrams.py +15 -4
  327. data/vendor/depot_tools/third_party/pylint/pyreverse/inspector.py +372 -0
  328. data/vendor/depot_tools/third_party/pylint/pyreverse/main.py +30 -7
  329. data/vendor/depot_tools/third_party/pylint/pyreverse/utils.py +80 -2
  330. data/vendor/depot_tools/third_party/{logilab/common → pylint/pyreverse}/vcgutils.py +19 -37
  331. data/vendor/depot_tools/third_party/pylint/pyreverse/writer.py +3 -4
  332. data/vendor/depot_tools/third_party/pylint/reporters/__init__.py +34 -18
  333. data/vendor/depot_tools/third_party/pylint/reporters/guireporter.py +1 -1
  334. data/vendor/depot_tools/third_party/pylint/reporters/html.py +10 -3
  335. data/vendor/depot_tools/third_party/pylint/reporters/json.py +10 -4
  336. data/vendor/depot_tools/third_party/pylint/reporters/text.py +94 -3
  337. data/vendor/depot_tools/third_party/pylint/reporters/ureports/__init__.py +106 -0
  338. data/vendor/depot_tools/third_party/{logilab/common → pylint/reporters}/ureports/html_writer.py +17 -57
  339. data/vendor/depot_tools/third_party/{logilab/common → pylint/reporters}/ureports/nodes.py +52 -74
  340. data/vendor/depot_tools/third_party/{logilab/common → pylint/reporters}/ureports/text_writer.py +14 -60
  341. data/vendor/depot_tools/third_party/pylint/testutils.py +22 -20
  342. data/vendor/depot_tools/third_party/pylint/utils.py +268 -44
  343. data/vendor/depot_tools/third_party/repo/progress.py +42 -0
  344. data/vendor/depot_tools/update_depot_tools +1 -1
  345. data/vendor/depot_tools/upload_metrics.py +25 -0
  346. data/vendor/depot_tools/win_toolchain/get_toolchain_if_necessary.py +45 -15
  347. data/vendor/depot_tools/win_toolchain/package_from_installed.py +71 -24
  348. data/vendor/depot_tools/yapf +1 -1
  349. data/vendor/depot_tools/yapf.bat +1 -1
  350. metadata +92 -77
  351. data/vendor/depot_tools/git-crsync +0 -3
  352. data/vendor/depot_tools/infra/config/cq.cfg +0 -32
  353. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/apply_gerrit_ref.json +0 -29
  354. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/apply_gerrit_ref_custom.json +0 -29
  355. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/buildbot.json +0 -105
  356. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/shallow.json +0 -195
  357. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle_deprecated.json +0 -248
  358. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8.json +0 -248
  359. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_manifest_name_no_patch.json +0 -105
  360. data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/apply_gerrit.py +0 -33
  361. data/vendor/depot_tools/third_party/logilab/astroid/brain/py2pytest.py +0 -31
  362. data/vendor/depot_tools/third_party/logilab/astroid/brain/py2qt4.py +0 -22
  363. data/vendor/depot_tools/third_party/logilab/astroid/brain/py2stdlib.py +0 -334
  364. data/vendor/depot_tools/third_party/logilab/astroid/inspector.py +0 -273
  365. data/vendor/depot_tools/third_party/logilab/astroid/utils.py +0 -239
  366. data/vendor/depot_tools/third_party/logilab/common/LICENSE.txt +0 -339
  367. data/vendor/depot_tools/third_party/logilab/common/README.chromium +0 -11
  368. data/vendor/depot_tools/third_party/logilab/common/__init__.py +0 -175
  369. data/vendor/depot_tools/third_party/logilab/common/__pkginfo__.py +0 -57
  370. data/vendor/depot_tools/third_party/logilab/common/cache.py +0 -114
  371. data/vendor/depot_tools/third_party/logilab/common/changelog.py +0 -238
  372. data/vendor/depot_tools/third_party/logilab/common/clcommands.py +0 -334
  373. data/vendor/depot_tools/third_party/logilab/common/cli.py +0 -211
  374. data/vendor/depot_tools/third_party/logilab/common/compat.py +0 -78
  375. data/vendor/depot_tools/third_party/logilab/common/configuration.py +0 -1105
  376. data/vendor/depot_tools/third_party/logilab/common/contexts.py +0 -5
  377. data/vendor/depot_tools/third_party/logilab/common/corbautils.py +0 -117
  378. data/vendor/depot_tools/third_party/logilab/common/daemon.py +0 -101
  379. data/vendor/depot_tools/third_party/logilab/common/date.py +0 -335
  380. data/vendor/depot_tools/third_party/logilab/common/dbf.py +0 -231
  381. data/vendor/depot_tools/third_party/logilab/common/debugger.py +0 -214
  382. data/vendor/depot_tools/third_party/logilab/common/decorators.py +0 -281
  383. data/vendor/depot_tools/third_party/logilab/common/deprecation.py +0 -189
  384. data/vendor/depot_tools/third_party/logilab/common/fileutils.py +0 -404
  385. data/vendor/depot_tools/third_party/logilab/common/interface.py +0 -71
  386. data/vendor/depot_tools/third_party/logilab/common/logging_ext.py +0 -195
  387. data/vendor/depot_tools/third_party/logilab/common/modutils.py +0 -702
  388. data/vendor/depot_tools/third_party/logilab/common/optik_ext.py +0 -392
  389. data/vendor/depot_tools/third_party/logilab/common/optparser.py +0 -92
  390. data/vendor/depot_tools/third_party/logilab/common/proc.py +0 -277
  391. data/vendor/depot_tools/third_party/logilab/common/pyro_ext.py +0 -180
  392. data/vendor/depot_tools/third_party/logilab/common/pytest.py +0 -1199
  393. data/vendor/depot_tools/third_party/logilab/common/registry.py +0 -1119
  394. data/vendor/depot_tools/third_party/logilab/common/shellutils.py +0 -462
  395. data/vendor/depot_tools/third_party/logilab/common/sphinx_ext.py +0 -87
  396. data/vendor/depot_tools/third_party/logilab/common/sphinxutils.py +0 -122
  397. data/vendor/depot_tools/third_party/logilab/common/table.py +0 -929
  398. data/vendor/depot_tools/third_party/logilab/common/tasksqueue.py +0 -101
  399. data/vendor/depot_tools/third_party/logilab/common/testlib.py +0 -1392
  400. data/vendor/depot_tools/third_party/logilab/common/textutils.py +0 -537
  401. data/vendor/depot_tools/third_party/logilab/common/tree.py +0 -369
  402. data/vendor/depot_tools/third_party/logilab/common/umessage.py +0 -194
  403. data/vendor/depot_tools/third_party/logilab/common/ureports/__init__.py +0 -172
  404. data/vendor/depot_tools/third_party/logilab/common/ureports/docbook_writer.py +0 -140
  405. data/vendor/depot_tools/third_party/logilab/common/urllib2ext.py +0 -89
  406. data/vendor/depot_tools/third_party/logilab/common/visitor.py +0 -109
  407. data/vendor/depot_tools/third_party/logilab/common/xmlrpcutils.py +0 -131
  408. data/vendor/depot_tools/third_party/logilab/common/xmlutils.py +0 -61
@@ -14,9 +14,9 @@
14
14
  """JSON reporter"""
15
15
  from __future__ import absolute_import, print_function
16
16
 
17
+ import cgi
17
18
  import json
18
19
  import sys
19
- from cgi import escape
20
20
 
21
21
  from pylint.interfaces import IReporter
22
22
  from pylint.reporters import BaseReporter
@@ -35,7 +35,6 @@ class JSONReporter(BaseReporter):
35
35
 
36
36
  def handle_message(self, message):
37
37
  """Manage message of different type and in the context of path."""
38
-
39
38
  self.messages.append({
40
39
  'type': message.category,
41
40
  'module': message.module,
@@ -44,14 +43,21 @@ class JSONReporter(BaseReporter):
44
43
  'column': message.column,
45
44
  'path': message.path,
46
45
  'symbol': message.symbol,
47
- 'message': escape(message.msg or ''),
46
+ # pylint: disable=deprecated-method; deprecated since 3.2.
47
+ 'message': cgi.escape(message.msg or ''),
48
48
  })
49
49
 
50
- def _display(self, layout):
50
+ def display_messages(self, layout):
51
51
  """Launch layouts display"""
52
52
  if self.messages:
53
53
  print(json.dumps(self.messages, indent=4), file=self.out)
54
54
 
55
+ def display_reports(self, _):
56
+ """Don't do nothing in this reporter."""
57
+
58
+ def _display(self, layout):
59
+ """Don't do nothing."""
60
+
55
61
 
56
62
  def register(linter):
57
63
  """Register the reporter classes with the linter."""
@@ -19,16 +19,104 @@
19
19
  from __future__ import print_function
20
20
 
21
21
  import warnings
22
+ import sys
22
23
 
23
- from logilab.common.ureports import TextWriter
24
- from logilab.common.textutils import colorize_ansi
24
+ import six
25
25
 
26
26
  from pylint.interfaces import IReporter
27
27
  from pylint.reporters import BaseReporter
28
- import six
28
+ from pylint import utils
29
+ from pylint.reporters.ureports.text_writer import TextWriter
30
+
29
31
 
30
32
  TITLE_UNDERLINES = ['', '=', '-', '.']
31
33
 
34
+ ANSI_PREFIX = '\033['
35
+ ANSI_END = 'm'
36
+ ANSI_RESET = '\033[0m'
37
+ ANSI_STYLES = {
38
+ 'reset': "0",
39
+ 'bold': "1",
40
+ 'italic': "3",
41
+ 'underline': "4",
42
+ 'blink': "5",
43
+ 'inverse': "7",
44
+ 'strike': "9",
45
+ }
46
+ ANSI_COLORS = {
47
+ 'reset': "0",
48
+ 'black': "30",
49
+ 'red': "31",
50
+ 'green': "32",
51
+ 'yellow': "33",
52
+ 'blue': "34",
53
+ 'magenta': "35",
54
+ 'cyan': "36",
55
+ 'white': "37",
56
+ }
57
+
58
+ def _get_ansi_code(color=None, style=None):
59
+ """return ansi escape code corresponding to color and style
60
+
61
+ :type color: str or None
62
+ :param color:
63
+ the color name (see `ANSI_COLORS` for available values)
64
+ or the color number when 256 colors are available
65
+
66
+ :type style: str or None
67
+ :param style:
68
+ style string (see `ANSI_COLORS` for available values). To get
69
+ several style effects at the same time, use a coma as separator.
70
+
71
+ :raise KeyError: if an unexistent color or style identifier is given
72
+
73
+ :rtype: str
74
+ :return: the built escape code
75
+ """
76
+ ansi_code = []
77
+ if style:
78
+ style_attrs = utils._splitstrip(style)
79
+ for effect in style_attrs:
80
+ ansi_code.append(ANSI_STYLES[effect])
81
+ if color:
82
+ if color.isdigit():
83
+ ansi_code.extend(['38', '5'])
84
+ ansi_code.append(color)
85
+ else:
86
+ ansi_code.append(ANSI_COLORS[color])
87
+ if ansi_code:
88
+ return ANSI_PREFIX + ';'.join(ansi_code) + ANSI_END
89
+ return ''
90
+
91
+ def colorize_ansi(msg, color=None, style=None):
92
+ """colorize message by wrapping it with ansi escape codes
93
+
94
+ :type msg: str or unicode
95
+ :param msg: the message string to colorize
96
+
97
+ :type color: str or None
98
+ :param color:
99
+ the color identifier (see `ANSI_COLORS` for available values)
100
+
101
+ :type style: str or None
102
+ :param style:
103
+ style string (see `ANSI_COLORS` for available values). To get
104
+ several style effects at the same time, use a coma as separator.
105
+
106
+ :raise KeyError: if an unexistent color or style identifier is given
107
+
108
+ :rtype: str or unicode
109
+ :return: the ansi escaped string
110
+ """
111
+ # If both color and style are not defined, then leave the text as is
112
+ if color is None and style is None:
113
+ return msg
114
+ escape_code = _get_ansi_code(color, style)
115
+ # If invalid (or unknown) color, don't wrap msg with ansi codes
116
+ if escape_code:
117
+ return '%s%s%s' % (escape_code, msg, ANSI_RESET)
118
+ return msg
119
+
32
120
 
33
121
  class TextReporter(BaseReporter):
34
122
  """reports messages and layouts in plain text"""
@@ -106,6 +194,9 @@ class ColorizedTextReporter(TextReporter):
106
194
  TextReporter.__init__(self, output)
107
195
  self.color_mapping = color_mapping or \
108
196
  dict(ColorizedTextReporter.COLOR_MAPPING)
197
+ if sys.platform == 'win32':
198
+ import colorama
199
+ self.out = colorama.AnsiToWin32(self.out)
109
200
 
110
201
  def _get_decoration(self, msg_id):
111
202
  """Returns the tuple color, style associated with msg_id as defined
@@ -0,0 +1,106 @@
1
+ # copyright 2003-2015 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
2
+ # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
3
+ #
4
+ # This file is part of pylint.
5
+ #
6
+ # pylint is free software: you can redistribute it and/or modify it under
7
+ # the terms of the GNU Lesser General Public License as published by the Free
8
+ # Software Foundation, either version 2.1 of the License, or (at your option) any
9
+ # later version.
10
+ #
11
+ # pylint is distributed in the hope that it will be useful, but WITHOUT
12
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13
+ # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
14
+ # details.
15
+ #
16
+ # You should have received a copy of the GNU Lesser General Public License along
17
+ # with pylint. If not, see <http://www.gnu.org/licenses/>.
18
+ """Universal report objects and some formatting drivers.
19
+
20
+ A way to create simple reports using python objects, primarily designed to be
21
+ formatted as text and html.
22
+ """
23
+ import os
24
+ import sys
25
+
26
+ import six
27
+
28
+
29
+ class BaseWriter(object):
30
+ """base class for ureport writers"""
31
+
32
+ def format(self, layout, stream=None, encoding=None):
33
+ """format and write the given layout into the stream object
34
+
35
+ unicode policy: unicode strings may be found in the layout;
36
+ try to call stream.write with it, but give it back encoded using
37
+ the given encoding if it fails
38
+ """
39
+ if stream is None:
40
+ stream = sys.stdout
41
+ if not encoding:
42
+ encoding = getattr(stream, 'encoding', 'UTF-8')
43
+ self.encoding = encoding or 'UTF-8'
44
+ self.out = stream
45
+ self.begin_format()
46
+ layout.accept(self)
47
+ self.end_format()
48
+
49
+ def format_children(self, layout):
50
+ """recurse on the layout children and call their accept method
51
+ (see the Visitor pattern)
52
+ """
53
+ for child in getattr(layout, 'children', ()):
54
+ child.accept(self)
55
+
56
+ def writeln(self, string=u''):
57
+ """write a line in the output buffer"""
58
+ self.write(string + os.linesep)
59
+
60
+ def write(self, string):
61
+ """write a string in the output buffer"""
62
+ self.out.write(string)
63
+
64
+ def begin_format(self):
65
+ """begin to format a layout"""
66
+ self.section = 0
67
+
68
+ def end_format(self):
69
+ """finished to format a layout"""
70
+
71
+ def get_table_content(self, table):
72
+ """trick to get table content without actually writing it
73
+
74
+ return an aligned list of lists containing table cells values as string
75
+ """
76
+ result = [[]]
77
+ cols = table.cols
78
+ for cell in self.compute_content(table):
79
+ if cols == 0:
80
+ result.append([])
81
+ cols = table.cols
82
+ cols -= 1
83
+ result[-1].append(cell)
84
+ # fill missing cells
85
+ while len(result[-1]) < cols:
86
+ result[-1].append(u'')
87
+ return result
88
+
89
+ def compute_content(self, layout):
90
+ """trick to compute the formatting of children layout before actually
91
+ writing it
92
+
93
+ return an iterator on strings (one for each child element)
94
+ """
95
+ # Patch the underlying output stream with a fresh-generated stream,
96
+ # which is used to store a temporary representation of a child
97
+ # node.
98
+ out = self.out
99
+ try:
100
+ for child in layout.children:
101
+ stream = six.StringIO()
102
+ self.out = stream
103
+ child.accept(self)
104
+ yield stream.getvalue()
105
+ finally:
106
+ self.out = out
@@ -1,28 +1,23 @@
1
- # copyright 2003-2011 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
1
+ # copyright 2003-2015 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
2
2
  # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
3
3
  #
4
- # This file is part of logilab-common.
4
+ # This file is part of pylint.
5
5
  #
6
- # logilab-common is free software: you can redistribute it and/or modify it under
6
+ # pylint is free software: you can redistribute it and/or modify it under
7
7
  # the terms of the GNU Lesser General Public License as published by the Free
8
8
  # Software Foundation, either version 2.1 of the License, or (at your option) any
9
9
  # later version.
10
10
  #
11
- # logilab-common is distributed in the hope that it will be useful, but WITHOUT
11
+ # pylint is distributed in the hope that it will be useful, but WITHOUT
12
12
  # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13
13
  # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
14
14
  # details.
15
15
  #
16
16
  # You should have received a copy of the GNU Lesser General Public License along
17
- # with logilab-common. If not, see <http://www.gnu.org/licenses/>.
17
+ # with pylint. If not, see <http://www.gnu.org/licenses/>.
18
18
  """HTML formatting drivers for ureports"""
19
- __docformat__ = "restructuredtext en"
20
19
 
21
- from cgi import escape
22
-
23
- from six.moves import range
24
-
25
- from logilab.common.ureports import BaseWriter
20
+ from pylint.reporters.ureports import BaseWriter
26
21
 
27
22
 
28
23
  class HTMLWriter(BaseWriter):
@@ -32,93 +27,58 @@ class HTMLWriter(BaseWriter):
32
27
  super(HTMLWriter, self).__init__()
33
28
  self.snippet = snippet
34
29
 
35
- def handle_attrs(self, layout):
36
- """get an attribute string from layout member attributes"""
37
- attrs = u''
38
- klass = getattr(layout, 'klass', None)
39
- if klass:
40
- attrs += u' class="%s"' % klass
41
- nid = getattr(layout, 'id', None)
42
- if nid:
43
- attrs += u' id="%s"' % nid
44
- return attrs
45
-
46
- def begin_format(self, layout):
30
+ def begin_format(self):
47
31
  """begin to format a layout"""
48
- super(HTMLWriter, self).begin_format(layout)
32
+ super(HTMLWriter, self).begin_format()
49
33
  if self.snippet is None:
50
34
  self.writeln(u'<html>')
51
35
  self.writeln(u'<body>')
52
36
 
53
- def end_format(self, layout):
37
+ def end_format(self):
54
38
  """finished to format a layout"""
55
39
  if self.snippet is None:
56
40
  self.writeln(u'</body>')
57
41
  self.writeln(u'</html>')
58
42
 
59
-
60
43
  def visit_section(self, layout):
61
44
  """display a section as html, using div + h[section level]"""
62
45
  self.section += 1
63
- self.writeln(u'<div%s>' % self.handle_attrs(layout))
46
+ self.writeln(u'<div>')
64
47
  self.format_children(layout)
65
48
  self.writeln(u'</div>')
66
49
  self.section -= 1
67
50
 
68
51
  def visit_title(self, layout):
69
52
  """display a title using <hX>"""
70
- self.write(u'<h%s%s>' % (self.section, self.handle_attrs(layout)))
53
+ self.write(u'<h%s>' % self.section)
71
54
  self.format_children(layout)
72
55
  self.writeln(u'</h%s>' % self.section)
73
56
 
74
57
  def visit_table(self, layout):
75
58
  """display a table as html"""
76
- self.writeln(u'<table%s>' % self.handle_attrs(layout))
59
+ self.writeln(u'<table>')
77
60
  table_content = self.get_table_content(layout)
78
- for i in range(len(table_content)):
79
- row = table_content[i]
61
+ for i, row in enumerate(table_content):
80
62
  if i == 0 and layout.rheaders:
81
63
  self.writeln(u'<tr class="header">')
82
- elif i+1 == len(table_content) and layout.rrheaders:
83
- self.writeln(u'<tr class="header">')
84
64
  else:
85
- self.writeln(u'<tr class="%s">' % (i%2 and 'even' or 'odd'))
86
- for j in range(len(row)):
87
- cell = row[j] or u'&#160;'
65
+ self.writeln(u'<tr class="%s">' % (u'even' if i % 2 else u'odd'))
66
+ for j, cell in enumerate(row):
67
+ cell = cell or u'&#160;'
88
68
  if (layout.rheaders and i == 0) or \
89
- (layout.cheaders and j == 0) or \
90
- (layout.rrheaders and i+1 == len(table_content)) or \
91
- (layout.rcheaders and j+1 == len(row)):
69
+ (layout.cheaders and j == 0):
92
70
  self.writeln(u'<th>%s</th>' % cell)
93
71
  else:
94
72
  self.writeln(u'<td>%s</td>' % cell)
95
73
  self.writeln(u'</tr>')
96
74
  self.writeln(u'</table>')
97
75
 
98
- def visit_list(self, layout):
99
- """display a list as html"""
100
- self.writeln(u'<ul%s>' % self.handle_attrs(layout))
101
- for row in list(self.compute_content(layout)):
102
- self.writeln(u'<li>%s</li>' % row)
103
- self.writeln(u'</ul>')
104
-
105
76
  def visit_paragraph(self, layout):
106
77
  """display links (using <p>)"""
107
78
  self.write(u'<p>')
108
79
  self.format_children(layout)
109
80
  self.write(u'</p>')
110
81
 
111
- def visit_span(self, layout):
112
- """display links (using <p>)"""
113
- self.write(u'<span%s>' % self.handle_attrs(layout))
114
- self.format_children(layout)
115
- self.write(u'</span>')
116
-
117
- def visit_link(self, layout):
118
- """display links (using <a>)"""
119
- self.write(u' <a href="%s"%s>%s</a>' % (layout.url,
120
- self.handle_attrs(layout),
121
- layout.label))
122
82
  def visit_verbatimtext(self, layout):
123
83
  """display verbatim text (using <pre>)"""
124
84
  self.write(u'<pre>')
@@ -1,52 +1,79 @@
1
- # copyright 2003-2011 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
1
+ # copyright 2003-2015 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
2
2
  # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
3
3
  #
4
- # This file is part of logilab-common.
4
+ # This file is part of pylint.
5
5
  #
6
- # logilab-common is free software: you can redistribute it and/or modify it under
6
+ # pylint is free software: you can redistribute it and/or modify it under
7
7
  # the terms of the GNU Lesser General Public License as published by the Free
8
8
  # Software Foundation, either version 2.1 of the License, or (at your option) any
9
9
  # later version.
10
10
  #
11
- # logilab-common is distributed in the hope that it will be useful, but WITHOUT
11
+ # pylint is distributed in the hope that it will be useful, but WITHOUT
12
12
  # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13
13
  # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
14
14
  # details.
15
15
  #
16
16
  # You should have received a copy of the GNU Lesser General Public License along
17
- # with logilab-common. If not, see <http://www.gnu.org/licenses/>.
17
+ # with pylint. If not, see <http://www.gnu.org/licenses/>.
18
18
  """Micro reports objects.
19
19
 
20
20
  A micro report is a tree of layout and content objects.
21
21
  """
22
- __docformat__ = "restructuredtext en"
23
-
24
- from logilab.common.tree import VNode
25
22
 
26
23
  from six import string_types
27
24
 
28
- class BaseComponent(VNode):
29
- """base report component
30
25
 
31
- attributes
32
- * id : the component's optional id
33
- * klass : the component's optional klass
34
- """
35
- def __init__(self, id=None, klass=None):
36
- VNode.__init__(self, id)
37
- self.klass = klass
26
+ class VNode(object):
27
+
28
+ def __init__(self, nid=None):
29
+ self.id = nid
30
+ # navigation
31
+ self.parent = None
32
+ self.children = []
38
33
 
39
- class BaseLayout(BaseComponent):
34
+ def __iter__(self):
35
+ return iter(self.children)
36
+
37
+ def append(self, child):
38
+ """add a node to children"""
39
+ self.children.append(child)
40
+ child.parent = self
41
+
42
+ def insert(self, index, child):
43
+ """insert a child node"""
44
+ self.children.insert(index, child)
45
+ child.parent = self
46
+
47
+ def _get_visit_name(self):
48
+ """
49
+ return the visit name for the mixed class. When calling 'accept', the
50
+ method <'visit_' + name returned by this method> will be called on the
51
+ visitor
52
+ """
53
+ try:
54
+ return self.TYPE.replace('-', '_')
55
+ except Exception:
56
+ return self.__class__.__name__.lower()
57
+
58
+ def accept(self, visitor, *args, **kwargs):
59
+ func = getattr(visitor, 'visit_%s' % self._get_visit_name())
60
+ return func(self, *args, **kwargs)
61
+
62
+ def leave(self, visitor, *args, **kwargs):
63
+ func = getattr(visitor, 'leave_%s' % self._get_visit_name())
64
+ return func(self, *args, **kwargs)
65
+
66
+
67
+ class BaseLayout(VNode):
40
68
  """base container node
41
69
 
42
70
  attributes
43
- * BaseComponent attributes
44
71
  * children : components in this table (i.e. the table's cells)
45
72
  """
46
73
  def __init__(self, children=(), **kwargs):
47
74
  super(BaseLayout, self).__init__(**kwargs)
48
75
  for child in children:
49
- if isinstance(child, BaseComponent):
76
+ if isinstance(child, VNode):
50
77
  self.append(child)
51
78
  else:
52
79
  self.add_text(child)
@@ -70,11 +97,10 @@ class BaseLayout(BaseComponent):
70
97
 
71
98
  # non container nodes #########################################################
72
99
 
73
- class Text(BaseComponent):
100
+ class Text(VNode):
74
101
  """a text portion
75
102
 
76
103
  attributes :
77
- * BaseComponent attributes
78
104
  * data : the text value as an encoded or unicode string
79
105
  """
80
106
  def __init__(self, data, escaped=True, **kwargs):
@@ -85,47 +111,14 @@ class Text(BaseComponent):
85
111
  self.escaped = escaped
86
112
  self.data = data
87
113
 
114
+
88
115
  class VerbatimText(Text):
89
116
  """a verbatim text, display the raw data
90
117
 
91
118
  attributes :
92
- * BaseComponent attributes
93
119
  * data : the text value as an encoded or unicode string
94
120
  """
95
121
 
96
- class Link(BaseComponent):
97
- """a labelled link
98
-
99
- attributes :
100
- * BaseComponent attributes
101
- * url : the link's target (REQUIRED)
102
- * label : the link's label as a string (use the url by default)
103
- """
104
- def __init__(self, url, label=None, **kwargs):
105
- super(Link, self).__init__(**kwargs)
106
- assert url
107
- self.url = url
108
- self.label = label or url
109
-
110
-
111
- class Image(BaseComponent):
112
- """an embedded or a single image
113
-
114
- attributes :
115
- * BaseComponent attributes
116
- * filename : the image's filename (REQUIRED)
117
- * stream : the stream object containing the image data (REQUIRED)
118
- * title : the image's optional title
119
- """
120
- def __init__(self, filename, stream, title=None, **kwargs):
121
- super(Image, self).__init__(**kwargs)
122
- assert filename
123
- assert stream
124
- self.filename = filename
125
- self.stream = stream
126
- self.title = title
127
-
128
-
129
122
  # container nodes #############################################################
130
123
 
131
124
  class Section(BaseLayout):
@@ -146,6 +139,7 @@ class Section(BaseLayout):
146
139
  if title:
147
140
  self.insert(0, Title(children=(title,)))
148
141
 
142
+
149
143
  class Title(BaseLayout):
150
144
  """a title
151
145
 
@@ -155,14 +149,6 @@ class Title(BaseLayout):
155
149
  A title must not contains a section nor a paragraph!
156
150
  """
157
151
 
158
- class Span(BaseLayout):
159
- """a title
160
-
161
- attributes :
162
- * BaseLayout attributes
163
-
164
- A span should only contains Text and Link nodes (in-line elements)
165
- """
166
152
 
167
153
  class Paragraph(BaseLayout):
168
154
  """a simple text paragraph
@@ -173,6 +159,7 @@ class Paragraph(BaseLayout):
173
159
  A paragraph must not contains a section !
174
160
  """
175
161
 
162
+
176
163
  class Table(BaseLayout):
177
164
  """some tabular data
178
165
 
@@ -184,7 +171,7 @@ class Table(BaseLayout):
184
171
  * title : the table's optional title
185
172
  """
186
173
  def __init__(self, cols, title=None,
187
- rheaders=0, cheaders=0, rrheaders=0, rcheaders=0,
174
+ rheaders=0, cheaders=0,
188
175
  **kwargs):
189
176
  super(Table, self).__init__(**kwargs)
190
177
  assert isinstance(cols, int)
@@ -192,12 +179,3 @@ class Table(BaseLayout):
192
179
  self.title = title
193
180
  self.rheaders = rheaders
194
181
  self.cheaders = cheaders
195
- self.rrheaders = rrheaders
196
- self.rcheaders = rcheaders
197
-
198
- class List(BaseLayout):
199
- """some list data
200
-
201
- attributes :
202
- * BaseLayout attributes
203
- """