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,13 +14,15 @@
14
14
  """checker for use of Python logging
15
15
  """
16
16
 
17
+ import six
18
+
17
19
  import astroid
20
+
18
21
  from pylint import checkers
19
22
  from pylint import interfaces
20
23
  from pylint.checkers import utils
21
24
  from pylint.checkers.utils import check_messages
22
25
 
23
- import six
24
26
 
25
27
 
26
28
  MSGS = {
@@ -35,7 +37,7 @@ MSGS = {
35
37
  'interpolation in those cases in which no message will be '
36
38
  'logged. For more, see '
37
39
  'http://www.python.org/dev/peps/pep-0282/.'),
38
- 'W1202': ('Use % formatting in logging functions but pass the % '
40
+ 'W1202': ('Use % formatting in logging functions and pass the % '
39
41
  'parameters as arguments',
40
42
  'logging-format-interpolation',
41
43
  'Used when a logging statement has a call form of '
@@ -76,7 +78,7 @@ def is_method_call(callfunc_node, types=(), methods=()):
76
78
  True, if the node represents a method call for the given type and
77
79
  method names, False otherwise.
78
80
  """
79
- if not isinstance(callfunc_node, astroid.CallFunc):
81
+ if not isinstance(callfunc_node, astroid.Call):
80
82
  return False
81
83
  func = utils.safe_infer(callfunc_node.func)
82
84
  return (isinstance(func, astroid.BoundMethod)
@@ -117,7 +119,7 @@ class LoggingChecker(checkers.BaseChecker):
117
119
  if len(parts) > 1:
118
120
  self._from_imports[parts[0]] = parts[1]
119
121
 
120
- def visit_from(self, node):
122
+ def visit_importfrom(self, node):
121
123
  """Checks to see if a module uses a non-Python logging module."""
122
124
  try:
123
125
  logging_name = self._from_imports[node.modname]
@@ -134,10 +136,10 @@ class LoggingChecker(checkers.BaseChecker):
134
136
  self._logging_names.add(as_name or module)
135
137
 
136
138
  @check_messages(*(MSGS.keys()))
137
- def visit_callfunc(self, node):
139
+ def visit_call(self, node):
138
140
  """Checks calls to logging methods."""
139
141
  def is_logging_name():
140
- return (isinstance(node.func, astroid.Getattr) and
142
+ return (isinstance(node.func, astroid.Attribute) and
141
143
  isinstance(node.func.expr, astroid.Name) and
142
144
  node.func.expr.name in self._logging_names)
143
145
 
@@ -146,7 +148,7 @@ class LoggingChecker(checkers.BaseChecker):
146
148
  for inferred in node.func.infer():
147
149
  if isinstance(inferred, astroid.BoundMethod):
148
150
  parent = inferred._proxied.parent
149
- if (isinstance(parent, astroid.Class) and
151
+ if (isinstance(parent, astroid.ClassDef) and
150
152
  (parent.qname() == 'logging.Logger' or
151
153
  any(ancestor.qname() == 'logging.Logger'
152
154
  for ancestor in parent.ancestors()))):
@@ -182,7 +184,7 @@ class LoggingChecker(checkers.BaseChecker):
182
184
 
183
185
  if isinstance(node.args[format_pos], astroid.BinOp) and node.args[format_pos].op == '%':
184
186
  self.add_message('logging-not-lazy', node=node)
185
- elif isinstance(node.args[format_pos], astroid.CallFunc):
187
+ elif isinstance(node.args[format_pos], astroid.Call):
186
188
  self._check_call_func(node.args[format_pos])
187
189
  elif isinstance(node.args[format_pos], astroid.Const):
188
190
  self._check_format_string(node, format_pos)
@@ -19,9 +19,10 @@ Check source code is ascii only or has an encoding declaration (PEP 263)
19
19
 
20
20
  import re
21
21
 
22
+ import six
23
+
22
24
  from pylint.interfaces import IRawChecker
23
25
  from pylint.checkers import BaseChecker
24
- import six
25
26
 
26
27
 
27
28
  MSGS = {
@@ -23,8 +23,8 @@ from pylint.interfaces import IAstroidChecker, INFERENCE, INFERENCE_FAILURE, HIG
23
23
  from pylint.checkers import BaseChecker
24
24
  from pylint.checkers.utils import (
25
25
  check_messages,
26
- has_known_bases,
27
26
  node_frame_class,
27
+ has_known_bases
28
28
  )
29
29
 
30
30
  MSGS = {
@@ -77,7 +77,7 @@ class NewStyleConflictChecker(BaseChecker):
77
77
  options = ()
78
78
 
79
79
  @check_messages('slots-on-old-class', 'old-style-class')
80
- def visit_class(self, node):
80
+ def visit_classdef(self, node):
81
81
  """ Check __slots__ in old style classes and old
82
82
  style class definition.
83
83
  """
@@ -95,10 +95,10 @@ class NewStyleConflictChecker(BaseChecker):
95
95
  self.add_message('old-style-class', node=node, confidence=HIGH)
96
96
 
97
97
  @check_messages('property-on-old-class')
98
- def visit_callfunc(self, node):
98
+ def visit_call(self, node):
99
99
  """check property usage"""
100
100
  parent = node.parent.frame()
101
- if (isinstance(parent, astroid.Class) and
101
+ if (isinstance(parent, astroid.ClassDef) and
102
102
  not parent.newstyle and
103
103
  isinstance(node.func, astroid.Name)):
104
104
  confidence = (INFERENCE if has_known_bases(parent)
@@ -109,62 +109,59 @@ class NewStyleConflictChecker(BaseChecker):
109
109
  confidence=confidence)
110
110
 
111
111
  @check_messages('super-on-old-class', 'bad-super-call', 'missing-super-argument')
112
- def visit_function(self, node):
112
+ def visit_functiondef(self, node):
113
113
  """check use of super"""
114
114
  # ignore actual functions or method within a new style class
115
115
  if not node.is_method():
116
116
  return
117
117
  klass = node.parent.frame()
118
- for stmt in node.nodes_of_class(astroid.CallFunc):
118
+ for stmt in node.nodes_of_class(astroid.Call):
119
119
  if node_frame_class(stmt) != node_frame_class(node):
120
120
  # Don't look down in other scopes.
121
121
  continue
122
122
  expr = stmt.func
123
- if not isinstance(expr, astroid.Getattr):
123
+ if not isinstance(expr, astroid.Attribute):
124
124
  continue
125
125
  call = expr.expr
126
126
  # skip the test if using super
127
- if isinstance(call, astroid.CallFunc) and \
128
- isinstance(call.func, astroid.Name) and \
129
- call.func.name == 'super':
130
- confidence = (INFERENCE if has_known_bases(klass)
131
- else INFERENCE_FAILURE)
132
- if not klass.newstyle:
133
- # super should not be used on an old style class
134
- self.add_message('super-on-old-class', node=node,
135
- confidence=confidence)
136
- else:
137
- # super first arg should be the class
138
- if not call.args and sys.version_info[0] == 3:
139
- # unless Python 3
140
- continue
141
-
142
- try:
143
- supcls = (call.args and next(call.args[0].infer())
144
- or None)
145
- except astroid.InferenceError:
146
- continue
147
-
148
- if supcls is None:
149
- self.add_message('missing-super-argument', node=call,
150
- confidence=confidence)
151
- continue
152
-
153
- if klass is not supcls:
154
- name = None
155
- # if supcls is not YES, then supcls was infered
156
- # and use its name. Otherwise, try to look
157
- # for call.args[0].name
158
- if supcls is not astroid.YES:
159
- name = supcls.name
160
- else:
161
- if hasattr(call.args[0], 'name'):
162
- name = call.args[0].name
163
- if name is not None:
164
- self.add_message('bad-super-call',
165
- node=call,
166
- args=(name, ),
167
- confidence=confidence)
127
+ if not (isinstance(call, astroid.Call) and
128
+ isinstance(call.func, astroid.Name) and
129
+ call.func.name == 'super'):
130
+ continue
131
+
132
+ if not klass.newstyle and has_known_bases(klass):
133
+ # super should not be used on an old style class
134
+ self.add_message('super-on-old-class', node=node)
135
+ else:
136
+ # super first arg should be the class
137
+ if not call.args and sys.version_info[0] == 3:
138
+ # unless Python 3
139
+ continue
140
+
141
+ try:
142
+ supcls = (call.args and next(call.args[0].infer())
143
+ or None)
144
+ except astroid.InferenceError:
145
+ continue
146
+
147
+ if supcls is None:
148
+ self.add_message('missing-super-argument', node=call)
149
+ continue
150
+
151
+ if klass is not supcls:
152
+ name = None
153
+ # if supcls is not YES, then supcls was infered
154
+ # and use its name. Otherwise, try to look
155
+ # for call.args[0].name
156
+ if supcls is not astroid.YES:
157
+ name = supcls.name
158
+ else:
159
+ if hasattr(call.args[0], 'name'):
160
+ name = call.args[0].name
161
+ if name is not None:
162
+ self.add_message('bad-super-call', node=call, args=(name, ))
163
+
164
+ visit_asyncfunctiondef = visit_functiondef
168
165
 
169
166
 
170
167
  def register(linter):
@@ -19,6 +19,7 @@ import tokenize
19
19
 
20
20
  import astroid
21
21
  from astroid import bases
22
+
22
23
  from pylint import checkers, interfaces
23
24
  from pylint.utils import WarningScope
24
25
  from pylint.checkers import utils
@@ -50,7 +51,7 @@ def _check_dict_node(node):
50
51
  def _is_builtin(node):
51
52
  return getattr(node, 'name', None) in ('__builtin__', 'builtins')
52
53
 
53
- _accepts_iterator = {'iter', 'list', 'tuple', 'sorted', 'set', 'sum', 'any',
54
+ _ACCEPTS_ITERATOR = {'iter', 'list', 'tuple', 'sorted', 'set', 'sum', 'any',
54
55
  'all', 'enumerate', 'dict'}
55
56
 
56
57
  def _in_iterating_context(node):
@@ -71,12 +72,12 @@ def _in_iterating_context(node):
71
72
  return True
72
73
  # Various built-ins can take in an iterable or list and lead to the same
73
74
  # value.
74
- elif isinstance(parent, astroid.CallFunc):
75
+ elif isinstance(parent, astroid.Call):
75
76
  if isinstance(parent.func, astroid.Name):
76
77
  parent_scope = parent.func.lookup(parent.func.name)[0]
77
- if _is_builtin(parent_scope) and parent.func.name in _accepts_iterator:
78
+ if _is_builtin(parent_scope) and parent.func.name in _ACCEPTS_ITERATOR:
78
79
  return True
79
- elif isinstance(parent.func, astroid.Getattr):
80
+ elif isinstance(parent.func, astroid.Attribute):
80
81
  if parent.func.attrname == 'join':
81
82
  return True
82
83
  # If the call is in an unpacking, there's no need to warn,
@@ -130,6 +131,11 @@ class Python3Checker(checkers.BaseChecker):
130
131
  {'scope': WarningScope.NODE,
131
132
  'maxversion': (3, 0),
132
133
  'old_names': [('W0333', 'backtick')]}),
134
+ 'E1609': ('Import * only allowed at module level',
135
+ 'import-star-module-level',
136
+ 'Used when the import star syntax is used somewhere '
137
+ 'else than the module level.',
138
+ {'maxversion': (3, 0)}),
133
139
  'W1601': ('apply built-in referenced',
134
140
  'apply-builtin',
135
141
  'Used when the apply built-in function is referenced '
@@ -242,7 +248,7 @@ class Python3Checker(checkers.BaseChecker):
242
248
  "Used when an object's next() method is called "
243
249
  '(Python 3 uses the next() built-in function)',
244
250
  {'maxversion': (3, 0)}),
245
- 'W1623': ("Assigning to a class' __metaclass__ attribute",
251
+ 'W1623': ("Assigning to a class's __metaclass__ attribute",
246
252
  'metaclass-assignment',
247
253
  "Used when a metaclass is specified by assigning to __metaclass__ "
248
254
  '(Python 3 specifies the metaclass as a class statement argument)',
@@ -378,7 +384,7 @@ class Python3Checker(checkers.BaseChecker):
378
384
  self._future_division = False
379
385
  self._future_absolute_import = False
380
386
 
381
- def visit_function(self, node):
387
+ def visit_functiondef(self, node):
382
388
  if node.is_method() and node.name in self._unused_magic_methods:
383
389
  method_name = node.name
384
390
  if node.name.startswith('__'):
@@ -403,8 +409,7 @@ class Python3Checker(checkers.BaseChecker):
403
409
  def visit_print(self, node):
404
410
  self.add_message('print-statement', node=node)
405
411
 
406
- @utils.check_messages('no-absolute-import')
407
- def visit_from(self, node):
412
+ def visit_importfrom(self, node):
408
413
  if node.modname == '__future__':
409
414
  for name, _ in node.names:
410
415
  if name == 'division':
@@ -412,7 +417,12 @@ class Python3Checker(checkers.BaseChecker):
412
417
  elif name == 'absolute_import':
413
418
  self._future_absolute_import = True
414
419
  elif not self._future_absolute_import:
415
- self.add_message('no-absolute-import', node=node)
420
+ if self.linter.is_message_enabled('no-absolute-import'):
421
+ self.add_message('no-absolute-import', node=node)
422
+ if node.names[0][0] == '*':
423
+ if self.linter.is_message_enabled('import-star-module-level'):
424
+ if not isinstance(node.scope(), astroid.Module):
425
+ self.add_message('import-star-module-level', node=node)
416
426
 
417
427
  @utils.check_messages('no-absolute-import')
418
428
  def visit_import(self, node):
@@ -420,7 +430,7 @@ class Python3Checker(checkers.BaseChecker):
420
430
  self.add_message('no-absolute-import', node=node)
421
431
 
422
432
  @utils.check_messages('metaclass-assignment')
423
- def visit_class(self, node):
433
+ def visit_classdef(self, node):
424
434
  if '__metaclass__' in node.locals:
425
435
  self.add_message('metaclass-assignment', node=node)
426
436
 
@@ -435,8 +445,8 @@ class Python3Checker(checkers.BaseChecker):
435
445
 
436
446
  def _check_cmp_argument(self, node):
437
447
  # Check that the `cmp` argument is used
438
- args = []
439
- if (isinstance(node.func, astroid.Getattr)
448
+ kwargs = []
449
+ if (isinstance(node.func, astroid.Attribute)
440
450
  and node.func.attrname == 'sort'):
441
451
  inferred = utils.safe_infer(node.func.expr)
442
452
  if not inferred:
@@ -445,28 +455,28 @@ class Python3Checker(checkers.BaseChecker):
445
455
  builtins_list = "{}.list".format(bases.BUILTINS)
446
456
  if (isinstance(inferred, astroid.List)
447
457
  or inferred.qname() == builtins_list):
448
- args = node.args
458
+ kwargs = node.keywords
449
459
 
450
460
  elif (isinstance(node.func, astroid.Name)
451
- and node.func.name == 'sorted'):
461
+ and node.func.name == 'sorted'):
452
462
  inferred = utils.safe_infer(node.func)
453
463
  if not inferred:
454
464
  return
455
465
 
456
466
  builtins_sorted = "{}.sorted".format(bases.BUILTINS)
457
467
  if inferred.qname() == builtins_sorted:
458
- args = node.args
468
+ kwargs = node.keywords
459
469
 
460
- for arg in args:
461
- if isinstance(arg, astroid.Keyword) and arg.arg == 'cmp':
470
+ for kwarg in kwargs or []:
471
+ if kwarg.arg == 'cmp':
462
472
  self.add_message('using-cmp-argument', node=node)
463
473
  return
464
474
 
465
- def visit_callfunc(self, node):
475
+ def visit_call(self, node):
466
476
  self._check_cmp_argument(node)
467
477
 
468
- if isinstance(node.func, astroid.Getattr):
469
- if any([node.args, node.starargs, node.kwargs]):
478
+ if isinstance(node.func, astroid.Attribute):
479
+ if any([node.args, node.keywords]):
470
480
  return
471
481
  if node.func.attrname == 'next':
472
482
  self.add_message('next-method-called', node=node)
@@ -504,7 +514,7 @@ class Python3Checker(checkers.BaseChecker):
504
514
  self.add_message('unpacking-in-except', node=node)
505
515
 
506
516
  @utils.check_messages('backtick')
507
- def visit_backquote(self, node):
517
+ def visit_repr(self, node):
508
518
  self.add_message('backtick', node=node)
509
519
 
510
520
  @utils.check_messages('raising-string', 'old-raise-syntax')
@@ -25,12 +25,12 @@ import tokenize
25
25
  #if not hasattr(tokenize, 'NL'):
26
26
  # raise ValueError("tokenize.NL doesn't exist -- tokenize module too old")
27
27
 
28
- from logilab.common.ureports import Table
29
-
30
28
  from pylint.interfaces import ITokenChecker
31
29
  from pylint.utils import EmptyReport
32
30
  from pylint.checkers import BaseTokenChecker
33
31
  from pylint.reporters import diff_string
32
+ from pylint.reporters.ureports.nodes import Table
33
+
34
34
 
35
35
  def report_raw_stats(sect, stats, old_stats):
36
36
  """calculate percentage of code / doc / comment / empty
@@ -118,7 +118,7 @@ def get_type(tokens, start_index):
118
118
  i += 1
119
119
  if line_type is None:
120
120
  line_type = 'empty_lines'
121
- elif i < len(tokens) and tok_type == tokenize.NEWLINE:
121
+ elif i < len(tokens) and tokens[i][0] == tokenize.NEWLINE:
122
122
  i += 1
123
123
  return i, pos[0] - start[0] + 1, line_type
124
124
 
@@ -20,13 +20,12 @@ from __future__ import print_function
20
20
  import sys
21
21
  from collections import defaultdict
22
22
 
23
- from logilab.common.ureports import Table
23
+ import six
24
+ from six.moves import zip
24
25
 
25
26
  from pylint.interfaces import IRawChecker
26
27
  from pylint.checkers import BaseChecker, table_lines_from_stats
27
-
28
- import six
29
- from six.moves import zip
28
+ from pylint.reporters.ureports.nodes import Table
30
29
 
31
30
 
32
31
  class Similar(object):
@@ -306,7 +305,7 @@ class SimilarChecker(BaseChecker, Similar):
306
305
 
307
306
  def close(self):
308
307
  """compute and display similarities on closing (i.e. end of parsing)"""
309
- total = sum([len(lineset) for lineset in self.linesets])
308
+ total = sum(len(lineset) for lineset in self.linesets)
310
309
  duplicated = 0
311
310
  stats = self.stats
312
311
  for num, couples in self._compute_sims():
@@ -15,24 +15,26 @@
15
15
  """Checker for spelling errors in comments and docstrings.
16
16
  """
17
17
 
18
+ import os
18
19
  import sys
19
20
  import tokenize
20
21
  import string
21
22
  import re
22
23
 
23
- if sys.version_info[0] >= 3:
24
- maketrans = str.maketrans
25
- else:
26
- maketrans = string.maketrans
24
+ try:
25
+ import enchant
26
+ except ImportError:
27
+ enchant = None
28
+ import six
27
29
 
28
30
  from pylint.interfaces import ITokenChecker, IAstroidChecker
29
31
  from pylint.checkers import BaseTokenChecker
30
32
  from pylint.checkers.utils import check_messages
31
33
 
32
- try:
33
- import enchant
34
- except ImportError:
35
- enchant = None
34
+ if sys.version_info[0] >= 3:
35
+ maketrans = str.maketrans
36
+ else:
37
+ maketrans = string.maketrans
36
38
 
37
39
  if enchant is not None:
38
40
  br = enchant.Broker()
@@ -48,6 +50,7 @@ else:
48
50
 
49
51
  table = maketrans("", "")
50
52
 
53
+
51
54
  class SpellingChecker(BaseTokenChecker):
52
55
  """Check spelling in comments and docstrings"""
53
56
  __implements__ = (ITokenChecker, IAstroidChecker)
@@ -105,6 +108,11 @@ class SpellingChecker(BaseTokenChecker):
105
108
  # "pylint" appears in comments in pylint pragmas.
106
109
  self.ignore_list.extend(["param", "pylint"])
107
110
 
111
+ # Expand tilde to allow e.g. spelling-private-dict-file = ~/.pylintdict
112
+ if self.config.spelling_private_dict_file:
113
+ self.config.spelling_private_dict_file = os.path.expanduser(
114
+ self.config.spelling_private_dict_file)
115
+
108
116
  if self.config.spelling_private_dict_file:
109
117
  self.spelling_dict = enchant.DictWithPWL(
110
118
  dict_name, self.config.spelling_private_dict_file)
@@ -220,17 +228,19 @@ class SpellingChecker(BaseTokenChecker):
220
228
  self._check_docstring(node)
221
229
 
222
230
  @check_messages('wrong-spelling-in-docstring')
223
- def visit_class(self, node):
231
+ def visit_classdef(self, node):
224
232
  if not self.initialized:
225
233
  return
226
234
  self._check_docstring(node)
227
235
 
228
236
  @check_messages('wrong-spelling-in-docstring')
229
- def visit_function(self, node):
237
+ def visit_functiondef(self, node):
230
238
  if not self.initialized:
231
239
  return
232
240
  self._check_docstring(node)
233
241
 
242
+ visit_asyncfunctiondef = visit_functiondef
243
+
234
244
  def _check_docstring(self, node):
235
245
  """check the node has any spelling errors"""
236
246
  docstring = node.doc
@@ -238,6 +248,10 @@ class SpellingChecker(BaseTokenChecker):
238
248
  return
239
249
 
240
250
  start_line = node.lineno + 1
251
+ if six.PY2:
252
+ encoding = node.root().file_encoding
253
+ docstring = docstring.decode(encoding or sys.getdefaultencoding(),
254
+ 'replace')
241
255
 
242
256
  # Go through lines of docstring
243
257
  for idx, line in enumerate(docstring.splitlines()):