libv8 7.3.492.27.1 → 8.4.255.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (718) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +11 -14
  4. data/CHANGELOG.md +10 -0
  5. data/README.md +10 -11
  6. data/Rakefile +30 -36
  7. data/ext/libv8/builder.rb +1 -1
  8. data/lib/libv8/version.rb +1 -1
  9. data/libv8.gemspec +1 -3
  10. data/vendor/depot_tools/{cipd.ps1 → .cipd_impl.ps1} +0 -0
  11. data/vendor/depot_tools/.gitattributes +1 -1
  12. data/vendor/depot_tools/.gitignore +7 -2
  13. data/vendor/depot_tools/.style.yapf +3 -1
  14. data/vendor/depot_tools/.vpython +55 -0
  15. data/vendor/depot_tools/.vpython3 +23 -0
  16. data/vendor/depot_tools/CROS_OWNERS +3 -1
  17. data/vendor/depot_tools/GOMA_OWNERS +9 -0
  18. data/vendor/depot_tools/LUCI_OWNERS +5 -0
  19. data/vendor/depot_tools/OWNERS +21 -6
  20. data/vendor/depot_tools/PRESUBMIT.py +35 -18
  21. data/vendor/depot_tools/README.git-cl.md +0 -14
  22. data/vendor/depot_tools/README.md +1 -1
  23. data/vendor/depot_tools/WATCHLISTS +2 -2
  24. data/vendor/depot_tools/auth.py +60 -772
  25. data/vendor/depot_tools/autoninja +12 -6
  26. data/vendor/depot_tools/autoninja.bat +14 -6
  27. data/vendor/depot_tools/autoninja.py +64 -27
  28. data/vendor/depot_tools/bb +1 -1
  29. data/vendor/depot_tools/bootstrap/{win/README.md → README.md} +28 -14
  30. data/vendor/depot_tools/bootstrap/{win/win_tools.py → bootstrap.py} +60 -43
  31. data/vendor/depot_tools/bootstrap/{win/git-bash.template.sh → git-bash.template.sh} +1 -1
  32. data/vendor/depot_tools/bootstrap/{win/git.template.bat → git.template.bat} +0 -0
  33. data/vendor/depot_tools/bootstrap/manifest.txt +27 -0
  34. data/vendor/depot_tools/bootstrap/manifest_bleeding_edge.txt +27 -0
  35. data/vendor/depot_tools/bootstrap/{win/profile.d.python.sh → profile.d.python.sh} +0 -0
  36. data/vendor/depot_tools/bootstrap/{win/python27.bleeding_edge.bat → python27.bat} +0 -0
  37. data/vendor/depot_tools/bootstrap/{win/python27.new.bat → python3.bat} +3 -3
  38. data/vendor/depot_tools/bootstrap/{win/win_tools.bat → win_tools.bat} +21 -16
  39. data/vendor/depot_tools/bootstrap_python3 +35 -0
  40. data/vendor/depot_tools/cbuildbot +1 -1
  41. data/vendor/depot_tools/chrome_set_ver +1 -1
  42. data/vendor/depot_tools/cipd +43 -39
  43. data/vendor/depot_tools/cipd.bat +2 -2
  44. data/vendor/depot_tools/cipd_client_version +1 -1
  45. data/vendor/depot_tools/cipd_client_version.digests +15 -14
  46. data/vendor/depot_tools/cipd_manifest.txt +31 -8
  47. data/vendor/depot_tools/cipd_manifest.versions +278 -158
  48. data/vendor/depot_tools/cit.py +9 -7
  49. data/vendor/depot_tools/clang_format.py +4 -1
  50. data/vendor/depot_tools/clang_format_merge_driver.py +10 -8
  51. data/vendor/depot_tools/compile_single_file.py +7 -2
  52. data/vendor/depot_tools/cpplint.py +51 -45
  53. data/vendor/depot_tools/cros +87 -0
  54. data/vendor/depot_tools/cros_sdk +1 -1
  55. data/vendor/depot_tools/crosjobs +13 -0
  56. data/vendor/depot_tools/detect_host_arch.py +0 -1
  57. data/vendor/depot_tools/dirmd +12 -0
  58. data/vendor/depot_tools/dirmd.bat +7 -0
  59. data/vendor/depot_tools/download_from_google_storage.py +47 -27
  60. data/vendor/depot_tools/ensure_bootstrap +14 -0
  61. data/vendor/depot_tools/fetch +14 -1
  62. data/vendor/depot_tools/fetch.bat +14 -1
  63. data/vendor/depot_tools/fetch.py +5 -7
  64. data/vendor/depot_tools/fetch_configs/chromium.py +6 -4
  65. data/vendor/depot_tools/fetch_configs/devtools-frontend.py +44 -0
  66. data/vendor/depot_tools/fetch_configs/ios_internal.py +10 -19
  67. data/vendor/depot_tools/fix_encoding.py +19 -5
  68. data/vendor/depot_tools/gclient +28 -12
  69. data/vendor/depot_tools/gclient-new-workdir.py +2 -0
  70. data/vendor/depot_tools/gclient.bat +18 -1
  71. data/vendor/depot_tools/gclient.py +160 -119
  72. data/vendor/depot_tools/gclient_eval.py +119 -107
  73. data/vendor/depot_tools/gclient_paths.py +67 -57
  74. data/vendor/depot_tools/gclient_scm.py +181 -159
  75. data/vendor/depot_tools/gclient_utils.py +177 -124
  76. data/vendor/depot_tools/gerrit_client.py +21 -13
  77. data/vendor/depot_tools/gerrit_util.py +188 -228
  78. data/vendor/depot_tools/git-cache +1 -1
  79. data/vendor/depot_tools/git-cl +1 -1
  80. data/vendor/depot_tools/git-drover +1 -1
  81. data/vendor/depot_tools/git-find-releases +1 -1
  82. data/vendor/depot_tools/git-footers +1 -1
  83. data/vendor/depot_tools/git-freeze +1 -1
  84. data/vendor/depot_tools/git-hyper-blame +1 -1
  85. data/vendor/depot_tools/git-map +1 -1
  86. data/vendor/depot_tools/git-map-branches +1 -1
  87. data/vendor/depot_tools/git-mark-merge-base +1 -1
  88. data/vendor/depot_tools/git-nav-downstream +1 -1
  89. data/vendor/depot_tools/git-new-branch +1 -1
  90. data/vendor/depot_tools/git-number +1 -1
  91. data/vendor/depot_tools/git-rebase-update +1 -1
  92. data/vendor/depot_tools/git-rename-branch +1 -1
  93. data/vendor/depot_tools/git-reparent-branch +1 -1
  94. data/vendor/depot_tools/git-retry +1 -1
  95. data/vendor/depot_tools/git-squash-branch +1 -1
  96. data/vendor/depot_tools/git-thaw +1 -1
  97. data/vendor/depot_tools/git-upstream-diff +1 -1
  98. data/vendor/depot_tools/git_cache.py +255 -360
  99. data/vendor/depot_tools/git_cl.py +1562 -2059
  100. data/vendor/depot_tools/git_cl_completion.sh +16 -2
  101. data/vendor/depot_tools/git_common.py +77 -32
  102. data/vendor/depot_tools/git_drover.py +17 -8
  103. data/vendor/depot_tools/git_find_releases.py +11 -9
  104. data/vendor/depot_tools/git_footers.py +13 -9
  105. data/vendor/depot_tools/git_freezer.py +3 -1
  106. data/vendor/depot_tools/git_hyper_blame.py +25 -32
  107. data/vendor/depot_tools/git_map.py +115 -93
  108. data/vendor/depot_tools/git_map_branches.py +11 -10
  109. data/vendor/depot_tools/git_mark_merge_base.py +8 -6
  110. data/vendor/depot_tools/git_nav_downstream.py +9 -6
  111. data/vendor/depot_tools/git_new_branch.py +39 -33
  112. data/vendor/depot_tools/git_number.py +28 -17
  113. data/vendor/depot_tools/git_rebase_update.py +50 -49
  114. data/vendor/depot_tools/git_rename_branch.py +2 -2
  115. data/vendor/depot_tools/git_reparent_branch.py +8 -6
  116. data/vendor/depot_tools/git_upstream_diff.py +4 -2
  117. data/vendor/depot_tools/gn.py +6 -4
  118. data/vendor/depot_tools/goma_auth +12 -0
  119. data/vendor/depot_tools/goma_auth.bat +8 -0
  120. data/vendor/depot_tools/goma_ctl +12 -0
  121. data/vendor/depot_tools/goma_ctl.bat +8 -0
  122. data/vendor/depot_tools/gsutil.py +5 -2
  123. data/vendor/depot_tools/gsutil.py.bat +8 -0
  124. data/vendor/depot_tools/gsutil.vpython +3 -1
  125. data/vendor/depot_tools/infra/config/OWNERS +2 -2
  126. data/vendor/depot_tools/infra/config/recipes.cfg +3 -2
  127. data/vendor/depot_tools/led +1 -1
  128. data/vendor/depot_tools/lockfile.py +116 -0
  129. data/vendor/depot_tools/luci-auth +1 -1
  130. data/vendor/depot_tools/lucicfg +1 -1
  131. data/vendor/depot_tools/mac_toolchain +1 -1
  132. data/vendor/depot_tools/man/html/depot_tools.html +1 -1
  133. data/vendor/depot_tools/man/html/depot_tools_tutorial.html +31 -25
  134. data/vendor/depot_tools/man/html/git-cl.html +1 -1
  135. data/vendor/depot_tools/man/html/git-drover.html +18 -18
  136. data/vendor/depot_tools/man/html/git-footers.html +1 -1
  137. data/vendor/depot_tools/man/html/git-freeze.html +3 -3
  138. data/vendor/depot_tools/man/html/git-hyper-blame.html +1 -1
  139. data/vendor/depot_tools/man/html/git-map-branches.html +2 -2
  140. data/vendor/depot_tools/man/html/git-map.html +1 -1
  141. data/vendor/depot_tools/man/html/git-mark-merge-base.html +1 -1
  142. data/vendor/depot_tools/man/html/git-nav-downstream.html +3 -3
  143. data/vendor/depot_tools/man/html/git-nav-upstream.html +12 -6
  144. data/vendor/depot_tools/man/html/git-new-branch.html +1 -1
  145. data/vendor/depot_tools/man/html/git-rebase-update.html +20 -1
  146. data/vendor/depot_tools/man/html/git-rename-branch.html +1 -1
  147. data/vendor/depot_tools/man/html/git-reparent-branch.html +1 -1
  148. data/vendor/depot_tools/man/html/git-retry.html +1 -1
  149. data/vendor/depot_tools/man/html/git-squash-branch.html +1 -1
  150. data/vendor/depot_tools/man/html/git-thaw.html +1 -1
  151. data/vendor/depot_tools/man/html/git-upstream-diff.html +10 -6
  152. data/vendor/depot_tools/man/man1/git-cl.1 +4 -4
  153. data/vendor/depot_tools/man/man1/git-drover.1 +21 -21
  154. data/vendor/depot_tools/man/man1/git-footers.1 +4 -4
  155. data/vendor/depot_tools/man/man1/git-freeze.1 +6 -6
  156. data/vendor/depot_tools/man/man1/git-hyper-blame.1 +4 -4
  157. data/vendor/depot_tools/man/man1/git-map-branches.1 +4 -4
  158. data/vendor/depot_tools/man/man1/git-map.1 +4 -4
  159. data/vendor/depot_tools/man/man1/git-mark-merge-base.1 +4 -4
  160. data/vendor/depot_tools/man/man1/git-nav-downstream.1 +6 -6
  161. data/vendor/depot_tools/man/man1/git-nav-upstream.1 +15 -9
  162. data/vendor/depot_tools/man/man1/git-new-branch.1 +3 -3
  163. data/vendor/depot_tools/man/man1/git-rebase-update.1 +14 -4
  164. data/vendor/depot_tools/man/man1/git-rename-branch.1 +4 -4
  165. data/vendor/depot_tools/man/man1/git-reparent-branch.1 +4 -4
  166. data/vendor/depot_tools/man/man1/git-retry.1 +4 -4
  167. data/vendor/depot_tools/man/man1/git-squash-branch.1 +4 -4
  168. data/vendor/depot_tools/man/man1/git-thaw.1 +4 -4
  169. data/vendor/depot_tools/man/man1/git-upstream-diff.1 +7 -13
  170. data/vendor/depot_tools/man/man7/depot_tools.7 +4 -4
  171. data/vendor/depot_tools/man/man7/depot_tools_tutorial.7 +31 -25
  172. data/vendor/depot_tools/man/src/common_demo_functions.sh +2 -2
  173. data/vendor/depot_tools/man/src/depot_tools_tutorial.txt +3 -3
  174. data/vendor/depot_tools/man/src/filter_demo_output.py +4 -2
  175. data/vendor/depot_tools/man/src/git-new-branch.txt +2 -1
  176. data/vendor/depot_tools/man/src/git-rebase-update.txt +8 -1
  177. data/vendor/depot_tools/metrics.README.md +8 -5
  178. data/vendor/depot_tools/metrics.py +7 -6
  179. data/vendor/depot_tools/metrics_utils.py +4 -14
  180. data/vendor/depot_tools/my_activity.py +85 -251
  181. data/vendor/depot_tools/ninja +1 -0
  182. data/vendor/depot_tools/ninja-mac +0 -0
  183. data/vendor/depot_tools/ninjalog_uploader.py +146 -145
  184. data/vendor/depot_tools/ninjalog_uploader_wrapper.py +69 -60
  185. data/vendor/depot_tools/owners.py +156 -43
  186. data/vendor/depot_tools/owners_finder.py +28 -14
  187. data/vendor/depot_tools/post_build_ninja_summary.py +76 -48
  188. data/vendor/depot_tools/presubmit_canned_checks.py +293 -106
  189. data/vendor/depot_tools/presubmit_support.py +527 -333
  190. data/vendor/depot_tools/prpc +1 -1
  191. data/vendor/depot_tools/pylint +2 -12
  192. data/vendor/depot_tools/pylint-1.5 +78 -0
  193. data/vendor/depot_tools/pylint-1.6 +78 -0
  194. data/vendor/depot_tools/pylint-1.7 +78 -0
  195. data/vendor/depot_tools/pylint-1.8 +78 -0
  196. data/vendor/depot_tools/pylint-1.9 +78 -0
  197. data/vendor/depot_tools/{depot-tools-auth.bat → pylint.bat} +2 -2
  198. data/vendor/depot_tools/pylint_main.py +45 -0
  199. data/vendor/depot_tools/pylintrc +14 -1
  200. data/vendor/depot_tools/python-bin/python3 +7 -0
  201. data/vendor/depot_tools/python_runner.sh +13 -8
  202. data/vendor/depot_tools/rdb +12 -0
  203. data/vendor/depot_tools/rdb.bat +7 -0
  204. data/vendor/depot_tools/recipes/OWNERS +0 -1
  205. data/vendor/depot_tools/recipes/README.recipes.md +218 -151
  206. data/vendor/depot_tools/recipes/recipe_modules/OWNERS +1 -1
  207. data/vendor/depot_tools/recipes/recipe_modules/bot_update/__init__.py +17 -16
  208. data/vendor/depot_tools/recipes/recipe_modules/bot_update/api.py +127 -78
  209. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic.json +19 -4
  210. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_luci.json +18 -3
  211. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_with_branch_heads.json +19 -4
  212. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/clobber.json +29 -8
  213. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/deprecated_got_revision_mapping.json +28 -10
  214. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_rebase_patch_ref.json +29 -8
  215. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_reset.json +29 -8
  216. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/input_commit_with_id_without_repo.json +29 -8
  217. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/multiple_patch_refs.json +29 -8
  218. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_apply_patch_on_gclient.json +35 -10
  219. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/{with_manifest_name.json → no_cp_checkout_HEAD.json} +25 -15
  220. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_a_branch_head.json +65 -0
  221. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_a_specific_commit.json +65 -0
  222. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_master.json +65 -0
  223. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/refs.json +29 -8
  224. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/reset_root_solution_revision.json +29 -8
  225. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/resolve_chromium_fixed_version.json +117 -0
  226. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail.json +17 -11
  227. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch.json +41 -10
  228. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch_download.json +24 -11
  229. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle.json +35 -10
  230. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_branch_heads.json +35 -10
  231. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_feature_branch.json +38 -11
  232. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8_feature_branch.json +36 -11
  233. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_webrtc.json +35 -10
  234. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8.json +35 -10
  235. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8_head_by_default.json +35 -10
  236. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/unrecognized_commit_repo.json +0 -5
  237. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_tags.json +29 -8
  238. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.py +95 -22
  239. data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/bot_update.py +187 -114
  240. data/vendor/depot_tools/recipes/recipe_modules/bot_update/test_api.py +2 -2
  241. data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/do_not_retry_patch_failures_in_cq.py +42 -0
  242. data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/ensure_checkout.py +1 -0
  243. data/vendor/depot_tools/recipes/recipe_modules/cipd/__init__.py +0 -1
  244. data/vendor/depot_tools/recipes/recipe_modules/cipd/api.py +2 -2
  245. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic.json +0 -1
  246. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic_pkg.json +0 -1
  247. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-failed.json +2 -4
  248. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-many-instances.json +0 -1
  249. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/mac64.json +0 -1
  250. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_file.json +26 -6
  251. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_mode.json +23 -5
  252. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_verfile.json +23 -5
  253. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/win64.json +0 -1
  254. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk arch.json +0 -1
  255. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk bits.json +0 -1
  256. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_32.json +0 -1
  257. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_64.json +0 -1
  258. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_32.json +0 -1
  259. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_64.json +0 -1
  260. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_mips_64.json +0 -1
  261. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/mac_intel_64.json +0 -1
  262. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_32.json +0 -1
  263. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_64.json +0 -1
  264. data/vendor/depot_tools/recipes/recipe_modules/cipd/test_api.py +1 -1
  265. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/api.py +4 -1
  266. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic.json +4 -2
  267. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic_luci.json +3 -1
  268. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/win.json +4 -2
  269. data/vendor/depot_tools/recipes/recipe_modules/gclient/__init__.py +2 -1
  270. data/vendor/depot_tools/recipes/recipe_modules/gclient/api.py +82 -13
  271. data/vendor/depot_tools/recipes/recipe_modules/gclient/config.py +23 -11
  272. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/basic.json +3 -4
  273. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/revision.json +3 -6
  274. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/tryserver.json +3 -4
  275. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.py +7 -7
  276. data/vendor/depot_tools/recipes/recipe_modules/gclient/resources/diff_deps.py +16 -0
  277. data/vendor/depot_tools/recipes/recipe_modules/gclient/test_api.py +4 -0
  278. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/basic.json +55 -0
  279. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/dont have revision yet.json +84 -0
  280. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/no change, exception.json +83 -0
  281. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/windows.json +55 -0
  282. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.py +88 -0
  283. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/patch_project.py +9 -21
  284. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/sync_failure.py +24 -0
  285. data/vendor/depot_tools/recipes/recipe_modules/gerrit/api.py +2 -1
  286. data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.expected/basic.json +7 -12
  287. data/vendor/depot_tools/recipes/recipe_modules/git/__init__.py +0 -2
  288. data/vendor/depot_tools/recipes/recipe_modules/git/api.py +9 -17
  289. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic.json +2 -8
  290. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_branch.json +2 -8
  291. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_file_name.json +2 -8
  292. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_hash.json +2 -8
  293. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_ref.json +2 -8
  294. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_submodule_update_force.json +2 -8
  295. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_tags.json +2 -8
  296. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/can_fail_build.json +3 -13
  297. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cannot_fail_build.json +2 -8
  298. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cat-file_test.json +4 -12
  299. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_delta.json +2 -10
  300. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_failed.json +1 -7
  301. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output.json +1 -7
  302. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output_fails_build.json +0 -8
  303. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/curl_trace_file.json +3 -10
  304. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/git-cache-checkout.json +3 -11
  305. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/platform_win.json +2 -8
  306. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/rebase_failed.json +3 -13
  307. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/remote_not_origin.json +2 -8
  308. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/set_got_revision.json +2 -8
  309. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.py +0 -5
  310. data/vendor/depot_tools/recipes/recipe_modules/git_cl/__init__.py +1 -1
  311. data/vendor/depot_tools/recipes/recipe_modules/git_cl/api.py +7 -13
  312. data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.expected/basic.json +21 -16
  313. data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.py +1 -2
  314. data/vendor/depot_tools/recipes/recipe_modules/gitiles/api.py +1 -1
  315. data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.expected/basic.json +0 -1
  316. data/vendor/depot_tools/recipes/recipe_modules/gitiles/resources/gerrit_client.py +2 -2
  317. data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.expected/basic.json +0 -1
  318. data/vendor/depot_tools/recipes/recipe_modules/gsutil/api.py +23 -8
  319. data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.expected/basic.json +52 -1
  320. data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.py +15 -0
  321. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/__init__.py +1 -0
  322. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/api.py +32 -8
  323. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/ancient_version.json +83 -0
  324. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/automatic_version.json +83 -0
  325. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/explicit_version.json +83 -0
  326. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/linux.json +0 -1
  327. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/mac.json +5 -4
  328. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/win.json +0 -1
  329. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.py +21 -2
  330. data/vendor/depot_tools/recipes/recipe_modules/presubmit/__init__.py +20 -0
  331. data/vendor/depot_tools/recipes/recipe_modules/presubmit/api.py +235 -3
  332. data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.expected/basic.json +13 -5
  333. data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.py +5 -1
  334. data/vendor/depot_tools/recipes/recipe_modules/presubmit/properties.proto +14 -0
  335. data/vendor/depot_tools/recipes/recipe_modules/presubmit/test_api.py +19 -0
  336. data/vendor/depot_tools/recipes/recipe_modules/presubmit/tests/execute.py +247 -0
  337. data/vendor/depot_tools/recipes/recipe_modules/presubmit/tests/prepare.py +49 -0
  338. data/vendor/depot_tools/recipes/recipe_modules/tryserver/api.py +33 -45
  339. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/basic_tags.json +0 -1
  340. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch.json +64 -21
  341. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch_and_target_ref.json +64 -21
  342. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch.json +1 -22
  343. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch_new.json +1 -22
  344. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.py +5 -32
  345. data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_fetch_ref_timeout.py +29 -0
  346. data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_owner.expected/basic.json +5 -0
  347. data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_owner.py +22 -0
  348. data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_target_ref.py +32 -0
  349. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/linux.json +0 -1
  350. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/mac.json +0 -1
  351. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/win.json +2 -1
  352. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.py +1 -6
  353. data/vendor/depot_tools/recipes/recipes.py +49 -28
  354. data/vendor/depot_tools/recipes/recipes/fetch_end_to_end_test.expected/basic.json +11 -6
  355. data/vendor/depot_tools/repo +698 -540
  356. data/vendor/depot_tools/roll-dep +14 -1
  357. data/vendor/depot_tools/roll-dep.bat +10 -1
  358. data/vendor/depot_tools/roll_dep.py +15 -10
  359. data/vendor/depot_tools/scm.py +95 -75
  360. data/vendor/depot_tools/setup_color.py +36 -2
  361. data/vendor/depot_tools/split_cl.py +44 -32
  362. data/vendor/depot_tools/subcommand.py +6 -6
  363. data/vendor/depot_tools/subprocess2.py +38 -322
  364. data/vendor/depot_tools/third_party/colorama/LICENSE.txt +0 -1
  365. data/vendor/depot_tools/third_party/colorama/README.chromium +4 -5
  366. data/vendor/depot_tools/third_party/colorama/README.rst +346 -0
  367. data/vendor/depot_tools/third_party/colorama/__init__.py +3 -4
  368. data/vendor/depot_tools/third_party/colorama/ansi.py +82 -30
  369. data/vendor/depot_tools/third_party/colorama/ansitowin32.py +105 -37
  370. data/vendor/depot_tools/third_party/colorama/initialise.py +39 -15
  371. data/vendor/depot_tools/third_party/colorama/win32.py +46 -28
  372. data/vendor/depot_tools/third_party/colorama/winterm.py +80 -31
  373. data/vendor/depot_tools/update_depot_tools +18 -8
  374. data/vendor/depot_tools/update_depot_tools.bat +19 -15
  375. data/vendor/depot_tools/upload_metrics.py +7 -6
  376. data/vendor/depot_tools/upload_to_google_storage.py +23 -16
  377. data/vendor/depot_tools/vpython +4 -4
  378. data/vendor/depot_tools/vpython.bat +1 -1
  379. data/vendor/depot_tools/vpython3 +55 -0
  380. data/vendor/depot_tools/vpython3.bat +12 -0
  381. data/vendor/depot_tools/watchlists.py +14 -11
  382. data/vendor/depot_tools/weekly +4 -2
  383. data/vendor/depot_tools/win32imports.py +61 -0
  384. data/vendor/depot_tools/win_toolchain/get_toolchain_if_necessary.py +49 -41
  385. data/vendor/depot_tools/win_toolchain/package_from_installed.py +142 -149
  386. data/vendor/depot_tools/wtf +5 -3
  387. data/vendor/depot_tools/yapf +5 -1
  388. metadata +68 -343
  389. data/vendor/depot_tools/README.testing +0 -23
  390. data/vendor/depot_tools/annotated_gclient.py +0 -89
  391. data/vendor/depot_tools/appengine_mapper.py +0 -23
  392. data/vendor/depot_tools/bootstrap/win/manifest.txt +0 -20
  393. data/vendor/depot_tools/bootstrap/win/manifest_bleeding_edge.txt +0 -20
  394. data/vendor/depot_tools/bootstrap/win/pylint.new.bat +0 -7
  395. data/vendor/depot_tools/buildbucket.py +0 -186
  396. data/vendor/depot_tools/checkout.py +0 -431
  397. data/vendor/depot_tools/cros +0 -1
  398. data/vendor/depot_tools/dart_format.py +0 -58
  399. data/vendor/depot_tools/depot-tools-auth +0 -8
  400. data/vendor/depot_tools/depot-tools-auth.py +0 -102
  401. data/vendor/depot_tools/my_reviews.py +0 -396
  402. data/vendor/depot_tools/patch.py +0 -548
  403. data/vendor/depot_tools/pylint.py +0 -30
  404. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/buildbot.json +0 -239
  405. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_luci.json +0 -222
  406. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/__init__.py +0 -4
  407. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/api.py +0 -29
  408. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/basic.json +0 -15
  409. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_linux.json +0 -15
  410. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_mac.json +0 -15
  411. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_win.json +0 -15
  412. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_linux.json +0 -15
  413. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_mac.json +0 -15
  414. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_win.json +0 -15
  415. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_linux.json +0 -15
  416. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_mac.json +0 -15
  417. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_win.json +0 -15
  418. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.py +0 -33
  419. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/path_config.py +0 -66
  420. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/set_failure_hash_with_no_steps.json +0 -11
  421. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_git_patch.json +0 -45
  422. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_git_patch_luci.json +0 -45
  423. data/vendor/depot_tools/rietveld.py +0 -779
  424. data/vendor/depot_tools/roll-dep-svn +0 -8
  425. data/vendor/depot_tools/roll-dep-svn.bat +0 -12
  426. data/vendor/depot_tools/roll_dep_svn.py +0 -430
  427. data/vendor/depot_tools/support/chromite_wrapper +0 -96
  428. data/vendor/depot_tools/third_party/boto/LICENSE +0 -18
  429. data/vendor/depot_tools/third_party/boto/README.chromium +0 -43
  430. data/vendor/depot_tools/third_party/boto/README.rst +0 -163
  431. data/vendor/depot_tools/third_party/boto/__init__.py +0 -793
  432. data/vendor/depot_tools/third_party/boto/auth.py +0 -682
  433. data/vendor/depot_tools/third_party/boto/auth_handler.py +0 -58
  434. data/vendor/depot_tools/third_party/boto/cacerts/__init__.py +0 -22
  435. data/vendor/depot_tools/third_party/boto/cacerts/cacerts.txt +0 -2183
  436. data/vendor/depot_tools/third_party/boto/compat.py +0 -28
  437. data/vendor/depot_tools/third_party/boto/connection.py +0 -1081
  438. data/vendor/depot_tools/third_party/boto/contrib/__init__.py +0 -22
  439. data/vendor/depot_tools/third_party/boto/contrib/ymlmessage.py +0 -52
  440. data/vendor/depot_tools/third_party/boto/core/README +0 -58
  441. data/vendor/depot_tools/third_party/boto/core/__init__.py +0 -23
  442. data/vendor/depot_tools/third_party/boto/core/auth.py +0 -78
  443. data/vendor/depot_tools/third_party/boto/core/credentials.py +0 -154
  444. data/vendor/depot_tools/third_party/boto/core/dictresponse.py +0 -178
  445. data/vendor/depot_tools/third_party/boto/core/service.py +0 -67
  446. data/vendor/depot_tools/third_party/boto/datapipeline/__init__.py +0 -0
  447. data/vendor/depot_tools/third_party/boto/datapipeline/exceptions.py +0 -42
  448. data/vendor/depot_tools/third_party/boto/datapipeline/layer1.py +0 -546
  449. data/vendor/depot_tools/third_party/boto/ecs/__init__.py +0 -90
  450. data/vendor/depot_tools/third_party/boto/ecs/item.py +0 -153
  451. data/vendor/depot_tools/third_party/boto/exception.py +0 -476
  452. data/vendor/depot_tools/third_party/boto/file/README +0 -49
  453. data/vendor/depot_tools/third_party/boto/file/__init__.py +0 -28
  454. data/vendor/depot_tools/third_party/boto/file/bucket.py +0 -112
  455. data/vendor/depot_tools/third_party/boto/file/connection.py +0 -33
  456. data/vendor/depot_tools/third_party/boto/file/key.py +0 -199
  457. data/vendor/depot_tools/third_party/boto/file/simpleresultset.py +0 -30
  458. data/vendor/depot_tools/third_party/boto/fps/__init__.py +0 -21
  459. data/vendor/depot_tools/third_party/boto/fps/connection.py +0 -369
  460. data/vendor/depot_tools/third_party/boto/fps/exception.py +0 -344
  461. data/vendor/depot_tools/third_party/boto/fps/response.py +0 -175
  462. data/vendor/depot_tools/third_party/boto/gs/__init__.py +0 -22
  463. data/vendor/depot_tools/third_party/boto/gs/acl.py +0 -304
  464. data/vendor/depot_tools/third_party/boto/gs/bucket.py +0 -870
  465. data/vendor/depot_tools/third_party/boto/gs/bucketlistresultset.py +0 -64
  466. data/vendor/depot_tools/third_party/boto/gs/connection.py +0 -103
  467. data/vendor/depot_tools/third_party/boto/gs/cors.py +0 -169
  468. data/vendor/depot_tools/third_party/boto/gs/key.py +0 -704
  469. data/vendor/depot_tools/third_party/boto/gs/resumable_upload_handler.py +0 -659
  470. data/vendor/depot_tools/third_party/boto/gs/user.py +0 -54
  471. data/vendor/depot_tools/third_party/boto/handler.py +0 -44
  472. data/vendor/depot_tools/third_party/boto/https_connection.py +0 -124
  473. data/vendor/depot_tools/third_party/boto/jsonresponse.py +0 -163
  474. data/vendor/depot_tools/third_party/boto/manage/__init__.py +0 -23
  475. data/vendor/depot_tools/third_party/boto/manage/cmdshell.py +0 -241
  476. data/vendor/depot_tools/third_party/boto/manage/propget.py +0 -64
  477. data/vendor/depot_tools/third_party/boto/manage/server.py +0 -556
  478. data/vendor/depot_tools/third_party/boto/manage/task.py +0 -175
  479. data/vendor/depot_tools/third_party/boto/manage/test_manage.py +0 -34
  480. data/vendor/depot_tools/third_party/boto/manage/volume.py +0 -420
  481. data/vendor/depot_tools/third_party/boto/mashups/__init__.py +0 -23
  482. data/vendor/depot_tools/third_party/boto/mashups/interactive.py +0 -97
  483. data/vendor/depot_tools/third_party/boto/mashups/iobject.py +0 -115
  484. data/vendor/depot_tools/third_party/boto/mashups/order.py +0 -211
  485. data/vendor/depot_tools/third_party/boto/mashups/server.py +0 -395
  486. data/vendor/depot_tools/third_party/boto/plugin.py +0 -90
  487. data/vendor/depot_tools/third_party/boto/provider.py +0 -337
  488. data/vendor/depot_tools/third_party/boto/pyami/__init__.py +0 -22
  489. data/vendor/depot_tools/third_party/boto/pyami/bootstrap.py +0 -134
  490. data/vendor/depot_tools/third_party/boto/pyami/config.py +0 -229
  491. data/vendor/depot_tools/third_party/boto/pyami/copybot.cfg +0 -60
  492. data/vendor/depot_tools/third_party/boto/pyami/copybot.py +0 -97
  493. data/vendor/depot_tools/third_party/boto/pyami/helloworld.py +0 -28
  494. data/vendor/depot_tools/third_party/boto/pyami/launch_ami.py +0 -178
  495. data/vendor/depot_tools/third_party/boto/pyami/scriptbase.py +0 -44
  496. data/vendor/depot_tools/third_party/boto/pyami/startup.py +0 -60
  497. data/vendor/depot_tools/third_party/boto/regioninfo.py +0 -63
  498. data/vendor/depot_tools/third_party/boto/resultset.py +0 -169
  499. data/vendor/depot_tools/third_party/boto/roboto/__init__.py +0 -1
  500. data/vendor/depot_tools/third_party/boto/roboto/awsqueryrequest.py +0 -504
  501. data/vendor/depot_tools/third_party/boto/roboto/awsqueryservice.py +0 -121
  502. data/vendor/depot_tools/third_party/boto/roboto/param.py +0 -147
  503. data/vendor/depot_tools/third_party/boto/s3/__init__.py +0 -84
  504. data/vendor/depot_tools/third_party/boto/s3/acl.py +0 -164
  505. data/vendor/depot_tools/third_party/boto/s3/bucket.py +0 -1634
  506. data/vendor/depot_tools/third_party/boto/s3/bucketlistresultset.py +0 -139
  507. data/vendor/depot_tools/third_party/boto/s3/bucketlogging.py +0 -83
  508. data/vendor/depot_tools/third_party/boto/s3/connection.py +0 -540
  509. data/vendor/depot_tools/third_party/boto/s3/cors.py +0 -210
  510. data/vendor/depot_tools/third_party/boto/s3/deletemarker.py +0 -55
  511. data/vendor/depot_tools/third_party/boto/s3/key.py +0 -1712
  512. data/vendor/depot_tools/third_party/boto/s3/keyfile.py +0 -134
  513. data/vendor/depot_tools/third_party/boto/s3/lifecycle.py +0 -231
  514. data/vendor/depot_tools/third_party/boto/s3/multidelete.py +0 -138
  515. data/vendor/depot_tools/third_party/boto/s3/multipart.py +0 -315
  516. data/vendor/depot_tools/third_party/boto/s3/prefix.py +0 -42
  517. data/vendor/depot_tools/third_party/boto/s3/resumable_download_handler.py +0 -339
  518. data/vendor/depot_tools/third_party/boto/s3/tagging.py +0 -71
  519. data/vendor/depot_tools/third_party/boto/s3/user.py +0 -49
  520. data/vendor/depot_tools/third_party/boto/s3/website.py +0 -237
  521. data/vendor/depot_tools/third_party/boto/services/__init__.py +0 -23
  522. data/vendor/depot_tools/third_party/boto/services/bs.py +0 -179
  523. data/vendor/depot_tools/third_party/boto/services/message.py +0 -58
  524. data/vendor/depot_tools/third_party/boto/services/result.py +0 -136
  525. data/vendor/depot_tools/third_party/boto/services/service.py +0 -161
  526. data/vendor/depot_tools/third_party/boto/services/servicedef.py +0 -91
  527. data/vendor/depot_tools/third_party/boto/services/sonofmmm.cfg +0 -43
  528. data/vendor/depot_tools/third_party/boto/services/sonofmmm.py +0 -81
  529. data/vendor/depot_tools/third_party/boto/services/submit.py +0 -88
  530. data/vendor/depot_tools/third_party/boto/ses/__init__.py +0 -54
  531. data/vendor/depot_tools/third_party/boto/ses/connection.py +0 -521
  532. data/vendor/depot_tools/third_party/boto/ses/exceptions.py +0 -77
  533. data/vendor/depot_tools/third_party/boto/storage_uri.py +0 -835
  534. data/vendor/depot_tools/third_party/boto/sts/__init__.py +0 -55
  535. data/vendor/depot_tools/third_party/boto/sts/connection.py +0 -207
  536. data/vendor/depot_tools/third_party/boto/sts/credentials.py +0 -215
  537. data/vendor/depot_tools/third_party/boto/utils.py +0 -927
  538. data/vendor/depot_tools/third_party/colorama/README.txt +0 -304
  539. data/vendor/depot_tools/third_party/fancy_urllib/README +0 -22
  540. data/vendor/depot_tools/third_party/fancy_urllib/__init__.py +0 -460
  541. data/vendor/depot_tools/third_party/logilab/README.chromium +0 -6
  542. data/vendor/depot_tools/third_party/logilab/__init__.py +0 -0
  543. data/vendor/depot_tools/third_party/logilab/astroid/LICENSE.txt +0 -340
  544. data/vendor/depot_tools/third_party/logilab/astroid/README.chromium +0 -11
  545. data/vendor/depot_tools/third_party/logilab/astroid/__init__.py +0 -136
  546. data/vendor/depot_tools/third_party/logilab/astroid/__pkginfo__.py +0 -42
  547. data/vendor/depot_tools/third_party/logilab/astroid/arguments.py +0 -233
  548. data/vendor/depot_tools/third_party/logilab/astroid/as_string.py +0 -548
  549. data/vendor/depot_tools/third_party/logilab/astroid/astpeephole.py +0 -86
  550. data/vendor/depot_tools/third_party/logilab/astroid/bases.py +0 -636
  551. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_builtin_inference.py +0 -336
  552. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_dateutil.py +0 -15
  553. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_gi.py +0 -195
  554. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_mechanize.py +0 -18
  555. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_nose.py +0 -82
  556. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_numpy.py +0 -62
  557. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_pytest.py +0 -76
  558. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_qt.py +0 -44
  559. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_six.py +0 -288
  560. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_ssl.py +0 -65
  561. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_stdlib.py +0 -473
  562. data/vendor/depot_tools/third_party/logilab/astroid/builder.py +0 -263
  563. data/vendor/depot_tools/third_party/logilab/astroid/context.py +0 -81
  564. data/vendor/depot_tools/third_party/logilab/astroid/decorators.py +0 -75
  565. data/vendor/depot_tools/third_party/logilab/astroid/exceptions.py +0 -71
  566. data/vendor/depot_tools/third_party/logilab/astroid/inference.py +0 -359
  567. data/vendor/depot_tools/third_party/logilab/astroid/manager.py +0 -267
  568. data/vendor/depot_tools/third_party/logilab/astroid/mixins.py +0 -147
  569. data/vendor/depot_tools/third_party/logilab/astroid/modutils.py +0 -741
  570. data/vendor/depot_tools/third_party/logilab/astroid/node_classes.py +0 -1053
  571. data/vendor/depot_tools/third_party/logilab/astroid/nodes.py +0 -87
  572. data/vendor/depot_tools/third_party/logilab/astroid/objects.py +0 -186
  573. data/vendor/depot_tools/third_party/logilab/astroid/protocols.py +0 -470
  574. data/vendor/depot_tools/third_party/logilab/astroid/raw_building.py +0 -390
  575. data/vendor/depot_tools/third_party/logilab/astroid/rebuilder.py +0 -989
  576. data/vendor/depot_tools/third_party/logilab/astroid/scoped_nodes.py +0 -1716
  577. data/vendor/depot_tools/third_party/logilab/astroid/test_utils.py +0 -201
  578. data/vendor/depot_tools/third_party/logilab/astroid/transforms.py +0 -96
  579. data/vendor/depot_tools/third_party/logilab/astroid/util.py +0 -89
  580. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/LICENSE +0 -19
  581. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/README.chromium +0 -11
  582. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/__init__.py +0 -20
  583. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/cext.c +0 -1421
  584. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/compat.py +0 -9
  585. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/simple.py +0 -246
  586. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/slots.py +0 -414
  587. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/utils.py +0 -13
  588. data/vendor/depot_tools/third_party/logilab/wrapt/LICENSE +0 -24
  589. data/vendor/depot_tools/third_party/logilab/wrapt/README.chromium +0 -11
  590. data/vendor/depot_tools/third_party/logilab/wrapt/__init__.py +0 -19
  591. data/vendor/depot_tools/third_party/logilab/wrapt/_wrappers.c +0 -2729
  592. data/vendor/depot_tools/third_party/logilab/wrapt/arguments.py +0 -96
  593. data/vendor/depot_tools/third_party/logilab/wrapt/decorators.py +0 -512
  594. data/vendor/depot_tools/third_party/logilab/wrapt/importer.py +0 -228
  595. data/vendor/depot_tools/third_party/logilab/wrapt/wrappers.py +0 -901
  596. data/vendor/depot_tools/third_party/mock/LICENSE.txt +0 -26
  597. data/vendor/depot_tools/third_party/mock/README.chromium +0 -24
  598. data/vendor/depot_tools/third_party/mock/__init__.py +0 -2366
  599. data/vendor/depot_tools/third_party/oauth2client/LICENSE +0 -202
  600. data/vendor/depot_tools/third_party/oauth2client/MODIFICATIONS.diff +0 -66
  601. data/vendor/depot_tools/third_party/oauth2client/README.chromium +0 -15
  602. data/vendor/depot_tools/third_party/oauth2client/__init__.py +0 -5
  603. data/vendor/depot_tools/third_party/oauth2client/anyjson.py +0 -32
  604. data/vendor/depot_tools/third_party/oauth2client/appengine.py +0 -963
  605. data/vendor/depot_tools/third_party/oauth2client/client.py +0 -1363
  606. data/vendor/depot_tools/third_party/oauth2client/clientsecrets.py +0 -153
  607. data/vendor/depot_tools/third_party/oauth2client/crypt.py +0 -377
  608. data/vendor/depot_tools/third_party/oauth2client/django_orm.py +0 -134
  609. data/vendor/depot_tools/third_party/oauth2client/file.py +0 -124
  610. data/vendor/depot_tools/third_party/oauth2client/gce.py +0 -90
  611. data/vendor/depot_tools/third_party/oauth2client/keyring_storage.py +0 -109
  612. data/vendor/depot_tools/third_party/oauth2client/locked_file.py +0 -373
  613. data/vendor/depot_tools/third_party/oauth2client/multistore_file.py +0 -465
  614. data/vendor/depot_tools/third_party/oauth2client/old_run.py +0 -160
  615. data/vendor/depot_tools/third_party/oauth2client/tools.py +0 -243
  616. data/vendor/depot_tools/third_party/oauth2client/util.py +0 -196
  617. data/vendor/depot_tools/third_party/oauth2client/xsrfutil.py +0 -113
  618. data/vendor/depot_tools/third_party/protobuf26/README.chromium +0 -23
  619. data/vendor/depot_tools/third_party/protobuf26/__init__.py +0 -0
  620. data/vendor/depot_tools/third_party/protobuf26/compiler/__init__.py +0 -0
  621. data/vendor/depot_tools/third_party/protobuf26/compiler/plugin_pb2.py +0 -184
  622. data/vendor/depot_tools/third_party/protobuf26/descriptor.py +0 -849
  623. data/vendor/depot_tools/third_party/protobuf26/descriptor_database.py +0 -137
  624. data/vendor/depot_tools/third_party/protobuf26/descriptor_pb2.py +0 -1522
  625. data/vendor/depot_tools/third_party/protobuf26/descriptor_pool.py +0 -643
  626. data/vendor/depot_tools/third_party/protobuf26/internal/__init__.py +0 -0
  627. data/vendor/depot_tools/third_party/protobuf26/internal/api_implementation.py +0 -89
  628. data/vendor/depot_tools/third_party/protobuf26/internal/containers.py +0 -269
  629. data/vendor/depot_tools/third_party/protobuf26/internal/cpp_message.py +0 -663
  630. data/vendor/depot_tools/third_party/protobuf26/internal/decoder.py +0 -831
  631. data/vendor/depot_tools/third_party/protobuf26/internal/encoder.py +0 -788
  632. data/vendor/depot_tools/third_party/protobuf26/internal/enum_type_wrapper.py +0 -89
  633. data/vendor/depot_tools/third_party/protobuf26/internal/message_listener.py +0 -78
  634. data/vendor/depot_tools/third_party/protobuf26/internal/python_message.py +0 -1247
  635. data/vendor/depot_tools/third_party/protobuf26/internal/type_checkers.py +0 -328
  636. data/vendor/depot_tools/third_party/protobuf26/internal/wire_format.py +0 -268
  637. data/vendor/depot_tools/third_party/protobuf26/message.py +0 -284
  638. data/vendor/depot_tools/third_party/protobuf26/message_factory.py +0 -155
  639. data/vendor/depot_tools/third_party/protobuf26/reflection.py +0 -205
  640. data/vendor/depot_tools/third_party/protobuf26/service.py +0 -226
  641. data/vendor/depot_tools/third_party/protobuf26/service_reflection.py +0 -284
  642. data/vendor/depot_tools/third_party/protobuf26/symbol_database.py +0 -185
  643. data/vendor/depot_tools/third_party/protobuf26/text_encoding.py +0 -110
  644. data/vendor/depot_tools/third_party/protobuf26/text_format.py +0 -873
  645. data/vendor/depot_tools/third_party/pylint.py +0 -37
  646. data/vendor/depot_tools/third_party/pylint/LICENSE.txt +0 -340
  647. data/vendor/depot_tools/third_party/pylint/README.chromium +0 -30
  648. data/vendor/depot_tools/third_party/pylint/__init__.py +0 -46
  649. data/vendor/depot_tools/third_party/pylint/__main__.py +0 -3
  650. data/vendor/depot_tools/third_party/pylint/__pkginfo__.py +0 -80
  651. data/vendor/depot_tools/third_party/pylint/checkers/__init__.py +0 -123
  652. data/vendor/depot_tools/third_party/pylint/checkers/async.py +0 -82
  653. data/vendor/depot_tools/third_party/pylint/checkers/base.py +0 -2010
  654. data/vendor/depot_tools/third_party/pylint/checkers/classes.py +0 -1120
  655. data/vendor/depot_tools/third_party/pylint/checkers/design_analysis.py +0 -348
  656. data/vendor/depot_tools/third_party/pylint/checkers/exceptions.py +0 -369
  657. data/vendor/depot_tools/third_party/pylint/checkers/format.py +0 -993
  658. data/vendor/depot_tools/third_party/pylint/checkers/imports.py +0 -654
  659. data/vendor/depot_tools/third_party/pylint/checkers/logging.py +0 -258
  660. data/vendor/depot_tools/third_party/pylint/checkers/misc.py +0 -105
  661. data/vendor/depot_tools/third_party/pylint/checkers/newstyle.py +0 -169
  662. data/vendor/depot_tools/third_party/pylint/checkers/python3.py +0 -591
  663. data/vendor/depot_tools/third_party/pylint/checkers/raw_metrics.py +0 -129
  664. data/vendor/depot_tools/third_party/pylint/checkers/similar.py +0 -371
  665. data/vendor/depot_tools/third_party/pylint/checkers/spelling.py +0 -264
  666. data/vendor/depot_tools/third_party/pylint/checkers/stdlib.py +0 -280
  667. data/vendor/depot_tools/third_party/pylint/checkers/strings.py +0 -618
  668. data/vendor/depot_tools/third_party/pylint/checkers/typecheck.py +0 -974
  669. data/vendor/depot_tools/third_party/pylint/checkers/utils.py +0 -741
  670. data/vendor/depot_tools/third_party/pylint/checkers/variables.py +0 -1191
  671. data/vendor/depot_tools/third_party/pylint/config.py +0 -820
  672. data/vendor/depot_tools/third_party/pylint/epylint.py +0 -181
  673. data/vendor/depot_tools/third_party/pylint/extensions/__init__.py +0 -0
  674. data/vendor/depot_tools/third_party/pylint/extensions/check_docs.py +0 -311
  675. data/vendor/depot_tools/third_party/pylint/extensions/check_elif.py +0 -62
  676. data/vendor/depot_tools/third_party/pylint/graph.py +0 -179
  677. data/vendor/depot_tools/third_party/pylint/gui.py +0 -531
  678. data/vendor/depot_tools/third_party/pylint/interfaces.py +0 -102
  679. data/vendor/depot_tools/third_party/pylint/lint.py +0 -1381
  680. data/vendor/depot_tools/third_party/pylint/pyreverse/__init__.py +0 -5
  681. data/vendor/depot_tools/third_party/pylint/pyreverse/diadefslib.py +0 -230
  682. data/vendor/depot_tools/third_party/pylint/pyreverse/diagrams.py +0 -258
  683. data/vendor/depot_tools/third_party/pylint/pyreverse/inspector.py +0 -372
  684. data/vendor/depot_tools/third_party/pylint/pyreverse/main.py +0 -147
  685. data/vendor/depot_tools/third_party/pylint/pyreverse/utils.py +0 -210
  686. data/vendor/depot_tools/third_party/pylint/pyreverse/vcgutils.py +0 -198
  687. data/vendor/depot_tools/third_party/pylint/pyreverse/writer.py +0 -198
  688. data/vendor/depot_tools/third_party/pylint/reporters/__init__.py +0 -149
  689. data/vendor/depot_tools/third_party/pylint/reporters/guireporter.py +0 -27
  690. data/vendor/depot_tools/third_party/pylint/reporters/html.py +0 -108
  691. data/vendor/depot_tools/third_party/pylint/reporters/json.py +0 -64
  692. data/vendor/depot_tools/third_party/pylint/reporters/text.py +0 -237
  693. data/vendor/depot_tools/third_party/pylint/reporters/ureports/__init__.py +0 -106
  694. data/vendor/depot_tools/third_party/pylint/reporters/ureports/html_writer.py +0 -93
  695. data/vendor/depot_tools/third_party/pylint/reporters/ureports/nodes.py +0 -181
  696. data/vendor/depot_tools/third_party/pylint/reporters/ureports/text_writer.py +0 -99
  697. data/vendor/depot_tools/third_party/pylint/testutils.py +0 -414
  698. data/vendor/depot_tools/third_party/pylint/utils.py +0 -1148
  699. data/vendor/depot_tools/third_party/pymox/COPYING +0 -202
  700. data/vendor/depot_tools/third_party/pymox/MANIFEST.in +0 -5
  701. data/vendor/depot_tools/third_party/pymox/README +0 -56
  702. data/vendor/depot_tools/third_party/pymox/__init__.py +0 -0
  703. data/vendor/depot_tools/third_party/pymox/mox.py +0 -1643
  704. data/vendor/depot_tools/third_party/pymox/mox_test.py +0 -1708
  705. data/vendor/depot_tools/third_party/pymox/mox_test_helper.py +0 -76
  706. data/vendor/depot_tools/third_party/pymox/setup.py +0 -14
  707. data/vendor/depot_tools/third_party/pymox/stubout.py +0 -142
  708. data/vendor/depot_tools/third_party/pymox/stubout_test.py +0 -47
  709. data/vendor/depot_tools/third_party/pymox/stubout_testee.py +0 -2
  710. data/vendor/depot_tools/third_party/simplejson/LICENSE.txt +0 -19
  711. data/vendor/depot_tools/third_party/simplejson/PKG-INFO +0 -29
  712. data/vendor/depot_tools/third_party/simplejson/__init__.py +0 -437
  713. data/vendor/depot_tools/third_party/simplejson/decoder.py +0 -421
  714. data/vendor/depot_tools/third_party/simplejson/encoder.py +0 -501
  715. data/vendor/depot_tools/third_party/simplejson/ordered_dict.py +0 -119
  716. data/vendor/depot_tools/third_party/simplejson/scanner.py +0 -77
  717. data/vendor/depot_tools/third_party/simplejson/tool.py +0 -39
  718. data/vendor/depot_tools/third_party/upload.py +0 -2565
@@ -11,26 +11,44 @@ import tokenize
11
11
  import gclient_utils
12
12
 
13
13
  from third_party import schema
14
+ from third_party import six
14
15
 
15
- if sys.version_info.major == 2:
16
+ if six.PY2:
16
17
  # We use cStringIO.StringIO because it is equivalent to Py3's io.StringIO.
17
18
  from cStringIO import StringIO
19
+ import collections as collections_abc
18
20
  else:
21
+ from collections import abc as collections_abc
19
22
  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
23
  # pylint: disable=redefined-builtin
27
24
  basestring = str
28
25
 
29
26
 
30
- class _NodeDict(collections.MutableMapping):
27
+ class ConstantString(object):
28
+ def __init__(self, value):
29
+ self.value = value
30
+
31
+ def __format__(self, format_spec):
32
+ del format_spec
33
+ return self.value
34
+
35
+ def __repr__(self):
36
+ return "Str('" + self.value + "')"
37
+
38
+ def __eq__(self, other):
39
+ if isinstance(other, ConstantString):
40
+ return self.value == other.value
41
+ else:
42
+ return self.value == other
43
+
44
+ def __hash__(self):
45
+ return self.value.__hash__()
46
+
47
+
48
+ class _NodeDict(collections_abc.MutableMapping):
31
49
  """Dict-like type that also stores information on AST nodes and tokens."""
32
- def __init__(self, data, tokens=None):
33
- self.data = collections.OrderedDict(data)
50
+ def __init__(self, data=None, tokens=None):
51
+ self.data = collections.OrderedDict(data or [])
34
52
  self.tokens = tokens
35
53
 
36
54
  def __str__(self):
@@ -57,7 +75,7 @@ class _NodeDict(collections.MutableMapping):
57
75
  def MoveTokens(self, origin, delta):
58
76
  if self.tokens:
59
77
  new_tokens = {}
60
- for pos, token in self.tokens.iteritems():
78
+ for pos, token in self.tokens.items():
61
79
  if pos[0] >= origin:
62
80
  pos = (pos[0] + delta, pos[1])
63
81
  token = token[:2] + (pos,) + token[3:]
@@ -117,7 +135,7 @@ _GCLIENT_DEPS_SCHEMA = _NodeDictSchema({
117
135
  _GCLIENT_HOOKS_SCHEMA = [
118
136
  _NodeDictSchema({
119
137
  # Hook action: list of command-line arguments to invoke.
120
- 'action': [basestring],
138
+ 'action': [schema.Or(basestring)],
121
139
 
122
140
  # Name of the hook. Doesn't affect operation.
123
141
  schema.Optional('name'): basestring,
@@ -138,7 +156,7 @@ _GCLIENT_HOOKS_SCHEMA = [
138
156
 
139
157
  _GCLIENT_SCHEMA = schema.Schema(
140
158
  _NodeDictSchema({
141
- # List of host names from which dependencies are allowed (whitelist).
159
+ # List of host names from which dependencies are allowed (allowlist).
142
160
  # NOTE: when not present, all hosts are allowed.
143
161
  # NOTE: scoped to current DEPS file, not recursive.
144
162
  schema.Optional('allowed_hosts'): [schema.Optional(basestring)],
@@ -190,7 +208,7 @@ _GCLIENT_SCHEMA = schema.Schema(
190
208
  # Recursion limit for nested DEPS.
191
209
  schema.Optional('recursion'): int,
192
210
 
193
- # Whitelists deps for which recursion should be enabled.
211
+ # Allowlists deps for which recursion should be enabled.
194
212
  schema.Optional('recursedeps'): [
195
213
  schema.Optional(schema.Or(
196
214
  basestring,
@@ -199,7 +217,7 @@ _GCLIENT_SCHEMA = schema.Schema(
199
217
  )),
200
218
  ],
201
219
 
202
- # Blacklists directories for checking 'include_rules'.
220
+ # Blocklists directories for checking 'include_rules'.
203
221
  schema.Optional('skip_child_includes'): [schema.Optional(basestring)],
204
222
 
205
223
  # Mapping from paths to include rules specific for that path.
@@ -223,7 +241,9 @@ _GCLIENT_SCHEMA = schema.Schema(
223
241
 
224
242
  # Variables that can be referenced using Var() - see 'deps'.
225
243
  schema.Optional('vars'): _NodeDictSchema({
226
- schema.Optional(basestring): schema.Or(basestring, bool),
244
+ schema.Optional(basestring): schema.Or(ConstantString,
245
+ basestring,
246
+ bool),
227
247
  }),
228
248
  }))
229
249
 
@@ -231,6 +251,8 @@ _GCLIENT_SCHEMA = schema.Schema(
231
251
  def _gclient_eval(node_or_string, filename='<unknown>', vars_dict=None):
232
252
  """Safely evaluates a single expression. Returns the result."""
233
253
  _allowed_names = {'None': None, 'True': True, 'False': False}
254
+ if isinstance(node_or_string, ConstantString):
255
+ return node_or_string.value
234
256
  if isinstance(node_or_string, basestring):
235
257
  node_or_string = ast.parse(node_or_string, filename=filename, mode='eval')
236
258
  if isinstance(node_or_string, ast.Expression):
@@ -245,7 +267,7 @@ def _gclient_eval(node_or_string, filename='', vars_dict=None):
245
267
  raise KeyError(
246
268
  '%s was used as a variable, but was not declared in the vars dict '
247
269
  '(file %r, line %s)' % (
248
- e.message, filename, getattr(node, 'lineno', '<unknown>')))
270
+ e.args[0], filename, getattr(node, 'lineno', '<unknown>')))
249
271
  elif isinstance(node, ast.Num):
250
272
  return node.n
251
273
  elif isinstance(node, ast.Tuple):
@@ -253,8 +275,15 @@ def _gclient_eval(node_or_string, filename='', vars_dict=None):
253
275
  elif isinstance(node, ast.List):
254
276
  return list(map(_convert, node.elts))
255
277
  elif isinstance(node, ast.Dict):
256
- return _NodeDict((_convert(k), (_convert(v), v))
257
- for k, v in zip(node.keys, node.values))
278
+ node_dict = _NodeDict()
279
+ for key_node, value_node in zip(node.keys, node.values):
280
+ key = _convert(key_node)
281
+ if key in node_dict:
282
+ raise ValueError(
283
+ 'duplicate key in dictionary: %s (file %r, line %s)' % (
284
+ key, filename, getattr(key_node, 'lineno', '<unknown>')))
285
+ node_dict.SetNode(key, _convert(value_node), value_node)
286
+ return node_dict
258
287
  elif isinstance(node, ast.Name):
259
288
  if node.id not in _allowed_names:
260
289
  raise ValueError(
@@ -265,16 +294,23 @@ def _gclient_eval(node_or_string, filename='', vars_dict=None):
265
294
  node, ast.NameConstant): # Since Python 3.4
266
295
  return node.value
267
296
  elif isinstance(node, ast.Call):
268
- if not isinstance(node.func, ast.Name) or node.func.id != 'Var':
297
+ if (not isinstance(node.func, ast.Name) or
298
+ (node.func.id not in ('Str', 'Var'))):
269
299
  raise ValueError(
270
- 'Var is the only allowed function (file %r, line %s)' % (
300
+ 'Str and Var are the only allowed functions (file %r, line %s)' % (
271
301
  filename, getattr(node, 'lineno', '<unknown>')))
272
302
  if node.keywords or getattr(node, 'starargs', None) or getattr(
273
303
  node, 'kwargs', None) or len(node.args) != 1:
274
304
  raise ValueError(
275
- 'Var takes exactly one argument (file %r, line %s)' % (
276
- filename, getattr(node, 'lineno', '<unknown>')))
277
- arg = _convert(node.args[0])
305
+ '%s takes exactly one argument (file %r, line %s)' % (
306
+ node.func.id, filename, getattr(node, 'lineno', '<unknown>')))
307
+ if node.func.id == 'Str':
308
+ if isinstance(node.args[0], ast.Str):
309
+ return ConstantString(node.args[0].s)
310
+ raise ValueError('Passed a non-string to Str() (file %r, line%s)' % (
311
+ filename, getattr(node, 'lineno', '<unknown>')))
312
+ else:
313
+ arg = _convert(node.args[0])
278
314
  if not isinstance(arg, basestring):
279
315
  raise ValueError(
280
316
  'Var\'s argument must be a variable name (file %r, line %s)' % (
@@ -286,7 +322,10 @@ def _gclient_eval(node_or_string, filename='', vars_dict=None):
286
322
  '%s was used as a variable, but was not declared in the vars dict '
287
323
  '(file %r, line %s)' % (
288
324
  arg, filename, getattr(node, 'lineno', '<unknown>')))
289
- return vars_dict[arg]
325
+ val = vars_dict[arg]
326
+ if isinstance(val, ConstantString):
327
+ val = val.value
328
+ return val
290
329
  elif isinstance(node, ast.BinOp) and isinstance(node.op, ast.Add):
291
330
  return _convert(node.left) + _convert(node.right)
292
331
  elif isinstance(node, ast.BinOp) and isinstance(node.op, ast.Mod):
@@ -375,44 +414,10 @@ def Exec(content, filename='', vars_override=None, builtin_vars=None):
375
414
  value = _gclient_eval(node, filename, vars_dict)
376
415
  local_scope.SetNode(name, value, node)
377
416
 
378
- return _GCLIENT_SCHEMA.validate(local_scope)
379
-
380
-
381
- def ExecLegacy(content, filename='<unknown>', vars_override=None,
382
- builtin_vars=None):
383
- """Executes a DEPS file |content| using exec."""
384
- local_scope = {}
385
- global_scope = {'Var': lambda var_name: '{%s}' % var_name}
386
-
387
- # If we use 'exec' directly, it complains that 'Parse' contains a nested
388
- # function with free variables.
389
- # This is because on versions of Python < 2.7.9, "exec(a, b, c)" not the same
390
- # as "exec a in b, c" (See https://bugs.python.org/issue21591).
391
- eval(compile(content, filename, 'exec'), global_scope, local_scope)
392
-
393
- vars_dict = {}
394
- vars_dict.update(local_scope.get('vars', {}))
395
- if builtin_vars:
396
- vars_dict.update(builtin_vars)
397
- if vars_override:
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
402
-
403
- def _DeepFormat(node):
404
- if isinstance(node, basestring):
405
- return node.format(**vars_dict)
406
- elif isinstance(node, dict):
407
- return {k.format(**vars_dict): _DeepFormat(v) for k, v in node.items()}
408
- elif isinstance(node, list):
409
- return [_DeepFormat(elem) for elem in node]
410
- elif isinstance(node, tuple):
411
- return tuple(_DeepFormat(elem) for elem in node)
412
- else:
413
- return node
414
-
415
- return _DeepFormat(local_scope)
417
+ try:
418
+ return _GCLIENT_SCHEMA.validate(local_scope)
419
+ except schema.SchemaError as e:
420
+ raise gclient_utils.Error(str(e))
416
421
 
417
422
 
418
423
  def _StandardizeDeps(deps_dict, vars_dict):
@@ -426,7 +431,7 @@ def _StandardizeDeps(deps_dict, vars_dict):
426
431
  new_deps_dict = {}
427
432
  for dep_name, dep_info in deps_dict.items():
428
433
  dep_name = dep_name.format(**vars_dict)
429
- if not isinstance(dep_info, collections.Mapping):
434
+ if not isinstance(dep_info, collections_abc.Mapping):
430
435
  dep_info = {'url': dep_info}
431
436
  dep_info.setdefault('dep_type', 'git')
432
437
  new_deps_dict[dep_name] = dep_info
@@ -480,18 +485,15 @@ def UpdateCondition(info_dict, op, new_condition):
480
485
  del info_dict['condition']
481
486
 
482
487
 
483
- def Parse(content, validate_syntax, filename, vars_override=None,
484
- builtin_vars=None):
488
+ def Parse(content, filename, vars_override=None, builtin_vars=None):
485
489
  """Parses DEPS strings.
486
490
 
487
491
  Executes the Python-like string stored in content, resulting in a Python
488
- dictionary specifyied by the schema above. Supports syntax validation and
492
+ dictionary specified by the schema above. Supports syntax validation and
489
493
  variable expansion.
490
494
 
491
495
  Args:
492
496
  content: str. DEPS file stored as a string.
493
- validate_syntax: bool. Whether syntax should be validated using the schema
494
- defined above.
495
497
  filename: str. The name of the DEPS file, or a string describing the source
496
498
  of the content, e.g. '<string>', '<unknown>'.
497
499
  vars_override: dict, optional. A dictionary with overrides for the variables
@@ -503,10 +505,7 @@ def Parse(content, validate_syntax, filename, vars_override=None,
503
505
  A Python dict with the parsed contents of the DEPS file, as specified by the
504
506
  schema above.
505
507
  """
506
- if validate_syntax:
507
- result = Exec(content, filename, vars_override, builtin_vars)
508
- else:
509
- result = ExecLegacy(content, filename, vars_override, builtin_vars)
508
+ result = Exec(content, filename, vars_override, builtin_vars)
510
509
 
511
510
  vars_dict = result.get('vars', {})
512
511
  if 'deps' in result:
@@ -514,14 +513,14 @@ def Parse(content, validate_syntax, filename, vars_override=None,
514
513
 
515
514
  if 'deps_os' in result:
516
515
  deps = result.setdefault('deps', {})
517
- for os_name, os_deps in result['deps_os'].iteritems():
516
+ for os_name, os_deps in result['deps_os'].items():
518
517
  os_deps = _StandardizeDeps(os_deps, vars_dict)
519
518
  _MergeDepsOs(deps, os_deps, os_name)
520
519
  del result['deps_os']
521
520
 
522
521
  if 'hooks_os' in result:
523
522
  hooks = result.setdefault('hooks', [])
524
- for os_name, os_hooks in result['hooks_os'].iteritems():
523
+ for os_name, os_hooks in result['hooks_os'].items():
525
524
  for hook in os_hooks:
526
525
  UpdateCondition(hook, 'and', 'checkout_' + os_name)
527
526
  hooks.extend(os_hooks)
@@ -538,9 +537,11 @@ def EvaluateCondition(condition, variables, referenced_variables=None):
538
537
  main_node = ast.parse(condition, mode='eval')
539
538
  if isinstance(main_node, ast.Expression):
540
539
  main_node = main_node.body
541
- def _convert(node):
540
+ def _convert(node, allow_tuple=False):
542
541
  if isinstance(node, ast.Str):
543
542
  return node.s
543
+ elif isinstance(node, ast.Tuple) and allow_tuple:
544
+ return tuple(map(_convert, node.elts))
544
545
  elif isinstance(node, ast.Name):
545
546
  if node.id in referenced_variables:
546
547
  raise ValueError(
@@ -567,34 +568,27 @@ def EvaluateCondition(condition, variables, referenced_variables=None):
567
568
  # between arguments for GN to be passed verbatim, and ones to
568
569
  # be evaluated.
569
570
  return node.id
571
+ elif not sys.version_info[:2] < (3, 4) and isinstance(
572
+ node, ast.NameConstant): # Since Python 3.4
573
+ return node.value
570
574
  elif isinstance(node, ast.BoolOp) and isinstance(node.op, ast.Or):
571
- if len(node.values) != 2:
572
- raise ValueError(
573
- 'invalid "or": exactly 2 operands required (inside %r)' % (
574
- condition))
575
- left = _convert(node.values[0])
576
- right = _convert(node.values[1])
577
- if not isinstance(left, bool):
578
- raise ValueError(
579
- 'invalid "or" operand %r (inside %r)' % (left, condition))
580
- if not isinstance(right, bool):
581
- raise ValueError(
582
- 'invalid "or" operand %r (inside %r)' % (right, condition))
583
- return left or right
575
+ bool_values = []
576
+ for value in node.values:
577
+ bool_values.append(_convert(value))
578
+ if not isinstance(bool_values[-1], bool):
579
+ raise ValueError(
580
+ 'invalid "or" operand %r (inside %r)' % (
581
+ bool_values[-1], condition))
582
+ return any(bool_values)
584
583
  elif isinstance(node, ast.BoolOp) and isinstance(node.op, ast.And):
585
- if len(node.values) != 2:
586
- raise ValueError(
587
- 'invalid "and": exactly 2 operands required (inside %r)' % (
588
- condition))
589
- left = _convert(node.values[0])
590
- right = _convert(node.values[1])
591
- if not isinstance(left, bool):
592
- raise ValueError(
593
- 'invalid "and" operand %r (inside %r)' % (left, condition))
594
- if not isinstance(right, bool):
595
- raise ValueError(
596
- 'invalid "and" operand %r (inside %r)' % (right, condition))
597
- return left and right
584
+ bool_values = []
585
+ for value in node.values:
586
+ bool_values.append(_convert(value))
587
+ if not isinstance(bool_values[-1], bool):
588
+ raise ValueError(
589
+ 'invalid "and" operand %r (inside %r)' % (
590
+ bool_values[-1], condition))
591
+ return all(bool_values)
598
592
  elif isinstance(node, ast.UnaryOp) and isinstance(node.op, ast.Not):
599
593
  value = _convert(node.operand)
600
594
  if not isinstance(value, bool):
@@ -612,12 +606,15 @@ def EvaluateCondition(condition, variables, referenced_variables=None):
612
606
  condition))
613
607
 
614
608
  left = _convert(node.left)
615
- right = _convert(node.comparators[0])
609
+ right = _convert(
610
+ node.comparators[0], allow_tuple=isinstance(node.ops[0], ast.In))
616
611
 
617
612
  if isinstance(node.ops[0], ast.Eq):
618
613
  return left == right
619
614
  if isinstance(node.ops[0], ast.NotEq):
620
615
  return left != right
616
+ if isinstance(node.ops[0], ast.In):
617
+ return left in right
621
618
 
622
619
  raise ValueError(
623
620
  'unexpected operator: %s %s (inside %r)' % (
@@ -639,10 +636,13 @@ def RenderDEPSFile(gclient_dict):
639
636
 
640
637
 
641
638
  def _UpdateAstString(tokens, node, value):
639
+ if isinstance(node, ast.Call):
640
+ node = node.args[0]
642
641
  position = node.lineno, node.col_offset
643
642
  quote_char = ''
644
643
  if isinstance(node, ast.Str):
645
644
  quote_char = tokens[position][1][0]
645
+ value = value.encode('unicode_escape').decode('utf-8')
646
646
  tokens[position][1] = quote_char + value + quote_char
647
647
  node.s = value
648
648
 
@@ -685,7 +685,7 @@ def AddVar(gclient_dict, var_name, value):
685
685
  col = node.keys[0].col_offset
686
686
 
687
687
  # We use a minimal Python dictionary, so that ast can parse it.
688
- var_content = '{\n%s"%s": "%s",\n}' % (' ' * col, var_name, value)
688
+ var_content = '{\n%s"%s": "%s",\n}\n' % (' ' * col, var_name, value)
689
689
  var_ast = ast.parse(var_content).body[0].value
690
690
 
691
691
  # Set the ast nodes for the key and value.
@@ -704,7 +704,7 @@ def AddVar(gclient_dict, var_name, value):
704
704
  var_tokens = {
705
705
  token[2]: list(token)
706
706
  # Ignore the tokens corresponding to braces and new lines.
707
- for token in var_tokens[2:-2]
707
+ for token in var_tokens[2:-3]
708
708
  }
709
709
 
710
710
  gclient_dict.tokens = _ShiftLinesInTokens(gclient_dict.tokens, 1, line)
@@ -797,6 +797,15 @@ def SetRevision(gclient_dict, dep_name, new_revision):
797
797
  if isinstance(node, ast.BinOp):
798
798
  node = node.right
799
799
 
800
+ if isinstance(node, ast.Str):
801
+ token = _gclient_eval(tokens[node.lineno, node.col_offset][1])
802
+ if token != node.s:
803
+ raise ValueError(
804
+ 'Can\'t update value for %s. Multiline strings and implicitly '
805
+ 'concatenated strings are not supported.\n'
806
+ 'Consider reformatting the DEPS file.' % dep_key)
807
+
808
+
800
809
  if not isinstance(node, ast.Call) and not isinstance(node, ast.Str):
801
810
  raise ValueError(
802
811
  "Unsupported dependency revision format. Please file a bug to the "
@@ -838,7 +847,10 @@ def GetVar(gclient_dict, var_name):
838
847
  raise KeyError(
839
848
  "Could not find any variable called %s." % var_name)
840
849
 
841
- return gclient_dict['vars'][var_name]
850
+ val = gclient_dict['vars'][var_name]
851
+ if isinstance(val, ConstantString):
852
+ return val.value
853
+ return val
842
854
 
843
855
 
844
856
  def GetCIPD(gclient_dict, dep_name, package_name):
@@ -871,7 +883,7 @@ def GetRevision(gclient_dict, dep_name):
871
883
  elif isinstance(dep, basestring):
872
884
  _, _, revision = dep.partition('@')
873
885
  return revision or None
874
- elif isinstance(dep, collections.Mapping) and 'url' in dep:
886
+ elif isinstance(dep, collections_abc.Mapping) and 'url' in dep:
875
887
  _, _, revision = dep['url'].partition('@')
876
888
  return revision or None
877
889
  else:
@@ -10,7 +10,10 @@
10
10
 
11
11
  from __future__ import print_function
12
12
 
13
+ import gclient_utils
14
+ import logging
13
15
  import os
16
+ import subprocess2
14
17
  import sys
15
18
 
16
19
 
@@ -24,65 +27,66 @@ def FindGclientRoot(from_dir, filename='.gclient'):
24
27
  return None
25
28
  path = split_path[0]
26
29
 
30
+ logging.info('Found gclient root at ' + path)
31
+
32
+ if path == real_from_dir:
33
+ return path
34
+
27
35
  # If we did not find the file in the current directory, make sure we are in a
28
36
  # sub directory that is controlled by this configuration.
29
- if path != real_from_dir:
30
- entries_filename = os.path.join(path, filename + '_entries')
31
- if not os.path.exists(entries_filename):
32
- # If .gclient_entries does not exist, a previous call to gclient sync
33
- # might have failed. In that case, we cannot verify that the .gclient
34
- # is the one we want to use. In order to not to cause too much trouble,
35
- # just issue a warning and return the path anyway.
36
- print(
37
- "%s missing, %s file in parent directory %s might not be the file "
38
- "you want to use." % (entries_filename, filename, path),
39
- file=sys.stderr)
37
+ entries_filename = os.path.join(path, filename + '_entries')
38
+ if not os.path.exists(entries_filename):
39
+ # If .gclient_entries does not exist, a previous call to gclient sync
40
+ # might have failed. In that case, we cannot verify that the .gclient
41
+ # is the one we want to use. In order to not to cause too much trouble,
42
+ # just issue a warning and return the path anyway.
43
+ print(
44
+ "%s missing, %s file in parent directory %s might not be the file "
45
+ "you want to use." % (entries_filename, filename, path),
46
+ file=sys.stderr)
47
+ return path
48
+
49
+ entries_content = gclient_utils.FileRead(entries_filename)
50
+ scope = {}
51
+ try:
52
+ exec(entries_content, scope)
53
+ except (SyntaxError, Exception) as e:
54
+ gclient_utils.SyntaxErrorToError(filename, e)
55
+
56
+ all_directories = scope['entries'].keys()
57
+ path_to_check = os.path.relpath(real_from_dir, path)
58
+ while path_to_check:
59
+ if path_to_check in all_directories:
40
60
  return path
41
- scope = {}
42
- try:
43
- import io
44
- with io.open(entries_filename, encoding='utf-8') as f:
45
- exec(f.read(), scope)
46
- except SyntaxError as e:
47
- SyntaxErrorToError(filename, e)
48
- all_directories = scope['entries'].keys()
49
- path_to_check = real_from_dir[len(path)+1:]
50
- while path_to_check:
51
- if path_to_check in all_directories:
52
- return path
53
- path_to_check = os.path.dirname(path_to_check)
54
- return None
61
+ path_to_check = os.path.dirname(path_to_check)
55
62
 
56
- import logging
57
- logging.info('Found gclient root at ' + path)
58
- return path
63
+ return None
59
64
 
60
65
 
61
66
  def GetPrimarySolutionPath():
62
67
  """Returns the full path to the primary solution. (gclient_root + src)"""
63
68
 
64
69
  gclient_root = FindGclientRoot(os.getcwd())
65
- if not gclient_root:
66
- # Some projects might not use .gclient. Try to see whether we're in a git
67
- # checkout.
68
- top_dir = [os.getcwd()]
69
- def filter_fn(line):
70
- repo_root_path = os.path.normpath(line.rstrip('\n'))
71
- if os.path.exists(repo_root_path):
72
- top_dir[0] = repo_root_path
73
- try:
74
- CheckCallAndFilter(["git", "rev-parse", "--show-toplevel"],
75
- print_stdout=False, filter_fn=filter_fn)
76
- except Exception:
77
- pass
78
- top_dir = top_dir[0]
79
- if os.path.exists(os.path.join(top_dir, 'buildtools')):
80
- return top_dir
81
- return None
82
-
83
- # Some projects' top directory is not named 'src'.
84
- source_dir_name = GetGClientPrimarySolutionName(gclient_root) or 'src'
85
- return os.path.join(gclient_root, source_dir_name)
70
+ if gclient_root:
71
+ # Some projects' top directory is not named 'src'.
72
+ source_dir_name = GetGClientPrimarySolutionName(gclient_root) or 'src'
73
+ return os.path.join(gclient_root, source_dir_name)
74
+
75
+ # Some projects might not use .gclient. Try to see whether we're in a git
76
+ # checkout that contains a 'buildtools' subdir.
77
+ top_dir = os.getcwd()
78
+ try:
79
+ top_dir = subprocess2.check_output(
80
+ ['git', 'rev-parse', '--show-toplevel'])
81
+ if sys.version_info.major == 3:
82
+ top_dir = top_dir.decode('utf-8', 'replace')
83
+ top_dir = os.path.normpath(top_dir.strip())
84
+ except subprocess2.CalledProcessError:
85
+ pass
86
+
87
+ if os.path.exists(os.path.join(top_dir, 'buildtools')):
88
+ return top_dir
89
+ return None
86
90
 
87
91
 
88
92
  def GetBuildtoolsPath():
@@ -98,12 +102,18 @@ def GetBuildtoolsPath():
98
102
  primary_solution = GetPrimarySolutionPath()
99
103
  if not primary_solution:
100
104
  return None
105
+
101
106
  buildtools_path = os.path.join(primary_solution, 'buildtools')
102
- if not os.path.exists(buildtools_path):
103
- # Buildtools may be in the gclient root.
104
- gclient_root = FindGclientRoot(os.getcwd())
105
- buildtools_path = os.path.join(gclient_root, 'buildtools')
106
- return buildtools_path
107
+ if os.path.exists(buildtools_path):
108
+ return buildtools_path
109
+
110
+ # buildtools may be in the gclient root.
111
+ gclient_root = FindGclientRoot(os.getcwd())
112
+ buildtools_path = os.path.join(gclient_root, 'buildtools')
113
+ if os.path.exists(buildtools_path):
114
+ return buildtools_path
115
+
116
+ return None
107
117
 
108
118
 
109
119
  def GetBuildtoolsPlatformBinaryPath():
@@ -119,7 +129,7 @@ def GetBuildtoolsPlatformBinaryPath():
119
129
  elif sys.platform.startswith('linux'):
120
130
  subdir = 'linux64'
121
131
  else:
122
- raise Error('Unknown platform: ' + sys.platform)
132
+ raise gclient_utils.Error('Unknown platform: ' + sys.platform)
123
133
  return os.path.join(buildtools_path, subdir)
124
134
 
125
135
 
@@ -133,9 +143,9 @@ def GetExeSuffix():
133
143
  def GetGClientPrimarySolutionName(gclient_root_dir_path):
134
144
  """Returns the name of the primary solution in the .gclient file specified."""
135
145
  gclient_config_file = os.path.join(gclient_root_dir_path, '.gclient')
146
+ gclient_config_contents = gclient_utils.FileRead(gclient_config_file)
136
147
  env = {}
137
- exec(compile(open(gclient_config_file).read(), gclient_config_file, 'exec'),
138
- env)
148
+ exec(gclient_config_contents, env)
139
149
  solutions = env.get('solutions', [])
140
150
  if solutions:
141
151
  return solutions[0].get('name')