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
@@ -1,820 +0,0 @@
1
- # Copyright (c) 2003-2013 LOGILAB S.A. (Paris, FRANCE).
2
- # This program is free software; you can redistribute it and/or modify it under
3
- # the terms of the GNU General Public License as published by the Free Software
4
- # Foundation; either version 2 of the License, or (at your option) any later
5
- # version.
6
- #
7
- # This program is distributed in the hope that it will be useful, but WITHOUT
8
- # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
9
- # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details
10
- #
11
- # You should have received a copy of the GNU General Public License along with
12
- # this program; if not, write to the Free Software Foundation, Inc.,
13
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
14
- """utilities for Pylint configuration :
15
-
16
- * pylintrc
17
- * pylint.d (PYLINTHOME)
18
- """
19
- from __future__ import print_function
20
-
21
- # TODO(cpopa): this module contains the logic for the
22
- # configuration parser and for the command line parser,
23
- # but it's really coupled to optparse's internals.
24
- # The code was copied almost verbatim from logilab.common,
25
- # in order to not depend on it anymore and it will definitely
26
- # need a cleanup. It could be completely reengineered as well.
27
-
28
- import contextlib
29
- import collections
30
- import copy
31
- import io
32
- import optparse
33
- import os
34
- import pickle
35
- import re
36
- import sys
37
- import time
38
-
39
- from six.moves import configparser
40
- from six.moves import range
41
-
42
- from pylint import utils
43
-
44
-
45
- USER_HOME = os.path.expanduser('~')
46
- if 'PYLINTHOME' in os.environ:
47
- PYLINT_HOME = os.environ['PYLINTHOME']
48
- if USER_HOME == '~':
49
- USER_HOME = os.path.dirname(PYLINT_HOME)
50
- elif USER_HOME == '~':
51
- PYLINT_HOME = ".pylint.d"
52
- else:
53
- PYLINT_HOME = os.path.join(USER_HOME, '.pylint.d')
54
-
55
-
56
- def _get_pdata_path(base_name, recurs):
57
- base_name = base_name.replace(os.sep, '_')
58
- return os.path.join(PYLINT_HOME, "%s%s%s"%(base_name, recurs, '.stats'))
59
-
60
-
61
- def load_results(base):
62
- data_file = _get_pdata_path(base, 1)
63
- try:
64
- with open(data_file, _PICK_LOAD) as stream:
65
- return pickle.load(stream)
66
- except Exception: # pylint: disable=broad-except
67
- return {}
68
-
69
- if sys.version_info < (3, 0):
70
- _PICK_DUMP, _PICK_LOAD = 'w', 'r'
71
- else:
72
- _PICK_DUMP, _PICK_LOAD = 'wb', 'rb'
73
-
74
- def save_results(results, base):
75
- if not os.path.exists(PYLINT_HOME):
76
- try:
77
- os.mkdir(PYLINT_HOME)
78
- except OSError:
79
- print('Unable to create directory %s' % PYLINT_HOME, file=sys.stderr)
80
- data_file = _get_pdata_path(base, 1)
81
- try:
82
- with open(data_file, _PICK_DUMP) as stream:
83
- pickle.dump(results, stream)
84
- except (IOError, OSError) as ex:
85
- print('Unable to create file %s: %s' % (data_file, ex), file=sys.stderr)
86
-
87
-
88
- def find_pylintrc():
89
- """search the pylint rc file and return its path if it find it, else None
90
- """
91
- # is there a pylint rc file in the current directory ?
92
- if os.path.exists('pylintrc'):
93
- return os.path.abspath('pylintrc')
94
- if os.path.exists('.pylintrc'):
95
- return os.path.abspath('.pylintrc')
96
- if os.path.isfile('__init__.py'):
97
- curdir = os.path.abspath(os.getcwd())
98
- while os.path.isfile(os.path.join(curdir, '__init__.py')):
99
- curdir = os.path.abspath(os.path.join(curdir, '..'))
100
- if os.path.isfile(os.path.join(curdir, 'pylintrc')):
101
- return os.path.join(curdir, 'pylintrc')
102
- if os.path.isfile(os.path.join(curdir, '.pylintrc')):
103
- return os.path.join(curdir, '.pylintrc')
104
- if 'PYLINTRC' in os.environ and os.path.exists(os.environ['PYLINTRC']):
105
- pylintrc = os.environ['PYLINTRC']
106
- else:
107
- user_home = os.path.expanduser('~')
108
- if user_home == '~' or user_home == '/root':
109
- pylintrc = ".pylintrc"
110
- else:
111
- pylintrc = os.path.join(user_home, '.pylintrc')
112
- if not os.path.isfile(pylintrc):
113
- pylintrc = os.path.join(user_home, '.config', 'pylintrc')
114
- if not os.path.isfile(pylintrc):
115
- if os.path.isfile('/etc/pylintrc'):
116
- pylintrc = '/etc/pylintrc'
117
- else:
118
- pylintrc = None
119
- return pylintrc
120
-
121
- PYLINTRC = find_pylintrc()
122
-
123
- ENV_HELP = '''
124
- The following environment variables are used:
125
- * PYLINTHOME
126
- Path to the directory where the persistent for the run will be stored. If
127
- not found, it defaults to ~/.pylint.d/ or .pylint.d (in the current working
128
- directory).
129
- * PYLINTRC
130
- Path to the configuration file. See the documentation for the method used
131
- to search for configuration file.
132
- ''' % globals()
133
-
134
-
135
- class UnsupportedAction(Exception):
136
- """raised by set_option when it doesn't know what to do for an action"""
137
-
138
-
139
- def _multiple_choice_validator(choices, name, value):
140
- values = utils._check_csv(value)
141
- for value in values:
142
- if value not in choices:
143
- msg = "option %s: invalid value: %r, should be in %s"
144
- raise optparse.OptionValueError(msg % (name, value, choices))
145
- return values
146
-
147
-
148
- def _choice_validator(choices, name, value):
149
- if value not in choices:
150
- msg = "option %s: invalid value: %r, should be in %s"
151
- raise optparse.OptionValueError(msg % (name, value, choices))
152
- return value
153
-
154
- # pylint: disable=unused-argument
155
- def _csv_validator(_, name, value):
156
- return utils._check_csv(value)
157
-
158
-
159
- # pylint: disable=unused-argument
160
- def _regexp_validator(_, name, value):
161
- if hasattr(value, 'pattern'):
162
- return value
163
- return re.compile(value)
164
-
165
-
166
- def _yn_validator(opt, _, value):
167
- if isinstance(value, int):
168
- return bool(value)
169
- if value in ('y', 'yes'):
170
- return True
171
- if value in ('n', 'no'):
172
- return False
173
- msg = "option %s: invalid yn value %r, should be in (y, yes, n, no)"
174
- raise optparse.OptionValueError(msg % (opt, value))
175
-
176
-
177
- VALIDATORS = {
178
- 'string': utils._unquote,
179
- 'int': int,
180
- 'regexp': re.compile,
181
- 'csv': _csv_validator,
182
- 'yn': _yn_validator,
183
- 'choice': lambda opt, name, value: _choice_validator(opt['choices'], name, value),
184
- 'multiple_choice': lambda opt, name, value: _multiple_choice_validator(opt['choices'],
185
- name, value),
186
- }
187
-
188
- def _call_validator(opttype, optdict, option, value):
189
- if opttype not in VALIDATORS:
190
- raise Exception('Unsupported type "%s"' % opttype)
191
- try:
192
- return VALIDATORS[opttype](optdict, option, value)
193
- except TypeError:
194
- try:
195
- return VALIDATORS[opttype](value)
196
- except Exception:
197
- raise optparse.OptionValueError('%s value (%r) should be of type %s' %
198
- (option, value, opttype))
199
-
200
-
201
- def _validate(value, optdict, name=''):
202
- """return a validated value for an option according to its type
203
-
204
- optional argument name is only used for error message formatting
205
- """
206
- try:
207
- _type = optdict['type']
208
- except KeyError:
209
- # FIXME
210
- return value
211
- return _call_validator(_type, optdict, name, value)
212
-
213
-
214
- def _level_options(group, outputlevel):
215
- return [option for option in group.option_list
216
- if (getattr(option, 'level', 0) or 0) <= outputlevel
217
- and option.help is not optparse.SUPPRESS_HELP]
218
-
219
-
220
- def _expand_default(self, option):
221
- """Patch OptionParser.expand_default with custom behaviour
222
-
223
- This will handle defaults to avoid overriding values in the
224
- configuration file.
225
- """
226
- if self.parser is None or not self.default_tag:
227
- return option.help
228
- optname = option._long_opts[0][2:]
229
- try:
230
- provider = self.parser.options_manager._all_options[optname]
231
- except KeyError:
232
- value = None
233
- else:
234
- optdict = provider.get_option_def(optname)
235
- optname = provider.option_attrname(optname, optdict)
236
- value = getattr(provider.config, optname, optdict)
237
- value = utils._format_option_value(optdict, value)
238
- if value is optparse.NO_DEFAULT or not value:
239
- value = self.NO_DEFAULT_VALUE
240
- return option.help.replace(self.default_tag, str(value))
241
-
242
-
243
- @contextlib.contextmanager
244
- def _patch_optparse():
245
- orig_default = optparse.HelpFormatter
246
- try:
247
- optparse.HelpFormatter.expand_default = _expand_default
248
- yield
249
- finally:
250
- optparse.HelpFormatter.expand_default = orig_default
251
-
252
-
253
- def _multiple_choices_validating_option(opt, name, value):
254
- return _multiple_choice_validator(opt.choices, name, value)
255
-
256
-
257
- class Option(optparse.Option):
258
- TYPES = optparse.Option.TYPES + ('regexp', 'csv', 'yn', 'multiple_choice')
259
- ATTRS = optparse.Option.ATTRS + ['hide', 'level']
260
- TYPE_CHECKER = copy.copy(optparse.Option.TYPE_CHECKER)
261
- TYPE_CHECKER['regexp'] = _regexp_validator
262
- TYPE_CHECKER['csv'] = _csv_validator
263
- TYPE_CHECKER['yn'] = _yn_validator
264
- TYPE_CHECKER['multiple_choice'] = _multiple_choices_validating_option
265
-
266
- def __init__(self, *opts, **attrs):
267
- optparse.Option.__init__(self, *opts, **attrs)
268
- if hasattr(self, "hide") and self.hide:
269
- self.help = optparse.SUPPRESS_HELP
270
-
271
- def _check_choice(self):
272
- if self.type in ("choice", "multiple_choice"):
273
- if self.choices is None:
274
- raise optparse.OptionError(
275
- "must supply a list of choices for type 'choice'", self)
276
- elif not isinstance(self.choices, (tuple, list)):
277
- raise optparse.OptionError(
278
- "choices must be a list of strings ('%s' supplied)"
279
- % str(type(self.choices)).split("'")[1], self)
280
- elif self.choices is not None:
281
- raise optparse.OptionError(
282
- "must not supply choices for type %r" % self.type, self)
283
- optparse.Option.CHECK_METHODS[2] = _check_choice
284
-
285
- def process(self, opt, value, values, parser):
286
- # First, convert the value(s) to the right type. Howl if any
287
- # value(s) are bogus.
288
- value = self.convert_value(opt, value)
289
- if self.type == 'named':
290
- existant = getattr(values, self.dest)
291
- if existant:
292
- existant.update(value)
293
- value = existant
294
- # And then take whatever action is expected of us.
295
- # This is a separate method to make life easier for
296
- # subclasses to add new actions.
297
- return self.take_action(
298
- self.action, self.dest, opt, value, values, parser)
299
-
300
-
301
- class OptionParser(optparse.OptionParser):
302
-
303
- def __init__(self, option_class=Option, *args, **kwargs):
304
- optparse.OptionParser.__init__(self, option_class=Option, *args, **kwargs)
305
-
306
- def format_option_help(self, formatter=None):
307
- if formatter is None:
308
- formatter = self.formatter
309
- outputlevel = getattr(formatter, 'output_level', 0)
310
- formatter.store_option_strings(self)
311
- result = []
312
- result.append(formatter.format_heading("Options"))
313
- formatter.indent()
314
- if self.option_list:
315
- result.append(optparse.OptionContainer.format_option_help(self, formatter))
316
- result.append("\n")
317
- for group in self.option_groups:
318
- if group.level <= outputlevel and (
319
- group.description or _level_options(group, outputlevel)):
320
- result.append(group.format_help(formatter))
321
- result.append("\n")
322
- formatter.dedent()
323
- # Drop the last "\n", or the header if no options or option groups:
324
- return "".join(result[:-1])
325
-
326
- def _match_long_opt(self, opt):
327
- """Disable abbreviations."""
328
- if opt not in self._long_opt:
329
- raise optparse.BadOptionError(opt)
330
- return opt
331
-
332
-
333
- # pylint: disable=abstract-method; by design?
334
- class _ManHelpFormatter(optparse.HelpFormatter):
335
-
336
- def __init__(self, indent_increment=0, max_help_position=24,
337
- width=79, short_first=0):
338
- optparse.HelpFormatter.__init__(
339
- self, indent_increment, max_help_position, width, short_first)
340
-
341
- def format_heading(self, heading):
342
- return '.SH %s\n' % heading.upper()
343
-
344
- def format_description(self, description):
345
- return description
346
-
347
- def format_option(self, option):
348
- try:
349
- optstring = option.option_strings
350
- except AttributeError:
351
- optstring = self.format_option_strings(option)
352
- if option.help:
353
- help_text = self.expand_default(option)
354
- help = ' '.join([l.strip() for l in help_text.splitlines()])
355
- else:
356
- help = ''
357
- return '''.IP "%s"
358
- %s
359
- ''' % (optstring, help)
360
-
361
- def format_head(self, optparser, pkginfo, section=1):
362
- long_desc = ""
363
- try:
364
- pgm = optparser._get_prog_name()
365
- except AttributeError:
366
- # py >= 2.4.X (dunno which X exactly, at least 2)
367
- pgm = optparser.get_prog_name()
368
- short_desc = self.format_short_description(pgm, pkginfo.description)
369
- if hasattr(pkginfo, "long_desc"):
370
- long_desc = self.format_long_description(pgm, pkginfo.long_desc)
371
- return '%s\n%s\n%s\n%s' % (self.format_title(pgm, section),
372
- short_desc, self.format_synopsis(pgm),
373
- long_desc)
374
-
375
- @staticmethod
376
- def format_title(pgm, section):
377
- date = '-'.join(str(num) for num in time.localtime()[:3])
378
- return '.TH %s %s "%s" %s' % (pgm, section, date, pgm)
379
-
380
- @staticmethod
381
- def format_short_description(pgm, short_desc):
382
- return '''.SH NAME
383
- .B %s
384
- \- %s
385
- ''' % (pgm, short_desc.strip())
386
-
387
- @staticmethod
388
- def format_synopsis(pgm):
389
- return '''.SH SYNOPSIS
390
- .B %s
391
- [
392
- .I OPTIONS
393
- ] [
394
- .I <arguments>
395
- ]
396
- ''' % pgm
397
-
398
- @staticmethod
399
- def format_long_description(pgm, long_desc):
400
- long_desc = '\n'.join(line.lstrip()
401
- for line in long_desc.splitlines())
402
- long_desc = long_desc.replace('\n.\n', '\n\n')
403
- if long_desc.lower().startswith(pgm):
404
- long_desc = long_desc[len(pgm):]
405
- return '''.SH DESCRIPTION
406
- .B %s
407
- %s
408
- ''' % (pgm, long_desc.strip())
409
-
410
- @staticmethod
411
- def format_tail(pkginfo):
412
- tail = '''.SH SEE ALSO
413
- /usr/share/doc/pythonX.Y-%s/
414
-
415
- .SH BUGS
416
- Please report bugs on the project\'s mailing list:
417
- %s
418
-
419
- .SH AUTHOR
420
- %s <%s>
421
- ''' % (getattr(pkginfo, 'debian_name', pkginfo.modname),
422
- pkginfo.mailinglist, pkginfo.author, pkginfo.author_email)
423
-
424
- if hasattr(pkginfo, "copyright"):
425
- tail += '''
426
- .SH COPYRIGHT
427
- %s
428
- ''' % pkginfo.copyright
429
-
430
- return tail
431
-
432
-
433
- class OptionsManagerMixIn(object):
434
- """Handle configuration from both a configuration file and command line options"""
435
-
436
- def __init__(self, usage, config_file=None, version=None, quiet=0):
437
- self.config_file = config_file
438
- self.reset_parsers(usage, version=version)
439
- # list of registered options providers
440
- self.options_providers = []
441
- # dictionary associating option name to checker
442
- self._all_options = collections.OrderedDict()
443
- self._short_options = {}
444
- self._nocallback_options = {}
445
- self._mygroups = {}
446
- # verbosity
447
- self.quiet = quiet
448
- self._maxlevel = 0
449
-
450
- def reset_parsers(self, usage='', version=None):
451
- # configuration file parser
452
- self.cfgfile_parser = configparser.ConfigParser()
453
- # command line parser
454
- self.cmdline_parser = OptionParser(usage=usage, version=version)
455
- self.cmdline_parser.options_manager = self
456
- self._optik_option_attrs = set(self.cmdline_parser.option_class.ATTRS)
457
-
458
- def register_options_provider(self, provider, own_group=True):
459
- """register an options provider"""
460
- assert provider.priority <= 0, "provider's priority can't be >= 0"
461
- for i in range(len(self.options_providers)):
462
- if provider.priority > self.options_providers[i].priority:
463
- self.options_providers.insert(i, provider)
464
- break
465
- else:
466
- self.options_providers.append(provider)
467
- non_group_spec_options = [option for option in provider.options
468
- if 'group' not in option[1]]
469
- groups = getattr(provider, 'option_groups', ())
470
- if own_group and non_group_spec_options:
471
- self.add_option_group(provider.name.upper(), provider.__doc__,
472
- non_group_spec_options, provider)
473
- else:
474
- for opt, optdict in non_group_spec_options:
475
- self.add_optik_option(provider, self.cmdline_parser, opt, optdict)
476
- for gname, gdoc in groups:
477
- gname = gname.upper()
478
- goptions = [option for option in provider.options
479
- if option[1].get('group', '').upper() == gname]
480
- self.add_option_group(gname, gdoc, goptions, provider)
481
-
482
- def add_option_group(self, group_name, _, options, provider):
483
- # add option group to the command line parser
484
- if group_name in self._mygroups:
485
- group = self._mygroups[group_name]
486
- else:
487
- group = optparse.OptionGroup(self.cmdline_parser,
488
- title=group_name.capitalize())
489
- self.cmdline_parser.add_option_group(group)
490
- group.level = provider.level
491
- self._mygroups[group_name] = group
492
- # add section to the config file
493
- if group_name != "DEFAULT":
494
- self.cfgfile_parser.add_section(group_name)
495
- # add provider's specific options
496
- for opt, optdict in options:
497
- self.add_optik_option(provider, group, opt, optdict)
498
-
499
- def add_optik_option(self, provider, optikcontainer, opt, optdict):
500
- args, optdict = self.optik_option(provider, opt, optdict)
501
- option = optikcontainer.add_option(*args, **optdict)
502
- self._all_options[opt] = provider
503
- self._maxlevel = max(self._maxlevel, option.level or 0)
504
-
505
- def optik_option(self, provider, opt, optdict):
506
- """get our personal option definition and return a suitable form for
507
- use with optik/optparse
508
- """
509
- optdict = copy.copy(optdict)
510
- if 'action' in optdict:
511
- self._nocallback_options[provider] = opt
512
- else:
513
- optdict['action'] = 'callback'
514
- optdict['callback'] = self.cb_set_provider_option
515
- # default is handled here and *must not* be given to optik if you
516
- # want the whole machinery to work
517
- if 'default' in optdict:
518
- if ('help' in optdict
519
- and optdict.get('default') is not None
520
- and optdict['action'] not in ('store_true', 'store_false')):
521
- optdict['help'] += ' [current: %default]'
522
- del optdict['default']
523
- args = ['--' + str(opt)]
524
- if 'short' in optdict:
525
- self._short_options[optdict['short']] = opt
526
- args.append('-' + optdict['short'])
527
- del optdict['short']
528
- # cleanup option definition dict before giving it to optik
529
- for key in list(optdict.keys()):
530
- if key not in self._optik_option_attrs:
531
- optdict.pop(key)
532
- return args, optdict
533
-
534
- def cb_set_provider_option(self, option, opt, value, parser):
535
- """optik callback for option setting"""
536
- if opt.startswith('--'):
537
- # remove -- on long option
538
- opt = opt[2:]
539
- else:
540
- # short option, get its long equivalent
541
- opt = self._short_options[opt[1:]]
542
- # trick since we can't set action='store_true' on options
543
- if value is None:
544
- value = 1
545
- self.global_set_option(opt, value)
546
-
547
- def global_set_option(self, opt, value):
548
- """set option on the correct option provider"""
549
- self._all_options[opt].set_option(opt, value)
550
-
551
- def generate_config(self, stream=None, skipsections=(), encoding=None):
552
- """write a configuration file according to the current configuration
553
- into the given stream or stdout
554
- """
555
- options_by_section = {}
556
- sections = []
557
- for provider in self.options_providers:
558
- for section, options in provider.options_by_section():
559
- if section is None:
560
- section = provider.name
561
- if section in skipsections:
562
- continue
563
- options = [(n, d, v) for (n, d, v) in options
564
- if d.get('type') is not None
565
- and not d.get('deprecated')]
566
- if not options:
567
- continue
568
- if section not in sections:
569
- sections.append(section)
570
- alloptions = options_by_section.setdefault(section, [])
571
- alloptions += options
572
- stream = stream or sys.stdout
573
- encoding = utils._get_encoding(encoding, stream)
574
- printed = False
575
- for section in sections:
576
- if printed:
577
- print('\n', file=stream)
578
- utils.format_section(stream, section.upper(),
579
- options_by_section[section],
580
- encoding)
581
- printed = True
582
-
583
- def generate_manpage(self, pkginfo, section=1, stream=None):
584
- with _patch_optparse():
585
- _generate_manpage(self.cmdline_parser, pkginfo,
586
- section, stream=stream or sys.stdout,
587
- level=self._maxlevel)
588
-
589
- def load_provider_defaults(self):
590
- """initialize configuration using default values"""
591
- for provider in self.options_providers:
592
- provider.load_defaults()
593
-
594
- def read_config_file(self, config_file=None):
595
- """read the configuration file but do not load it (i.e. dispatching
596
- values to each options provider)
597
- """
598
- helplevel = 1
599
- while helplevel <= self._maxlevel:
600
- opt = '-'.join(['long'] * helplevel) + '-help'
601
- if opt in self._all_options:
602
- break # already processed
603
- # pylint: disable=unused-argument
604
- def helpfunc(option, opt, val, p, level=helplevel):
605
- print(self.help(level))
606
- sys.exit(0)
607
- helpmsg = '%s verbose help.' % ' '.join(['more'] * helplevel)
608
- optdict = {'action': 'callback', 'callback': helpfunc,
609
- 'help': helpmsg}
610
- provider = self.options_providers[0]
611
- self.add_optik_option(provider, self.cmdline_parser, opt, optdict)
612
- provider.options += ((opt, optdict),)
613
- helplevel += 1
614
- if config_file is None:
615
- config_file = self.config_file
616
- if config_file is not None:
617
- config_file = os.path.expanduser(config_file)
618
- if config_file and os.path.exists(config_file):
619
- parser = self.cfgfile_parser
620
-
621
- # Use this encoding in order to strip the BOM marker, if any.
622
- with io.open(config_file, 'r', encoding='utf_8_sig') as fp:
623
- # pylint: disable=deprecated-method
624
- parser.readfp(fp)
625
-
626
- # normalize sections'title
627
- for sect, values in list(parser._sections.items()):
628
- if not sect.isupper() and values:
629
- parser._sections[sect.upper()] = values
630
- elif not self.quiet:
631
- msg = 'No config file found, using default configuration'
632
- print(msg, file=sys.stderr)
633
- return
634
-
635
- def load_config_file(self):
636
- """dispatch values previously read from a configuration file to each
637
- options provider)
638
- """
639
- parser = self.cfgfile_parser
640
- for section in parser.sections():
641
- for option, value in parser.items(section):
642
- try:
643
- self.global_set_option(option, value)
644
- except (KeyError, optparse.OptionError):
645
- # TODO handle here undeclared options appearing in the config file
646
- continue
647
-
648
- def load_configuration(self, **kwargs):
649
- """override configuration according to given parameters"""
650
- return self.load_configuration_from_config(kwargs)
651
-
652
- def load_configuration_from_config(self, config):
653
- for opt, opt_value in config.items():
654
- opt = opt.replace('_', '-')
655
- provider = self._all_options[opt]
656
- provider.set_option(opt, opt_value)
657
-
658
- def load_command_line_configuration(self, args=None):
659
- """Override configuration according to command line parameters
660
-
661
- return additional arguments
662
- """
663
- with _patch_optparse():
664
- if args is None:
665
- args = sys.argv[1:]
666
- else:
667
- args = list(args)
668
- (options, args) = self.cmdline_parser.parse_args(args=args)
669
- for provider in self._nocallback_options.keys():
670
- config = provider.config
671
- for attr in config.__dict__.keys():
672
- value = getattr(options, attr, None)
673
- if value is None:
674
- continue
675
- setattr(config, attr, value)
676
- return args
677
-
678
- def add_help_section(self, title, description, level=0):
679
- """add a dummy option section for help purpose """
680
- group = optparse.OptionGroup(self.cmdline_parser,
681
- title=title.capitalize(),
682
- description=description)
683
- group.level = level
684
- self._maxlevel = max(self._maxlevel, level)
685
- self.cmdline_parser.add_option_group(group)
686
-
687
- def help(self, level=0):
688
- """return the usage string for available options """
689
- self.cmdline_parser.formatter.output_level = level
690
- with _patch_optparse():
691
- return self.cmdline_parser.format_help()
692
-
693
-
694
- class OptionsProviderMixIn(object):
695
- """Mixin to provide options to an OptionsManager"""
696
-
697
- # those attributes should be overridden
698
- priority = -1
699
- name = 'default'
700
- options = ()
701
- level = 0
702
-
703
- def __init__(self):
704
- self.config = optparse.Values()
705
- self.load_defaults()
706
-
707
- def load_defaults(self):
708
- """initialize the provider using default values"""
709
- for opt, optdict in self.options:
710
- action = optdict.get('action')
711
- if action != 'callback':
712
- # callback action have no default
713
- if optdict is None:
714
- optdict = self.get_option_def(opt)
715
- default = optdict.get('default')
716
- self.set_option(opt, default, action, optdict)
717
-
718
- def option_attrname(self, opt, optdict=None):
719
- """get the config attribute corresponding to opt"""
720
- if optdict is None:
721
- optdict = self.get_option_def(opt)
722
- return optdict.get('dest', opt.replace('-', '_'))
723
-
724
- def option_value(self, opt):
725
- """get the current value for the given option"""
726
- return getattr(self.config, self.option_attrname(opt), None)
727
-
728
- def set_option(self, opt, value, action=None, optdict=None):
729
- """method called to set an option (registered in the options list)"""
730
- if optdict is None:
731
- optdict = self.get_option_def(opt)
732
- if value is not None:
733
- value = _validate(value, optdict, opt)
734
- if action is None:
735
- action = optdict.get('action', 'store')
736
- if action == 'store':
737
- setattr(self.config, self.option_attrname(opt, optdict), value)
738
- elif action in ('store_true', 'count'):
739
- setattr(self.config, self.option_attrname(opt, optdict), 0)
740
- elif action == 'store_false':
741
- setattr(self.config, self.option_attrname(opt, optdict), 1)
742
- elif action == 'append':
743
- opt = self.option_attrname(opt, optdict)
744
- _list = getattr(self.config, opt, None)
745
- if _list is None:
746
- if isinstance(value, (list, tuple)):
747
- _list = value
748
- elif value is not None:
749
- _list = []
750
- _list.append(value)
751
- setattr(self.config, opt, _list)
752
- elif isinstance(_list, tuple):
753
- setattr(self.config, opt, _list + (value,))
754
- else:
755
- _list.append(value)
756
- elif action == 'callback':
757
- optdict['callback'](None, opt, value, None)
758
- else:
759
- raise UnsupportedAction(action)
760
-
761
- def get_option_def(self, opt):
762
- """return the dictionary defining an option given its name"""
763
- assert self.options
764
- for option in self.options:
765
- if option[0] == opt:
766
- return option[1]
767
- raise optparse.OptionError('no such option %s in section %r'
768
- % (opt, self.name), opt)
769
-
770
- def options_by_section(self):
771
- """return an iterator on options grouped by section
772
-
773
- (section, [list of (optname, optdict, optvalue)])
774
- """
775
- sections = {}
776
- for optname, optdict in self.options:
777
- sections.setdefault(optdict.get('group'), []).append(
778
- (optname, optdict, self.option_value(optname)))
779
- if None in sections:
780
- yield None, sections.pop(None)
781
- for section, options in sorted(sections.items()):
782
- yield section.upper(), options
783
-
784
- def options_and_values(self, options=None):
785
- if options is None:
786
- options = self.options
787
- for optname, optdict in options:
788
- yield (optname, optdict, self.option_value(optname))
789
-
790
-
791
- class ConfigurationMixIn(OptionsManagerMixIn, OptionsProviderMixIn):
792
- """basic mixin for simple configurations which don't need the
793
- manager / providers model
794
- """
795
- def __init__(self, *args, **kwargs):
796
- if not args:
797
- kwargs.setdefault('usage', '')
798
- kwargs.setdefault('quiet', 1)
799
- OptionsManagerMixIn.__init__(self, *args, **kwargs)
800
- OptionsProviderMixIn.__init__(self)
801
- if not getattr(self, 'option_groups', None):
802
- self.option_groups = []
803
- for _, optdict in self.options:
804
- try:
805
- gdef = (optdict['group'].upper(), '')
806
- except KeyError:
807
- continue
808
- if gdef not in self.option_groups:
809
- self.option_groups.append(gdef)
810
- self.register_options_provider(self, own_group=False)
811
-
812
-
813
- def _generate_manpage(optparser, pkginfo, section=1,
814
- stream=sys.stdout, level=0):
815
- formatter = _ManHelpFormatter()
816
- formatter.output_level = level
817
- formatter.parser = optparser
818
- print(formatter.format_head(optparser, pkginfo, section), file=stream)
819
- print(optparser.format_option_help(formatter), file=stream)
820
- print(formatter.format_tail(pkginfo), file=stream)