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
@@ -3,15 +3,29 @@
|
|
3
3
|
# found in the LICENSE file.
|
4
4
|
|
5
5
|
import ast
|
6
|
-
import cStringIO
|
7
6
|
import collections
|
8
7
|
import logging
|
8
|
+
import sys
|
9
9
|
import tokenize
|
10
10
|
|
11
11
|
import gclient_utils
|
12
12
|
|
13
13
|
from third_party import schema
|
14
14
|
|
15
|
+
if sys.version_info.major == 2:
|
16
|
+
# We use cStringIO.StringIO because it is equivalent to Py3's io.StringIO.
|
17
|
+
from cStringIO import StringIO
|
18
|
+
else:
|
19
|
+
from io import StringIO
|
20
|
+
|
21
|
+
|
22
|
+
# TODO(crbug.com/953884): Remove this when python3 migration is done.
|
23
|
+
try:
|
24
|
+
basestring
|
25
|
+
except NameError:
|
26
|
+
# pylint: disable=redefined-builtin
|
27
|
+
basestring = str
|
28
|
+
|
15
29
|
|
16
30
|
class _NodeDict(collections.MutableMapping):
|
17
31
|
"""Dict-like type that also stores information on AST nodes and tokens."""
|
@@ -20,7 +34,10 @@ class _NodeDict(collections.MutableMapping):
|
|
20
34
|
self.tokens = tokens
|
21
35
|
|
22
36
|
def __str__(self):
|
23
|
-
return str({k: v[0] for k, v in self.data.
|
37
|
+
return str({k: v[0] for k, v in self.data.items()})
|
38
|
+
|
39
|
+
def __repr__(self):
|
40
|
+
return self.__str__()
|
24
41
|
|
25
42
|
def __getitem__(self, key):
|
26
43
|
return self.data[key][0]
|
@@ -69,141 +86,146 @@ def _NodeDictSchema(dict_schema):
|
|
69
86
|
|
70
87
|
# See https://github.com/keleshev/schema for docs how to configure schema.
|
71
88
|
_GCLIENT_DEPS_SCHEMA = _NodeDictSchema({
|
72
|
-
schema.Optional(basestring):
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
89
|
+
schema.Optional(basestring):
|
90
|
+
schema.Or(
|
91
|
+
None,
|
92
|
+
basestring,
|
93
|
+
_NodeDictSchema({
|
94
|
+
# Repo and revision to check out under the path
|
95
|
+
# (same as if no dict was used).
|
96
|
+
'url': schema.Or(None, basestring),
|
97
|
+
|
98
|
+
# Optional condition string. The dep will only be processed
|
99
|
+
# if the condition evaluates to True.
|
100
|
+
schema.Optional('condition'): basestring,
|
101
|
+
schema.Optional('dep_type', default='git'): basestring,
|
102
|
+
}),
|
103
|
+
# CIPD package.
|
104
|
+
_NodeDictSchema({
|
105
|
+
'packages': [
|
106
|
+
_NodeDictSchema({
|
107
|
+
'package': basestring,
|
108
|
+
'version': basestring,
|
109
|
+
})
|
110
|
+
],
|
111
|
+
schema.Optional('condition'): basestring,
|
112
|
+
schema.Optional('dep_type', default='cipd'): basestring,
|
113
|
+
}),
|
114
|
+
),
|
115
|
+
})
|
116
|
+
|
117
|
+
_GCLIENT_HOOKS_SCHEMA = [
|
118
|
+
_NodeDictSchema({
|
119
|
+
# Hook action: list of command-line arguments to invoke.
|
120
|
+
'action': [basestring],
|
121
|
+
|
122
|
+
# Name of the hook. Doesn't affect operation.
|
123
|
+
schema.Optional('name'): basestring,
|
124
|
+
|
125
|
+
# Hook pattern (regex). Originally intended to limit some hooks to run
|
126
|
+
# only when files matching the pattern have changed. In practice, with
|
127
|
+
# git, gclient runs all the hooks regardless of this field.
|
128
|
+
schema.Optional('pattern'): basestring,
|
129
|
+
|
130
|
+
# Working directory where to execute the hook.
|
131
|
+
schema.Optional('cwd'): basestring,
|
132
|
+
|
133
|
+
# Optional condition string. The hook will only be run
|
134
|
+
# if the condition evaluates to True.
|
135
|
+
schema.Optional('condition'): basestring,
|
136
|
+
})
|
137
|
+
]
|
138
|
+
|
139
|
+
_GCLIENT_SCHEMA = schema.Schema(
|
140
|
+
_NodeDictSchema({
|
141
|
+
# List of host names from which dependencies are allowed (whitelist).
|
142
|
+
# NOTE: when not present, all hosts are allowed.
|
143
|
+
# NOTE: scoped to current DEPS file, not recursive.
|
144
|
+
schema.Optional('allowed_hosts'): [schema.Optional(basestring)],
|
145
|
+
|
146
|
+
# Mapping from paths to repo and revision to check out under that path.
|
147
|
+
# Applying this mapping to the on-disk checkout is the main purpose
|
148
|
+
# of gclient, and also why the config file is called DEPS.
|
149
|
+
#
|
150
|
+
# The following functions are allowed:
|
151
|
+
#
|
152
|
+
# Var(): allows variable substitution (either from 'vars' dict below,
|
153
|
+
# or command-line override)
|
154
|
+
schema.Optional('deps'): _GCLIENT_DEPS_SCHEMA,
|
155
|
+
|
156
|
+
# Similar to 'deps' (see above) - also keyed by OS (e.g. 'linux').
|
157
|
+
# Also see 'target_os'.
|
158
|
+
schema.Optional('deps_os'): _NodeDictSchema({
|
159
|
+
schema.Optional(basestring): _GCLIENT_DEPS_SCHEMA,
|
85
160
|
}),
|
86
|
-
# CIPD package.
|
87
|
-
_NodeDictSchema({
|
88
|
-
'packages': [
|
89
|
-
_NodeDictSchema({
|
90
|
-
'package': basestring,
|
91
161
|
|
92
|
-
|
93
|
-
|
94
|
-
|
162
|
+
# Dependency to get gclient_gn_args* settings from. This allows these
|
163
|
+
# values to be set in a recursedeps file, rather than requiring that
|
164
|
+
# they exist in the top-level solution.
|
165
|
+
schema.Optional('gclient_gn_args_from'): basestring,
|
166
|
+
|
167
|
+
# Path to GN args file to write selected variables.
|
168
|
+
schema.Optional('gclient_gn_args_file'): basestring,
|
95
169
|
|
96
|
-
|
170
|
+
# Subset of variables to write to the GN args file (see above).
|
171
|
+
schema.Optional('gclient_gn_args'): [schema.Optional(basestring)],
|
97
172
|
|
98
|
-
|
173
|
+
# Hooks executed after gclient sync (unless suppressed), or explicitly
|
174
|
+
# on gclient hooks. See _GCLIENT_HOOKS_SCHEMA for details.
|
175
|
+
# Also see 'pre_deps_hooks'.
|
176
|
+
schema.Optional('hooks'): _GCLIENT_HOOKS_SCHEMA,
|
177
|
+
|
178
|
+
# Similar to 'hooks', also keyed by OS.
|
179
|
+
schema.Optional('hooks_os'): _NodeDictSchema({
|
180
|
+
schema.Optional(basestring): _GCLIENT_HOOKS_SCHEMA
|
99
181
|
}),
|
100
|
-
),
|
101
|
-
})
|
102
182
|
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
# Hook pattern (regex). Originally intended to limit some hooks to run
|
111
|
-
# only when files matching the pattern have changed. In practice, with git,
|
112
|
-
# gclient runs all the hooks regardless of this field.
|
113
|
-
schema.Optional('pattern'): basestring,
|
114
|
-
|
115
|
-
# Working directory where to execute the hook.
|
116
|
-
schema.Optional('cwd'): basestring,
|
117
|
-
|
118
|
-
# Optional condition string. The hook will only be run
|
119
|
-
# if the condition evaluates to True.
|
120
|
-
schema.Optional('condition'): basestring,
|
121
|
-
})]
|
122
|
-
|
123
|
-
_GCLIENT_SCHEMA = schema.Schema(_NodeDictSchema({
|
124
|
-
# List of host names from which dependencies are allowed (whitelist).
|
125
|
-
# NOTE: when not present, all hosts are allowed.
|
126
|
-
# NOTE: scoped to current DEPS file, not recursive.
|
127
|
-
schema.Optional('allowed_hosts'): [schema.Optional(basestring)],
|
128
|
-
|
129
|
-
# Mapping from paths to repo and revision to check out under that path.
|
130
|
-
# Applying this mapping to the on-disk checkout is the main purpose
|
131
|
-
# of gclient, and also why the config file is called DEPS.
|
132
|
-
#
|
133
|
-
# The following functions are allowed:
|
134
|
-
#
|
135
|
-
# Var(): allows variable substitution (either from 'vars' dict below,
|
136
|
-
# or command-line override)
|
137
|
-
schema.Optional('deps'): _GCLIENT_DEPS_SCHEMA,
|
138
|
-
|
139
|
-
# Similar to 'deps' (see above) - also keyed by OS (e.g. 'linux').
|
140
|
-
# Also see 'target_os'.
|
141
|
-
schema.Optional('deps_os'): _NodeDictSchema({
|
142
|
-
schema.Optional(basestring): _GCLIENT_DEPS_SCHEMA,
|
143
|
-
}),
|
144
|
-
|
145
|
-
# Dependency to get gclient_gn_args* settings from. This allows these values
|
146
|
-
# to be set in a recursedeps file, rather than requiring that they exist in
|
147
|
-
# the top-level solution.
|
148
|
-
schema.Optional('gclient_gn_args_from'): basestring,
|
149
|
-
|
150
|
-
# Path to GN args file to write selected variables.
|
151
|
-
schema.Optional('gclient_gn_args_file'): basestring,
|
152
|
-
|
153
|
-
# Subset of variables to write to the GN args file (see above).
|
154
|
-
schema.Optional('gclient_gn_args'): [schema.Optional(basestring)],
|
155
|
-
|
156
|
-
# Hooks executed after gclient sync (unless suppressed), or explicitly
|
157
|
-
# on gclient hooks. See _GCLIENT_HOOKS_SCHEMA for details.
|
158
|
-
# Also see 'pre_deps_hooks'.
|
159
|
-
schema.Optional('hooks'): _GCLIENT_HOOKS_SCHEMA,
|
160
|
-
|
161
|
-
# Similar to 'hooks', also keyed by OS.
|
162
|
-
schema.Optional('hooks_os'): _NodeDictSchema({
|
163
|
-
schema.Optional(basestring): _GCLIENT_HOOKS_SCHEMA
|
164
|
-
}),
|
165
|
-
|
166
|
-
# Rules which #includes are allowed in the directory.
|
167
|
-
# Also see 'skip_child_includes' and 'specific_include_rules'.
|
168
|
-
schema.Optional('include_rules'): [schema.Optional(basestring)],
|
169
|
-
|
170
|
-
# Hooks executed before processing DEPS. See 'hooks' for more details.
|
171
|
-
schema.Optional('pre_deps_hooks'): _GCLIENT_HOOKS_SCHEMA,
|
172
|
-
|
173
|
-
# Recursion limit for nested DEPS.
|
174
|
-
schema.Optional('recursion'): int,
|
175
|
-
|
176
|
-
# Whitelists deps for which recursion should be enabled.
|
177
|
-
schema.Optional('recursedeps'): [
|
178
|
-
schema.Optional(schema.Or(
|
179
|
-
basestring,
|
180
|
-
(basestring, basestring),
|
181
|
-
[basestring, basestring]
|
182
|
-
)),
|
183
|
-
],
|
183
|
+
# Rules which #includes are allowed in the directory.
|
184
|
+
# Also see 'skip_child_includes' and 'specific_include_rules'.
|
185
|
+
schema.Optional('include_rules'): [schema.Optional(basestring)],
|
186
|
+
|
187
|
+
# Hooks executed before processing DEPS. See 'hooks' for more details.
|
188
|
+
schema.Optional('pre_deps_hooks'): _GCLIENT_HOOKS_SCHEMA,
|
184
189
|
|
185
|
-
|
186
|
-
|
190
|
+
# Recursion limit for nested DEPS.
|
191
|
+
schema.Optional('recursion'): int,
|
187
192
|
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
+
# Whitelists deps for which recursion should be enabled.
|
194
|
+
schema.Optional('recursedeps'): [
|
195
|
+
schema.Optional(schema.Or(
|
196
|
+
basestring,
|
197
|
+
(basestring, basestring),
|
198
|
+
[basestring, basestring]
|
199
|
+
)),
|
200
|
+
],
|
193
201
|
|
194
|
-
|
195
|
-
|
196
|
-
schema.Optional('target_os'): [schema.Optional(basestring)],
|
202
|
+
# Blacklists directories for checking 'include_rules'.
|
203
|
+
schema.Optional('skip_child_includes'): [schema.Optional(basestring)],
|
197
204
|
|
198
|
-
|
199
|
-
|
200
|
-
|
205
|
+
# Mapping from paths to include rules specific for that path.
|
206
|
+
# See 'include_rules' for more details.
|
207
|
+
schema.Optional('specific_include_rules'): _NodeDictSchema({
|
208
|
+
schema.Optional(basestring): [basestring]
|
209
|
+
}),
|
201
210
|
|
202
|
-
|
203
|
-
|
204
|
-
schema.Optional(
|
205
|
-
|
206
|
-
|
211
|
+
# List of additional OS names to consider when selecting dependencies
|
212
|
+
# from deps_os.
|
213
|
+
schema.Optional('target_os'): [schema.Optional(basestring)],
|
214
|
+
|
215
|
+
# For recursed-upon sub-dependencies, check out their own dependencies
|
216
|
+
# relative to the parent's path, rather than relative to the .gclient
|
217
|
+
# file.
|
218
|
+
schema.Optional('use_relative_paths'): bool,
|
219
|
+
|
220
|
+
# For recursed-upon sub-dependencies, run their hooks relative to the
|
221
|
+
# parent's path instead of relative to the .gclient file.
|
222
|
+
schema.Optional('use_relative_hooks'): bool,
|
223
|
+
|
224
|
+
# Variables that can be referenced using Var() - see 'deps'.
|
225
|
+
schema.Optional('vars'): _NodeDictSchema({
|
226
|
+
schema.Optional(basestring): schema.Or(basestring, bool),
|
227
|
+
}),
|
228
|
+
}))
|
207
229
|
|
208
230
|
|
209
231
|
def _gclient_eval(node_or_string, filename='<unknown>', vars_dict=None):
|
@@ -239,12 +261,16 @@ def _gclient_eval(node_or_string, filename='<unknown>', vars_dict=None):
|
|
239
261
|
'invalid name %r (file %r, line %s)' % (
|
240
262
|
node.id, filename, getattr(node, 'lineno', '<unknown>')))
|
241
263
|
return _allowed_names[node.id]
|
264
|
+
elif not sys.version_info[:2] < (3, 4) and isinstance(
|
265
|
+
node, ast.NameConstant): # Since Python 3.4
|
266
|
+
return node.value
|
242
267
|
elif isinstance(node, ast.Call):
|
243
268
|
if not isinstance(node.func, ast.Name) or node.func.id != 'Var':
|
244
269
|
raise ValueError(
|
245
270
|
'Var is the only allowed function (file %r, line %s)' % (
|
246
271
|
filename, getattr(node, 'lineno', '<unknown>')))
|
247
|
-
if node.keywords or node
|
272
|
+
if node.keywords or getattr(node, 'starargs', None) or getattr(
|
273
|
+
node, 'kwargs', None) or len(node.args) != 1:
|
248
274
|
raise ValueError(
|
249
275
|
'Var takes exactly one argument (file %r, line %s)' % (
|
250
276
|
filename, getattr(node, 'lineno', '<unknown>')))
|
@@ -273,7 +299,7 @@ def _gclient_eval(node_or_string, filename='<unknown>', vars_dict=None):
|
|
273
299
|
return _convert(node_or_string)
|
274
300
|
|
275
301
|
|
276
|
-
def Exec(content, filename='<unknown>', vars_override=None):
|
302
|
+
def Exec(content, filename='<unknown>', vars_override=None, builtin_vars=None):
|
277
303
|
"""Safely execs a set of assignments."""
|
278
304
|
def _validate_statement(node, local_scope):
|
279
305
|
if not isinstance(node, ast.Assign):
|
@@ -314,11 +340,19 @@ def Exec(content, filename='<unknown>', vars_override=None):
|
|
314
340
|
_validate_statement(statement, statements)
|
315
341
|
statements[statement.targets[0].id] = statement.value
|
316
342
|
|
343
|
+
# The tokenized representation needs to end with a newline token, otherwise
|
344
|
+
# untokenization will trigger an assert later on.
|
345
|
+
# In Python 2.7 on Windows we need to ensure the input ends with a newline
|
346
|
+
# for a newline token to be generated.
|
347
|
+
# In other cases a newline token is always generated during tokenization so
|
348
|
+
# this has no effect.
|
349
|
+
# TODO: Remove this workaround after migrating to Python 3.
|
350
|
+
content += '\n'
|
317
351
|
tokens = {
|
318
|
-
token[2]: list(token)
|
319
|
-
|
320
|
-
cStringIO.StringIO(content).readline)
|
352
|
+
token[2]: list(token) for token in tokenize.generate_tokens(
|
353
|
+
StringIO(content).readline)
|
321
354
|
}
|
355
|
+
|
322
356
|
local_scope = _NodeDict({}, tokens)
|
323
357
|
|
324
358
|
# Process vars first, so we can expand variables in the rest of the DEPS file.
|
@@ -330,20 +364,22 @@ def Exec(content, filename='<unknown>', vars_override=None):
|
|
330
364
|
# Update the parsed vars with the overrides, but only if they are already
|
331
365
|
# present (overrides do not introduce new variables).
|
332
366
|
vars_dict.update(value)
|
333
|
-
if vars_override:
|
334
|
-
vars_dict.update({
|
335
|
-
k: v
|
336
|
-
for k, v in vars_override.iteritems()
|
337
|
-
if k in vars_dict})
|
338
367
|
|
339
|
-
|
368
|
+
if builtin_vars:
|
369
|
+
vars_dict.update(builtin_vars)
|
370
|
+
|
371
|
+
if vars_override:
|
372
|
+
vars_dict.update({k: v for k, v in vars_override.items() if k in vars_dict})
|
373
|
+
|
374
|
+
for name, node in statements.items():
|
340
375
|
value = _gclient_eval(node, filename, vars_dict)
|
341
376
|
local_scope.SetNode(name, value, node)
|
342
377
|
|
343
378
|
return _GCLIENT_SCHEMA.validate(local_scope)
|
344
379
|
|
345
380
|
|
346
|
-
def ExecLegacy(content, filename='<unknown>', vars_override=None
|
381
|
+
def ExecLegacy(content, filename='<unknown>', vars_override=None,
|
382
|
+
builtin_vars=None):
|
347
383
|
"""Executes a DEPS file |content| using exec."""
|
348
384
|
local_scope = {}
|
349
385
|
global_scope = {'Var': lambda var_name: '{%s}' % var_name}
|
@@ -354,26 +390,21 @@ def ExecLegacy(content, filename='<unknown>', vars_override=None):
|
|
354
390
|
# as "exec a in b, c" (See https://bugs.python.org/issue21591).
|
355
391
|
eval(compile(content, filename, 'exec'), global_scope, local_scope)
|
356
392
|
|
357
|
-
if 'vars' not in local_scope:
|
358
|
-
return local_scope
|
359
|
-
|
360
393
|
vars_dict = {}
|
361
|
-
vars_dict.update(local_scope
|
394
|
+
vars_dict.update(local_scope.get('vars', {}))
|
395
|
+
if builtin_vars:
|
396
|
+
vars_dict.update(builtin_vars)
|
362
397
|
if vars_override:
|
363
|
-
vars_dict.update({
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
})
|
398
|
+
vars_dict.update({k: v for k, v in vars_override.items() if k in vars_dict})
|
399
|
+
|
400
|
+
if not vars_dict:
|
401
|
+
return local_scope
|
368
402
|
|
369
403
|
def _DeepFormat(node):
|
370
404
|
if isinstance(node, basestring):
|
371
405
|
return node.format(**vars_dict)
|
372
406
|
elif isinstance(node, dict):
|
373
|
-
return {
|
374
|
-
k.format(**vars_dict): _DeepFormat(v)
|
375
|
-
for k, v in node.iteritems()
|
376
|
-
}
|
407
|
+
return {k.format(**vars_dict): _DeepFormat(v) for k, v in node.items()}
|
377
408
|
elif isinstance(node, list):
|
378
409
|
return [_DeepFormat(elem) for elem in node]
|
379
410
|
elif isinstance(node, tuple):
|
@@ -449,7 +480,8 @@ def UpdateCondition(info_dict, op, new_condition):
|
|
449
480
|
del info_dict['condition']
|
450
481
|
|
451
482
|
|
452
|
-
def Parse(content, validate_syntax, filename, vars_override=None
|
483
|
+
def Parse(content, validate_syntax, filename, vars_override=None,
|
484
|
+
builtin_vars=None):
|
453
485
|
"""Parses DEPS strings.
|
454
486
|
|
455
487
|
Executes the Python-like string stored in content, resulting in a Python
|
@@ -464,15 +496,17 @@ def Parse(content, validate_syntax, filename, vars_override=None):
|
|
464
496
|
of the content, e.g. '<string>', '<unknown>'.
|
465
497
|
vars_override: dict, optional. A dictionary with overrides for the variables
|
466
498
|
defined by the DEPS file.
|
499
|
+
builtin_vars: dict, optional. A dictionary with variables that are provided
|
500
|
+
by default.
|
467
501
|
|
468
502
|
Returns:
|
469
503
|
A Python dict with the parsed contents of the DEPS file, as specified by the
|
470
504
|
schema above.
|
471
505
|
"""
|
472
506
|
if validate_syntax:
|
473
|
-
result = Exec(content, filename, vars_override)
|
507
|
+
result = Exec(content, filename, vars_override, builtin_vars)
|
474
508
|
else:
|
475
|
-
result = ExecLegacy(content, filename, vars_override)
|
509
|
+
result = ExecLegacy(content, filename, vars_override, builtin_vars)
|
476
510
|
|
477
511
|
vars_dict = result.get('vars', {})
|
478
512
|
if 'deps' in result:
|
@@ -597,12 +631,18 @@ def EvaluateCondition(condition, variables, referenced_variables=None):
|
|
597
631
|
|
598
632
|
def RenderDEPSFile(gclient_dict):
|
599
633
|
contents = sorted(gclient_dict.tokens.values(), key=lambda token: token[2])
|
600
|
-
|
634
|
+
# The last token is a newline, which we ensure in Exec() for compatibility.
|
635
|
+
# However tests pass in inputs not ending with a newline and expect the same
|
636
|
+
# back, so for backwards compatibility need to remove that newline character.
|
637
|
+
# TODO: Fix tests to expect the newline
|
638
|
+
return tokenize.untokenize(contents)[:-1]
|
601
639
|
|
602
640
|
|
603
641
|
def _UpdateAstString(tokens, node, value):
|
604
642
|
position = node.lineno, node.col_offset
|
605
|
-
quote_char =
|
643
|
+
quote_char = ''
|
644
|
+
if isinstance(node, ast.Str):
|
645
|
+
quote_char = tokens[position][1][0]
|
606
646
|
tokens[position][1] = quote_char + value + quote_char
|
607
647
|
node.s = value
|
608
648
|
|
@@ -660,8 +700,7 @@ def AddVar(gclient_dict, var_name, value):
|
|
660
700
|
vars_node.values.insert(0, value_node)
|
661
701
|
|
662
702
|
# Update the tokens.
|
663
|
-
var_tokens = list(tokenize.generate_tokens(
|
664
|
-
cStringIO.StringIO(var_content).readline))
|
703
|
+
var_tokens = list(tokenize.generate_tokens(StringIO(var_content).readline))
|
665
704
|
var_tokens = {
|
666
705
|
token[2]: list(token)
|
667
706
|
# Ignore the tokens corresponding to braces and new lines.
|
@@ -696,6 +735,15 @@ def SetVar(gclient_dict, var_name, value):
|
|
696
735
|
gclient_dict['vars'].SetNode(var_name, value, node)
|
697
736
|
|
698
737
|
|
738
|
+
def _GetVarName(node):
|
739
|
+
if isinstance(node, ast.Call):
|
740
|
+
return node.args[0].s
|
741
|
+
elif node.s.endswith('}'):
|
742
|
+
last_brace = node.s.rfind('{')
|
743
|
+
return node.s[last_brace+1:-1]
|
744
|
+
return None
|
745
|
+
|
746
|
+
|
699
747
|
def SetCIPD(gclient_dict, dep_name, package_name, new_version):
|
700
748
|
if not isinstance(gclient_dict, _NodeDict) or gclient_dict.tokens is None:
|
701
749
|
raise ValueError(
|
@@ -725,20 +773,20 @@ def SetCIPD(gclient_dict, dep_name, package_name, new_version):
|
|
725
773
|
"The deps entry for %s:%s has no formatting information." %
|
726
774
|
(dep_name, package_name))
|
727
775
|
|
728
|
-
|
729
|
-
|
730
|
-
|
776
|
+
if not isinstance(node, ast.Call) and not isinstance(node, ast.Str):
|
777
|
+
raise ValueError(
|
778
|
+
"Unsupported dependency revision format. Please file a bug to the "
|
779
|
+
"Infra>SDK component in crbug.com")
|
731
780
|
|
781
|
+
var_name = _GetVarName(node)
|
782
|
+
if var_name is not None:
|
783
|
+
SetVar(gclient_dict, var_name, new_version)
|
784
|
+
else:
|
785
|
+
_UpdateAstString(tokens, node, new_version)
|
786
|
+
packages[0].SetNode('version', new_version, node)
|
732
787
|
|
733
|
-
def SetRevision(gclient_dict, dep_name, new_revision):
|
734
|
-
def _GetVarName(node):
|
735
|
-
if isinstance(node, ast.Call):
|
736
|
-
return node.args[0].s
|
737
|
-
elif node.s.endswith('}'):
|
738
|
-
last_brace = node.s.rfind('{')
|
739
|
-
return node.s[last_brace+1:-1]
|
740
|
-
return None
|
741
788
|
|
789
|
+
def SetRevision(gclient_dict, dep_name, new_revision):
|
742
790
|
def _UpdateRevision(dep_dict, dep_key, new_revision):
|
743
791
|
dep_node = dep_dict.GetNode(dep_key)
|
744
792
|
if dep_node is None:
|
@@ -751,7 +799,8 @@ def SetRevision(gclient_dict, dep_name, new_revision):
|
|
751
799
|
|
752
800
|
if not isinstance(node, ast.Call) and not isinstance(node, ast.Str):
|
753
801
|
raise ValueError(
|
754
|
-
"Unsupported dependency revision format. Please file a bug
|
802
|
+
"Unsupported dependency revision format. Please file a bug to the "
|
803
|
+
"Infra>SDK component in crbug.com")
|
755
804
|
|
756
805
|
var_name = _GetVarName(node)
|
757
806
|
if var_name is not None:
|
@@ -808,7 +857,7 @@ def GetCIPD(gclient_dict, dep_name, package_name):
|
|
808
857
|
"There must be exactly one package with the given name (%s), "
|
809
858
|
"%s were found." % (package_name, len(packages)))
|
810
859
|
|
811
|
-
return packages[0]['version']
|
860
|
+
return packages[0]['version']
|
812
861
|
|
813
862
|
|
814
863
|
def GetRevision(gclient_dict, dep_name):
|