libv8 6.7.288.46.1 → 7.3.492.27.0beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (408) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -0
  3. data/CHANGELOG.md +4 -0
  4. data/README.md +2 -0
  5. data/ext/libv8/builder.rb +6 -2
  6. data/lib/libv8/version.rb +1 -1
  7. data/vendor/depot_tools/.gitattributes +1 -0
  8. data/vendor/depot_tools/.gitignore +7 -0
  9. data/vendor/depot_tools/CROS_OWNERS +5 -0
  10. data/vendor/depot_tools/OWNERS +12 -1
  11. data/vendor/depot_tools/PRESUBMIT.py +16 -9
  12. data/vendor/depot_tools/README.md +9 -2
  13. data/vendor/depot_tools/autoninja +14 -6
  14. data/vendor/depot_tools/autoninja.bat +11 -1
  15. data/vendor/depot_tools/autoninja.py +40 -18
  16. data/vendor/depot_tools/bb +12 -0
  17. data/vendor/depot_tools/bb.bat +7 -0
  18. data/vendor/depot_tools/bootstrap/win/manifest.txt +1 -1
  19. data/vendor/depot_tools/bootstrap/win/manifest_bleeding_edge.txt +1 -1
  20. data/vendor/depot_tools/bootstrap/win/win_tools.py +2 -1
  21. data/vendor/depot_tools/buildbucket.py +57 -4
  22. data/vendor/depot_tools/cipd +157 -44
  23. data/vendor/depot_tools/cipd.bat +51 -14
  24. data/vendor/depot_tools/cipd.ps1 +104 -42
  25. data/vendor/depot_tools/cipd_client_version +1 -1
  26. data/vendor/depot_tools/cipd_client_version.digests +21 -0
  27. data/vendor/depot_tools/cipd_manifest.txt +19 -6
  28. data/vendor/depot_tools/cipd_manifest.versions +318 -0
  29. data/vendor/depot_tools/clang_format.py +4 -4
  30. data/vendor/depot_tools/cpplint.py +44 -199
  31. data/vendor/depot_tools/dart_format.py +2 -2
  32. data/vendor/depot_tools/detect_host_arch.py +8 -3
  33. data/vendor/depot_tools/download_from_google_storage.py +47 -39
  34. data/vendor/depot_tools/fetch.py +30 -18
  35. data/vendor/depot_tools/fetch_configs/android_internal.py +34 -0
  36. data/vendor/depot_tools/fetch_configs/chromium.py +18 -1
  37. data/vendor/depot_tools/fetch_configs/config_util.py +4 -2
  38. data/vendor/depot_tools/fetch_configs/inspector_protocol.py +40 -0
  39. data/vendor/depot_tools/fetch_configs/node-ci.py +41 -0
  40. data/vendor/depot_tools/fix_encoding.py +3 -3
  41. data/vendor/depot_tools/gclient +1 -1
  42. data/vendor/depot_tools/gclient.py +415 -198
  43. data/vendor/depot_tools/gclient_eval.py +220 -171
  44. data/vendor/depot_tools/gclient_paths.py +142 -0
  45. data/vendor/depot_tools/gclient_scm.py +200 -51
  46. data/vendor/depot_tools/gclient_utils.py +88 -191
  47. data/vendor/depot_tools/gerrit_client.py +13 -0
  48. data/vendor/depot_tools/gerrit_util.py +158 -23
  49. data/vendor/depot_tools/git-nav-upstream +1 -1
  50. data/vendor/depot_tools/git_cache.py +77 -24
  51. data/vendor/depot_tools/git_cl.py +705 -1099
  52. data/vendor/depot_tools/git_common.py +9 -6
  53. data/vendor/depot_tools/git_map_branches.py +19 -2
  54. data/vendor/depot_tools/git_nav_downstream.py +3 -4
  55. data/vendor/depot_tools/git_rebase_update.py +14 -0
  56. data/vendor/depot_tools/git_reparent_branch.py +8 -2
  57. data/vendor/depot_tools/gn.py +38 -3
  58. data/vendor/depot_tools/gsutil.py +8 -3
  59. data/vendor/depot_tools/gsutil.py.bat +15 -0
  60. data/vendor/depot_tools/gsutil.vpython +16 -0
  61. data/vendor/depot_tools/infra/config/OWNERS +0 -1
  62. data/vendor/depot_tools/infra/config/recipes.cfg +3 -2
  63. data/vendor/depot_tools/lucicfg +12 -0
  64. data/vendor/depot_tools/lucicfg.bat +7 -0
  65. data/vendor/depot_tools/man/html/git-map-branches.html +34 -2
  66. data/vendor/depot_tools/man/html/git-new-branch.html +40 -32
  67. data/vendor/depot_tools/man/man1/git-map-branches.1 +24 -5
  68. data/vendor/depot_tools/man/man1/git-new-branch.1 +35 -27
  69. data/vendor/depot_tools/man/src/git-map-branches.demo.1.sh +1 -0
  70. data/vendor/depot_tools/man/src/git-map-branches.txt +10 -0
  71. data/vendor/depot_tools/man/src/git-new-branch.demo.1.sh +9 -4
  72. data/vendor/depot_tools/man/src/git-new-branch.txt +1 -1
  73. data/vendor/depot_tools/metrics.README.md +98 -0
  74. data/vendor/depot_tools/metrics.py +296 -0
  75. data/vendor/depot_tools/metrics_utils.py +303 -0
  76. data/vendor/depot_tools/my_activity.py +91 -29
  77. data/vendor/depot_tools/ninja +1 -1
  78. data/vendor/depot_tools/ninjalog.README.md +64 -0
  79. data/vendor/depot_tools/ninjalog_uploader.py +232 -0
  80. data/vendor/depot_tools/ninjalog_uploader_wrapper.py +116 -0
  81. data/vendor/depot_tools/owners.py +30 -13
  82. data/vendor/depot_tools/owners_finder.py +5 -2
  83. data/vendor/depot_tools/presubmit_canned_checks.py +188 -29
  84. data/vendor/depot_tools/presubmit_support.py +18 -41
  85. data/vendor/depot_tools/pylintrc +23 -19
  86. data/vendor/depot_tools/recipes/OWNERS +2 -0
  87. data/vendor/depot_tools/recipes/README.recipes.md +344 -151
  88. data/vendor/depot_tools/recipes/recipe_modules/bot_update/OWNERS +2 -0
  89. data/vendor/depot_tools/recipes/recipe_modules/bot_update/__init__.py +2 -16
  90. data/vendor/depot_tools/recipes/recipe_modules/bot_update/api.py +141 -99
  91. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic.json +5 -8
  92. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_luci.json +5 -8
  93. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_with_branch_heads.json +6 -98
  94. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/clobber.json +4 -9
  95. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/deprecated_got_revision_mapping.json +45 -5
  96. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_rebase_patch_ref.json +4 -9
  97. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_reset.json +4 -9
  98. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/{tryjob.json → input_commit_with_id_without_repo.json} +6 -11
  99. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/{tryjob_empty_revision.json → multiple_patch_refs.json} +8 -9
  100. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_apply_patch_on_gclient.json +19 -29
  101. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/{trychange.json → refs.json} +4 -9
  102. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/reset_root_solution_revision.json +4 -9
  103. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail.json +51 -6
  104. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch.json +50 -6
  105. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch_download.json +51 -6
  106. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle.json +17 -25
  107. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_branch_heads.json +17 -25
  108. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_feature_branch.json +18 -26
  109. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8_feature_branch.json +18 -26
  110. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_webrtc.json +26 -28
  111. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8.json +45 -5
  112. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8_head_by_default.json +17 -25
  113. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/unrecognized_commit_repo.json +13 -0
  114. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_manifest_name.json +13 -152
  115. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_tags.json +4 -9
  116. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.py +185 -202
  117. data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/bot_update.py +52 -157
  118. data/vendor/depot_tools/recipes/recipe_modules/bot_update/test_api.py +5 -14
  119. data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/ensure_checkout.py +34 -0
  120. data/vendor/depot_tools/recipes/recipe_modules/cipd/api.py +14 -2
  121. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic.json +4 -5
  122. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic_pkg.json +4 -5
  123. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-failed.json +7 -5
  124. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-many-instances.json +4 -5
  125. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/mac64.json +4 -5
  126. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_file.json +9 -3
  127. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_mode.json +9 -3
  128. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_verfile.json +9 -3
  129. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/win64.json +4 -5
  130. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk arch.json +2 -3
  131. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk bits.json +2 -3
  132. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_32.json +2 -3
  133. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_64.json +2 -3
  134. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_32.json +2 -3
  135. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_64.json +2 -3
  136. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_mips_64.json +2 -3
  137. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/mac_intel_64.json +2 -3
  138. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_32.json +2 -3
  139. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_64.json +2 -3
  140. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/api.py +13 -8
  141. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic.json +18 -12
  142. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic_luci.json +18 -12
  143. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/win.json +18 -12
  144. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.py +3 -0
  145. data/vendor/depot_tools/recipes/recipe_modules/gclient/__init__.py +1 -0
  146. data/vendor/depot_tools/recipes/recipe_modules/gclient/api.py +58 -46
  147. data/vendor/depot_tools/recipes/recipe_modules/gclient/config.py +65 -22
  148. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/basic.json +20 -21
  149. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/buildbot.json +20 -21
  150. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/revision.json +20 -21
  151. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/tryserver.json +20 -21
  152. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.py +5 -2
  153. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/patch_project.py +62 -14
  154. data/vendor/depot_tools/recipes/recipe_modules/gerrit/api.py +24 -38
  155. data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.expected/basic.json +56 -50
  156. data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.py +15 -9
  157. data/vendor/depot_tools/recipes/recipe_modules/git/__init__.py +4 -1
  158. data/vendor/depot_tools/recipes/recipe_modules/git/api.py +34 -22
  159. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic.json +5 -6
  160. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_branch.json +5 -6
  161. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_file_name.json +5 -6
  162. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_hash.json +5 -6
  163. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_luci.json +222 -0
  164. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_ref.json +5 -6
  165. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_submodule_update_force.json +5 -6
  166. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_tags.json +224 -0
  167. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/can_fail_build.json +10 -6
  168. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cannot_fail_build.json +5 -7
  169. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cat-file_test.json +5 -6
  170. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_delta.json +5 -6
  171. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_failed.json +5 -7
  172. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output.json +5 -6
  173. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output_fails_build.json +10 -5
  174. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/curl_trace_file.json +5 -6
  175. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/git-cache-checkout.json +8 -9
  176. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/platform_win.json +5 -6
  177. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/rebase_failed.json +12 -8
  178. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/remote_not_origin.json +5 -6
  179. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/set_got_revision.json +5 -6
  180. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.py +27 -11
  181. data/vendor/depot_tools/recipes/recipe_modules/git_cl/api.py +1 -1
  182. data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.expected/basic.json +12 -13
  183. data/vendor/depot_tools/recipes/recipe_modules/gitiles/__init__.py +5 -0
  184. data/vendor/depot_tools/recipes/recipe_modules/gitiles/api.py +120 -5
  185. data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.expected/basic.json +45 -3
  186. data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.py +25 -0
  187. data/vendor/depot_tools/recipes/recipe_modules/gitiles/resources/gerrit_client.py +56 -4
  188. data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.expected/basic.json +6 -0
  189. data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.py +49 -0
  190. data/vendor/depot_tools/recipes/recipe_modules/gsutil/api.py +24 -13
  191. data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.expected/basic.json +13 -14
  192. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/basic.json +2 -3
  193. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_linux.json +2 -3
  194. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_mac.json +2 -3
  195. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_win.json +2 -3
  196. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_linux.json +2 -3
  197. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_mac.json +2 -3
  198. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_win.json +2 -3
  199. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_linux.json +2 -3
  200. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_mac.json +2 -3
  201. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_win.json +2 -3
  202. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/path_config.py +1 -2
  203. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/__init__.py +35 -0
  204. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/api.py +116 -0
  205. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/linux.json +22 -0
  206. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/mac.json +82 -0
  207. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/win.json +22 -0
  208. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.py +23 -0
  209. data/vendor/depot_tools/recipes/recipe_modules/presubmit/__init__.py +1 -0
  210. data/vendor/depot_tools/recipes/recipe_modules/presubmit/api.py +2 -7
  211. data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.expected/basic.json +7 -6
  212. data/vendor/depot_tools/recipes/recipe_modules/tryserver/__init__.py +1 -0
  213. data/vendor/depot_tools/recipes/recipe_modules/tryserver/api.py +117 -8
  214. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/basic_tags.json +4 -5
  215. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/set_failure_hash_with_no_steps.json +7 -4
  216. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch.json +98 -7
  217. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch_and_target_ref.json +147 -0
  218. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_git_patch.json +8 -5
  219. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_git_patch_luci.json +8 -5
  220. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch.json +9 -6
  221. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch_new.json +9 -6
  222. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.py +27 -2
  223. data/vendor/depot_tools/recipes/recipe_modules/tryserver/test_api.py +14 -0
  224. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/__init__.py +25 -0
  225. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/api.py +137 -0
  226. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/linux.json +22 -0
  227. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/mac.json +22 -0
  228. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/win.json +107 -0
  229. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.py +26 -0
  230. data/vendor/depot_tools/recipes/recipes.py +37 -27
  231. data/vendor/depot_tools/recipes/recipes/fetch_end_to_end_test.expected/basic.json +7 -10
  232. data/vendor/depot_tools/repo +34 -8
  233. data/vendor/depot_tools/roll_dep.py +52 -49
  234. data/vendor/depot_tools/scm.py +38 -23
  235. data/vendor/depot_tools/setup_color.py +4 -2
  236. data/vendor/depot_tools/split_cl.py +32 -4
  237. data/vendor/depot_tools/subprocess2.py +22 -4
  238. data/vendor/depot_tools/third_party/httplib2/README.chromium +2 -2
  239. data/vendor/depot_tools/third_party/httplib2/__init__.py +242 -158
  240. data/vendor/depot_tools/third_party/httplib2/cacerts.txt +57 -44
  241. data/vendor/depot_tools/third_party/httplib2/socks.py +15 -5
  242. data/vendor/depot_tools/third_party/logilab/README.chromium +2 -4
  243. data/vendor/depot_tools/third_party/logilab/astroid/README.chromium +2 -1
  244. data/vendor/depot_tools/third_party/logilab/astroid/__init__.py +10 -5
  245. data/vendor/depot_tools/third_party/logilab/astroid/__pkginfo__.py +5 -5
  246. data/vendor/depot_tools/third_party/logilab/astroid/arguments.py +233 -0
  247. data/vendor/depot_tools/third_party/logilab/astroid/as_string.py +82 -33
  248. data/vendor/depot_tools/third_party/logilab/astroid/bases.py +137 -153
  249. data/vendor/depot_tools/third_party/logilab/astroid/brain/{builtin_inference.py → brain_builtin_inference.py} +117 -26
  250. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_dateutil.py +15 -0
  251. data/vendor/depot_tools/third_party/logilab/astroid/brain/{py2gi.py → brain_gi.py} +48 -8
  252. data/vendor/depot_tools/third_party/logilab/astroid/brain/{py2mechanize.py → brain_mechanize.py} +0 -0
  253. data/vendor/depot_tools/third_party/logilab/astroid/brain/{pynose.py → brain_nose.py} +4 -1
  254. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_numpy.py +62 -0
  255. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_pytest.py +76 -0
  256. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_qt.py +44 -0
  257. data/vendor/depot_tools/third_party/logilab/astroid/brain/{pysix_moves.py → brain_six.py} +28 -1
  258. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_ssl.py +65 -0
  259. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_stdlib.py +473 -0
  260. data/vendor/depot_tools/third_party/logilab/astroid/builder.py +104 -81
  261. data/vendor/depot_tools/third_party/logilab/astroid/context.py +81 -0
  262. data/vendor/depot_tools/third_party/logilab/astroid/decorators.py +75 -0
  263. data/vendor/depot_tools/third_party/logilab/astroid/exceptions.py +20 -0
  264. data/vendor/depot_tools/third_party/logilab/astroid/inference.py +137 -183
  265. data/vendor/depot_tools/third_party/logilab/astroid/manager.py +45 -169
  266. data/vendor/depot_tools/third_party/logilab/astroid/mixins.py +37 -14
  267. data/vendor/depot_tools/third_party/logilab/astroid/modutils.py +112 -41
  268. data/vendor/depot_tools/third_party/logilab/astroid/node_classes.py +243 -156
  269. data/vendor/depot_tools/third_party/logilab/astroid/nodes.py +35 -22
  270. data/vendor/depot_tools/third_party/logilab/astroid/objects.py +186 -0
  271. data/vendor/depot_tools/third_party/logilab/astroid/protocols.py +157 -102
  272. data/vendor/depot_tools/third_party/logilab/astroid/raw_building.py +32 -8
  273. data/vendor/depot_tools/third_party/logilab/astroid/rebuilder.py +372 -309
  274. data/vendor/depot_tools/third_party/logilab/astroid/scoped_nodes.py +652 -420
  275. data/vendor/depot_tools/third_party/logilab/astroid/test_utils.py +4 -21
  276. data/vendor/depot_tools/third_party/logilab/astroid/transforms.py +96 -0
  277. data/vendor/depot_tools/third_party/logilab/astroid/util.py +89 -0
  278. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/LICENSE +19 -0
  279. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/README.chromium +11 -0
  280. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/__init__.py +20 -0
  281. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/cext.c +1421 -0
  282. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/compat.py +9 -0
  283. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/simple.py +246 -0
  284. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/slots.py +414 -0
  285. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/utils.py +13 -0
  286. data/vendor/depot_tools/third_party/logilab/wrapt/LICENSE +24 -0
  287. data/vendor/depot_tools/third_party/logilab/wrapt/README.chromium +11 -0
  288. data/vendor/depot_tools/third_party/logilab/wrapt/__init__.py +19 -0
  289. data/vendor/depot_tools/third_party/logilab/wrapt/_wrappers.c +2729 -0
  290. data/vendor/depot_tools/third_party/logilab/wrapt/arguments.py +96 -0
  291. data/vendor/depot_tools/third_party/logilab/wrapt/decorators.py +512 -0
  292. data/vendor/depot_tools/third_party/logilab/wrapt/importer.py +228 -0
  293. data/vendor/depot_tools/third_party/logilab/wrapt/wrappers.py +901 -0
  294. data/vendor/depot_tools/third_party/pylint/README.chromium +2 -25
  295. data/vendor/depot_tools/third_party/pylint/__pkginfo__.py +13 -3
  296. data/vendor/depot_tools/third_party/pylint/checkers/__init__.py +1 -2
  297. data/vendor/depot_tools/third_party/pylint/checkers/async.py +82 -0
  298. data/vendor/depot_tools/third_party/pylint/checkers/base.py +893 -119
  299. data/vendor/depot_tools/third_party/pylint/checkers/classes.py +342 -204
  300. data/vendor/depot_tools/third_party/pylint/checkers/design_analysis.py +51 -34
  301. data/vendor/depot_tools/third_party/pylint/checkers/exceptions.py +84 -47
  302. data/vendor/depot_tools/third_party/pylint/checkers/format.py +55 -30
  303. data/vendor/depot_tools/third_party/pylint/checkers/imports.py +314 -73
  304. data/vendor/depot_tools/third_party/pylint/checkers/logging.py +10 -8
  305. data/vendor/depot_tools/third_party/pylint/checkers/misc.py +2 -1
  306. data/vendor/depot_tools/third_party/pylint/checkers/newstyle.py +45 -48
  307. data/vendor/depot_tools/third_party/pylint/checkers/python3.py +31 -21
  308. data/vendor/depot_tools/third_party/pylint/checkers/raw_metrics.py +3 -3
  309. data/vendor/depot_tools/third_party/pylint/checkers/similar.py +4 -5
  310. data/vendor/depot_tools/third_party/pylint/checkers/spelling.py +24 -10
  311. data/vendor/depot_tools/third_party/pylint/checkers/stdlib.py +120 -56
  312. data/vendor/depot_tools/third_party/pylint/checkers/strings.py +38 -35
  313. data/vendor/depot_tools/third_party/pylint/checkers/typecheck.py +485 -138
  314. data/vendor/depot_tools/third_party/pylint/checkers/utils.py +319 -142
  315. data/vendor/depot_tools/third_party/pylint/checkers/variables.py +329 -207
  316. data/vendor/depot_tools/third_party/pylint/config.py +739 -76
  317. data/vendor/depot_tools/third_party/pylint/epylint.py +9 -5
  318. data/vendor/depot_tools/third_party/pylint/extensions/__init__.py +0 -0
  319. data/vendor/depot_tools/third_party/pylint/extensions/check_docs.py +311 -0
  320. data/vendor/depot_tools/third_party/pylint/extensions/check_elif.py +62 -0
  321. data/vendor/depot_tools/third_party/{logilab/common → pylint}/graph.py +30 -133
  322. data/vendor/depot_tools/third_party/pylint/gui.py +2 -2
  323. data/vendor/depot_tools/third_party/pylint/interfaces.py +21 -3
  324. data/vendor/depot_tools/third_party/pylint/lint.py +123 -140
  325. data/vendor/depot_tools/third_party/pylint/pyreverse/diadefslib.py +10 -13
  326. data/vendor/depot_tools/third_party/pylint/pyreverse/diagrams.py +15 -4
  327. data/vendor/depot_tools/third_party/pylint/pyreverse/inspector.py +372 -0
  328. data/vendor/depot_tools/third_party/pylint/pyreverse/main.py +30 -7
  329. data/vendor/depot_tools/third_party/pylint/pyreverse/utils.py +80 -2
  330. data/vendor/depot_tools/third_party/{logilab/common → pylint/pyreverse}/vcgutils.py +19 -37
  331. data/vendor/depot_tools/third_party/pylint/pyreverse/writer.py +3 -4
  332. data/vendor/depot_tools/third_party/pylint/reporters/__init__.py +34 -18
  333. data/vendor/depot_tools/third_party/pylint/reporters/guireporter.py +1 -1
  334. data/vendor/depot_tools/third_party/pylint/reporters/html.py +10 -3
  335. data/vendor/depot_tools/third_party/pylint/reporters/json.py +10 -4
  336. data/vendor/depot_tools/third_party/pylint/reporters/text.py +94 -3
  337. data/vendor/depot_tools/third_party/pylint/reporters/ureports/__init__.py +106 -0
  338. data/vendor/depot_tools/third_party/{logilab/common → pylint/reporters}/ureports/html_writer.py +17 -57
  339. data/vendor/depot_tools/third_party/{logilab/common → pylint/reporters}/ureports/nodes.py +52 -74
  340. data/vendor/depot_tools/third_party/{logilab/common → pylint/reporters}/ureports/text_writer.py +14 -60
  341. data/vendor/depot_tools/third_party/pylint/testutils.py +22 -20
  342. data/vendor/depot_tools/third_party/pylint/utils.py +268 -44
  343. data/vendor/depot_tools/third_party/repo/progress.py +42 -0
  344. data/vendor/depot_tools/update_depot_tools +1 -1
  345. data/vendor/depot_tools/upload_metrics.py +25 -0
  346. data/vendor/depot_tools/win_toolchain/get_toolchain_if_necessary.py +45 -15
  347. data/vendor/depot_tools/win_toolchain/package_from_installed.py +71 -24
  348. data/vendor/depot_tools/yapf +1 -1
  349. data/vendor/depot_tools/yapf.bat +1 -1
  350. metadata +92 -77
  351. data/vendor/depot_tools/git-crsync +0 -3
  352. data/vendor/depot_tools/infra/config/cq.cfg +0 -32
  353. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/apply_gerrit_ref.json +0 -29
  354. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/apply_gerrit_ref_custom.json +0 -29
  355. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/buildbot.json +0 -105
  356. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/shallow.json +0 -195
  357. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle_deprecated.json +0 -248
  358. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8.json +0 -248
  359. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_manifest_name_no_patch.json +0 -105
  360. data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/apply_gerrit.py +0 -33
  361. data/vendor/depot_tools/third_party/logilab/astroid/brain/py2pytest.py +0 -31
  362. data/vendor/depot_tools/third_party/logilab/astroid/brain/py2qt4.py +0 -22
  363. data/vendor/depot_tools/third_party/logilab/astroid/brain/py2stdlib.py +0 -334
  364. data/vendor/depot_tools/third_party/logilab/astroid/inspector.py +0 -273
  365. data/vendor/depot_tools/third_party/logilab/astroid/utils.py +0 -239
  366. data/vendor/depot_tools/third_party/logilab/common/LICENSE.txt +0 -339
  367. data/vendor/depot_tools/third_party/logilab/common/README.chromium +0 -11
  368. data/vendor/depot_tools/third_party/logilab/common/__init__.py +0 -175
  369. data/vendor/depot_tools/third_party/logilab/common/__pkginfo__.py +0 -57
  370. data/vendor/depot_tools/third_party/logilab/common/cache.py +0 -114
  371. data/vendor/depot_tools/third_party/logilab/common/changelog.py +0 -238
  372. data/vendor/depot_tools/third_party/logilab/common/clcommands.py +0 -334
  373. data/vendor/depot_tools/third_party/logilab/common/cli.py +0 -211
  374. data/vendor/depot_tools/third_party/logilab/common/compat.py +0 -78
  375. data/vendor/depot_tools/third_party/logilab/common/configuration.py +0 -1105
  376. data/vendor/depot_tools/third_party/logilab/common/contexts.py +0 -5
  377. data/vendor/depot_tools/third_party/logilab/common/corbautils.py +0 -117
  378. data/vendor/depot_tools/third_party/logilab/common/daemon.py +0 -101
  379. data/vendor/depot_tools/third_party/logilab/common/date.py +0 -335
  380. data/vendor/depot_tools/third_party/logilab/common/dbf.py +0 -231
  381. data/vendor/depot_tools/third_party/logilab/common/debugger.py +0 -214
  382. data/vendor/depot_tools/third_party/logilab/common/decorators.py +0 -281
  383. data/vendor/depot_tools/third_party/logilab/common/deprecation.py +0 -189
  384. data/vendor/depot_tools/third_party/logilab/common/fileutils.py +0 -404
  385. data/vendor/depot_tools/third_party/logilab/common/interface.py +0 -71
  386. data/vendor/depot_tools/third_party/logilab/common/logging_ext.py +0 -195
  387. data/vendor/depot_tools/third_party/logilab/common/modutils.py +0 -702
  388. data/vendor/depot_tools/third_party/logilab/common/optik_ext.py +0 -392
  389. data/vendor/depot_tools/third_party/logilab/common/optparser.py +0 -92
  390. data/vendor/depot_tools/third_party/logilab/common/proc.py +0 -277
  391. data/vendor/depot_tools/third_party/logilab/common/pyro_ext.py +0 -180
  392. data/vendor/depot_tools/third_party/logilab/common/pytest.py +0 -1199
  393. data/vendor/depot_tools/third_party/logilab/common/registry.py +0 -1119
  394. data/vendor/depot_tools/third_party/logilab/common/shellutils.py +0 -462
  395. data/vendor/depot_tools/third_party/logilab/common/sphinx_ext.py +0 -87
  396. data/vendor/depot_tools/third_party/logilab/common/sphinxutils.py +0 -122
  397. data/vendor/depot_tools/third_party/logilab/common/table.py +0 -929
  398. data/vendor/depot_tools/third_party/logilab/common/tasksqueue.py +0 -101
  399. data/vendor/depot_tools/third_party/logilab/common/testlib.py +0 -1392
  400. data/vendor/depot_tools/third_party/logilab/common/textutils.py +0 -537
  401. data/vendor/depot_tools/third_party/logilab/common/tree.py +0 -369
  402. data/vendor/depot_tools/third_party/logilab/common/umessage.py +0 -194
  403. data/vendor/depot_tools/third_party/logilab/common/ureports/__init__.py +0 -172
  404. data/vendor/depot_tools/third_party/logilab/common/ureports/docbook_writer.py +0 -140
  405. data/vendor/depot_tools/third_party/logilab/common/urllib2ext.py +0 -89
  406. data/vendor/depot_tools/third_party/logilab/common/visitor.py +0 -109
  407. data/vendor/depot_tools/third_party/logilab/common/xmlrpcutils.py +0 -131
  408. data/vendor/depot_tools/third_party/logilab/common/xmlutils.py +0 -61
@@ -4,17 +4,25 @@
4
4
 
5
5
  """Generic utils."""
6
6
 
7
+ from __future__ import print_function
8
+
7
9
  import codecs
8
10
  import collections
9
11
  import contextlib
10
- import cStringIO
11
12
  import datetime
13
+ import functools
14
+ import io
12
15
  import logging
13
16
  import operator
14
17
  import os
15
18
  import pipes
16
19
  import platform
17
- import Queue
20
+
21
+ try:
22
+ import Queue as queue
23
+ except ImportError: # For Py3 compatibility
24
+ import queue
25
+
18
26
  import re
19
27
  import stat
20
28
  import subprocess
@@ -22,10 +30,19 @@ import sys
22
30
  import tempfile
23
31
  import threading
24
32
  import time
25
- import urlparse
33
+
34
+ try:
35
+ import urlparse
36
+ except ImportError: # For Py3 compatibility
37
+ import urllib.parse as urlparse
26
38
 
27
39
  import subprocess2
28
40
 
41
+ if sys.version_info.major == 2:
42
+ from cStringIO import StringIO
43
+ else:
44
+ from io import StringIO
45
+
29
46
 
30
47
  RETRY_MAX = 3
31
48
  RETRY_INITIAL_SLEEP = 0.5
@@ -42,6 +59,18 @@ THREADED_INDEX_PACK_BLACKLIST = [
42
59
  'https://chromium.googlesource.com/chromium/reference_builds/chrome_win.git'
43
60
  ]
44
61
 
62
+ """To support rethrowing exceptions with tracebacks on both Py2 and 3."""
63
+ if sys.version_info.major == 2:
64
+ # We have to use exec to avoid a SyntaxError in Python 3.
65
+ exec("def reraise(typ, value, tb=None):\n raise typ, value, tb\n")
66
+ else:
67
+ def reraise(typ, value, tb=None):
68
+ if value is None:
69
+ value = typ()
70
+ if value.__traceback__ is not tb:
71
+ raise value.with_traceback(tb)
72
+ raise value
73
+
45
74
 
46
75
  class Error(Exception):
47
76
  """gclient exception class."""
@@ -61,9 +90,9 @@ def Elapsed(until=None):
61
90
  def PrintWarnings():
62
91
  """Prints any accumulated warnings."""
63
92
  if _WARNINGS:
64
- print >> sys.stderr, '\n\nWarnings:'
93
+ print('\n\nWarnings:', file=sys.stderr)
65
94
  for warning in _WARNINGS:
66
- print >> sys.stderr, warning
95
+ print(warning, file=sys.stderr)
67
96
 
68
97
 
69
98
  def AddWarning(msg):
@@ -142,7 +171,8 @@ def FileRead(filename, mode='rU'):
142
171
  s = f.read()
143
172
  try:
144
173
  return s.decode('utf-8')
145
- except UnicodeDecodeError:
174
+ # AttributeError is for Py3 compatibility
175
+ except (UnicodeDecodeError, AttributeError):
146
176
  return s
147
177
 
148
178
 
@@ -225,12 +255,12 @@ def rmtree(path):
225
255
  if sys.platform == 'win32':
226
256
  # Give up and use cmd.exe's rd command.
227
257
  path = os.path.normcase(path)
228
- for _ in xrange(3):
258
+ for _ in range(3):
229
259
  exitcode = subprocess.call(['cmd.exe', '/c', 'rd', '/q', '/s', path])
230
260
  if exitcode == 0:
231
261
  return
232
262
  else:
233
- print >> sys.stderr, 'rd exited with code %d' % exitcode
263
+ print('rd exited with code %d' % exitcode, file=sys.stderr)
234
264
  time.sleep(3)
235
265
  raise Exception('Failed to remove path %s' % path)
236
266
 
@@ -268,7 +298,7 @@ def safe_makedirs(tree):
268
298
  count += 1
269
299
  try:
270
300
  os.makedirs(tree)
271
- except OSError, e:
301
+ except OSError as e:
272
302
  # 17 POSIX, 183 Windows
273
303
  if e.errno not in (17, 183):
274
304
  raise
@@ -491,9 +521,9 @@ class GClientChildren(object):
491
521
 
492
522
  with GCLIENT_CHILDREN_LOCK:
493
523
  if GCLIENT_CHILDREN:
494
- print >> sys.stderr, 'Could not kill the following subprocesses:'
524
+ print('Could not kill the following subprocesses:', file=sys.stderr)
495
525
  for zombie in GCLIENT_CHILDREN:
496
- print >> sys.stderr, ' ', zombie.pid
526
+ print(' ', zombie.pid, file=sys.stderr)
497
527
 
498
528
 
499
529
  def CheckCallAndFilter(args, stdout=None, filter_fn=None,
@@ -514,12 +544,12 @@ def CheckCallAndFilter(args, stdout=None, filter_fn=None,
514
544
  """
515
545
  assert print_stdout or filter_fn
516
546
  stdout = stdout or sys.stdout
517
- output = cStringIO.StringIO()
547
+ output = io.BytesIO()
518
548
  filter_fn = filter_fn or (lambda x: None)
519
549
 
520
550
  sleep_interval = RETRY_INITIAL_SLEEP
521
551
  run_cwd = kwargs.get('cwd', os.getcwd())
522
- for _ in xrange(RETRY_MAX + 1):
552
+ for _ in range(RETRY_MAX + 1):
523
553
  kid = subprocess2.Popen(
524
554
  args, bufsize=0, stdout=subprocess2.PIPE, stderr=subprocess2.STDOUT,
525
555
  **kwargs)
@@ -539,7 +569,7 @@ def CheckCallAndFilter(args, stdout=None, filter_fn=None,
539
569
  if in_byte:
540
570
  if call_filter_on_first_line:
541
571
  filter_fn(None)
542
- in_line = ''
572
+ in_line = b''
543
573
  while in_byte:
544
574
  output.write(in_byte)
545
575
  if print_stdout:
@@ -548,7 +578,7 @@ def CheckCallAndFilter(args, stdout=None, filter_fn=None,
548
578
  in_line += in_byte
549
579
  else:
550
580
  filter_fn(in_line)
551
- in_line = ''
581
+ in_line = b''
552
582
  in_byte = kid.stdout.read(1)
553
583
  # Flush the rest of buffered output. This is only an issue with
554
584
  # stdout/stderr not ending with a \n.
@@ -561,15 +591,15 @@ def CheckCallAndFilter(args, stdout=None, filter_fn=None,
561
591
  GClientChildren.remove(kid)
562
592
 
563
593
  except KeyboardInterrupt:
564
- print >> sys.stderr, 'Failed while running "%s"' % ' '.join(args)
594
+ print('Failed while running "%s"' % ' '.join(args), file=sys.stderr)
565
595
  raise
566
596
 
567
597
  if rv == 0:
568
598
  return output.getvalue()
569
599
  if not retry:
570
600
  break
571
- print ("WARNING: subprocess '%s' in %s failed; will retry after a short "
572
- 'nap...' % (' '.join('"%s"' % x for x in args), run_cwd))
601
+ print("WARNING: subprocess '%s' in %s failed; will retry after a short "
602
+ 'nap...' % (' '.join('"%s"' % x for x in args), run_cwd))
573
603
  time.sleep(sleep_interval)
574
604
  sleep_interval *= 2
575
605
  raise subprocess2.CalledProcessError(
@@ -602,13 +632,13 @@ class GitFilter(object):
602
632
 
603
633
  def __call__(self, line):
604
634
  # git uses an escape sequence to clear the line; elide it.
605
- esc = line.find(unichr(033))
635
+ esc = line.find(chr(0o33).encode())
606
636
  if esc > -1:
607
637
  line = line[:esc]
608
638
  if self.predicate and not self.predicate(line):
609
639
  return
610
640
  now = time.time()
611
- match = self.PERCENT_RE.match(line)
641
+ match = self.PERCENT_RE.match(line.decode())
612
642
  if match:
613
643
  if match.group(1) != self.progress_prefix:
614
644
  self.progress_prefix = match.group(1)
@@ -616,60 +646,7 @@ class GitFilter(object):
616
646
  return
617
647
  self.last_time = now
618
648
  self.out_fh.write('[%s] ' % Elapsed())
619
- print >> self.out_fh, line
620
-
621
-
622
- def FindGclientRoot(from_dir, filename='.gclient'):
623
- """Tries to find the gclient root."""
624
- real_from_dir = os.path.realpath(from_dir)
625
- path = real_from_dir
626
- while not os.path.exists(os.path.join(path, filename)):
627
- split_path = os.path.split(path)
628
- if not split_path[1]:
629
- return None
630
- path = split_path[0]
631
-
632
- # If we did not find the file in the current directory, make sure we are in a
633
- # sub directory that is controlled by this configuration.
634
- if path != real_from_dir:
635
- entries_filename = os.path.join(path, filename + '_entries')
636
- if not os.path.exists(entries_filename):
637
- # If .gclient_entries does not exist, a previous call to gclient sync
638
- # might have failed. In that case, we cannot verify that the .gclient
639
- # is the one we want to use. In order to not to cause too much trouble,
640
- # just issue a warning and return the path anyway.
641
- print >> sys.stderr, ("%s missing, %s file in parent directory %s might "
642
- "not be the file you want to use." %
643
- (entries_filename, filename, path))
644
- return path
645
- scope = {}
646
- try:
647
- exec(FileRead(entries_filename), scope)
648
- except SyntaxError, e:
649
- SyntaxErrorToError(filename, e)
650
- all_directories = scope['entries'].keys()
651
- path_to_check = real_from_dir[len(path)+1:]
652
- while path_to_check:
653
- if path_to_check in all_directories:
654
- return path
655
- path_to_check = os.path.dirname(path_to_check)
656
- return None
657
-
658
- logging.info('Found gclient root at ' + path)
659
- return path
660
-
661
-
662
- def PathDifference(root, subpath):
663
- """Returns the difference subpath minus root."""
664
- root = os.path.realpath(root)
665
- subpath = os.path.realpath(subpath)
666
- if not subpath.startswith(root):
667
- return None
668
- # If the root does not have a trailing \ or /, we add it so the returned
669
- # path starts immediately after the seperator regardless of whether it is
670
- # provided.
671
- root = os.path.join(root, '')
672
- return subpath[len(root):]
649
+ print(line, file=self.out_fh)
673
650
 
674
651
 
675
652
  def FindFileUpwards(filename, path=None):
@@ -701,95 +678,12 @@ def GetMacWinOrLinux():
701
678
  raise Error('Unknown platform: ' + sys.platform)
702
679
 
703
680
 
704
- def GetPrimarySolutionPath():
705
- """Returns the full path to the primary solution. (gclient_root + src)"""
706
-
707
- gclient_root = FindGclientRoot(os.getcwd())
708
- if not gclient_root:
709
- # Some projects might not use .gclient. Try to see whether we're in a git
710
- # checkout.
711
- top_dir = [os.getcwd()]
712
- def filter_fn(line):
713
- repo_root_path = os.path.normpath(line.rstrip('\n'))
714
- if os.path.exists(repo_root_path):
715
- top_dir[0] = repo_root_path
716
- try:
717
- CheckCallAndFilter(["git", "rev-parse", "--show-toplevel"],
718
- print_stdout=False, filter_fn=filter_fn)
719
- except Exception:
720
- pass
721
- top_dir = top_dir[0]
722
- if os.path.exists(os.path.join(top_dir, 'buildtools')):
723
- return top_dir
724
- return None
725
-
726
- # Some projects' top directory is not named 'src'.
727
- source_dir_name = GetGClientPrimarySolutionName(gclient_root) or 'src'
728
- return os.path.join(gclient_root, source_dir_name)
729
-
730
-
731
- def GetBuildtoolsPath():
732
- """Returns the full path to the buildtools directory.
733
- This is based on the root of the checkout containing the current directory."""
734
-
735
- # Overriding the build tools path by environment is highly unsupported and may
736
- # break without warning. Do not rely on this for anything important.
737
- override = os.environ.get('CHROMIUM_BUILDTOOLS_PATH')
738
- if override is not None:
739
- return override
740
-
741
- primary_solution = GetPrimarySolutionPath()
742
- if not primary_solution:
743
- return None
744
- buildtools_path = os.path.join(primary_solution, 'buildtools')
745
- if not os.path.exists(buildtools_path):
746
- # Buildtools may be in the gclient root.
747
- gclient_root = FindGclientRoot(os.getcwd())
748
- buildtools_path = os.path.join(gclient_root, 'buildtools')
749
- return buildtools_path
750
-
751
-
752
- def GetBuildtoolsPlatformBinaryPath():
753
- """Returns the full path to the binary directory for the current platform."""
754
- buildtools_path = GetBuildtoolsPath()
755
- if not buildtools_path:
756
- return None
757
-
758
- if sys.platform.startswith(('cygwin', 'win')):
759
- subdir = 'win'
760
- elif sys.platform == 'darwin':
761
- subdir = 'mac'
762
- elif sys.platform.startswith('linux'):
763
- subdir = 'linux64'
764
- else:
765
- raise Error('Unknown platform: ' + sys.platform)
766
- return os.path.join(buildtools_path, subdir)
767
-
768
-
769
- def GetExeSuffix():
770
- """Returns '' or '.exe' depending on how executables work on this platform."""
771
- if sys.platform.startswith(('cygwin', 'win')):
772
- return '.exe'
773
- return ''
774
-
775
-
776
- def GetGClientPrimarySolutionName(gclient_root_dir_path):
777
- """Returns the name of the primary solution in the .gclient file specified."""
778
- gclient_config_file = os.path.join(gclient_root_dir_path, '.gclient')
779
- env = {}
780
- execfile(gclient_config_file, env)
781
- solutions = env.get('solutions', [])
782
- if solutions:
783
- return solutions[0].get('name')
784
- return None
785
-
786
-
787
681
  def GetGClientRootAndEntries(path=None):
788
682
  """Returns the gclient root and the dict of entries."""
789
683
  config_file = '.gclient_entries'
790
684
  root = FindFileUpwards(config_file, path)
791
685
  if not root:
792
- print "Can't find %s" % config_file
686
+ print("Can't find %s" % config_file)
793
687
  return None
794
688
  config_path = os.path.join(root, config_file)
795
689
  env = {}
@@ -805,7 +699,7 @@ def lockedmethod(method):
805
699
  try:
806
700
  self.lock.acquire()
807
701
  except KeyboardInterrupt:
808
- print >> sys.stderr, 'Was deadlocked'
702
+ print('Was deadlocked', file=sys.stderr)
809
703
  raise
810
704
  return method(self, *args, **kwargs)
811
705
  finally:
@@ -823,7 +717,7 @@ class WorkItem(object):
823
717
  def __init__(self, name):
824
718
  # A unique string representing this work item.
825
719
  self._name = name
826
- self.outbuf = cStringIO.StringIO()
720
+ self.outbuf = StringIO()
827
721
  self.start = self.finish = None
828
722
  self.resources = [] # List of resources this work item requires.
829
723
 
@@ -860,7 +754,7 @@ class ExecutionQueue(object):
860
754
  # List of items currently running.
861
755
  self.running = []
862
756
  # Exceptions thrown if any.
863
- self.exceptions = Queue.Queue()
757
+ self.exceptions = queue.Queue()
864
758
  # Progress status
865
759
  self.progress = progress
866
760
  if self.progress:
@@ -938,7 +832,7 @@ class ExecutionQueue(object):
938
832
  break
939
833
 
940
834
  # Check for new tasks to start.
941
- for i in xrange(len(self.queued)):
835
+ for i in range(len(self.queued)):
942
836
  # Verify its requirements.
943
837
  if (self.ignore_requirements or
944
838
  not (set(self.queued[i].requirements) - set(self.ran))):
@@ -962,28 +856,28 @@ class ExecutionQueue(object):
962
856
  if (now - self.last_join > datetime.timedelta(seconds=60) and
963
857
  self.last_subproc_output > self.last_join):
964
858
  if self.progress:
965
- print >> sys.stdout, ''
859
+ print('')
966
860
  sys.stdout.flush()
967
861
  elapsed = Elapsed()
968
- print >> sys.stdout, '[%s] Still working on:' % elapsed
862
+ print('[%s] Still working on:' % elapsed)
969
863
  sys.stdout.flush()
970
864
  for task in self.running:
971
- print >> sys.stdout, '[%s] %s' % (elapsed, task.item.name)
865
+ print('[%s] %s' % (elapsed, task.item.name))
972
866
  sys.stdout.flush()
973
867
  except KeyboardInterrupt:
974
868
  # Help debugging by printing some information:
975
- print >> sys.stderr, (
869
+ print(
976
870
  ('\nAllowed parallel jobs: %d\n# queued: %d\nRan: %s\n'
977
- 'Running: %d') % (
978
- self.jobs,
979
- len(self.queued),
980
- ', '.join(self.ran),
981
- len(self.running)))
871
+ 'Running: %d') % (self.jobs, len(self.queued), ', '.join(
872
+ self.ran), len(self.running)),
873
+ file=sys.stderr)
982
874
  for i in self.queued:
983
- print >> sys.stderr, '%s (not started): %s' % (
984
- i.name, ', '.join(i.requirements))
875
+ print(
876
+ '%s (not started): %s' % (i.name, ', '.join(i.requirements)),
877
+ file=sys.stderr)
985
878
  for i in self.running:
986
- print >> sys.stderr, self.format_task_output(i.item, 'interrupted')
879
+ print(
880
+ self.format_task_output(i.item, 'interrupted'), file=sys.stderr)
987
881
  raise
988
882
  # Something happened: self.enqueue() or a thread terminated. Loop again.
989
883
  finally:
@@ -992,12 +886,12 @@ class ExecutionQueue(object):
992
886
  assert not self.running, 'Now guaranteed to be single-threaded'
993
887
  if not self.exceptions.empty():
994
888
  if self.progress:
995
- print >> sys.stdout, ''
889
+ print('')
996
890
  # To get back the stack location correctly, the raise a, b, c form must be
997
891
  # used, passing a tuple as the first argument doesn't work.
998
892
  e, task = self.exceptions.get()
999
- print >> sys.stderr, self.format_task_output(task.item, 'ERROR')
1000
- raise e[0], e[1], e[2]
893
+ print(self.format_task_output(task.item, 'ERROR'), file=sys.stderr)
894
+ reraise(e[0], e[1], e[2])
1001
895
  elif self.progress:
1002
896
  self.progress.end()
1003
897
 
@@ -1013,7 +907,7 @@ class ExecutionQueue(object):
1013
907
  self.last_join = datetime.datetime.now()
1014
908
  sys.stdout.flush()
1015
909
  if self.verbose:
1016
- print >> sys.stdout, self.format_task_output(t.item)
910
+ print(self.format_task_output(t.item))
1017
911
  if self.progress:
1018
912
  self.progress.update(1, t.item.name)
1019
913
  if t.item.name in self.ran:
@@ -1035,22 +929,24 @@ class ExecutionQueue(object):
1035
929
  # exception.
1036
930
  try:
1037
931
  task_item.start = datetime.datetime.now()
1038
- print >> task_item.outbuf, '[%s] Started.' % Elapsed(task_item.start)
932
+ print('[%s] Started.' % Elapsed(task_item.start), file=task_item.outbuf)
1039
933
  task_item.run(*args, **kwargs)
1040
934
  task_item.finish = datetime.datetime.now()
1041
- print >> task_item.outbuf, '[%s] Finished.' % Elapsed(task_item.finish)
935
+ print(
936
+ '[%s] Finished.' % Elapsed(task_item.finish), file=task_item.outbuf)
1042
937
  self.ran.append(task_item.name)
1043
938
  if self.verbose:
1044
939
  if self.progress:
1045
- print >> sys.stdout, ''
1046
- print >> sys.stdout, self.format_task_output(task_item)
940
+ print('')
941
+ print(self.format_task_output(task_item))
1047
942
  if self.progress:
1048
943
  self.progress.update(1, ', '.join(t.item.name for t in self.running))
1049
944
  except KeyboardInterrupt:
1050
- print >> sys.stderr, self.format_task_output(task_item, 'interrupted')
945
+ print(
946
+ self.format_task_output(task_item, 'interrupted'), file=sys.stderr)
1051
947
  raise
1052
948
  except Exception:
1053
- print >> sys.stderr, self.format_task_output(task_item, 'ERROR')
949
+ print(self.format_task_output(task_item, 'ERROR'), file=sys.stderr)
1054
950
  raise
1055
951
 
1056
952
 
@@ -1071,10 +967,11 @@ class ExecutionQueue(object):
1071
967
  work_queue = self.kwargs['work_queue']
1072
968
  try:
1073
969
  self.item.start = datetime.datetime.now()
1074
- print >> self.item.outbuf, '[%s] Started.' % Elapsed(self.item.start)
970
+ print('[%s] Started.' % Elapsed(self.item.start), file=self.item.outbuf)
1075
971
  self.item.run(*self.args, **self.kwargs)
1076
972
  self.item.finish = datetime.datetime.now()
1077
- print >> self.item.outbuf, '[%s] Finished.' % Elapsed(self.item.finish)
973
+ print(
974
+ '[%s] Finished.' % Elapsed(self.item.finish), file=self.item.outbuf)
1078
975
  except KeyboardInterrupt:
1079
976
  logging.info('Caught KeyboardInterrupt in thread %s', self.item.name)
1080
977
  logging.info(str(sys.exc_info()))
@@ -1125,8 +1022,8 @@ def RunEditor(content, git, git_editor=None):
1125
1022
  file_handle, filename = tempfile.mkstemp(text=True, prefix='cl_description')
1126
1023
  # Make sure CRLF is handled properly by requiring none.
1127
1024
  if '\r' in content:
1128
- print >> sys.stderr, (
1129
- '!! Please remove \\r from your change description !!')
1025
+ print(
1026
+ '!! Please remove \\r from your change description !!', file=sys.stderr)
1130
1027
  fileobj = os.fdopen(file_handle, 'w')
1131
1028
  # Still remove \r if present.
1132
1029
  content = re.sub('\r?\n', '\n', content)
@@ -1279,7 +1176,7 @@ def freeze(obj):
1279
1176
  Will raise TypeError if you pass an object which is not hashable.
1280
1177
  """
1281
1178
  if isinstance(obj, collections.Mapping):
1282
- return FrozenDict((freeze(k), freeze(v)) for k, v in obj.iteritems())
1179
+ return FrozenDict((freeze(k), freeze(v)) for k, v in obj.items())
1283
1180
  elif isinstance(obj, (list, tuple)):
1284
1181
  return tuple(freeze(i) for i in obj)
1285
1182
  elif isinstance(obj, set):
@@ -1299,8 +1196,8 @@ class FrozenDict(collections.Mapping):
1299
1196
 
1300
1197
  # Calculate the hash immediately so that we know all the items are
1301
1198
  # hashable too.
1302
- self._hash = reduce(operator.xor,
1303
- (hash(i) for i in enumerate(self._d.iteritems())), 0)
1199
+ self._hash = functools.reduce(
1200
+ operator.xor, (hash(i) for i in enumerate(self._d.items())), 0)
1304
1201
 
1305
1202
  def __eq__(self, other):
1306
1203
  if not isinstance(other, collections.Mapping):