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,421 +0,0 @@
1
- """Implementation of JSONDecoder
2
- """
3
- import re
4
- import sys
5
- import struct
6
-
7
- from simplejson.scanner import make_scanner
8
- def _import_c_scanstring():
9
- try:
10
- from simplejson._speedups import scanstring
11
- return scanstring
12
- except ImportError:
13
- return None
14
- c_scanstring = _import_c_scanstring()
15
-
16
- __all__ = ['JSONDecoder']
17
-
18
- FLAGS = re.VERBOSE | re.MULTILINE | re.DOTALL
19
-
20
- def _floatconstants():
21
- _BYTES = '7FF80000000000007FF0000000000000'.decode('hex')
22
- # The struct module in Python 2.4 would get frexp() out of range here
23
- # when an endian is specified in the format string. Fixed in Python 2.5+
24
- if sys.byteorder != 'big':
25
- _BYTES = _BYTES[:8][::-1] + _BYTES[8:][::-1]
26
- nan, inf = struct.unpack('dd', _BYTES)
27
- return nan, inf, -inf
28
-
29
- NaN, PosInf, NegInf = _floatconstants()
30
-
31
-
32
- class JSONDecodeError(ValueError):
33
- """Subclass of ValueError with the following additional properties:
34
-
35
- msg: The unformatted error message
36
- doc: The JSON document being parsed
37
- pos: The start index of doc where parsing failed
38
- end: The end index of doc where parsing failed (may be None)
39
- lineno: The line corresponding to pos
40
- colno: The column corresponding to pos
41
- endlineno: The line corresponding to end (may be None)
42
- endcolno: The column corresponding to end (may be None)
43
-
44
- """
45
- def __init__(self, msg, doc, pos, end=None):
46
- ValueError.__init__(self, errmsg(msg, doc, pos, end=end))
47
- self.msg = msg
48
- self.doc = doc
49
- self.pos = pos
50
- self.end = end
51
- self.lineno, self.colno = linecol(doc, pos)
52
- if end is not None:
53
- self.endlineno, self.endcolno = linecol(doc, pos)
54
- else:
55
- self.endlineno, self.endcolno = None, None
56
-
57
-
58
- def linecol(doc, pos):
59
- lineno = doc.count('\n', 0, pos) + 1
60
- if lineno == 1:
61
- colno = pos
62
- else:
63
- colno = pos - doc.rindex('\n', 0, pos)
64
- return lineno, colno
65
-
66
-
67
- def errmsg(msg, doc, pos, end=None):
68
- # Note that this function is called from _speedups
69
- lineno, colno = linecol(doc, pos)
70
- if end is None:
71
- #fmt = '{0}: line {1} column {2} (char {3})'
72
- #return fmt.format(msg, lineno, colno, pos)
73
- fmt = '%s: line %d column %d (char %d)'
74
- return fmt % (msg, lineno, colno, pos)
75
- endlineno, endcolno = linecol(doc, end)
76
- #fmt = '{0}: line {1} column {2} - line {3} column {4} (char {5} - {6})'
77
- #return fmt.format(msg, lineno, colno, endlineno, endcolno, pos, end)
78
- fmt = '%s: line %d column %d - line %d column %d (char %d - %d)'
79
- return fmt % (msg, lineno, colno, endlineno, endcolno, pos, end)
80
-
81
-
82
- _CONSTANTS = {
83
- '-Infinity': NegInf,
84
- 'Infinity': PosInf,
85
- 'NaN': NaN,
86
- }
87
-
88
- STRINGCHUNK = re.compile(r'(.*?)(["\\\x00-\x1f])', FLAGS)
89
- BACKSLASH = {
90
- '"': u'"', '\\': u'\\', '/': u'/',
91
- 'b': u'\b', 'f': u'\f', 'n': u'\n', 'r': u'\r', 't': u'\t',
92
- }
93
-
94
- DEFAULT_ENCODING = "utf-8"
95
-
96
- def py_scanstring(s, end, encoding=None, strict=True,
97
- _b=BACKSLASH, _m=STRINGCHUNK.match):
98
- """Scan the string s for a JSON string. End is the index of the
99
- character in s after the quote that started the JSON string.
100
- Unescapes all valid JSON string escape sequences and raises ValueError
101
- on attempt to decode an invalid string. If strict is False then literal
102
- control characters are allowed in the string.
103
-
104
- Returns a tuple of the decoded string and the index of the character in s
105
- after the end quote."""
106
- if encoding is None:
107
- encoding = DEFAULT_ENCODING
108
- chunks = []
109
- _append = chunks.append
110
- begin = end - 1
111
- while 1:
112
- chunk = _m(s, end)
113
- if chunk is None:
114
- raise JSONDecodeError(
115
- "Unterminated string starting at", s, begin)
116
- end = chunk.end()
117
- content, terminator = chunk.groups()
118
- # Content is contains zero or more unescaped string characters
119
- if content:
120
- if not isinstance(content, unicode):
121
- content = unicode(content, encoding)
122
- _append(content)
123
- # Terminator is the end of string, a literal control character,
124
- # or a backslash denoting that an escape sequence follows
125
- if terminator == '"':
126
- break
127
- elif terminator != '\\':
128
- if strict:
129
- msg = "Invalid control character %r at" % (terminator,)
130
- #msg = "Invalid control character {0!r} at".format(terminator)
131
- raise JSONDecodeError(msg, s, end)
132
- else:
133
- _append(terminator)
134
- continue
135
- try:
136
- esc = s[end]
137
- except IndexError:
138
- raise JSONDecodeError(
139
- "Unterminated string starting at", s, begin)
140
- # If not a unicode escape sequence, must be in the lookup table
141
- if esc != 'u':
142
- try:
143
- char = _b[esc]
144
- except KeyError:
145
- msg = "Invalid \\escape: " + repr(esc)
146
- raise JSONDecodeError(msg, s, end)
147
- end += 1
148
- else:
149
- # Unicode escape sequence
150
- esc = s[end + 1:end + 5]
151
- next_end = end + 5
152
- if len(esc) != 4:
153
- msg = "Invalid \\uXXXX escape"
154
- raise JSONDecodeError(msg, s, end)
155
- uni = int(esc, 16)
156
- # Check for surrogate pair on UCS-4 systems
157
- if 0xd800 <= uni <= 0xdbff and sys.maxunicode > 65535:
158
- msg = "Invalid \\uXXXX\\uXXXX surrogate pair"
159
- if not s[end + 5:end + 7] == '\\u':
160
- raise JSONDecodeError(msg, s, end)
161
- esc2 = s[end + 7:end + 11]
162
- if len(esc2) != 4:
163
- raise JSONDecodeError(msg, s, end)
164
- uni2 = int(esc2, 16)
165
- uni = 0x10000 + (((uni - 0xd800) << 10) | (uni2 - 0xdc00))
166
- next_end += 6
167
- char = unichr(uni)
168
- end = next_end
169
- # Append the unescaped character
170
- _append(char)
171
- return u''.join(chunks), end
172
-
173
-
174
- # Use speedup if available
175
- scanstring = c_scanstring or py_scanstring
176
-
177
- WHITESPACE = re.compile(r'[ \t\n\r]*', FLAGS)
178
- WHITESPACE_STR = ' \t\n\r'
179
-
180
- def JSONObject((s, end), encoding, strict, scan_once, object_hook,
181
- object_pairs_hook, memo=None,
182
- _w=WHITESPACE.match, _ws=WHITESPACE_STR):
183
- # Backwards compatibility
184
- if memo is None:
185
- memo = {}
186
- memo_get = memo.setdefault
187
- pairs = []
188
- # Use a slice to prevent IndexError from being raised, the following
189
- # check will raise a more specific ValueError if the string is empty
190
- nextchar = s[end:end + 1]
191
- # Normally we expect nextchar == '"'
192
- if nextchar != '"':
193
- if nextchar in _ws:
194
- end = _w(s, end).end()
195
- nextchar = s[end:end + 1]
196
- # Trivial empty object
197
- if nextchar == '}':
198
- if object_pairs_hook is not None:
199
- result = object_pairs_hook(pairs)
200
- return result, end
201
- pairs = {}
202
- if object_hook is not None:
203
- pairs = object_hook(pairs)
204
- return pairs, end + 1
205
- elif nextchar != '"':
206
- raise JSONDecodeError("Expecting property name", s, end)
207
- end += 1
208
- while True:
209
- key, end = scanstring(s, end, encoding, strict)
210
- key = memo_get(key, key)
211
-
212
- # To skip some function call overhead we optimize the fast paths where
213
- # the JSON key separator is ": " or just ":".
214
- if s[end:end + 1] != ':':
215
- end = _w(s, end).end()
216
- if s[end:end + 1] != ':':
217
- raise JSONDecodeError("Expecting : delimiter", s, end)
218
-
219
- end += 1
220
-
221
- try:
222
- if s[end] in _ws:
223
- end += 1
224
- if s[end] in _ws:
225
- end = _w(s, end + 1).end()
226
- except IndexError:
227
- pass
228
-
229
- try:
230
- value, end = scan_once(s, end)
231
- except StopIteration:
232
- raise JSONDecodeError("Expecting object", s, end)
233
- pairs.append((key, value))
234
-
235
- try:
236
- nextchar = s[end]
237
- if nextchar in _ws:
238
- end = _w(s, end + 1).end()
239
- nextchar = s[end]
240
- except IndexError:
241
- nextchar = ''
242
- end += 1
243
-
244
- if nextchar == '}':
245
- break
246
- elif nextchar != ',':
247
- raise JSONDecodeError("Expecting , delimiter", s, end - 1)
248
-
249
- try:
250
- nextchar = s[end]
251
- if nextchar in _ws:
252
- end += 1
253
- nextchar = s[end]
254
- if nextchar in _ws:
255
- end = _w(s, end + 1).end()
256
- nextchar = s[end]
257
- except IndexError:
258
- nextchar = ''
259
-
260
- end += 1
261
- if nextchar != '"':
262
- raise JSONDecodeError("Expecting property name", s, end - 1)
263
-
264
- if object_pairs_hook is not None:
265
- result = object_pairs_hook(pairs)
266
- return result, end
267
- pairs = dict(pairs)
268
- if object_hook is not None:
269
- pairs = object_hook(pairs)
270
- return pairs, end
271
-
272
- def JSONArray((s, end), scan_once, _w=WHITESPACE.match, _ws=WHITESPACE_STR):
273
- values = []
274
- nextchar = s[end:end + 1]
275
- if nextchar in _ws:
276
- end = _w(s, end + 1).end()
277
- nextchar = s[end:end + 1]
278
- # Look-ahead for trivial empty array
279
- if nextchar == ']':
280
- return values, end + 1
281
- _append = values.append
282
- while True:
283
- try:
284
- value, end = scan_once(s, end)
285
- except StopIteration:
286
- raise JSONDecodeError("Expecting object", s, end)
287
- _append(value)
288
- nextchar = s[end:end + 1]
289
- if nextchar in _ws:
290
- end = _w(s, end + 1).end()
291
- nextchar = s[end:end + 1]
292
- end += 1
293
- if nextchar == ']':
294
- break
295
- elif nextchar != ',':
296
- raise JSONDecodeError("Expecting , delimiter", s, end)
297
-
298
- try:
299
- if s[end] in _ws:
300
- end += 1
301
- if s[end] in _ws:
302
- end = _w(s, end + 1).end()
303
- except IndexError:
304
- pass
305
-
306
- return values, end
307
-
308
- class JSONDecoder(object):
309
- """Simple JSON <http://json.org> decoder
310
-
311
- Performs the following translations in decoding by default:
312
-
313
- +---------------+-------------------+
314
- | JSON | Python |
315
- +===============+===================+
316
- | object | dict |
317
- +---------------+-------------------+
318
- | array | list |
319
- +---------------+-------------------+
320
- | string | unicode |
321
- +---------------+-------------------+
322
- | number (int) | int, long |
323
- +---------------+-------------------+
324
- | number (real) | float |
325
- +---------------+-------------------+
326
- | true | True |
327
- +---------------+-------------------+
328
- | false | False |
329
- +---------------+-------------------+
330
- | null | None |
331
- +---------------+-------------------+
332
-
333
- It also understands ``NaN``, ``Infinity``, and ``-Infinity`` as
334
- their corresponding ``float`` values, which is outside the JSON spec.
335
-
336
- """
337
-
338
- def __init__(self, encoding=None, object_hook=None, parse_float=None,
339
- parse_int=None, parse_constant=None, strict=True,
340
- object_pairs_hook=None):
341
- """
342
- *encoding* determines the encoding used to interpret any
343
- :class:`str` objects decoded by this instance (``'utf-8'`` by
344
- default). It has no effect when decoding :class:`unicode` objects.
345
-
346
- Note that currently only encodings that are a superset of ASCII work,
347
- strings of other encodings should be passed in as :class:`unicode`.
348
-
349
- *object_hook*, if specified, will be called with the result of every
350
- JSON object decoded and its return value will be used in place of the
351
- given :class:`dict`. This can be used to provide custom
352
- deserializations (e.g. to support JSON-RPC class hinting).
353
-
354
- *object_pairs_hook* is an optional function that will be called with
355
- the result of any object literal decode with an ordered list of pairs.
356
- The return value of *object_pairs_hook* will be used instead of the
357
- :class:`dict`. This feature can be used to implement custom decoders
358
- that rely on the order that the key and value pairs are decoded (for
359
- example, :func:`collections.OrderedDict` will remember the order of
360
- insertion). If *object_hook* is also defined, the *object_pairs_hook*
361
- takes priority.
362
-
363
- *parse_float*, if specified, will be called with the string of every
364
- JSON float to be decoded. By default, this is equivalent to
365
- ``float(num_str)``. This can be used to use another datatype or parser
366
- for JSON floats (e.g. :class:`decimal.Decimal`).
367
-
368
- *parse_int*, if specified, will be called with the string of every
369
- JSON int to be decoded. By default, this is equivalent to
370
- ``int(num_str)``. This can be used to use another datatype or parser
371
- for JSON integers (e.g. :class:`float`).
372
-
373
- *parse_constant*, if specified, will be called with one of the
374
- following strings: ``'-Infinity'``, ``'Infinity'``, ``'NaN'``. This
375
- can be used to raise an exception if invalid JSON numbers are
376
- encountered.
377
-
378
- *strict* controls the parser's behavior when it encounters an
379
- invalid control character in a string. The default setting of
380
- ``True`` means that unescaped control characters are parse errors, if
381
- ``False`` then control characters will be allowed in strings.
382
-
383
- """
384
- self.encoding = encoding
385
- self.object_hook = object_hook
386
- self.object_pairs_hook = object_pairs_hook
387
- self.parse_float = parse_float or float
388
- self.parse_int = parse_int or int
389
- self.parse_constant = parse_constant or _CONSTANTS.__getitem__
390
- self.strict = strict
391
- self.parse_object = JSONObject
392
- self.parse_array = JSONArray
393
- self.parse_string = scanstring
394
- self.memo = {}
395
- self.scan_once = make_scanner(self)
396
-
397
- def decode(self, s, _w=WHITESPACE.match):
398
- """Return the Python representation of ``s`` (a ``str`` or ``unicode``
399
- instance containing a JSON document)
400
-
401
- """
402
- obj, end = self.raw_decode(s, idx=_w(s, 0).end())
403
- end = _w(s, end).end()
404
- if end != len(s):
405
- raise JSONDecodeError("Extra data", s, end, len(s))
406
- return obj
407
-
408
- def raw_decode(self, s, idx=0):
409
- """Decode a JSON document from ``s`` (a ``str`` or ``unicode``
410
- beginning with a JSON document) and return a 2-tuple of the Python
411
- representation and the index in ``s`` where the document ended.
412
-
413
- This can be used to decode a JSON document from a string that may
414
- have extraneous data at the end.
415
-
416
- """
417
- try:
418
- obj, end = self.scan_once(s, idx)
419
- except StopIteration:
420
- raise JSONDecodeError("No JSON object could be decoded", s, idx)
421
- return obj, end
@@ -1,501 +0,0 @@
1
- """Implementation of JSONEncoder
2
- """
3
- import re
4
- from decimal import Decimal
5
-
6
- def _import_speedups():
7
- try:
8
- from simplejson import _speedups
9
- return _speedups.encode_basestring_ascii, _speedups.make_encoder
10
- except ImportError:
11
- return None, None
12
- c_encode_basestring_ascii, c_make_encoder = _import_speedups()
13
-
14
- from simplejson.decoder import PosInf
15
-
16
- ESCAPE = re.compile(r'[\x00-\x1f\\"\b\f\n\r\t]')
17
- ESCAPE_ASCII = re.compile(r'([\\"]|[^\ -~])')
18
- HAS_UTF8 = re.compile(r'[\x80-\xff]')
19
- ESCAPE_DCT = {
20
- '\\': '\\\\',
21
- '"': '\\"',
22
- '\b': '\\b',
23
- '\f': '\\f',
24
- '\n': '\\n',
25
- '\r': '\\r',
26
- '\t': '\\t',
27
- }
28
- for i in range(0x20):
29
- #ESCAPE_DCT.setdefault(chr(i), '\\u{0:04x}'.format(i))
30
- ESCAPE_DCT.setdefault(chr(i), '\\u%04x' % (i,))
31
-
32
- FLOAT_REPR = repr
33
-
34
- def encode_basestring(s):
35
- """Return a JSON representation of a Python string
36
-
37
- """
38
- if isinstance(s, str) and HAS_UTF8.search(s) is not None:
39
- s = s.decode('utf-8')
40
- def replace(match):
41
- return ESCAPE_DCT[match.group(0)]
42
- return u'"' + ESCAPE.sub(replace, s) + u'"'
43
-
44
-
45
- def py_encode_basestring_ascii(s):
46
- """Return an ASCII-only JSON representation of a Python string
47
-
48
- """
49
- if isinstance(s, str) and HAS_UTF8.search(s) is not None:
50
- s = s.decode('utf-8')
51
- def replace(match):
52
- s = match.group(0)
53
- try:
54
- return ESCAPE_DCT[s]
55
- except KeyError:
56
- n = ord(s)
57
- if n < 0x10000:
58
- #return '\\u{0:04x}'.format(n)
59
- return '\\u%04x' % (n,)
60
- else:
61
- # surrogate pair
62
- n -= 0x10000
63
- s1 = 0xd800 | ((n >> 10) & 0x3ff)
64
- s2 = 0xdc00 | (n & 0x3ff)
65
- #return '\\u{0:04x}\\u{1:04x}'.format(s1, s2)
66
- return '\\u%04x\\u%04x' % (s1, s2)
67
- return '"' + str(ESCAPE_ASCII.sub(replace, s)) + '"'
68
-
69
-
70
- encode_basestring_ascii = (
71
- c_encode_basestring_ascii or py_encode_basestring_ascii)
72
-
73
- class JSONEncoder(object):
74
- """Extensible JSON <http://json.org> encoder for Python data structures.
75
-
76
- Supports the following objects and types by default:
77
-
78
- +-------------------+---------------+
79
- | Python | JSON |
80
- +===================+===============+
81
- | dict | object |
82
- +-------------------+---------------+
83
- | list, tuple | array |
84
- +-------------------+---------------+
85
- | str, unicode | string |
86
- +-------------------+---------------+
87
- | int, long, float | number |
88
- +-------------------+---------------+
89
- | True | true |
90
- +-------------------+---------------+
91
- | False | false |
92
- +-------------------+---------------+
93
- | None | null |
94
- +-------------------+---------------+
95
-
96
- To extend this to recognize other objects, subclass and implement a
97
- ``.default()`` method with another method that returns a serializable
98
- object for ``o`` if possible, otherwise it should call the superclass
99
- implementation (to raise ``TypeError``).
100
-
101
- """
102
- item_separator = ', '
103
- key_separator = ': '
104
- def __init__(self, skipkeys=False, ensure_ascii=True,
105
- check_circular=True, allow_nan=True, sort_keys=False,
106
- indent=None, separators=None, encoding='utf-8', default=None,
107
- use_decimal=False):
108
- """Constructor for JSONEncoder, with sensible defaults.
109
-
110
- If skipkeys is false, then it is a TypeError to attempt
111
- encoding of keys that are not str, int, long, float or None. If
112
- skipkeys is True, such items are simply skipped.
113
-
114
- If ensure_ascii is true, the output is guaranteed to be str
115
- objects with all incoming unicode characters escaped. If
116
- ensure_ascii is false, the output will be unicode object.
117
-
118
- If check_circular is true, then lists, dicts, and custom encoded
119
- objects will be checked for circular references during encoding to
120
- prevent an infinite recursion (which would cause an OverflowError).
121
- Otherwise, no such check takes place.
122
-
123
- If allow_nan is true, then NaN, Infinity, and -Infinity will be
124
- encoded as such. This behavior is not JSON specification compliant,
125
- but is consistent with most JavaScript based encoders and decoders.
126
- Otherwise, it will be a ValueError to encode such floats.
127
-
128
- If sort_keys is true, then the output of dictionaries will be
129
- sorted by key; this is useful for regression tests to ensure
130
- that JSON serializations can be compared on a day-to-day basis.
131
-
132
- If indent is a string, then JSON array elements and object members
133
- will be pretty-printed with a newline followed by that string repeated
134
- for each level of nesting. ``None`` (the default) selects the most compact
135
- representation without any newlines. For backwards compatibility with
136
- versions of simplejson earlier than 2.1.0, an integer is also accepted
137
- and is converted to a string with that many spaces.
138
-
139
- If specified, separators should be a (item_separator, key_separator)
140
- tuple. The default is (', ', ': '). To get the most compact JSON
141
- representation you should specify (',', ':') to eliminate whitespace.
142
-
143
- If specified, default is a function that gets called for objects
144
- that can't otherwise be serialized. It should return a JSON encodable
145
- version of the object or raise a ``TypeError``.
146
-
147
- If encoding is not None, then all input strings will be
148
- transformed into unicode using that encoding prior to JSON-encoding.
149
- The default is UTF-8.
150
-
151
- If use_decimal is true (not the default), ``decimal.Decimal`` will
152
- be supported directly by the encoder. For the inverse, decode JSON
153
- with ``parse_float=decimal.Decimal``.
154
-
155
- """
156
-
157
- self.skipkeys = skipkeys
158
- self.ensure_ascii = ensure_ascii
159
- self.check_circular = check_circular
160
- self.allow_nan = allow_nan
161
- self.sort_keys = sort_keys
162
- self.use_decimal = use_decimal
163
- if isinstance(indent, (int, long)):
164
- indent = ' ' * indent
165
- self.indent = indent
166
- if separators is not None:
167
- self.item_separator, self.key_separator = separators
168
- if default is not None:
169
- self.default = default
170
- self.encoding = encoding
171
-
172
- def default(self, o):
173
- """Implement this method in a subclass such that it returns
174
- a serializable object for ``o``, or calls the base implementation
175
- (to raise a ``TypeError``).
176
-
177
- For example, to support arbitrary iterators, you could
178
- implement default like this::
179
-
180
- def default(self, o):
181
- try:
182
- iterable = iter(o)
183
- except TypeError:
184
- pass
185
- else:
186
- return list(iterable)
187
- return JSONEncoder.default(self, o)
188
-
189
- """
190
- raise TypeError(repr(o) + " is not JSON serializable")
191
-
192
- def encode(self, o):
193
- """Return a JSON string representation of a Python data structure.
194
-
195
- >>> from simplejson import JSONEncoder
196
- >>> JSONEncoder().encode({"foo": ["bar", "baz"]})
197
- '{"foo": ["bar", "baz"]}'
198
-
199
- """
200
- # This is for extremely simple cases and benchmarks.
201
- if isinstance(o, basestring):
202
- if isinstance(o, str):
203
- _encoding = self.encoding
204
- if (_encoding is not None
205
- and not (_encoding == 'utf-8')):
206
- o = o.decode(_encoding)
207
- if self.ensure_ascii:
208
- return encode_basestring_ascii(o)
209
- else:
210
- return encode_basestring(o)
211
- # This doesn't pass the iterator directly to ''.join() because the
212
- # exceptions aren't as detailed. The list call should be roughly
213
- # equivalent to the PySequence_Fast that ''.join() would do.
214
- chunks = self.iterencode(o, _one_shot=True)
215
- if not isinstance(chunks, (list, tuple)):
216
- chunks = list(chunks)
217
- if self.ensure_ascii:
218
- return ''.join(chunks)
219
- else:
220
- return u''.join(chunks)
221
-
222
- def iterencode(self, o, _one_shot=False):
223
- """Encode the given object and yield each string
224
- representation as available.
225
-
226
- For example::
227
-
228
- for chunk in JSONEncoder().iterencode(bigobject):
229
- mysocket.write(chunk)
230
-
231
- """
232
- if self.check_circular:
233
- markers = {}
234
- else:
235
- markers = None
236
- if self.ensure_ascii:
237
- _encoder = encode_basestring_ascii
238
- else:
239
- _encoder = encode_basestring
240
- if self.encoding != 'utf-8':
241
- def _encoder(o, _orig_encoder=_encoder, _encoding=self.encoding):
242
- if isinstance(o, str):
243
- o = o.decode(_encoding)
244
- return _orig_encoder(o)
245
-
246
- def floatstr(o, allow_nan=self.allow_nan,
247
- _repr=FLOAT_REPR, _inf=PosInf, _neginf=-PosInf):
248
- # Check for specials. Note that this type of test is processor
249
- # and/or platform-specific, so do tests which don't depend on
250
- # the internals.
251
-
252
- if o != o:
253
- text = 'NaN'
254
- elif o == _inf:
255
- text = 'Infinity'
256
- elif o == _neginf:
257
- text = '-Infinity'
258
- else:
259
- return _repr(o)
260
-
261
- if not allow_nan:
262
- raise ValueError(
263
- "Out of range float values are not JSON compliant: " +
264
- repr(o))
265
-
266
- return text
267
-
268
-
269
- key_memo = {}
270
- if (_one_shot and c_make_encoder is not None
271
- and not self.indent and not self.sort_keys):
272
- _iterencode = c_make_encoder(
273
- markers, self.default, _encoder, self.indent,
274
- self.key_separator, self.item_separator, self.sort_keys,
275
- self.skipkeys, self.allow_nan, key_memo, self.use_decimal)
276
- else:
277
- _iterencode = _make_iterencode(
278
- markers, self.default, _encoder, self.indent, floatstr,
279
- self.key_separator, self.item_separator, self.sort_keys,
280
- self.skipkeys, _one_shot, self.use_decimal)
281
- try:
282
- return _iterencode(o, 0)
283
- finally:
284
- key_memo.clear()
285
-
286
-
287
- class JSONEncoderForHTML(JSONEncoder):
288
- """An encoder that produces JSON safe to embed in HTML.
289
-
290
- To embed JSON content in, say, a script tag on a web page, the
291
- characters &, < and > should be escaped. They cannot be escaped
292
- with the usual entities (e.g. &amp;) because they are not expanded
293
- within <script> tags.
294
- """
295
-
296
- def encode(self, o):
297
- # Override JSONEncoder.encode because it has hacks for
298
- # performance that make things more complicated.
299
- chunks = self.iterencode(o, True)
300
- if self.ensure_ascii:
301
- return ''.join(chunks)
302
- else:
303
- return u''.join(chunks)
304
-
305
- def iterencode(self, o, _one_shot=False):
306
- chunks = super(JSONEncoderForHTML, self).iterencode(o, _one_shot)
307
- for chunk in chunks:
308
- chunk = chunk.replace('&', '\\u0026')
309
- chunk = chunk.replace('<', '\\u003c')
310
- chunk = chunk.replace('>', '\\u003e')
311
- yield chunk
312
-
313
-
314
- def _make_iterencode(markers, _default, _encoder, _indent, _floatstr,
315
- _key_separator, _item_separator, _sort_keys, _skipkeys, _one_shot,
316
- _use_decimal,
317
- ## HACK: hand-optimized bytecode; turn globals into locals
318
- False=False,
319
- True=True,
320
- ValueError=ValueError,
321
- basestring=basestring,
322
- Decimal=Decimal,
323
- dict=dict,
324
- float=float,
325
- id=id,
326
- int=int,
327
- isinstance=isinstance,
328
- list=list,
329
- long=long,
330
- str=str,
331
- tuple=tuple,
332
- ):
333
-
334
- def _iterencode_list(lst, _current_indent_level):
335
- if not lst:
336
- yield '[]'
337
- return
338
- if markers is not None:
339
- markerid = id(lst)
340
- if markerid in markers:
341
- raise ValueError("Circular reference detected")
342
- markers[markerid] = lst
343
- buf = '['
344
- if _indent is not None:
345
- _current_indent_level += 1
346
- newline_indent = '\n' + (_indent * _current_indent_level)
347
- separator = _item_separator + newline_indent
348
- buf += newline_indent
349
- else:
350
- newline_indent = None
351
- separator = _item_separator
352
- first = True
353
- for value in lst:
354
- if first:
355
- first = False
356
- else:
357
- buf = separator
358
- if isinstance(value, basestring):
359
- yield buf + _encoder(value)
360
- elif value is None:
361
- yield buf + 'null'
362
- elif value is True:
363
- yield buf + 'true'
364
- elif value is False:
365
- yield buf + 'false'
366
- elif isinstance(value, (int, long)):
367
- yield buf + str(value)
368
- elif isinstance(value, float):
369
- yield buf + _floatstr(value)
370
- elif _use_decimal and isinstance(value, Decimal):
371
- yield buf + str(value)
372
- else:
373
- yield buf
374
- if isinstance(value, (list, tuple)):
375
- chunks = _iterencode_list(value, _current_indent_level)
376
- elif isinstance(value, dict):
377
- chunks = _iterencode_dict(value, _current_indent_level)
378
- else:
379
- chunks = _iterencode(value, _current_indent_level)
380
- for chunk in chunks:
381
- yield chunk
382
- if newline_indent is not None:
383
- _current_indent_level -= 1
384
- yield '\n' + (_indent * _current_indent_level)
385
- yield ']'
386
- if markers is not None:
387
- del markers[markerid]
388
-
389
- def _iterencode_dict(dct, _current_indent_level):
390
- if not dct:
391
- yield '{}'
392
- return
393
- if markers is not None:
394
- markerid = id(dct)
395
- if markerid in markers:
396
- raise ValueError("Circular reference detected")
397
- markers[markerid] = dct
398
- yield '{'
399
- if _indent is not None:
400
- _current_indent_level += 1
401
- newline_indent = '\n' + (_indent * _current_indent_level)
402
- item_separator = _item_separator + newline_indent
403
- yield newline_indent
404
- else:
405
- newline_indent = None
406
- item_separator = _item_separator
407
- first = True
408
- if _sort_keys:
409
- items = dct.items()
410
- items.sort(key=lambda kv: kv[0])
411
- else:
412
- items = dct.iteritems()
413
- for key, value in items:
414
- if isinstance(key, basestring):
415
- pass
416
- # JavaScript is weakly typed for these, so it makes sense to
417
- # also allow them. Many encoders seem to do something like this.
418
- elif isinstance(key, float):
419
- key = _floatstr(key)
420
- elif key is True:
421
- key = 'true'
422
- elif key is False:
423
- key = 'false'
424
- elif key is None:
425
- key = 'null'
426
- elif isinstance(key, (int, long)):
427
- key = str(key)
428
- elif _skipkeys:
429
- continue
430
- else:
431
- raise TypeError("key " + repr(key) + " is not a string")
432
- if first:
433
- first = False
434
- else:
435
- yield item_separator
436
- yield _encoder(key)
437
- yield _key_separator
438
- if isinstance(value, basestring):
439
- yield _encoder(value)
440
- elif value is None:
441
- yield 'null'
442
- elif value is True:
443
- yield 'true'
444
- elif value is False:
445
- yield 'false'
446
- elif isinstance(value, (int, long)):
447
- yield str(value)
448
- elif isinstance(value, float):
449
- yield _floatstr(value)
450
- elif _use_decimal and isinstance(value, Decimal):
451
- yield str(value)
452
- else:
453
- if isinstance(value, (list, tuple)):
454
- chunks = _iterencode_list(value, _current_indent_level)
455
- elif isinstance(value, dict):
456
- chunks = _iterencode_dict(value, _current_indent_level)
457
- else:
458
- chunks = _iterencode(value, _current_indent_level)
459
- for chunk in chunks:
460
- yield chunk
461
- if newline_indent is not None:
462
- _current_indent_level -= 1
463
- yield '\n' + (_indent * _current_indent_level)
464
- yield '}'
465
- if markers is not None:
466
- del markers[markerid]
467
-
468
- def _iterencode(o, _current_indent_level):
469
- if isinstance(o, basestring):
470
- yield _encoder(o)
471
- elif o is None:
472
- yield 'null'
473
- elif o is True:
474
- yield 'true'
475
- elif o is False:
476
- yield 'false'
477
- elif isinstance(o, (int, long)):
478
- yield str(o)
479
- elif isinstance(o, float):
480
- yield _floatstr(o)
481
- elif isinstance(o, (list, tuple)):
482
- for chunk in _iterencode_list(o, _current_indent_level):
483
- yield chunk
484
- elif isinstance(o, dict):
485
- for chunk in _iterencode_dict(o, _current_indent_level):
486
- yield chunk
487
- elif _use_decimal and isinstance(o, Decimal):
488
- yield str(o)
489
- else:
490
- if markers is not None:
491
- markerid = id(o)
492
- if markerid in markers:
493
- raise ValueError("Circular reference detected")
494
- markers[markerid] = o
495
- o = _default(o)
496
- for chunk in _iterencode(o, _current_indent_level):
497
- yield chunk
498
- if markers is not None:
499
- del markers[markerid]
500
-
501
- return _iterencode