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
@@ -27,7 +27,7 @@ from six.moves.tkinter import (
27
27
  Tk, Frame, Listbox, Entry, Label, Button, Scrollbar,
28
28
  Checkbutton, Radiobutton, IntVar, StringVar, PanedWindow,
29
29
  TOP, LEFT, RIGHT, BOTTOM, END, X, Y, BOTH, SUNKEN, W,
30
- HORIZONTAL, DISABLED, NORMAL, W,
30
+ HORIZONTAL, DISABLED, NORMAL,
31
31
  )
32
32
  from six.moves.tkinter_tkfiledialog import (
33
33
  askopenfilename, askdirectory,
@@ -455,7 +455,7 @@ class LintGui(object):
455
455
  try:
456
456
  view_history = open(HOME+HISTORY, 'r')
457
457
  for hist in view_history.readlines():
458
- if not hist in self.filenames:
458
+ if hist not in self.filenames:
459
459
  self.filenames.append(hist)
460
460
  self.showhistory.insert(END, hist.split('\n')[0])
461
461
  view_history.close()
@@ -13,8 +13,6 @@
13
13
  """Interfaces for Pylint objects"""
14
14
  from collections import namedtuple
15
15
 
16
- from logilab.common.interface import Interface
17
-
18
16
  Confidence = namedtuple('Confidence', ['name', 'description'])
19
17
  # Warning Certainties
20
18
  HIGH = Confidence('HIGH', 'No false positive possible.')
@@ -27,6 +25,26 @@ UNDEFINED = Confidence('UNDEFINED',
27
25
  CONFIDENCE_LEVELS = [HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED]
28
26
 
29
27
 
28
+ class Interface(object):
29
+ """Base class for interfaces."""
30
+ @classmethod
31
+ def is_implemented_by(cls, instance):
32
+ return implements(instance, cls)
33
+
34
+
35
+ def implements(obj, interface):
36
+ """Return true if the give object (maybe an instance or class) implements
37
+ the interface.
38
+ """
39
+ kimplements = getattr(obj, '__implements__', ())
40
+ if not isinstance(kimplements, (list, tuple)):
41
+ kimplements = (kimplements,)
42
+ for implementedinterface in kimplements:
43
+ if issubclass(implementedinterface, interface):
44
+ return True
45
+ return False
46
+
47
+
30
48
  class IChecker(Interface):
31
49
  """This is an base interface, not designed to be used elsewhere than for
32
50
  sub interfaces definition.
@@ -76,7 +94,7 @@ class IReporter(Interface):
76
94
  msg is the actual message
77
95
  """
78
96
 
79
- def display_results(self, layout):
97
+ def display_reports(self, layout):
80
98
  """display results encapsulated in the layout tree
81
99
  """
82
100
 
@@ -29,7 +29,6 @@ from __future__ import print_function
29
29
 
30
30
  import collections
31
31
  import contextlib
32
- import itertools
33
32
  import operator
34
33
  import os
35
34
  try:
@@ -40,23 +39,18 @@ import sys
40
39
  import tokenize
41
40
  import warnings
42
41
 
42
+ import six
43
+
43
44
  import astroid
44
45
  from astroid.__pkginfo__ import version as astroid_version
45
46
  from astroid import modutils
46
- from logilab.common import configuration
47
- from logilab.common import optik_ext
48
- from logilab.common import interface
49
- from logilab.common import textutils
50
- from logilab.common import ureports
51
- from logilab.common import __version__ as common_version
52
- import six
53
-
54
47
  from pylint import checkers
55
48
  from pylint import interfaces
56
49
  from pylint import reporters
57
50
  from pylint import utils
58
51
  from pylint import config
59
52
  from pylint.__pkginfo__ import version
53
+ from pylint.reporters.ureports import nodes as report_nodes
60
54
 
61
55
 
62
56
  MANAGER = astroid.MANAGER
@@ -97,7 +91,11 @@ def _get_python_path(filepath):
97
91
 
98
92
  def _merge_stats(stats):
99
93
  merged = {}
94
+ by_msg = collections.Counter()
100
95
  for stat in stats:
96
+ message_stats = stat.pop('by_msg', {})
97
+ by_msg.update(message_stats)
98
+
101
99
  for key, item in six.iteritems(stat):
102
100
  if key not in merged:
103
101
  merged[key] = item
@@ -106,6 +104,8 @@ def _merge_stats(stats):
106
104
  merged[key].update(item)
107
105
  else:
108
106
  merged[key] = merged[key] + item
107
+
108
+ merged['by_msg'] = by_msg
109
109
  return merged
110
110
 
111
111
 
@@ -139,10 +139,6 @@ MSGS = {
139
139
  'Used when an unexpected error occurred while building the '
140
140
  'Astroid representation. This is usually accompanied by a '
141
141
  'traceback. Please report such errors !'),
142
- 'F0003': ('ignored builtin module %s',
143
- 'ignored-builtin-module',
144
- 'Used to indicate that the user asked to analyze a builtin '
145
- 'module which has been skipped.'),
146
142
  'F0010': ('error while code parsing: %s',
147
143
  'parse-error',
148
144
  'Used when an exception occured while building the Astroid '
@@ -199,21 +195,16 @@ MSGS = {
199
195
  }
200
196
 
201
197
 
202
- def _deprecated_option(shortname, opt_type, help_msg):
203
- def _warn_deprecated(option, optname, *args): # pylint: disable=unused-argument
204
- sys.stderr.write('Warning: option %s is deprecated and ignored.\n' % (optname,))
205
- return {'short': shortname, 'help': help_msg, 'hide': True,
206
- 'type': opt_type, 'action': 'callback', 'callback': _warn_deprecated}
207
-
208
-
209
198
  if multiprocessing is not None:
210
- class ChildLinter(multiprocessing.Process): # pylint: disable=no-member
199
+ class ChildLinter(multiprocessing.Process):
211
200
  def run(self):
212
- tasks_queue, results_queue, self._config = self._args # pylint: disable=no-member
201
+ # pylint: disable=no-member, unbalanced-tuple-unpacking
202
+ tasks_queue, results_queue, self._config = self._args
213
203
 
214
204
  self._config["jobs"] = 1 # Child does not parallelize any further.
215
205
  self._python3_porting_mode = self._config.pop(
216
206
  'python3_porting_mode', None)
207
+ self._plugins = self._config.pop('plugins', None)
217
208
 
218
209
  # Run linter for received files/modules.
219
210
  for file_or_module in iter(tasks_queue.get, 'STOP'):
@@ -232,9 +223,10 @@ if multiprocessing is not None:
232
223
  # Register standard checkers.
233
224
  linter.load_default_plugins()
234
225
  # Load command line plugins.
235
- # TODO linter.load_plugin_modules(self._plugins)
226
+ if self._plugins:
227
+ linter.load_plugin_modules(self._plugins)
236
228
 
237
- linter.load_configuration(**self._config)
229
+ linter.load_configuration_from_config(self._config)
238
230
  linter.set_reporter(reporters.CollectingReporter())
239
231
 
240
232
  # Enable the Python 3 checker mode. This option is
@@ -252,7 +244,7 @@ if multiprocessing is not None:
252
244
  msgs, linter.stats, linter.msg_status)
253
245
 
254
246
 
255
- class PyLinter(configuration.OptionsManagerMixIn,
247
+ class PyLinter(config.OptionsManagerMixIn,
256
248
  utils.MessagesHandlerMixIn,
257
249
  utils.ReportsHandlerMixIn,
258
250
  checkers.BaseTokenChecker):
@@ -332,11 +324,7 @@ class PyLinter(configuration.OptionsManagerMixIn,
332
324
  'statements analyzed. This is used by the global '
333
325
  'evaluation report (RP0004).'}),
334
326
 
335
- ('comment',
336
- {'default': 0, 'type' : 'yn', 'metavar' : '<y_or_n>',
337
- 'group': 'Reports', 'level': 1,
338
- 'help' : 'Add a comment according to your evaluation note. '
339
- 'This is used by the global evaluation report (RP0004).'}),
327
+ ('comment', utils.deprecated_option(opt_type='yn')),
340
328
 
341
329
  ('confidence',
342
330
  {'type' : 'multiple_choice', 'metavar': '<levels>',
@@ -353,7 +341,9 @@ class PyLinter(configuration.OptionsManagerMixIn,
353
341
  'group': 'Messages control',
354
342
  'help' : 'Enable the message, report, category or checker with the '
355
343
  'given id(s). You can either give multiple identifier '
356
- 'separated by comma (,) or put this option multiple time. '
344
+ 'separated by comma (,) or put this option multiple time '
345
+ '(only on the command line, not in the configuration file '
346
+ 'where it should appear only once). '
357
347
  'See also the "--disable" option for examples. '}),
358
348
 
359
349
  ('disable',
@@ -382,9 +372,8 @@ class PyLinter(configuration.OptionsManagerMixIn,
382
372
  'See doc for all details')
383
373
  }),
384
374
 
385
- ('include-ids', _deprecated_option('i', 'yn',
386
- INCLUDE_IDS_HELP)),
387
- ('symbols', _deprecated_option('s', 'yn', SYMBOLS_HELP)),
375
+ ('include-ids', utils.deprecated_option('i', 'yn', INCLUDE_IDS_HELP)),
376
+ ('symbols', utils.deprecated_option('s', 'yn', SYMBOLS_HELP)),
388
377
 
389
378
  ('jobs',
390
379
  {'type' : 'int', 'metavar': '<n-processes>',
@@ -400,24 +389,24 @@ class PyLinter(configuration.OptionsManagerMixIn,
400
389
  ' may run arbitrary code.')}),
401
390
 
402
391
  ('extension-pkg-whitelist',
403
- {'type': 'csv', 'metavar': '<pkg[,pkg]>', 'default': [],
404
- 'help': ('A comma-separated list of package or module names'
405
- ' from where C extensions may be loaded. Extensions are'
406
- ' loading into the active Python interpreter and may run'
407
- ' arbitrary code')}
408
- ),
392
+ {'type': 'csv', 'metavar': '<pkg[,pkg]>', 'default': [],
393
+ 'help': ('A comma-separated list of package or module names'
394
+ ' from where C extensions may be loaded. Extensions are'
395
+ ' loading into the active Python interpreter and may run'
396
+ ' arbitrary code')}
397
+ ),
409
398
 
410
399
  ('optimize-ast',
411
- {'type': 'yn', 'metavar': '<yn>', 'default': False,
412
- 'help': ('Allow optimization of some AST trees. This will '
413
- 'activate a peephole AST optimizer, which will '
414
- 'apply various small optimizations. For instance, '
415
- 'it can be used to obtain the result of joining '
416
- 'multiple strings with the addition operator. '
417
- 'Joining a lot of strings can lead to a maximum '
418
- 'recursion error in Pylint and this flag can prevent '
419
- 'that. It has one side effect, the resulting AST '
420
- 'will be different than the one from reality.')}
400
+ {'type': 'yn', 'metavar': '<yn>', 'default': False,
401
+ 'help': ('Allow optimization of some AST trees. This will '
402
+ 'activate a peephole AST optimizer, which will '
403
+ 'apply various small optimizations. For instance, '
404
+ 'it can be used to obtain the result of joining '
405
+ 'multiple strings with the addition operator. '
406
+ 'Joining a lot of strings can lead to a maximum '
407
+ 'recursion error in Pylint and this flag can prevent '
408
+ 'that. It has one side effect, the resulting AST '
409
+ 'will be different than the one from reality.')}
421
410
  ),
422
411
  )
423
412
 
@@ -452,14 +441,14 @@ class PyLinter(configuration.OptionsManagerMixIn,
452
441
  'disable': self.disable}
453
442
  self._bw_options_methods = {'disable-msg': self.disable,
454
443
  'enable-msg': self.enable}
455
- full_version = '%%prog %s, \nastroid %s, common %s\nPython %s' % (
456
- version, astroid_version, common_version, sys.version)
457
- configuration.OptionsManagerMixIn.__init__(
458
- self, usage=__doc__,
459
- version=full_version,
460
- config_file=pylintrc or config.PYLINTRC)
444
+ full_version = '%%prog %s, \nastroid %s\nPython %s' % (
445
+ version, astroid_version, sys.version)
461
446
  utils.MessagesHandlerMixIn.__init__(self)
462
447
  utils.ReportsHandlerMixIn.__init__(self)
448
+ super(PyLinter, self).__init__(
449
+ usage=__doc__,
450
+ version=full_version,
451
+ config_file=pylintrc or config.PYLINTRC)
463
452
  checkers.BaseTokenChecker.__init__(self)
464
453
  # provided reports
465
454
  self.reports = (('RP0001', 'Messages by category',
@@ -516,7 +505,7 @@ class PyLinter(configuration.OptionsManagerMixIn,
516
505
  reporter.linter = self
517
506
 
518
507
  def set_option(self, optname, value, action=None, optdict=None):
519
- """overridden from configuration.OptionsProviderMixin to handle some
508
+ """overridden from config.OptionsProviderMixin to handle some
520
509
  special options
521
510
  """
522
511
  if optname in self._options_methods or \
@@ -526,10 +515,10 @@ class PyLinter(configuration.OptionsManagerMixIn,
526
515
  meth = self._options_methods[optname]
527
516
  except KeyError:
528
517
  meth = self._bw_options_methods[optname]
529
- warnings.warn('%s is deprecated, replace it by %s' % (
530
- optname, optname.split('-')[0]),
518
+ warnings.warn('%s is deprecated, replace it by %s' % (optname,
519
+ optname.split('-')[0]),
531
520
  DeprecationWarning)
532
- value = optik_ext.check_csv(None, optname, value)
521
+ value = utils._check_csv(value)
533
522
  if isinstance(value, (list, tuple)):
534
523
  for _id in value:
535
524
  meth(_id, ignore_unknown=True)
@@ -546,7 +535,7 @@ class PyLinter(configuration.OptionsManagerMixIn,
546
535
  try:
547
536
  checkers.BaseTokenChecker.set_option(self, optname,
548
537
  value, action, optdict)
549
- except configuration.UnsupportedAction:
538
+ except config.UnsupportedAction:
550
539
  print('option %s can\'t be read from config file' % \
551
540
  optname, file=sys.stderr)
552
541
 
@@ -597,8 +586,8 @@ class PyLinter(configuration.OptionsManagerMixIn,
597
586
 
598
587
  def disable_reporters(self):
599
588
  """disable all reporters"""
600
- for reporters in six.itervalues(self._reports):
601
- for report_id, _, _ in reporters:
589
+ for _reporters in six.itervalues(self._reports):
590
+ for report_id, _, _ in _reporters:
602
591
  self.disable_report(report_id)
603
592
 
604
593
  def error_mode(self):
@@ -669,7 +658,7 @@ class PyLinter(configuration.OptionsManagerMixIn,
669
658
  # found a "(dis|en)able-msg" pragma deprecated suppresssion
670
659
  self.add_message('deprecated-pragma', line=start[0],
671
660
  args=(opt, opt.replace('-msg', '')))
672
- for msgid in textutils.splitstrip(value):
661
+ for msgid in utils._splitstrip(value):
673
662
  # Add the line where a control pragma was encountered.
674
663
  if opt in control_pragmas:
675
664
  self._pragma_lineno[msgid] = start[0]
@@ -692,8 +681,8 @@ class PyLinter(configuration.OptionsManagerMixIn,
692
681
 
693
682
  def get_checkers(self):
694
683
  """return all available checkers as a list"""
695
- return [self] + [c for checkers in six.itervalues(self._checkers)
696
- for c in checkers if c is not self]
684
+ return [self] + [c for _checkers in six.itervalues(self._checkers)
685
+ for c in _checkers if c is not self]
697
686
 
698
687
  def prepare_checkers(self):
699
688
  """return checkers needed for activated messages and reports"""
@@ -750,35 +739,46 @@ class PyLinter(configuration.OptionsManagerMixIn,
750
739
  with _patch_sysmodules():
751
740
  self._parallel_check(files_or_modules)
752
741
 
753
-
754
- def _parallel_task(self, files_or_modules):
755
- # Prepare configuration for child linters.
742
+ def _get_jobs_config(self):
743
+ child_config = collections.OrderedDict()
756
744
  filter_options = {'symbols', 'include-ids', 'long-help'}
757
- filter_options.update([opt_name for opt_name, _ in self._external_opts])
758
- config = {}
745
+ filter_options.update((opt_name for opt_name, _ in self._external_opts))
759
746
  for opt_providers in six.itervalues(self._all_options):
760
747
  for optname, optdict, val in opt_providers.options_and_values():
748
+ if optdict.get('deprecated'):
749
+ continue
750
+
761
751
  if optname not in filter_options:
762
- config[optname] = configuration.format_option_value(optdict, val)
763
- config['python3_porting_mode'] = self._python3_porting_mode
752
+ child_config[optname] = utils._format_option_value(
753
+ optdict, val)
754
+ child_config['python3_porting_mode'] = self._python3_porting_mode
755
+ child_config['plugins'] = self._dynamic_plugins
756
+ return child_config
757
+
758
+ def _parallel_task(self, files_or_modules):
759
+ # Prepare configuration for child linters.
760
+ child_config = self._get_jobs_config()
764
761
 
765
- childs = []
766
- manager = multiprocessing.Manager() # pylint: disable=no-member
767
- tasks_queue = manager.Queue() # pylint: disable=no-member
768
- results_queue = manager.Queue() # pylint: disable=no-member
762
+ children = []
763
+ manager = multiprocessing.Manager()
764
+ tasks_queue = manager.Queue()
765
+ results_queue = manager.Queue()
769
766
 
770
767
  for _ in range(self.config.jobs):
771
- cl = ChildLinter(args=(tasks_queue, results_queue, config))
772
- cl.start() # pylint: disable=no-member
773
- childs.append(cl)
768
+ child_linter = ChildLinter(args=(tasks_queue, results_queue,
769
+ child_config))
770
+ child_linter.start()
771
+ children.append(child_linter)
774
772
 
775
- # send files to child linters
776
- for files_or_module in files_or_modules:
777
- tasks_queue.put([files_or_module])
773
+ # Send files to child linters.
774
+ expanded_files = self.expand_files(files_or_modules)
775
+ for files_or_module in expanded_files:
776
+ path = files_or_module['path']
777
+ tasks_queue.put([path])
778
778
 
779
779
  # collect results from child linters
780
780
  failed = False
781
- for _ in files_or_modules:
781
+ for _ in expanded_files:
782
782
  try:
783
783
  result = results_queue.get()
784
784
  except Exception as ex:
@@ -792,8 +792,8 @@ class PyLinter(configuration.OptionsManagerMixIn,
792
792
  # Stop child linters and wait for their completion.
793
793
  for _ in range(self.config.jobs):
794
794
  tasks_queue.put('STOP')
795
- for cl in childs:
796
- cl.join()
795
+ for child in children:
796
+ child.join()
797
797
 
798
798
  if failed:
799
799
  print("Error occured, stopping the linter.", file=sys.stderr)
@@ -804,9 +804,10 @@ class PyLinter(configuration.OptionsManagerMixIn,
804
804
  self.open()
805
805
 
806
806
  all_stats = []
807
+ module = None
807
808
  for result in self._parallel_task(files_or_modules):
808
809
  (
809
- file_or_module,
810
+ _,
810
811
  self.file_state.base_name,
811
812
  module,
812
813
  messages,
@@ -814,9 +815,6 @@ class PyLinter(configuration.OptionsManagerMixIn,
814
815
  msg_status
815
816
  ) = result
816
817
 
817
- if file_or_module == files_or_modules[-1]:
818
- last_module = module
819
-
820
818
  for msg in messages:
821
819
  msg = utils.Message(*msg)
822
820
  self.set_current_module(module)
@@ -825,8 +823,8 @@ class PyLinter(configuration.OptionsManagerMixIn,
825
823
  all_stats.append(stats)
826
824
  self.msg_status |= msg_status
827
825
 
828
- self.stats = _merge_stats(itertools.chain(all_stats, [self.stats]))
829
- self.current_name = last_module
826
+ self.stats = _merge_stats(all_stats)
827
+ self.current_name = module
830
828
 
831
829
  # Insert stats data to local checkers.
832
830
  for checker in self.get_checkers():
@@ -835,16 +833,16 @@ class PyLinter(configuration.OptionsManagerMixIn,
835
833
 
836
834
  def _do_check(self, files_or_modules):
837
835
  walker = utils.PyLintASTWalker(self)
838
- checkers = self.prepare_checkers()
839
- tokencheckers = [c for c in checkers
840
- if interface.implements(c, interfaces.ITokenChecker)
836
+ _checkers = self.prepare_checkers()
837
+ tokencheckers = [c for c in _checkers
838
+ if interfaces.implements(c, interfaces.ITokenChecker)
841
839
  and c is not self]
842
- rawcheckers = [c for c in checkers
843
- if interface.implements(c, interfaces.IRawChecker)]
840
+ rawcheckers = [c for c in _checkers
841
+ if interfaces.implements(c, interfaces.IRawChecker)]
844
842
  # notify global begin
845
- for checker in checkers:
843
+ for checker in _checkers:
846
844
  checker.open()
847
- if interface.implements(checker, interfaces.IAstroidChecker):
845
+ if interfaces.implements(checker, interfaces.IAstroidChecker):
848
846
  walker.add_checker(checker)
849
847
  # build ast and check modules or packages
850
848
  for descr in self.expand_files(files_or_modules):
@@ -874,8 +872,7 @@ class PyLinter(configuration.OptionsManagerMixIn,
874
872
  self.add_message(msgid, line, None, args)
875
873
  # notify global end
876
874
  self.stats['statement'] = walker.nbstatements
877
- checkers.reverse()
878
- for checker in checkers:
875
+ for checker in reversed(_checkers):
879
876
  checker.close()
880
877
 
881
878
  def expand_files(self, modules):
@@ -909,10 +906,14 @@ class PyLinter(configuration.OptionsManagerMixIn,
909
906
  """return a ast(roid) representation for a module"""
910
907
  try:
911
908
  return MANAGER.ast_from_file(filepath, modname, source=True)
912
- except SyntaxError as ex:
913
- self.add_message('syntax-error', line=ex.lineno, args=ex.msg)
914
909
  except astroid.AstroidBuildingException as ex:
915
- self.add_message('parse-error', args=ex)
910
+ if isinstance(ex.args[0], SyntaxError):
911
+ ex = ex.args[0]
912
+ self.add_message('syntax-error',
913
+ line=ex.lineno or 0,
914
+ args=ex.msg)
915
+ else:
916
+ self.add_message('parse-error', args=ex)
916
917
  except Exception as ex: # pylint: disable=broad-except
917
918
  import traceback
918
919
  traceback.print_exc()
@@ -966,6 +967,9 @@ class PyLinter(configuration.OptionsManagerMixIn,
966
967
 
967
968
  if persistent run, pickle results for later comparison
968
969
  """
970
+ # Display whatever messages are left on the reporter.
971
+ self.reporter.display_messages(report_nodes.Section())
972
+
969
973
  if self.file_state.base_name is not None:
970
974
  # load previous results if any
971
975
  previous_stats = config.load_results(self.file_state.base_name)
@@ -977,18 +981,13 @@ class PyLinter(configuration.OptionsManagerMixIn,
977
981
  filename = 'pylint_global.' + self.reporter.extension
978
982
  self.reporter.set_output(open(filename, 'w'))
979
983
  else:
980
- sect = ureports.Section()
981
- if self.config.reports or self.config.output_format == 'html':
982
- self.reporter.display_results(sect)
984
+ sect = report_nodes.Section()
985
+ if self.config.reports:
986
+ self.reporter.display_reports(sect)
983
987
  # save results if persistent run
984
988
  if self.config.persistent:
985
989
  config.save_results(self.stats, self.file_state.base_name)
986
990
  else:
987
- if self.config.output_format == 'html':
988
- # No output will be emitted for the html
989
- # reporter if the file doesn't exist, so emit
990
- # the results here.
991
- self.reporter.display_results(ureports.Section())
992
991
  self.reporter.on_close(self.stats, {})
993
992
 
994
993
  # specific reports ########################################################
@@ -1011,9 +1010,7 @@ class PyLinter(configuration.OptionsManagerMixIn,
1011
1010
  pnote = previous_stats.get('global_note')
1012
1011
  if pnote is not None:
1013
1012
  msg += ' (previous run: %.2f/10, %+.2f)' % (pnote, note - pnote)
1014
- if self.config.comment:
1015
- msg = '%s\n%s' % (msg, config.get_note_message(note))
1016
- sect.append(ureports.Text(msg))
1013
+ sect.append(report_nodes.Text(msg))
1017
1014
 
1018
1015
  # some reporting functions ####################################################
1019
1016
 
@@ -1023,7 +1020,7 @@ def report_total_messages_stats(sect, stats, previous_stats):
1023
1020
  lines += checkers.table_lines_from_stats(stats, previous_stats,
1024
1021
  ('convention', 'refactor',
1025
1022
  'warning', 'error'))
1026
- sect.append(ureports.Table(children=lines, cols=4, rheaders=1))
1023
+ sect.append(report_nodes.Table(children=lines, cols=4, rheaders=1))
1027
1024
 
1028
1025
  def report_messages_stats(sect, stats, _):
1029
1026
  """make messages type report"""
@@ -1037,7 +1034,7 @@ def report_messages_stats(sect, stats, _):
1037
1034
  lines = ('message id', 'occurrences')
1038
1035
  for value, msg_id in in_order:
1039
1036
  lines += (msg_id, str(value))
1040
- sect.append(ureports.Table(children=lines, cols=2, rheaders=1))
1037
+ sect.append(report_nodes.Table(children=lines, cols=2, rheaders=1))
1041
1038
 
1042
1039
  def report_messages_by_module_stats(sect, stats, _):
1043
1040
  """make errors / warnings by modules report"""
@@ -1073,7 +1070,7 @@ def report_messages_by_module_stats(sect, stats, _):
1073
1070
  lines.append('%.2f' % val)
1074
1071
  if len(lines) == 5:
1075
1072
  raise utils.EmptyReport()
1076
- sect.append(ureports.Table(children=lines, cols=5, rheaders=1))
1073
+ sect.append(report_nodes.Table(children=lines, cols=5, rheaders=1))
1077
1074
 
1078
1075
 
1079
1076
  # utilities ###################################################################
@@ -1231,10 +1228,7 @@ group are mutually exclusive.'),
1231
1228
  'disabled and only messages emitted by the porting '
1232
1229
  'checker will be displayed'}),
1233
1230
 
1234
- ('profile',
1235
- {'type' : 'yn', 'metavar' : '<y_or_n>',
1236
- 'default': False, 'hide': True,
1237
- 'help' : 'Profiled execution.'}),
1231
+ ('profile', utils.deprecated_option(opt_type='yn')),
1238
1232
 
1239
1233
  ), option_groups=self.option_groups, pylintrc=self._rcfile)
1240
1234
  # register standard checkers
@@ -1271,7 +1265,6 @@ group are mutually exclusive.'),
1271
1265
  'been issued by analysing pylint output status code\n',
1272
1266
  level=1)
1273
1267
  # read configuration
1274
- linter.disable('pointless-except')
1275
1268
  linter.disable('suppressed-message')
1276
1269
  linter.disable('useless-suppression')
1277
1270
  linter.read_config_file()
@@ -1279,11 +1272,11 @@ group are mutually exclusive.'),
1279
1272
  # run init hook, if present, before loading plugins
1280
1273
  if config_parser.has_option('MASTER', 'init-hook'):
1281
1274
  cb_init_hook('init-hook',
1282
- textutils.unquote(config_parser.get('MASTER',
1283
- 'init-hook')))
1275
+ utils._unquote(config_parser.get('MASTER',
1276
+ 'init-hook')))
1284
1277
  # is there some additional plugins in the file configuration, in
1285
1278
  if config_parser.has_option('MASTER', 'load-plugins'):
1286
- plugins = textutils.splitstrip(
1279
+ plugins = utils._splitstrip(
1287
1280
  config_parser.get('MASTER', 'load-plugins'))
1288
1281
  linter.load_plugin_modules(plugins)
1289
1282
  # now we can load file config and command line, plugins (which can
@@ -1319,19 +1312,9 @@ group are mutually exclusive.'),
1319
1312
 
1320
1313
  # insert current working directory to the python path to have a correct
1321
1314
  # behaviour
1322
- if self.linter.config.profile:
1323
- with fix_import_path(args):
1324
- print('** profiled run', file=sys.stderr)
1325
- import cProfile, pstats
1326
- cProfile.runctx('linter.check(%r)' % args, globals(), locals(),
1327
- 'stones.prof')
1328
- data = pstats.Stats('stones.prof')
1329
- data.strip_dirs()
1330
- data.sort_stats('time', 'calls')
1331
- data.print_stats(30)
1332
- else:
1315
+ with fix_import_path(args):
1333
1316
  linter.check(args)
1334
- linter.generate_reports()
1317
+ linter.generate_reports()
1335
1318
  if exit:
1336
1319
  sys.exit(self.linter.msg_status)
1337
1320
 
@@ -1341,7 +1324,7 @@ group are mutually exclusive.'),
1341
1324
 
1342
1325
  def cb_add_plugins(self, name, value):
1343
1326
  """callback for option preprocessing (i.e. before option parsing)"""
1344
- self._plugins.extend(textutils.splitstrip(value))
1327
+ self._plugins.extend(utils._splitstrip(value))
1345
1328
 
1346
1329
  def cb_error_mode(self, *args, **kwargs):
1347
1330
  """error mode:
@@ -1366,7 +1349,7 @@ group are mutually exclusive.'),
1366
1349
 
1367
1350
  def cb_help_message(self, option, optname, value, parser):
1368
1351
  """optik callback for printing some help about a particular message"""
1369
- self.linter.msgs_store.help_message(textutils.splitstrip(value))
1352
+ self.linter.msgs_store.help_message(utils._splitstrip(value))
1370
1353
  sys.exit(0)
1371
1354
 
1372
1355
  def cb_full_documentation(self, option, optname, value, parser):