libv8 7.3.492.27.0 → 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,1053 +0,0 @@
1
- # copyright 2003-2013 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
2
- # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
3
- #
4
- # This file is part of astroid.
5
- #
6
- # astroid is free software: you can redistribute it and/or modify it
7
- # under the terms of the GNU Lesser General Public License as published by the
8
- # Free Software Foundation, either version 2.1 of the License, or (at your
9
- # option) any later version.
10
- #
11
- # astroid is distributed in the hope that it will be useful, but
12
- # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
- # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
14
- # for more details.
15
- #
16
- # You should have received a copy of the GNU Lesser General Public License along
17
- # with astroid. If not, see <http://www.gnu.org/licenses/>.
18
- """Module for some node classes. More nodes in scoped_nodes.py
19
- """
20
-
21
- import abc
22
- import warnings
23
-
24
- import lazy_object_proxy
25
- import six
26
-
27
- from astroid import bases
28
- from astroid import context as contextmod
29
- from astroid import decorators
30
- from astroid import exceptions
31
- from astroid import mixins
32
- from astroid import util
33
-
34
-
35
- BUILTINS = six.moves.builtins.__name__
36
-
37
-
38
- @bases.raise_if_nothing_inferred
39
- def unpack_infer(stmt, context=None):
40
- """recursively generate nodes inferred by the given statement.
41
- If the inferred value is a list or a tuple, recurse on the elements
42
- """
43
- if isinstance(stmt, (List, Tuple)):
44
- for elt in stmt.elts:
45
- if elt is util.YES:
46
- yield elt
47
- continue
48
- for inferred_elt in unpack_infer(elt, context):
49
- yield inferred_elt
50
- return
51
- # if inferred is a final node, return it and stop
52
- inferred = next(stmt.infer(context))
53
- if inferred is stmt:
54
- yield inferred
55
- return
56
- # else, infer recursivly, except YES object that should be returned as is
57
- for inferred in stmt.infer(context):
58
- if inferred is util.YES:
59
- yield inferred
60
- else:
61
- for inf_inf in unpack_infer(inferred, context):
62
- yield inf_inf
63
-
64
-
65
- def are_exclusive(stmt1, stmt2, exceptions=None):
66
- """return true if the two given statements are mutually exclusive
67
-
68
- `exceptions` may be a list of exception names. If specified, discard If
69
- branches and check one of the statement is in an exception handler catching
70
- one of the given exceptions.
71
-
72
- algorithm :
73
- 1) index stmt1's parents
74
- 2) climb among stmt2's parents until we find a common parent
75
- 3) if the common parent is a If or TryExcept statement, look if nodes are
76
- in exclusive branches
77
- """
78
- # index stmt1's parents
79
- stmt1_parents = {}
80
- children = {}
81
- node = stmt1.parent
82
- previous = stmt1
83
- while node:
84
- stmt1_parents[node] = 1
85
- children[node] = previous
86
- previous = node
87
- node = node.parent
88
- # climb among stmt2's parents until we find a common parent
89
- node = stmt2.parent
90
- previous = stmt2
91
- while node:
92
- if node in stmt1_parents:
93
- # if the common parent is a If or TryExcept statement, look if
94
- # nodes are in exclusive branches
95
- if isinstance(node, If) and exceptions is None:
96
- if (node.locate_child(previous)[1]
97
- is not node.locate_child(children[node])[1]):
98
- return True
99
- elif isinstance(node, TryExcept):
100
- c2attr, c2node = node.locate_child(previous)
101
- c1attr, c1node = node.locate_child(children[node])
102
- if c1node is not c2node:
103
- if ((c2attr == 'body'
104
- and c1attr == 'handlers'
105
- and children[node].catch(exceptions)) or
106
- (c2attr == 'handlers' and c1attr == 'body' and previous.catch(exceptions)) or
107
- (c2attr == 'handlers' and c1attr == 'orelse') or
108
- (c2attr == 'orelse' and c1attr == 'handlers')):
109
- return True
110
- elif c2attr == 'handlers' and c1attr == 'handlers':
111
- return previous is not children[node]
112
- return False
113
- previous = node
114
- node = node.parent
115
- return False
116
-
117
-
118
- @six.add_metaclass(abc.ABCMeta)
119
- class _BaseContainer(mixins.ParentAssignTypeMixin,
120
- bases.NodeNG,
121
- bases.Instance):
122
- """Base class for Set, FrozenSet, Tuple and List."""
123
-
124
- _astroid_fields = ('elts',)
125
-
126
- def __init__(self, elts=None):
127
- if elts is None:
128
- self.elts = []
129
- else:
130
- self.elts = [const_factory(e) for e in elts]
131
-
132
- def itered(self):
133
- return self.elts
134
-
135
- def bool_value(self):
136
- return bool(self.elts)
137
-
138
- @abc.abstractmethod
139
- def pytype(self):
140
- pass
141
-
142
-
143
- class LookupMixIn(object):
144
- """Mixin looking up a name in the right scope
145
- """
146
-
147
- def lookup(self, name):
148
- """lookup a variable name
149
-
150
- return the scope node and the list of assignments associated to the
151
- given name according to the scope where it has been found (locals,
152
- globals or builtin)
153
-
154
- The lookup is starting from self's scope. If self is not a frame itself
155
- and the name is found in the inner frame locals, statements will be
156
- filtered to remove ignorable statements according to self's location
157
- """
158
- return self.scope().scope_lookup(self, name)
159
-
160
- def ilookup(self, name):
161
- """inferred lookup
162
-
163
- return an iterator on inferred values of the statements returned by
164
- the lookup method
165
- """
166
- frame, stmts = self.lookup(name)
167
- context = contextmod.InferenceContext()
168
- return bases._infer_stmts(stmts, context, frame)
169
-
170
- def _filter_stmts(self, stmts, frame, offset):
171
- """filter statements to remove ignorable statements.
172
-
173
- If self is not a frame itself and the name is found in the inner
174
- frame locals, statements will be filtered to remove ignorable
175
- statements according to self's location
176
- """
177
- # if offset == -1, my actual frame is not the inner frame but its parent
178
- #
179
- # class A(B): pass
180
- #
181
- # we need this to resolve B correctly
182
- if offset == -1:
183
- myframe = self.frame().parent.frame()
184
- else:
185
- myframe = self.frame()
186
- # If the frame of this node is the same as the statement
187
- # of this node, then the node is part of a class or
188
- # a function definition and the frame of this node should be the
189
- # the upper frame, not the frame of the definition.
190
- # For more information why this is important,
191
- # see Pylint issue #295.
192
- # For example, for 'b', the statement is the same
193
- # as the frame / scope:
194
- #
195
- # def test(b=1):
196
- # ...
197
-
198
- if self.statement() is myframe and myframe.parent:
199
- myframe = myframe.parent.frame()
200
-
201
- mystmt = self.statement()
202
- # line filtering if we are in the same frame
203
- #
204
- # take care node may be missing lineno information (this is the case for
205
- # nodes inserted for living objects)
206
- if myframe is frame and mystmt.fromlineno is not None:
207
- assert mystmt.fromlineno is not None, mystmt
208
- mylineno = mystmt.fromlineno + offset
209
- else:
210
- # disabling lineno filtering
211
- mylineno = 0
212
- _stmts = []
213
- _stmt_parents = []
214
- for node in stmts:
215
- stmt = node.statement()
216
- # line filtering is on and we have reached our location, break
217
- if mylineno > 0 and stmt.fromlineno > mylineno:
218
- break
219
- assert hasattr(node, 'assign_type'), (node, node.scope(),
220
- node.scope().locals)
221
- assign_type = node.assign_type()
222
- if node.has_base(self):
223
- break
224
-
225
- _stmts, done = assign_type._get_filtered_stmts(self, node, _stmts, mystmt)
226
- if done:
227
- break
228
-
229
- optional_assign = assign_type.optional_assign
230
- if optional_assign and assign_type.parent_of(self):
231
- # we are inside a loop, loop var assigment is hidding previous
232
- # assigment
233
- _stmts = [node]
234
- _stmt_parents = [stmt.parent]
235
- continue
236
-
237
- # XXX comment various branches below!!!
238
- try:
239
- pindex = _stmt_parents.index(stmt.parent)
240
- except ValueError:
241
- pass
242
- else:
243
- # we got a parent index, this means the currently visited node
244
- # is at the same block level as a previously visited node
245
- if _stmts[pindex].assign_type().parent_of(assign_type):
246
- # both statements are not at the same block level
247
- continue
248
- # if currently visited node is following previously considered
249
- # assignement and both are not exclusive, we can drop the
250
- # previous one. For instance in the following code ::
251
- #
252
- # if a:
253
- # x = 1
254
- # else:
255
- # x = 2
256
- # print x
257
- #
258
- # we can't remove neither x = 1 nor x = 2 when looking for 'x'
259
- # of 'print x'; while in the following ::
260
- #
261
- # x = 1
262
- # x = 2
263
- # print x
264
- #
265
- # we can remove x = 1 when we see x = 2
266
- #
267
- # moreover, on loop assignment types, assignment won't
268
- # necessarily be done if the loop has no iteration, so we don't
269
- # want to clear previous assigments if any (hence the test on
270
- # optional_assign)
271
- if not (optional_assign or are_exclusive(_stmts[pindex], node)):
272
- del _stmt_parents[pindex]
273
- del _stmts[pindex]
274
- if isinstance(node, AssignName):
275
- if not optional_assign and stmt.parent is mystmt.parent:
276
- _stmts = []
277
- _stmt_parents = []
278
- elif isinstance(node, DelName):
279
- _stmts = []
280
- _stmt_parents = []
281
- continue
282
- if not are_exclusive(self, node):
283
- _stmts.append(node)
284
- _stmt_parents.append(stmt.parent)
285
- return _stmts
286
-
287
-
288
- # Name classes
289
-
290
- class AssignName(LookupMixIn, mixins.ParentAssignTypeMixin, bases.NodeNG):
291
- """class representing an AssName node"""
292
-
293
-
294
- class DelName(LookupMixIn, mixins.ParentAssignTypeMixin, bases.NodeNG):
295
- """class representing a DelName node"""
296
-
297
-
298
- class Name(LookupMixIn, bases.NodeNG):
299
- """class representing a Name node"""
300
-
301
-
302
- class Arguments(mixins.AssignTypeMixin, bases.NodeNG):
303
- """class representing an Arguments node"""
304
- if six.PY3:
305
- # Python 3.4+ uses a different approach regarding annotations,
306
- # each argument is a new class, _ast.arg, which exposes an
307
- # 'annotation' attribute. In astroid though, arguments are exposed
308
- # as is in the Arguments node and the only way to expose annotations
309
- # is by using something similar with Python 3.3:
310
- # - we expose 'varargannotation' and 'kwargannotation' of annotations
311
- # of varargs and kwargs.
312
- # - we expose 'annotation', a list with annotations for
313
- # for each normal argument. If an argument doesn't have an
314
- # annotation, its value will be None.
315
-
316
- _astroid_fields = ('args', 'defaults', 'kwonlyargs',
317
- 'kw_defaults', 'annotations',
318
- 'varargannotation', 'kwargannotation')
319
- annotations = None
320
- varargannotation = None
321
- kwargannotation = None
322
- else:
323
- _astroid_fields = ('args', 'defaults', 'kwonlyargs', 'kw_defaults')
324
- args = None
325
- defaults = None
326
- kwonlyargs = None
327
- kw_defaults = None
328
-
329
- def __init__(self, vararg=None, kwarg=None):
330
- self.vararg = vararg
331
- self.kwarg = kwarg
332
-
333
- def _infer_name(self, frame, name):
334
- if self.parent is frame:
335
- return name
336
- return None
337
-
338
- @decorators.cachedproperty
339
- def fromlineno(self):
340
- lineno = super(Arguments, self).fromlineno
341
- return max(lineno, self.parent.fromlineno or 0)
342
-
343
- def format_args(self):
344
- """return arguments formatted as string"""
345
- result = []
346
- if self.args:
347
- result.append(
348
- _format_args(self.args, self.defaults,
349
- getattr(self, 'annotations', None))
350
- )
351
- if self.vararg:
352
- result.append('*%s' % self.vararg)
353
- if self.kwonlyargs:
354
- if not self.vararg:
355
- result.append('*')
356
- result.append(_format_args(self.kwonlyargs, self.kw_defaults))
357
- if self.kwarg:
358
- result.append('**%s' % self.kwarg)
359
- return ', '.join(result)
360
-
361
- def default_value(self, argname):
362
- """return the default value for an argument
363
-
364
- :raise `NoDefault`: if there is no default value defined
365
- """
366
- i = _find_arg(argname, self.args)[0]
367
- if i is not None:
368
- idx = i - (len(self.args) - len(self.defaults))
369
- if idx >= 0:
370
- return self.defaults[idx]
371
- i = _find_arg(argname, self.kwonlyargs)[0]
372
- if i is not None and self.kw_defaults[i] is not None:
373
- return self.kw_defaults[i]
374
- raise exceptions.NoDefault()
375
-
376
- def is_argument(self, name):
377
- """return True if the name is defined in arguments"""
378
- if name == self.vararg:
379
- return True
380
- if name == self.kwarg:
381
- return True
382
- return self.find_argname(name, True)[1] is not None
383
-
384
- def find_argname(self, argname, rec=False):
385
- """return index and Name node with given name"""
386
- if self.args: # self.args may be None in some cases (builtin function)
387
- return _find_arg(argname, self.args, rec)
388
- return None, None
389
-
390
- def get_children(self):
391
- """override get_children to skip over None elements in kw_defaults"""
392
- for child in super(Arguments, self).get_children():
393
- if child is not None:
394
- yield child
395
-
396
-
397
- def _find_arg(argname, args, rec=False):
398
- for i, arg in enumerate(args):
399
- if isinstance(arg, Tuple):
400
- if rec:
401
- found = _find_arg(argname, arg.elts)
402
- if found[0] is not None:
403
- return found
404
- elif arg.name == argname:
405
- return i, arg
406
- return None, None
407
-
408
-
409
- def _format_args(args, defaults=None, annotations=None):
410
- values = []
411
- if args is None:
412
- return ''
413
- if annotations is None:
414
- annotations = []
415
- if defaults is not None:
416
- default_offset = len(args) - len(defaults)
417
- packed = six.moves.zip_longest(args, annotations)
418
- for i, (arg, annotation) in enumerate(packed):
419
- if isinstance(arg, Tuple):
420
- values.append('(%s)' % _format_args(arg.elts))
421
- else:
422
- argname = arg.name
423
- if annotation is not None:
424
- argname += ':' + annotation.as_string()
425
- values.append(argname)
426
-
427
- if defaults is not None and i >= default_offset:
428
- if defaults[i-default_offset] is not None:
429
- values[-1] += '=' + defaults[i-default_offset].as_string()
430
- return ', '.join(values)
431
-
432
-
433
- class AssignAttr(mixins.ParentAssignTypeMixin, bases.NodeNG):
434
- """class representing an AssignAttr node"""
435
- _astroid_fields = ('expr',)
436
- expr = None
437
-
438
- class Assert(bases.Statement):
439
- """class representing an Assert node"""
440
- _astroid_fields = ('test', 'fail',)
441
- test = None
442
- fail = None
443
-
444
- class Assign(bases.Statement, mixins.AssignTypeMixin):
445
- """class representing an Assign node"""
446
- _astroid_fields = ('targets', 'value',)
447
- targets = None
448
- value = None
449
-
450
- class AugAssign(bases.Statement, mixins.AssignTypeMixin):
451
- """class representing an AugAssign node"""
452
- _astroid_fields = ('target', 'value',)
453
- target = None
454
- value = None
455
-
456
- class Repr(bases.NodeNG):
457
- """class representing a Backquote node"""
458
- _astroid_fields = ('value',)
459
- value = None
460
-
461
- class BinOp(bases.NodeNG):
462
- """class representing a BinOp node"""
463
- _astroid_fields = ('left', 'right',)
464
- left = None
465
- right = None
466
-
467
- class BoolOp(bases.NodeNG):
468
- """class representing a BoolOp node"""
469
- _astroid_fields = ('values',)
470
- values = None
471
-
472
- class Break(bases.Statement):
473
- """class representing a Break node"""
474
-
475
-
476
- class Call(bases.NodeNG):
477
- """class representing a Call node"""
478
- _astroid_fields = ('func', 'args', 'keywords')
479
- func = None
480
- args = None
481
- keywords = None
482
-
483
- @property
484
- def starargs(self):
485
- args = self.args or []
486
- return [arg for arg in args if isinstance(arg, Starred)]
487
-
488
- @property
489
- def kwargs(self):
490
- keywords = self.keywords or []
491
- return [keyword for keyword in keywords if keyword.arg is None]
492
-
493
- class Compare(bases.NodeNG):
494
- """class representing a Compare node"""
495
- _astroid_fields = ('left', 'ops',)
496
- left = None
497
- ops = None
498
-
499
- def get_children(self):
500
- """override get_children for tuple fields"""
501
- yield self.left
502
- for _, comparator in self.ops:
503
- yield comparator # we don't want the 'op'
504
-
505
- def last_child(self):
506
- """override last_child"""
507
- # XXX maybe if self.ops:
508
- return self.ops[-1][1]
509
- #return self.left
510
-
511
-
512
- class Comprehension(bases.NodeNG):
513
- """class representing a Comprehension node"""
514
- _astroid_fields = ('target', 'iter', 'ifs')
515
- target = None
516
- iter = None
517
- ifs = None
518
-
519
- optional_assign = True
520
- def assign_type(self):
521
- return self
522
-
523
- def ass_type(self):
524
- warnings.warn('%s.ass_type() is deprecated and slated for removal'
525
- 'in astroid 2.0, use %s.assign_type() instead.'
526
- % (type(self).__name__, type(self).__name__),
527
- PendingDeprecationWarning, stacklevel=2)
528
- return self.assign_type()
529
-
530
- def _get_filtered_stmts(self, lookup_node, node, stmts, mystmt):
531
- """method used in filter_stmts"""
532
- if self is mystmt:
533
- if isinstance(lookup_node, (Const, Name)):
534
- return [lookup_node], True
535
-
536
- elif self.statement() is mystmt:
537
- # original node's statement is the assignment, only keeps
538
- # current node (gen exp, list comp)
539
-
540
- return [node], True
541
-
542
- return stmts, False
543
-
544
-
545
- class Const(bases.NodeNG, bases.Instance):
546
- """represent a constant node like num, str, bool, None, bytes"""
547
-
548
- def __init__(self, value=None):
549
- self.value = value
550
-
551
- def getitem(self, index, context=None):
552
- if isinstance(self.value, six.string_types):
553
- return Const(self.value[index])
554
- if isinstance(self.value, bytes) and six.PY3:
555
- # Bytes aren't instances of six.string_types
556
- # on Python 3. Also, indexing them should return
557
- # integers.
558
- return Const(self.value[index])
559
- raise TypeError('%r (value=%s)' % (self, self.value))
560
-
561
- def has_dynamic_getattr(self):
562
- return False
563
-
564
- def itered(self):
565
- if isinstance(self.value, six.string_types):
566
- return self.value
567
- raise TypeError()
568
-
569
- def pytype(self):
570
- return self._proxied.qname()
571
-
572
-
573
- class Continue(bases.Statement):
574
- """class representing a Continue node"""
575
-
576
-
577
- class Decorators(bases.NodeNG):
578
- """class representing a Decorators node"""
579
- _astroid_fields = ('nodes',)
580
- nodes = None
581
-
582
- def __init__(self, nodes=None):
583
- self.nodes = nodes
584
-
585
- def scope(self):
586
- # skip the function node to go directly to the upper level scope
587
- return self.parent.parent.scope()
588
-
589
-
590
- class DelAttr(mixins.ParentAssignTypeMixin, bases.NodeNG):
591
- """class representing a DelAttr node"""
592
- _astroid_fields = ('expr',)
593
- expr = None
594
-
595
-
596
-
597
- class Delete(mixins.AssignTypeMixin, bases.Statement):
598
- """class representing a Delete node"""
599
- _astroid_fields = ('targets',)
600
- targets = None
601
-
602
-
603
- class Dict(bases.NodeNG, bases.Instance):
604
- """class representing a Dict node"""
605
- _astroid_fields = ('items',)
606
-
607
- def __init__(self, items=None):
608
- if items is None:
609
- self.items = []
610
- else:
611
- self.items = [(const_factory(k), const_factory(v))
612
- for k, v in list(items.items())]
613
-
614
- def pytype(self):
615
- return '%s.dict' % BUILTINS
616
-
617
- def get_children(self):
618
- """get children of a Dict node"""
619
- # overrides get_children
620
- for key, value in self.items:
621
- yield key
622
- yield value
623
-
624
- def last_child(self):
625
- """override last_child"""
626
- if self.items:
627
- return self.items[-1][1]
628
- return None
629
-
630
- def itered(self):
631
- return self.items[::2]
632
-
633
- def getitem(self, lookup_key, context=None):
634
- for key, value in self.items:
635
- # TODO(cpopa): no support for overriding yet, {1:2, **{1: 3}}.
636
- if isinstance(key, DictUnpack):
637
- try:
638
- return value.getitem(lookup_key, context)
639
- except IndexError:
640
- continue
641
- for inferredkey in key.infer(context):
642
- if inferredkey is util.YES:
643
- continue
644
- if isinstance(inferredkey, Const) \
645
- and inferredkey.value == lookup_key:
646
- return value
647
- # This should raise KeyError, but all call sites only catch
648
- # IndexError. Let's leave it like that for now.
649
- raise IndexError(lookup_key)
650
-
651
-
652
- class Expr(bases.Statement):
653
- """class representing a Expr node"""
654
- _astroid_fields = ('value',)
655
- value = None
656
-
657
-
658
- class Ellipsis(bases.NodeNG): # pylint: disable=redefined-builtin
659
- """class representing an Ellipsis node"""
660
-
661
-
662
- class EmptyNode(bases.NodeNG):
663
- """class representing an EmptyNode node"""
664
-
665
-
666
- class ExceptHandler(mixins.AssignTypeMixin, bases.Statement):
667
- """class representing an ExceptHandler node"""
668
- _astroid_fields = ('type', 'name', 'body',)
669
- type = None
670
- name = None
671
- body = None
672
-
673
- @decorators.cachedproperty
674
- def blockstart_tolineno(self):
675
- if self.name:
676
- return self.name.tolineno
677
- elif self.type:
678
- return self.type.tolineno
679
- else:
680
- return self.lineno
681
-
682
- def catch(self, exceptions):
683
- if self.type is None or exceptions is None:
684
- return True
685
- for node in self.type.nodes_of_class(Name):
686
- if node.name in exceptions:
687
- return True
688
-
689
-
690
- class Exec(bases.Statement):
691
- """class representing an Exec node"""
692
- _astroid_fields = ('expr', 'globals', 'locals',)
693
- expr = None
694
- globals = None
695
- locals = None
696
-
697
-
698
- class ExtSlice(bases.NodeNG):
699
- """class representing an ExtSlice node"""
700
- _astroid_fields = ('dims',)
701
- dims = None
702
-
703
- class For(mixins.BlockRangeMixIn, mixins.AssignTypeMixin, bases.Statement):
704
- """class representing a For node"""
705
- _astroid_fields = ('target', 'iter', 'body', 'orelse',)
706
- target = None
707
- iter = None
708
- body = None
709
- orelse = None
710
-
711
- optional_assign = True
712
- @decorators.cachedproperty
713
- def blockstart_tolineno(self):
714
- return self.iter.tolineno
715
-
716
-
717
- class AsyncFor(For):
718
- """Asynchronous For built with `async` keyword."""
719
-
720
-
721
- class Await(bases.NodeNG):
722
- """Await node for the `await` keyword."""
723
-
724
- _astroid_fields = ('value', )
725
- value = None
726
-
727
- def postinit(self, value=None):
728
- self.value = value
729
-
730
-
731
- class ImportFrom(mixins.ImportFromMixin, bases.Statement):
732
- """class representing a From node"""
733
-
734
- def __init__(self, fromname, names, level=0):
735
- self.modname = fromname
736
- self.names = names
737
- self.level = level
738
-
739
- class Attribute(bases.NodeNG):
740
- """class representing a Attribute node"""
741
- _astroid_fields = ('expr',)
742
- expr = None
743
-
744
-
745
- class Global(bases.Statement):
746
- """class representing a Global node"""
747
-
748
- def __init__(self, names):
749
- self.names = names
750
-
751
- def _infer_name(self, frame, name):
752
- return name
753
-
754
-
755
- class If(mixins.BlockRangeMixIn, bases.Statement):
756
- """class representing an If node"""
757
- _astroid_fields = ('test', 'body', 'orelse')
758
- test = None
759
- body = None
760
- orelse = None
761
-
762
- @decorators.cachedproperty
763
- def blockstart_tolineno(self):
764
- return self.test.tolineno
765
-
766
- def block_range(self, lineno):
767
- """handle block line numbers range for if statements"""
768
- if lineno == self.body[0].fromlineno:
769
- return lineno, lineno
770
- if lineno <= self.body[-1].tolineno:
771
- return lineno, self.body[-1].tolineno
772
- return self._elsed_block_range(lineno, self.orelse,
773
- self.body[0].fromlineno - 1)
774
-
775
-
776
- class IfExp(bases.NodeNG):
777
- """class representing an IfExp node"""
778
- _astroid_fields = ('test', 'body', 'orelse')
779
- test = None
780
- body = None
781
- orelse = None
782
-
783
-
784
- class Import(mixins.ImportFromMixin, bases.Statement):
785
- """class representing an Import node"""
786
-
787
-
788
- class Index(bases.NodeNG):
789
- """class representing an Index node"""
790
- _astroid_fields = ('value',)
791
- value = None
792
-
793
-
794
- class Keyword(bases.NodeNG):
795
- """class representing a Keyword node"""
796
- _astroid_fields = ('value',)
797
- value = None
798
-
799
-
800
- class List(_BaseContainer):
801
- """class representing a List node"""
802
-
803
- def pytype(self):
804
- return '%s.list' % BUILTINS
805
-
806
- def getitem(self, index, context=None):
807
- return self.elts[index]
808
-
809
-
810
- class Nonlocal(bases.Statement):
811
- """class representing a Nonlocal node"""
812
-
813
- def __init__(self, names):
814
- self.names = names
815
-
816
- def _infer_name(self, frame, name):
817
- return name
818
-
819
-
820
- class Pass(bases.Statement):
821
- """class representing a Pass node"""
822
-
823
-
824
- class Print(bases.Statement):
825
- """class representing a Print node"""
826
- _astroid_fields = ('dest', 'values',)
827
- dest = None
828
- values = None
829
-
830
-
831
- class Raise(bases.Statement):
832
- """class representing a Raise node"""
833
- exc = None
834
- if six.PY2:
835
- _astroid_fields = ('exc', 'inst', 'tback')
836
- inst = None
837
- tback = None
838
- else:
839
- _astroid_fields = ('exc', 'cause')
840
- exc = None
841
- cause = None
842
-
843
- def raises_not_implemented(self):
844
- if not self.exc:
845
- return
846
- for name in self.exc.nodes_of_class(Name):
847
- if name.name == 'NotImplementedError':
848
- return True
849
-
850
-
851
- class Return(bases.Statement):
852
- """class representing a Return node"""
853
- _astroid_fields = ('value',)
854
- value = None
855
-
856
-
857
- class Set(_BaseContainer):
858
- """class representing a Set node"""
859
-
860
- def pytype(self):
861
- return '%s.set' % BUILTINS
862
-
863
-
864
- class Slice(bases.NodeNG):
865
- """class representing a Slice node"""
866
- _astroid_fields = ('lower', 'upper', 'step')
867
- lower = None
868
- upper = None
869
- step = None
870
-
871
- class Starred(mixins.ParentAssignTypeMixin, bases.NodeNG):
872
- """class representing a Starred node"""
873
- _astroid_fields = ('value',)
874
- value = None
875
-
876
-
877
- class Subscript(bases.NodeNG):
878
- """class representing a Subscript node"""
879
- _astroid_fields = ('value', 'slice')
880
- value = None
881
- slice = None
882
-
883
-
884
- class TryExcept(mixins.BlockRangeMixIn, bases.Statement):
885
- """class representing a TryExcept node"""
886
- _astroid_fields = ('body', 'handlers', 'orelse',)
887
- body = None
888
- handlers = None
889
- orelse = None
890
-
891
- def _infer_name(self, frame, name):
892
- return name
893
-
894
- def block_range(self, lineno):
895
- """handle block line numbers range for try/except statements"""
896
- last = None
897
- for exhandler in self.handlers:
898
- if exhandler.type and lineno == exhandler.type.fromlineno:
899
- return lineno, lineno
900
- if exhandler.body[0].fromlineno <= lineno <= exhandler.body[-1].tolineno:
901
- return lineno, exhandler.body[-1].tolineno
902
- if last is None:
903
- last = exhandler.body[0].fromlineno - 1
904
- return self._elsed_block_range(lineno, self.orelse, last)
905
-
906
-
907
- class TryFinally(mixins.BlockRangeMixIn, bases.Statement):
908
- """class representing a TryFinally node"""
909
- _astroid_fields = ('body', 'finalbody',)
910
- body = None
911
- finalbody = None
912
-
913
- def block_range(self, lineno):
914
- """handle block line numbers range for try/finally statements"""
915
- child = self.body[0]
916
- # py2.5 try: except: finally:
917
- if (isinstance(child, TryExcept) and child.fromlineno == self.fromlineno
918
- and lineno > self.fromlineno and lineno <= child.tolineno):
919
- return child.block_range(lineno)
920
- return self._elsed_block_range(lineno, self.finalbody)
921
-
922
-
923
- class Tuple(_BaseContainer):
924
- """class representing a Tuple node"""
925
-
926
- def pytype(self):
927
- return '%s.tuple' % BUILTINS
928
-
929
- def getitem(self, index, context=None):
930
- return self.elts[index]
931
-
932
-
933
- class UnaryOp(bases.NodeNG):
934
- """class representing an UnaryOp node"""
935
- _astroid_fields = ('operand',)
936
- operand = None
937
-
938
-
939
- class While(mixins.BlockRangeMixIn, bases.Statement):
940
- """class representing a While node"""
941
- _astroid_fields = ('test', 'body', 'orelse',)
942
- test = None
943
- body = None
944
- orelse = None
945
-
946
- @decorators.cachedproperty
947
- def blockstart_tolineno(self):
948
- return self.test.tolineno
949
-
950
- def block_range(self, lineno):
951
- """handle block line numbers range for for and while statements"""
952
- return self. _elsed_block_range(lineno, self.orelse)
953
-
954
-
955
- class With(mixins.BlockRangeMixIn, mixins.AssignTypeMixin, bases.Statement):
956
- """class representing a With node"""
957
- _astroid_fields = ('items', 'body')
958
- items = None
959
- body = None
960
-
961
- @decorators.cachedproperty
962
- def blockstart_tolineno(self):
963
- return self.items[-1][0].tolineno
964
-
965
- def get_children(self):
966
- for expr, var in self.items:
967
- yield expr
968
- if var:
969
- yield var
970
- for elt in self.body:
971
- yield elt
972
-
973
-
974
- class AsyncWith(With):
975
- """Asynchronous `with` built with the `async` keyword."""
976
-
977
-
978
- class Yield(bases.NodeNG):
979
- """class representing a Yield node"""
980
- _astroid_fields = ('value',)
981
- value = None
982
-
983
- class YieldFrom(Yield):
984
- """ Class representing a YieldFrom node. """
985
-
986
-
987
- class DictUnpack(bases.NodeNG):
988
- """Represents the unpacking of dicts into dicts using PEP 448."""
989
-
990
-
991
- # constants ##############################################################
992
-
993
- CONST_CLS = {
994
- list: List,
995
- tuple: Tuple,
996
- dict: Dict,
997
- set: Set,
998
- type(None): Const,
999
- type(NotImplemented): Const,
1000
- }
1001
-
1002
- def _update_const_classes():
1003
- """update constant classes, so the keys of CONST_CLS can be reused"""
1004
- klasses = (bool, int, float, complex, str)
1005
- if six.PY2:
1006
- klasses += (unicode, long)
1007
- klasses += (bytes,)
1008
- for kls in klasses:
1009
- CONST_CLS[kls] = Const
1010
- _update_const_classes()
1011
-
1012
-
1013
- def const_factory(value):
1014
- """return an astroid node for a python value"""
1015
- # XXX we should probably be stricter here and only consider stuff in
1016
- # CONST_CLS or do better treatment: in case where value is not in CONST_CLS,
1017
- # we should rather recall the builder on this value than returning an empty
1018
- # node (another option being that const_factory shouldn't be called with something
1019
- # not in CONST_CLS)
1020
- assert not isinstance(value, bases.NodeNG)
1021
- try:
1022
- return CONST_CLS[value.__class__](value)
1023
- except (KeyError, AttributeError):
1024
- node = EmptyNode()
1025
- node.object = value
1026
- return node
1027
-
1028
-
1029
- # Backward-compatibility aliases
1030
- def instancecheck(cls, other):
1031
- wrapped = cls.__wrapped__
1032
- other_cls = other.__class__
1033
- is_instance_of = wrapped is other_cls or issubclass(other_cls, wrapped)
1034
- warnings.warn("%r is deprecated and slated for removal in astroid "
1035
- "2.0, use %r instead" % (cls.__class__.__name__,
1036
- wrapped.__name__),
1037
- PendingDeprecationWarning, stacklevel=2)
1038
- return is_instance_of
1039
-
1040
-
1041
- def proxy_alias(alias_name, node_type):
1042
- proxy = type(alias_name, (lazy_object_proxy.Proxy,),
1043
- {'__class__': object.__dict__['__class__'],
1044
- '__instancecheck__': instancecheck})
1045
- return proxy(lambda: node_type)
1046
-
1047
- Backquote = proxy_alias('Backquote', Repr)
1048
- Discard = proxy_alias('Discard', Expr)
1049
- AssName = proxy_alias('AssName', AssignName)
1050
- AssAttr = proxy_alias('AssAttr', AssignAttr)
1051
- Getattr = proxy_alias('Getattr', Attribute)
1052
- CallFunc = proxy_alias('CallFunc', Call)
1053
- From = proxy_alias('From', ImportFrom)