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.
- checksums.yaml +4 -4
- data/.travis.yml +3 -0
- data/CHANGELOG.md +4 -0
- data/README.md +2 -0
- data/ext/libv8/builder.rb +6 -2
- data/lib/libv8/version.rb +1 -1
- data/vendor/depot_tools/.gitattributes +1 -0
- data/vendor/depot_tools/.gitignore +7 -0
- data/vendor/depot_tools/CROS_OWNERS +5 -0
- data/vendor/depot_tools/OWNERS +12 -1
- data/vendor/depot_tools/PRESUBMIT.py +16 -9
- data/vendor/depot_tools/README.md +9 -2
- data/vendor/depot_tools/autoninja +14 -6
- data/vendor/depot_tools/autoninja.bat +11 -1
- data/vendor/depot_tools/autoninja.py +40 -18
- data/vendor/depot_tools/bb +12 -0
- data/vendor/depot_tools/bb.bat +7 -0
- data/vendor/depot_tools/bootstrap/win/manifest.txt +1 -1
- data/vendor/depot_tools/bootstrap/win/manifest_bleeding_edge.txt +1 -1
- data/vendor/depot_tools/bootstrap/win/win_tools.py +2 -1
- data/vendor/depot_tools/buildbucket.py +57 -4
- data/vendor/depot_tools/cipd +157 -44
- data/vendor/depot_tools/cipd.bat +51 -14
- data/vendor/depot_tools/cipd.ps1 +104 -42
- data/vendor/depot_tools/cipd_client_version +1 -1
- data/vendor/depot_tools/cipd_client_version.digests +21 -0
- data/vendor/depot_tools/cipd_manifest.txt +19 -6
- data/vendor/depot_tools/cipd_manifest.versions +318 -0
- data/vendor/depot_tools/clang_format.py +4 -4
- data/vendor/depot_tools/cpplint.py +44 -199
- data/vendor/depot_tools/dart_format.py +2 -2
- data/vendor/depot_tools/detect_host_arch.py +8 -3
- data/vendor/depot_tools/download_from_google_storage.py +47 -39
- data/vendor/depot_tools/fetch.py +30 -18
- data/vendor/depot_tools/fetch_configs/android_internal.py +34 -0
- data/vendor/depot_tools/fetch_configs/chromium.py +18 -1
- data/vendor/depot_tools/fetch_configs/config_util.py +4 -2
- data/vendor/depot_tools/fetch_configs/inspector_protocol.py +40 -0
- data/vendor/depot_tools/fetch_configs/node-ci.py +41 -0
- data/vendor/depot_tools/fix_encoding.py +3 -3
- data/vendor/depot_tools/gclient +1 -1
- data/vendor/depot_tools/gclient.py +415 -198
- data/vendor/depot_tools/gclient_eval.py +220 -171
- data/vendor/depot_tools/gclient_paths.py +142 -0
- data/vendor/depot_tools/gclient_scm.py +200 -51
- data/vendor/depot_tools/gclient_utils.py +88 -191
- data/vendor/depot_tools/gerrit_client.py +13 -0
- data/vendor/depot_tools/gerrit_util.py +158 -23
- data/vendor/depot_tools/git-nav-upstream +1 -1
- data/vendor/depot_tools/git_cache.py +77 -24
- data/vendor/depot_tools/git_cl.py +705 -1099
- data/vendor/depot_tools/git_common.py +9 -6
- data/vendor/depot_tools/git_map_branches.py +19 -2
- data/vendor/depot_tools/git_nav_downstream.py +3 -4
- data/vendor/depot_tools/git_rebase_update.py +14 -0
- data/vendor/depot_tools/git_reparent_branch.py +8 -2
- data/vendor/depot_tools/gn.py +38 -3
- data/vendor/depot_tools/gsutil.py +8 -3
- data/vendor/depot_tools/gsutil.py.bat +15 -0
- data/vendor/depot_tools/gsutil.vpython +16 -0
- data/vendor/depot_tools/infra/config/OWNERS +0 -1
- data/vendor/depot_tools/infra/config/recipes.cfg +3 -2
- data/vendor/depot_tools/lucicfg +12 -0
- data/vendor/depot_tools/lucicfg.bat +7 -0
- data/vendor/depot_tools/man/html/git-map-branches.html +34 -2
- data/vendor/depot_tools/man/html/git-new-branch.html +40 -32
- data/vendor/depot_tools/man/man1/git-map-branches.1 +24 -5
- data/vendor/depot_tools/man/man1/git-new-branch.1 +35 -27
- data/vendor/depot_tools/man/src/git-map-branches.demo.1.sh +1 -0
- data/vendor/depot_tools/man/src/git-map-branches.txt +10 -0
- data/vendor/depot_tools/man/src/git-new-branch.demo.1.sh +9 -4
- data/vendor/depot_tools/man/src/git-new-branch.txt +1 -1
- data/vendor/depot_tools/metrics.README.md +98 -0
- data/vendor/depot_tools/metrics.py +296 -0
- data/vendor/depot_tools/metrics_utils.py +303 -0
- data/vendor/depot_tools/my_activity.py +91 -29
- data/vendor/depot_tools/ninja +1 -1
- data/vendor/depot_tools/ninjalog.README.md +64 -0
- data/vendor/depot_tools/ninjalog_uploader.py +232 -0
- data/vendor/depot_tools/ninjalog_uploader_wrapper.py +116 -0
- data/vendor/depot_tools/owners.py +30 -13
- data/vendor/depot_tools/owners_finder.py +5 -2
- data/vendor/depot_tools/presubmit_canned_checks.py +188 -29
- data/vendor/depot_tools/presubmit_support.py +18 -41
- data/vendor/depot_tools/pylintrc +23 -19
- data/vendor/depot_tools/recipes/OWNERS +2 -0
- data/vendor/depot_tools/recipes/README.recipes.md +344 -151
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/OWNERS +2 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/__init__.py +2 -16
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/api.py +141 -99
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic.json +5 -8
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_luci.json +5 -8
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_with_branch_heads.json +6 -98
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/clobber.json +4 -9
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/deprecated_got_revision_mapping.json +45 -5
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_rebase_patch_ref.json +4 -9
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_reset.json +4 -9
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/{tryjob.json → input_commit_with_id_without_repo.json} +6 -11
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/{tryjob_empty_revision.json → multiple_patch_refs.json} +8 -9
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_apply_patch_on_gclient.json +19 -29
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/{trychange.json → refs.json} +4 -9
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/reset_root_solution_revision.json +4 -9
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail.json +51 -6
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch.json +50 -6
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch_download.json +51 -6
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle.json +17 -25
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_branch_heads.json +17 -25
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_feature_branch.json +18 -26
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8_feature_branch.json +18 -26
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_webrtc.json +26 -28
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8.json +45 -5
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8_head_by_default.json +17 -25
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/unrecognized_commit_repo.json +13 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_manifest_name.json +13 -152
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_tags.json +4 -9
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.py +185 -202
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/bot_update.py +52 -157
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/test_api.py +5 -14
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/ensure_checkout.py +34 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/api.py +14 -2
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic.json +4 -5
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic_pkg.json +4 -5
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-failed.json +7 -5
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-many-instances.json +4 -5
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/mac64.json +4 -5
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_file.json +9 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_mode.json +9 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_verfile.json +9 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/win64.json +4 -5
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk arch.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk bits.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_32.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_64.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_32.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_64.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_mips_64.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/mac_intel_64.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_32.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_64.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/api.py +13 -8
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic.json +18 -12
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic_luci.json +18 -12
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/win.json +18 -12
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.py +3 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/__init__.py +1 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/api.py +58 -46
- data/vendor/depot_tools/recipes/recipe_modules/gclient/config.py +65 -22
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/basic.json +20 -21
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/buildbot.json +20 -21
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/revision.json +20 -21
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/tryserver.json +20 -21
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.py +5 -2
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/patch_project.py +62 -14
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/api.py +24 -38
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.expected/basic.json +56 -50
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.py +15 -9
- data/vendor/depot_tools/recipes/recipe_modules/git/__init__.py +4 -1
- data/vendor/depot_tools/recipes/recipe_modules/git/api.py +34 -22
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_branch.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_file_name.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_hash.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_luci.json +222 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_ref.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_submodule_update_force.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_tags.json +224 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/can_fail_build.json +10 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cannot_fail_build.json +5 -7
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cat-file_test.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_delta.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_failed.json +5 -7
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output_fails_build.json +10 -5
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/curl_trace_file.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/git-cache-checkout.json +8 -9
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/platform_win.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/rebase_failed.json +12 -8
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/remote_not_origin.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/set_got_revision.json +5 -6
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.py +27 -11
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/api.py +1 -1
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.expected/basic.json +12 -13
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/__init__.py +5 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/api.py +120 -5
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.expected/basic.json +45 -3
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.py +25 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/resources/gerrit_client.py +56 -4
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.expected/basic.json +6 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.py +49 -0
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/api.py +24 -13
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.expected/basic.json +13 -14
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/basic.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_linux.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_mac.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_win.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_linux.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_mac.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_win.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_linux.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_mac.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_win.json +2 -3
- data/vendor/depot_tools/recipes/recipe_modules/infra_paths/path_config.py +1 -2
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/__init__.py +35 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/api.py +116 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/linux.json +22 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/mac.json +82 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/win.json +22 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.py +23 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/__init__.py +1 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/api.py +2 -7
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.expected/basic.json +7 -6
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/__init__.py +1 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/api.py +117 -8
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/basic_tags.json +4 -5
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/set_failure_hash_with_no_steps.json +7 -4
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch.json +98 -7
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch_and_target_ref.json +147 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_git_patch.json +8 -5
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_git_patch_luci.json +8 -5
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch.json +9 -6
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch_new.json +9 -6
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.py +27 -2
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/test_api.py +14 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/__init__.py +25 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/api.py +137 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/linux.json +22 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/mac.json +22 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/win.json +107 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.py +26 -0
- data/vendor/depot_tools/recipes/recipes.py +37 -27
- data/vendor/depot_tools/recipes/recipes/fetch_end_to_end_test.expected/basic.json +7 -10
- data/vendor/depot_tools/repo +34 -8
- data/vendor/depot_tools/roll_dep.py +52 -49
- data/vendor/depot_tools/scm.py +38 -23
- data/vendor/depot_tools/setup_color.py +4 -2
- data/vendor/depot_tools/split_cl.py +32 -4
- data/vendor/depot_tools/subprocess2.py +22 -4
- data/vendor/depot_tools/third_party/httplib2/README.chromium +2 -2
- data/vendor/depot_tools/third_party/httplib2/__init__.py +242 -158
- data/vendor/depot_tools/third_party/httplib2/cacerts.txt +57 -44
- data/vendor/depot_tools/third_party/httplib2/socks.py +15 -5
- data/vendor/depot_tools/third_party/logilab/README.chromium +2 -4
- data/vendor/depot_tools/third_party/logilab/astroid/README.chromium +2 -1
- data/vendor/depot_tools/third_party/logilab/astroid/__init__.py +10 -5
- data/vendor/depot_tools/third_party/logilab/astroid/__pkginfo__.py +5 -5
- data/vendor/depot_tools/third_party/logilab/astroid/arguments.py +233 -0
- data/vendor/depot_tools/third_party/logilab/astroid/as_string.py +82 -33
- data/vendor/depot_tools/third_party/logilab/astroid/bases.py +137 -153
- data/vendor/depot_tools/third_party/logilab/astroid/brain/{builtin_inference.py → brain_builtin_inference.py} +117 -26
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_dateutil.py +15 -0
- data/vendor/depot_tools/third_party/logilab/astroid/brain/{py2gi.py → brain_gi.py} +48 -8
- data/vendor/depot_tools/third_party/logilab/astroid/brain/{py2mechanize.py → brain_mechanize.py} +0 -0
- data/vendor/depot_tools/third_party/logilab/astroid/brain/{pynose.py → brain_nose.py} +4 -1
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_numpy.py +62 -0
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_pytest.py +76 -0
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_qt.py +44 -0
- data/vendor/depot_tools/third_party/logilab/astroid/brain/{pysix_moves.py → brain_six.py} +28 -1
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_ssl.py +65 -0
- data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_stdlib.py +473 -0
- data/vendor/depot_tools/third_party/logilab/astroid/builder.py +104 -81
- data/vendor/depot_tools/third_party/logilab/astroid/context.py +81 -0
- data/vendor/depot_tools/third_party/logilab/astroid/decorators.py +75 -0
- data/vendor/depot_tools/third_party/logilab/astroid/exceptions.py +20 -0
- data/vendor/depot_tools/third_party/logilab/astroid/inference.py +137 -183
- data/vendor/depot_tools/third_party/logilab/astroid/manager.py +45 -169
- data/vendor/depot_tools/third_party/logilab/astroid/mixins.py +37 -14
- data/vendor/depot_tools/third_party/logilab/astroid/modutils.py +112 -41
- data/vendor/depot_tools/third_party/logilab/astroid/node_classes.py +243 -156
- data/vendor/depot_tools/third_party/logilab/astroid/nodes.py +35 -22
- data/vendor/depot_tools/third_party/logilab/astroid/objects.py +186 -0
- data/vendor/depot_tools/third_party/logilab/astroid/protocols.py +157 -102
- data/vendor/depot_tools/third_party/logilab/astroid/raw_building.py +32 -8
- data/vendor/depot_tools/third_party/logilab/astroid/rebuilder.py +372 -309
- data/vendor/depot_tools/third_party/logilab/astroid/scoped_nodes.py +652 -420
- data/vendor/depot_tools/third_party/logilab/astroid/test_utils.py +4 -21
- data/vendor/depot_tools/third_party/logilab/astroid/transforms.py +96 -0
- data/vendor/depot_tools/third_party/logilab/astroid/util.py +89 -0
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/LICENSE +19 -0
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/README.chromium +11 -0
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/__init__.py +20 -0
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/cext.c +1421 -0
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/compat.py +9 -0
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/simple.py +246 -0
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/slots.py +414 -0
- data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/utils.py +13 -0
- data/vendor/depot_tools/third_party/logilab/wrapt/LICENSE +24 -0
- data/vendor/depot_tools/third_party/logilab/wrapt/README.chromium +11 -0
- data/vendor/depot_tools/third_party/logilab/wrapt/__init__.py +19 -0
- data/vendor/depot_tools/third_party/logilab/wrapt/_wrappers.c +2729 -0
- data/vendor/depot_tools/third_party/logilab/wrapt/arguments.py +96 -0
- data/vendor/depot_tools/third_party/logilab/wrapt/decorators.py +512 -0
- data/vendor/depot_tools/third_party/logilab/wrapt/importer.py +228 -0
- data/vendor/depot_tools/third_party/logilab/wrapt/wrappers.py +901 -0
- data/vendor/depot_tools/third_party/pylint/README.chromium +2 -25
- data/vendor/depot_tools/third_party/pylint/__pkginfo__.py +13 -3
- data/vendor/depot_tools/third_party/pylint/checkers/__init__.py +1 -2
- data/vendor/depot_tools/third_party/pylint/checkers/async.py +82 -0
- data/vendor/depot_tools/third_party/pylint/checkers/base.py +893 -119
- data/vendor/depot_tools/third_party/pylint/checkers/classes.py +342 -204
- data/vendor/depot_tools/third_party/pylint/checkers/design_analysis.py +51 -34
- data/vendor/depot_tools/third_party/pylint/checkers/exceptions.py +84 -47
- data/vendor/depot_tools/third_party/pylint/checkers/format.py +55 -30
- data/vendor/depot_tools/third_party/pylint/checkers/imports.py +314 -73
- data/vendor/depot_tools/third_party/pylint/checkers/logging.py +10 -8
- data/vendor/depot_tools/third_party/pylint/checkers/misc.py +2 -1
- data/vendor/depot_tools/third_party/pylint/checkers/newstyle.py +45 -48
- data/vendor/depot_tools/third_party/pylint/checkers/python3.py +31 -21
- data/vendor/depot_tools/third_party/pylint/checkers/raw_metrics.py +3 -3
- data/vendor/depot_tools/third_party/pylint/checkers/similar.py +4 -5
- data/vendor/depot_tools/third_party/pylint/checkers/spelling.py +24 -10
- data/vendor/depot_tools/third_party/pylint/checkers/stdlib.py +120 -56
- data/vendor/depot_tools/third_party/pylint/checkers/strings.py +38 -35
- data/vendor/depot_tools/third_party/pylint/checkers/typecheck.py +485 -138
- data/vendor/depot_tools/third_party/pylint/checkers/utils.py +319 -142
- data/vendor/depot_tools/third_party/pylint/checkers/variables.py +329 -207
- data/vendor/depot_tools/third_party/pylint/config.py +739 -76
- data/vendor/depot_tools/third_party/pylint/epylint.py +9 -5
- data/vendor/depot_tools/third_party/pylint/extensions/__init__.py +0 -0
- data/vendor/depot_tools/third_party/pylint/extensions/check_docs.py +311 -0
- data/vendor/depot_tools/third_party/pylint/extensions/check_elif.py +62 -0
- data/vendor/depot_tools/third_party/{logilab/common → pylint}/graph.py +30 -133
- data/vendor/depot_tools/third_party/pylint/gui.py +2 -2
- data/vendor/depot_tools/third_party/pylint/interfaces.py +21 -3
- data/vendor/depot_tools/third_party/pylint/lint.py +123 -140
- data/vendor/depot_tools/third_party/pylint/pyreverse/diadefslib.py +10 -13
- data/vendor/depot_tools/third_party/pylint/pyreverse/diagrams.py +15 -4
- data/vendor/depot_tools/third_party/pylint/pyreverse/inspector.py +372 -0
- data/vendor/depot_tools/third_party/pylint/pyreverse/main.py +30 -7
- data/vendor/depot_tools/third_party/pylint/pyreverse/utils.py +80 -2
- data/vendor/depot_tools/third_party/{logilab/common → pylint/pyreverse}/vcgutils.py +19 -37
- data/vendor/depot_tools/third_party/pylint/pyreverse/writer.py +3 -4
- data/vendor/depot_tools/third_party/pylint/reporters/__init__.py +34 -18
- data/vendor/depot_tools/third_party/pylint/reporters/guireporter.py +1 -1
- data/vendor/depot_tools/third_party/pylint/reporters/html.py +10 -3
- data/vendor/depot_tools/third_party/pylint/reporters/json.py +10 -4
- data/vendor/depot_tools/third_party/pylint/reporters/text.py +94 -3
- data/vendor/depot_tools/third_party/pylint/reporters/ureports/__init__.py +106 -0
- data/vendor/depot_tools/third_party/{logilab/common → pylint/reporters}/ureports/html_writer.py +17 -57
- data/vendor/depot_tools/third_party/{logilab/common → pylint/reporters}/ureports/nodes.py +52 -74
- data/vendor/depot_tools/third_party/{logilab/common → pylint/reporters}/ureports/text_writer.py +14 -60
- data/vendor/depot_tools/third_party/pylint/testutils.py +22 -20
- data/vendor/depot_tools/third_party/pylint/utils.py +268 -44
- data/vendor/depot_tools/third_party/repo/progress.py +42 -0
- data/vendor/depot_tools/update_depot_tools +1 -1
- data/vendor/depot_tools/upload_metrics.py +25 -0
- data/vendor/depot_tools/win_toolchain/get_toolchain_if_necessary.py +45 -15
- data/vendor/depot_tools/win_toolchain/package_from_installed.py +71 -24
- data/vendor/depot_tools/yapf +1 -1
- data/vendor/depot_tools/yapf.bat +1 -1
- metadata +92 -77
- data/vendor/depot_tools/git-crsync +0 -3
- data/vendor/depot_tools/infra/config/cq.cfg +0 -32
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/apply_gerrit_ref.json +0 -29
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/apply_gerrit_ref_custom.json +0 -29
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/buildbot.json +0 -105
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/shallow.json +0 -195
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle_deprecated.json +0 -248
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8.json +0 -248
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_manifest_name_no_patch.json +0 -105
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/apply_gerrit.py +0 -33
- data/vendor/depot_tools/third_party/logilab/astroid/brain/py2pytest.py +0 -31
- data/vendor/depot_tools/third_party/logilab/astroid/brain/py2qt4.py +0 -22
- data/vendor/depot_tools/third_party/logilab/astroid/brain/py2stdlib.py +0 -334
- data/vendor/depot_tools/third_party/logilab/astroid/inspector.py +0 -273
- data/vendor/depot_tools/third_party/logilab/astroid/utils.py +0 -239
- data/vendor/depot_tools/third_party/logilab/common/LICENSE.txt +0 -339
- data/vendor/depot_tools/third_party/logilab/common/README.chromium +0 -11
- data/vendor/depot_tools/third_party/logilab/common/__init__.py +0 -175
- data/vendor/depot_tools/third_party/logilab/common/__pkginfo__.py +0 -57
- data/vendor/depot_tools/third_party/logilab/common/cache.py +0 -114
- data/vendor/depot_tools/third_party/logilab/common/changelog.py +0 -238
- data/vendor/depot_tools/third_party/logilab/common/clcommands.py +0 -334
- data/vendor/depot_tools/third_party/logilab/common/cli.py +0 -211
- data/vendor/depot_tools/third_party/logilab/common/compat.py +0 -78
- data/vendor/depot_tools/third_party/logilab/common/configuration.py +0 -1105
- data/vendor/depot_tools/third_party/logilab/common/contexts.py +0 -5
- data/vendor/depot_tools/third_party/logilab/common/corbautils.py +0 -117
- data/vendor/depot_tools/third_party/logilab/common/daemon.py +0 -101
- data/vendor/depot_tools/third_party/logilab/common/date.py +0 -335
- data/vendor/depot_tools/third_party/logilab/common/dbf.py +0 -231
- data/vendor/depot_tools/third_party/logilab/common/debugger.py +0 -214
- data/vendor/depot_tools/third_party/logilab/common/decorators.py +0 -281
- data/vendor/depot_tools/third_party/logilab/common/deprecation.py +0 -189
- data/vendor/depot_tools/third_party/logilab/common/fileutils.py +0 -404
- data/vendor/depot_tools/third_party/logilab/common/interface.py +0 -71
- data/vendor/depot_tools/third_party/logilab/common/logging_ext.py +0 -195
- data/vendor/depot_tools/third_party/logilab/common/modutils.py +0 -702
- data/vendor/depot_tools/third_party/logilab/common/optik_ext.py +0 -392
- data/vendor/depot_tools/third_party/logilab/common/optparser.py +0 -92
- data/vendor/depot_tools/third_party/logilab/common/proc.py +0 -277
- data/vendor/depot_tools/third_party/logilab/common/pyro_ext.py +0 -180
- data/vendor/depot_tools/third_party/logilab/common/pytest.py +0 -1199
- data/vendor/depot_tools/third_party/logilab/common/registry.py +0 -1119
- data/vendor/depot_tools/third_party/logilab/common/shellutils.py +0 -462
- data/vendor/depot_tools/third_party/logilab/common/sphinx_ext.py +0 -87
- data/vendor/depot_tools/third_party/logilab/common/sphinxutils.py +0 -122
- data/vendor/depot_tools/third_party/logilab/common/table.py +0 -929
- data/vendor/depot_tools/third_party/logilab/common/tasksqueue.py +0 -101
- data/vendor/depot_tools/third_party/logilab/common/testlib.py +0 -1392
- data/vendor/depot_tools/third_party/logilab/common/textutils.py +0 -537
- data/vendor/depot_tools/third_party/logilab/common/tree.py +0 -369
- data/vendor/depot_tools/third_party/logilab/common/umessage.py +0 -194
- data/vendor/depot_tools/third_party/logilab/common/ureports/__init__.py +0 -172
- data/vendor/depot_tools/third_party/logilab/common/ureports/docbook_writer.py +0 -140
- data/vendor/depot_tools/third_party/logilab/common/urllib2ext.py +0 -89
- data/vendor/depot_tools/third_party/logilab/common/visitor.py +0 -109
- data/vendor/depot_tools/third_party/logilab/common/xmlrpcutils.py +0 -131
- 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
|
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.
|
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
|
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
|
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.
|
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.
|
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.
|
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)
|
@@ -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
|
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
|
98
|
+
def visit_call(self, node):
|
99
99
|
"""check property usage"""
|
100
100
|
parent = node.parent.frame()
|
101
|
-
if (isinstance(parent, astroid.
|
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
|
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.
|
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.
|
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.
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
if
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
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
|
-
|
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.
|
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
|
78
|
+
if _is_builtin(parent_scope) and parent.func.name in _ACCEPTS_ITERATOR:
|
78
79
|
return True
|
79
|
-
elif isinstance(parent.func, astroid.
|
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
|
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
|
-
|
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.
|
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
|
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
|
-
|
439
|
-
if (isinstance(node.func, astroid.
|
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
|
-
|
458
|
+
kwargs = node.keywords
|
449
459
|
|
450
460
|
elif (isinstance(node.func, astroid.Name)
|
451
|
-
|
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
|
-
|
468
|
+
kwargs = node.keywords
|
459
469
|
|
460
|
-
for
|
461
|
-
if
|
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
|
475
|
+
def visit_call(self, node):
|
466
476
|
self._check_cmp_argument(node)
|
467
477
|
|
468
|
-
if isinstance(node.func, astroid.
|
469
|
-
if any([node.args, node.
|
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
|
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
|
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
|
-
|
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(
|
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
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
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
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
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
|
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
|
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()):
|