pygments.rb 1.2.0 → 2.1.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 (388) hide show
  1. checksums.yaml +5 -5
  2. data/.github/dependabot.yml +13 -0
  3. data/.github/workflows/ci.yml +40 -0
  4. data/.github/workflows/release.yml +24 -0
  5. data/.gitignore +5 -5
  6. data/.rubocop.yml +18 -0
  7. data/CHANGELOG.adoc +132 -0
  8. data/Gemfile +3 -1
  9. data/LICENSE +1 -1
  10. data/README.adoc +160 -0
  11. data/Rakefile +12 -21
  12. data/bench.rb +14 -8
  13. data/{cache-lexers.rb → cache_lexers.rb} +3 -2
  14. data/lexers +0 -0
  15. data/lib/pygments.rb +10 -11
  16. data/lib/pygments/lexer.rb +6 -6
  17. data/lib/pygments/mentos.py +23 -110
  18. data/lib/pygments/popen.rb +196 -275
  19. data/lib/pygments/version.rb +2 -2
  20. data/pygments.rb.gemspec +12 -10
  21. data/test/test_pygments.rb +50 -110
  22. data/vendor/pygments-main/{AUTHORS → Pygments-2.8.0.dist-info/AUTHORS} +26 -3
  23. data/vendor/pygments-main/Pygments-2.8.0.dist-info/INSTALLER +1 -0
  24. data/vendor/pygments-main/{LICENSE → Pygments-2.8.0.dist-info/LICENSE} +1 -1
  25. data/vendor/pygments-main/Pygments-2.8.0.dist-info/METADATA +48 -0
  26. data/vendor/pygments-main/Pygments-2.8.0.dist-info/RECORD +494 -0
  27. data/vendor/pygments-main/Pygments-2.8.0.dist-info/REQUESTED +0 -0
  28. data/vendor/pygments-main/Pygments-2.8.0.dist-info/WHEEL +5 -0
  29. data/vendor/pygments-main/Pygments-2.8.0.dist-info/entry_points.txt +3 -0
  30. data/vendor/pygments-main/Pygments-2.8.0.dist-info/top_level.txt +1 -0
  31. data/vendor/pygments-main/bin/pygmentize +8 -0
  32. data/vendor/pygments-main/pygments/__init__.py +6 -12
  33. data/vendor/pygments-main/pygments/__main__.py +17 -0
  34. data/vendor/pygments-main/pygments/cmdline.py +213 -184
  35. data/vendor/pygments-main/pygments/console.py +6 -10
  36. data/vendor/pygments-main/pygments/filter.py +4 -7
  37. data/vendor/pygments-main/pygments/filters/__init__.py +609 -22
  38. data/vendor/pygments-main/pygments/formatter.py +4 -5
  39. data/vendor/pygments-main/pygments/formatters/__init__.py +10 -10
  40. data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -4
  41. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -2
  42. data/vendor/pygments-main/pygments/formatters/html.py +242 -139
  43. data/vendor/pygments-main/pygments/formatters/img.py +91 -50
  44. data/vendor/pygments-main/pygments/formatters/irc.py +39 -40
  45. data/vendor/pygments-main/pygments/formatters/latex.py +62 -33
  46. data/vendor/pygments-main/pygments/formatters/other.py +18 -17
  47. data/vendor/pygments-main/pygments/formatters/rtf.py +29 -30
  48. data/vendor/pygments-main/pygments/formatters/svg.py +40 -5
  49. data/vendor/pygments-main/pygments/formatters/terminal.py +25 -32
  50. data/vendor/pygments-main/pygments/formatters/terminal256.py +45 -14
  51. data/vendor/pygments-main/pygments/lexer.py +47 -44
  52. data/vendor/pygments-main/pygments/lexers/__init__.py +29 -17
  53. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +5 -6
  54. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +15 -16
  55. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +21 -18
  56. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1717 -1339
  57. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -2
  58. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -5
  59. data/vendor/pygments-main/pygments/lexers/_mapping.py +79 -31
  60. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +2 -3
  61. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +1281 -0
  62. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +439 -386
  63. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +17 -21
  64. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +73 -17
  65. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +2 -3
  66. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -4
  67. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +151 -126
  68. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +96 -58
  69. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -2
  70. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +112 -0
  71. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +279 -0
  72. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -2
  73. data/vendor/pygments-main/pygments/lexers/actionscript.py +14 -10
  74. data/vendor/pygments-main/pygments/lexers/agile.py +1 -2
  75. data/vendor/pygments-main/pygments/lexers/algebra.py +20 -2
  76. data/vendor/pygments-main/pygments/lexers/ambient.py +2 -3
  77. data/vendor/pygments-main/pygments/lexers/amdgpu.py +48 -0
  78. data/vendor/pygments-main/pygments/lexers/ampl.py +3 -4
  79. data/vendor/pygments-main/pygments/lexers/apl.py +15 -16
  80. data/vendor/pygments-main/pygments/lexers/archetype.py +4 -5
  81. data/vendor/pygments-main/pygments/lexers/arrow.py +116 -0
  82. data/vendor/pygments-main/pygments/lexers/asm.py +440 -77
  83. data/vendor/pygments-main/pygments/lexers/automation.py +7 -2
  84. data/vendor/pygments-main/pygments/lexers/bare.py +103 -0
  85. data/vendor/pygments-main/pygments/lexers/basic.py +168 -7
  86. data/vendor/pygments-main/pygments/lexers/bibtex.py +5 -6
  87. data/vendor/pygments-main/pygments/lexers/boa.py +101 -0
  88. data/vendor/pygments-main/pygments/lexers/business.py +19 -5
  89. data/vendor/pygments-main/pygments/lexers/c_cpp.py +138 -48
  90. data/vendor/pygments-main/pygments/lexers/c_like.py +67 -43
  91. data/vendor/pygments-main/pygments/lexers/capnproto.py +7 -8
  92. data/vendor/pygments-main/pygments/lexers/cddl.py +190 -0
  93. data/vendor/pygments-main/pygments/lexers/chapel.py +25 -16
  94. data/vendor/pygments-main/pygments/lexers/clean.py +135 -245
  95. data/vendor/pygments-main/pygments/lexers/compiled.py +1 -2
  96. data/vendor/pygments-main/pygments/lexers/configs.py +190 -38
  97. data/vendor/pygments-main/pygments/lexers/console.py +1 -2
  98. data/vendor/pygments-main/pygments/lexers/crystal.py +54 -81
  99. data/vendor/pygments-main/pygments/lexers/csound.py +288 -188
  100. data/vendor/pygments-main/pygments/lexers/css.py +28 -23
  101. data/vendor/pygments-main/pygments/lexers/d.py +12 -8
  102. data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -2
  103. data/vendor/pygments-main/pygments/lexers/data.py +240 -98
  104. data/vendor/pygments-main/pygments/lexers/devicetree.py +108 -0
  105. data/vendor/pygments-main/pygments/lexers/diff.py +4 -5
  106. data/vendor/pygments-main/pygments/lexers/dotnet.py +46 -31
  107. data/vendor/pygments-main/pygments/lexers/dsls.py +146 -65
  108. data/vendor/pygments-main/pygments/lexers/dylan.py +16 -19
  109. data/vendor/pygments-main/pygments/lexers/ecl.py +17 -5
  110. data/vendor/pygments-main/pygments/lexers/eiffel.py +2 -3
  111. data/vendor/pygments-main/pygments/lexers/elm.py +5 -6
  112. data/vendor/pygments-main/pygments/lexers/email.py +150 -0
  113. data/vendor/pygments-main/pygments/lexers/erlang.py +29 -33
  114. data/vendor/pygments-main/pygments/lexers/esoteric.py +46 -20
  115. data/vendor/pygments-main/pygments/lexers/ezhil.py +21 -14
  116. data/vendor/pygments-main/pygments/lexers/factor.py +3 -4
  117. data/vendor/pygments-main/pygments/lexers/fantom.py +1 -2
  118. data/vendor/pygments-main/pygments/lexers/felix.py +1 -2
  119. data/vendor/pygments-main/pygments/lexers/floscript.py +82 -0
  120. data/vendor/pygments-main/pygments/lexers/forth.py +41 -41
  121. data/vendor/pygments-main/pygments/lexers/fortran.py +13 -10
  122. data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -3
  123. data/vendor/pygments-main/pygments/lexers/freefem.py +897 -0
  124. data/vendor/pygments-main/pygments/lexers/functional.py +1 -2
  125. data/vendor/pygments-main/pygments/lexers/futhark.py +110 -0
  126. data/vendor/pygments-main/pygments/lexers/gdscript.py +345 -0
  127. data/vendor/pygments-main/pygments/lexers/go.py +2 -3
  128. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +62 -6
  129. data/vendor/pygments-main/pygments/lexers/graph.py +14 -10
  130. data/vendor/pygments-main/pygments/lexers/graphics.py +274 -28
  131. data/vendor/pygments-main/pygments/lexers/graphviz.py +57 -0
  132. data/vendor/pygments-main/pygments/lexers/haskell.py +48 -22
  133. data/vendor/pygments-main/pygments/lexers/haxe.py +8 -9
  134. data/vendor/pygments-main/pygments/lexers/hdl.py +176 -90
  135. data/vendor/pygments-main/pygments/lexers/hexdump.py +1 -2
  136. data/vendor/pygments-main/pygments/lexers/html.py +37 -26
  137. data/vendor/pygments-main/pygments/lexers/idl.py +19 -9
  138. data/vendor/pygments-main/pygments/lexers/igor.py +244 -113
  139. data/vendor/pygments-main/pygments/lexers/inferno.py +2 -3
  140. data/vendor/pygments-main/pygments/lexers/installers.py +1 -2
  141. data/vendor/pygments-main/pygments/lexers/int_fiction.py +40 -16
  142. data/vendor/pygments-main/pygments/lexers/iolang.py +3 -4
  143. data/vendor/pygments-main/pygments/lexers/j.py +4 -5
  144. data/vendor/pygments-main/pygments/lexers/javascript.py +115 -104
  145. data/vendor/pygments-main/pygments/lexers/julia.py +44 -47
  146. data/vendor/pygments-main/pygments/lexers/jvm.py +368 -202
  147. data/vendor/pygments-main/pygments/lexers/lisp.py +887 -810
  148. data/vendor/pygments-main/pygments/lexers/make.py +12 -9
  149. data/vendor/pygments-main/pygments/lexers/markup.py +212 -45
  150. data/vendor/pygments-main/pygments/lexers/math.py +1 -2
  151. data/vendor/pygments-main/pygments/lexers/matlab.py +2705 -88
  152. data/vendor/pygments-main/pygments/lexers/mime.py +225 -0
  153. data/vendor/pygments-main/pygments/lexers/ml.py +203 -15
  154. data/vendor/pygments-main/pygments/lexers/modeling.py +26 -19
  155. data/vendor/pygments-main/pygments/lexers/modula2.py +27 -9
  156. data/vendor/pygments-main/pygments/lexers/monte.py +1 -2
  157. data/vendor/pygments-main/pygments/lexers/mosel.py +447 -0
  158. data/vendor/pygments-main/pygments/lexers/ncl.py +1 -2
  159. data/vendor/pygments-main/pygments/lexers/nimrod.py +4 -5
  160. data/vendor/pygments-main/pygments/lexers/nit.py +1 -2
  161. data/vendor/pygments-main/pygments/lexers/nix.py +1 -2
  162. data/vendor/pygments-main/pygments/lexers/oberon.py +17 -2
  163. data/vendor/pygments-main/pygments/lexers/objective.py +18 -19
  164. data/vendor/pygments-main/pygments/lexers/ooc.py +1 -2
  165. data/vendor/pygments-main/pygments/lexers/other.py +1 -2
  166. data/vendor/pygments-main/pygments/lexers/parasail.py +1 -2
  167. data/vendor/pygments-main/pygments/lexers/parsers.py +47 -83
  168. data/vendor/pygments-main/pygments/lexers/pascal.py +22 -23
  169. data/vendor/pygments-main/pygments/lexers/pawn.py +31 -28
  170. data/vendor/pygments-main/pygments/lexers/perl.py +260 -149
  171. data/vendor/pygments-main/pygments/lexers/php.py +66 -13
  172. data/vendor/pygments-main/pygments/lexers/pointless.py +70 -0
  173. data/vendor/pygments-main/pygments/lexers/pony.py +93 -0
  174. data/vendor/pygments-main/pygments/lexers/praat.py +38 -31
  175. data/vendor/pygments-main/pygments/lexers/prolog.py +38 -39
  176. data/vendor/pygments-main/pygments/lexers/promql.py +182 -0
  177. data/vendor/pygments-main/pygments/lexers/python.py +450 -231
  178. data/vendor/pygments-main/pygments/lexers/qvt.py +6 -7
  179. data/vendor/pygments-main/pygments/lexers/r.py +13 -276
  180. data/vendor/pygments-main/pygments/lexers/rdf.py +232 -40
  181. data/vendor/pygments-main/pygments/lexers/rebol.py +8 -9
  182. data/vendor/pygments-main/pygments/lexers/resource.py +2 -3
  183. data/vendor/pygments-main/pygments/lexers/ride.py +138 -0
  184. data/vendor/pygments-main/pygments/lexers/rnc.py +1 -2
  185. data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -2
  186. data/vendor/pygments-main/pygments/lexers/robotframework.py +23 -32
  187. data/vendor/pygments-main/pygments/lexers/ruby.py +50 -46
  188. data/vendor/pygments-main/pygments/lexers/rust.py +76 -73
  189. data/vendor/pygments-main/pygments/lexers/sas.py +1 -2
  190. data/vendor/pygments-main/pygments/lexers/scdoc.py +82 -0
  191. data/vendor/pygments-main/pygments/lexers/scripting.py +79 -18
  192. data/vendor/pygments-main/pygments/lexers/sgf.py +60 -0
  193. data/vendor/pygments-main/pygments/lexers/shell.py +164 -49
  194. data/vendor/pygments-main/pygments/lexers/sieve.py +68 -0
  195. data/vendor/pygments-main/pygments/lexers/slash.py +184 -0
  196. data/vendor/pygments-main/pygments/lexers/smalltalk.py +2 -3
  197. data/vendor/pygments-main/pygments/lexers/smv.py +3 -4
  198. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -2
  199. data/vendor/pygments-main/pygments/lexers/solidity.py +91 -0
  200. data/vendor/pygments-main/pygments/lexers/special.py +31 -28
  201. data/vendor/pygments-main/pygments/lexers/sql.py +330 -179
  202. data/vendor/pygments-main/pygments/lexers/stata.py +107 -45
  203. data/vendor/pygments-main/pygments/lexers/supercollider.py +8 -4
  204. data/vendor/pygments-main/pygments/lexers/tcl.py +1 -2
  205. data/vendor/pygments-main/pygments/lexers/templates.py +116 -136
  206. data/vendor/pygments-main/pygments/lexers/teraterm.py +334 -0
  207. data/vendor/pygments-main/pygments/lexers/testing.py +6 -7
  208. data/vendor/pygments-main/pygments/lexers/text.py +2 -2
  209. data/vendor/pygments-main/pygments/lexers/textedit.py +6 -7
  210. data/vendor/pygments-main/pygments/lexers/textfmts.py +146 -14
  211. data/vendor/pygments-main/pygments/lexers/theorem.py +74 -56
  212. data/vendor/pygments-main/pygments/lexers/tnt.py +262 -0
  213. data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -2
  214. data/vendor/pygments-main/pygments/lexers/typoscript.py +4 -12
  215. data/vendor/pygments-main/pygments/lexers/unicon.py +411 -0
  216. data/vendor/pygments-main/pygments/lexers/urbi.py +16 -4
  217. data/vendor/pygments-main/pygments/lexers/usd.py +89 -0
  218. data/vendor/pygments-main/pygments/lexers/varnish.py +4 -5
  219. data/vendor/pygments-main/pygments/lexers/verification.py +13 -11
  220. data/vendor/pygments-main/pygments/lexers/web.py +1 -2
  221. data/vendor/pygments-main/pygments/lexers/webidl.py +298 -0
  222. data/vendor/pygments-main/pygments/lexers/webmisc.py +35 -32
  223. data/vendor/pygments-main/pygments/lexers/whiley.py +5 -6
  224. data/vendor/pygments-main/pygments/lexers/x10.py +2 -3
  225. data/vendor/pygments-main/pygments/lexers/xorg.py +5 -5
  226. data/vendor/pygments-main/pygments/lexers/yang.py +103 -0
  227. data/vendor/pygments-main/pygments/lexers/zig.py +123 -0
  228. data/vendor/pygments-main/pygments/modeline.py +1 -2
  229. data/vendor/pygments-main/pygments/plugin.py +4 -3
  230. data/vendor/pygments-main/pygments/regexopt.py +1 -2
  231. data/vendor/pygments-main/pygments/scanner.py +2 -3
  232. data/vendor/pygments-main/pygments/sphinxext.py +2 -5
  233. data/vendor/pygments-main/pygments/style.py +61 -25
  234. data/vendor/pygments-main/pygments/styles/__init__.py +12 -5
  235. data/vendor/pygments-main/pygments/styles/abap.py +1 -2
  236. data/vendor/pygments-main/pygments/styles/algol.py +1 -2
  237. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -2
  238. data/vendor/pygments-main/pygments/styles/arduino.py +2 -3
  239. data/vendor/pygments-main/pygments/styles/autumn.py +1 -2
  240. data/vendor/pygments-main/pygments/styles/borland.py +1 -2
  241. data/vendor/pygments-main/pygments/styles/bw.py +1 -2
  242. data/vendor/pygments-main/pygments/styles/colorful.py +1 -2
  243. data/vendor/pygments-main/pygments/styles/default.py +1 -2
  244. data/vendor/pygments-main/pygments/styles/emacs.py +1 -2
  245. data/vendor/pygments-main/pygments/styles/friendly.py +1 -2
  246. data/vendor/pygments-main/pygments/styles/fruity.py +1 -2
  247. data/vendor/pygments-main/pygments/styles/igor.py +1 -2
  248. data/vendor/pygments-main/pygments/styles/inkpot.py +66 -0
  249. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -2
  250. data/vendor/pygments-main/pygments/styles/manni.py +1 -2
  251. data/vendor/pygments-main/pygments/styles/material.py +118 -0
  252. data/vendor/pygments-main/pygments/styles/monokai.py +4 -4
  253. data/vendor/pygments-main/pygments/styles/murphy.py +1 -2
  254. data/vendor/pygments-main/pygments/styles/native.py +1 -2
  255. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -2
  256. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -2
  257. data/vendor/pygments-main/pygments/styles/pastie.py +1 -2
  258. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -2
  259. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -2
  260. data/vendor/pygments-main/pygments/styles/rrt.py +1 -2
  261. data/vendor/pygments-main/pygments/styles/sas.py +1 -2
  262. data/vendor/pygments-main/pygments/styles/solarized.py +136 -0
  263. data/vendor/pygments-main/pygments/styles/stata_dark.py +40 -0
  264. data/vendor/pygments-main/pygments/styles/{stata.py → stata_light.py} +14 -16
  265. data/vendor/pygments-main/pygments/styles/tango.py +1 -2
  266. data/vendor/pygments-main/pygments/styles/trac.py +1 -2
  267. data/vendor/pygments-main/pygments/styles/vim.py +1 -2
  268. data/vendor/pygments-main/pygments/styles/vs.py +1 -2
  269. data/vendor/pygments-main/pygments/styles/xcode.py +1 -2
  270. data/vendor/pygments-main/pygments/styles/zenburn.py +80 -0
  271. data/vendor/pygments-main/pygments/token.py +1 -2
  272. data/vendor/pygments-main/pygments/unistring.py +47 -109
  273. data/vendor/pygments-main/pygments/util.py +16 -96
  274. metadata +76 -137
  275. data/CHANGELOG.md +0 -105
  276. data/README.md +0 -121
  277. data/circle.yml +0 -20
  278. data/test/test_data.c +0 -2581
  279. data/test/test_data.py +0 -514
  280. data/test/test_data_generated +0 -2582
  281. data/vendor/custom_lexers/github.py +0 -565
  282. data/vendor/pygments-main/CHANGES +0 -1186
  283. data/vendor/pygments-main/MANIFEST.in +0 -6
  284. data/vendor/pygments-main/Makefile +0 -65
  285. data/vendor/pygments-main/README.rst +0 -39
  286. data/vendor/pygments-main/REVISION +0 -1
  287. data/vendor/pygments-main/TODO +0 -12
  288. data/vendor/pygments-main/doc/Makefile +0 -153
  289. data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
  290. data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
  291. data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
  292. data/vendor/pygments-main/doc/_templates/docssidebar.html +0 -3
  293. data/vendor/pygments-main/doc/_templates/indexsidebar.html +0 -25
  294. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +0 -98
  295. data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
  296. data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
  297. data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
  298. data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
  299. data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
  300. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +0 -401
  301. data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +0 -15
  302. data/vendor/pygments-main/doc/conf.py +0 -241
  303. data/vendor/pygments-main/doc/docs/api.rst +0 -354
  304. data/vendor/pygments-main/doc/docs/authors.rst +0 -4
  305. data/vendor/pygments-main/doc/docs/changelog.rst +0 -1
  306. data/vendor/pygments-main/doc/docs/cmdline.rst +0 -166
  307. data/vendor/pygments-main/doc/docs/filterdevelopment.rst +0 -71
  308. data/vendor/pygments-main/doc/docs/filters.rst +0 -41
  309. data/vendor/pygments-main/doc/docs/formatterdevelopment.rst +0 -169
  310. data/vendor/pygments-main/doc/docs/formatters.rst +0 -48
  311. data/vendor/pygments-main/doc/docs/index.rst +0 -66
  312. data/vendor/pygments-main/doc/docs/integrate.rst +0 -40
  313. data/vendor/pygments-main/doc/docs/java.rst +0 -70
  314. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +0 -728
  315. data/vendor/pygments-main/doc/docs/lexers.rst +0 -69
  316. data/vendor/pygments-main/doc/docs/moinmoin.rst +0 -39
  317. data/vendor/pygments-main/doc/docs/plugins.rst +0 -93
  318. data/vendor/pygments-main/doc/docs/quickstart.rst +0 -205
  319. data/vendor/pygments-main/doc/docs/rstdirective.rst +0 -22
  320. data/vendor/pygments-main/doc/docs/styles.rst +0 -201
  321. data/vendor/pygments-main/doc/docs/tokens.rst +0 -372
  322. data/vendor/pygments-main/doc/docs/unicode.rst +0 -58
  323. data/vendor/pygments-main/doc/download.rst +0 -41
  324. data/vendor/pygments-main/doc/faq.rst +0 -139
  325. data/vendor/pygments-main/doc/index.rst +0 -54
  326. data/vendor/pygments-main/doc/languages.rst +0 -154
  327. data/vendor/pygments-main/doc/make.bat +0 -190
  328. data/vendor/pygments-main/doc/pygmentize.1 +0 -94
  329. data/vendor/pygments-main/external/autopygmentize +0 -101
  330. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +0 -162
  331. data/vendor/pygments-main/external/markdown-processor.py +0 -67
  332. data/vendor/pygments-main/external/moin-parser.py +0 -112
  333. data/vendor/pygments-main/external/pygments.bashcomp +0 -38
  334. data/vendor/pygments-main/external/rst-directive.py +0 -82
  335. data/vendor/pygments-main/pygmentize +0 -8
  336. data/vendor/pygments-main/pygments/lexers/github.py +0 -565
  337. data/vendor/pygments-main/requirements.txt +0 -5
  338. data/vendor/pygments-main/scripts/check_sources.py +0 -211
  339. data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
  340. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
  341. data/vendor/pygments-main/scripts/epydoc.css +0 -280
  342. data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
  343. data/vendor/pygments-main/scripts/pylintrc +0 -301
  344. data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
  345. data/vendor/pygments-main/setup.cfg +0 -10
  346. data/vendor/pygments-main/setup.py +0 -77
  347. data/vendor/pygments-main/tox.ini +0 -7
  348. data/vendor/simplejson/.gitignore +0 -10
  349. data/vendor/simplejson/.travis.yml +0 -5
  350. data/vendor/simplejson/CHANGES.txt +0 -291
  351. data/vendor/simplejson/LICENSE.txt +0 -19
  352. data/vendor/simplejson/MANIFEST.in +0 -5
  353. data/vendor/simplejson/README.rst +0 -19
  354. data/vendor/simplejson/conf.py +0 -179
  355. data/vendor/simplejson/index.rst +0 -628
  356. data/vendor/simplejson/scripts/make_docs.py +0 -18
  357. data/vendor/simplejson/setup.py +0 -104
  358. data/vendor/simplejson/simplejson/__init__.py +0 -510
  359. data/vendor/simplejson/simplejson/_speedups.c +0 -2745
  360. data/vendor/simplejson/simplejson/decoder.py +0 -425
  361. data/vendor/simplejson/simplejson/encoder.py +0 -567
  362. data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
  363. data/vendor/simplejson/simplejson/scanner.py +0 -77
  364. data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
  365. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
  366. data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
  367. data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
  368. data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
  369. data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
  370. data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
  371. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
  372. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
  373. data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
  374. data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
  375. data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
  376. data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
  377. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
  378. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
  379. data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
  380. data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
  381. data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
  382. data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
  383. data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
  384. data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
  385. data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
  386. data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
  387. data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
  388. data/vendor/simplejson/simplejson/tool.py +0 -39
@@ -1,76 +0,0 @@
1
- from unittest import TestCase
2
-
3
- import simplejson as json
4
-
5
- # from http://json.org/JSON_checker/test/pass1.json
6
- JSON = r'''
7
- [
8
- "JSON Test Pattern pass1",
9
- {"object with 1 member":["array with 1 element"]},
10
- {},
11
- [],
12
- -42,
13
- true,
14
- false,
15
- null,
16
- {
17
- "integer": 1234567890,
18
- "real": -9876.543210,
19
- "e": 0.123456789e-12,
20
- "E": 1.234567890E+34,
21
- "": 23456789012E666,
22
- "zero": 0,
23
- "one": 1,
24
- "space": " ",
25
- "quote": "\"",
26
- "backslash": "\\",
27
- "controls": "\b\f\n\r\t",
28
- "slash": "/ & \/",
29
- "alpha": "abcdefghijklmnopqrstuvwyz",
30
- "ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ",
31
- "digit": "0123456789",
32
- "special": "`1~!@#$%^&*()_+-={':[,]}|;.</>?",
33
- "hex": "\u0123\u4567\u89AB\uCDEF\uabcd\uef4A",
34
- "true": true,
35
- "false": false,
36
- "null": null,
37
- "array":[ ],
38
- "object":{ },
39
- "address": "50 St. James Street",
40
- "url": "http://www.JSON.org/",
41
- "comment": "// /* <!-- --",
42
- "# -- --> */": " ",
43
- " s p a c e d " :[1,2 , 3
44
-
45
- ,
46
-
47
- 4 , 5 , 6 ,7 ],
48
- "compact": [1,2,3,4,5,6,7],
49
- "jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}",
50
- "quotes": "&#34; \u0022 %22 0x22 034 &#x22;",
51
- "\/\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"
52
- : "A key can be any string"
53
- },
54
- 0.5 ,98.6
55
- ,
56
- 99.44
57
- ,
58
-
59
- 1066
60
-
61
-
62
- ,"rosebud"]
63
- '''
64
-
65
- class TestPass1(TestCase):
66
- def test_parse(self):
67
- # test in/out equivalence and parsing
68
- res = json.loads(JSON)
69
- out = json.dumps(res)
70
- self.assertEquals(res, json.loads(out))
71
- try:
72
- json.dumps(res, allow_nan=False)
73
- except ValueError:
74
- pass
75
- else:
76
- self.fail("23456789012E666 should be out of range")
@@ -1,14 +0,0 @@
1
- from unittest import TestCase
2
- import simplejson as json
3
-
4
- # from http://json.org/JSON_checker/test/pass2.json
5
- JSON = r'''
6
- [[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]]
7
- '''
8
-
9
- class TestPass2(TestCase):
10
- def test_parse(self):
11
- # test in/out equivalence and parsing
12
- res = json.loads(JSON)
13
- out = json.dumps(res)
14
- self.assertEquals(res, json.loads(out))
@@ -1,20 +0,0 @@
1
- from unittest import TestCase
2
-
3
- import simplejson as json
4
-
5
- # from http://json.org/JSON_checker/test/pass3.json
6
- JSON = r'''
7
- {
8
- "JSON Test Pattern pass3": {
9
- "The outermost value": "must be an object or array.",
10
- "In this test": "It is an object."
11
- }
12
- }
13
- '''
14
-
15
- class TestPass3(TestCase):
16
- def test_parse(self):
17
- # test in/out equivalence and parsing
18
- res = json.loads(JSON)
19
- out = json.dumps(res)
20
- self.assertEquals(res, json.loads(out))
@@ -1,67 +0,0 @@
1
- from unittest import TestCase
2
-
3
- import simplejson as json
4
-
5
- class JSONTestObject:
6
- pass
7
-
8
-
9
- class RecursiveJSONEncoder(json.JSONEncoder):
10
- recurse = False
11
- def default(self, o):
12
- if o is JSONTestObject:
13
- if self.recurse:
14
- return [JSONTestObject]
15
- else:
16
- return 'JSONTestObject'
17
- return json.JSONEncoder.default(o)
18
-
19
-
20
- class TestRecursion(TestCase):
21
- def test_listrecursion(self):
22
- x = []
23
- x.append(x)
24
- try:
25
- json.dumps(x)
26
- except ValueError:
27
- pass
28
- else:
29
- self.fail("didn't raise ValueError on list recursion")
30
- x = []
31
- y = [x]
32
- x.append(y)
33
- try:
34
- json.dumps(x)
35
- except ValueError:
36
- pass
37
- else:
38
- self.fail("didn't raise ValueError on alternating list recursion")
39
- y = []
40
- x = [y, y]
41
- # ensure that the marker is cleared
42
- json.dumps(x)
43
-
44
- def test_dictrecursion(self):
45
- x = {}
46
- x["test"] = x
47
- try:
48
- json.dumps(x)
49
- except ValueError:
50
- pass
51
- else:
52
- self.fail("didn't raise ValueError on dict recursion")
53
- x = {}
54
- y = {"a": x, "b": x}
55
- # ensure that the marker is cleared
56
- json.dumps(y)
57
-
58
- def test_defaultrecursion(self):
59
- enc = RecursiveJSONEncoder()
60
- self.assertEquals(enc.encode(JSONTestObject), '"JSONTestObject"')
61
- enc.recurse = True
62
- try:
63
- enc.encode(JSONTestObject)
64
- except ValueError:
65
- pass
66
- else:
67
- self.fail("didn't raise ValueError on default recursion")
@@ -1,117 +0,0 @@
1
- import sys
2
- from unittest import TestCase
3
-
4
- import simplejson as json
5
- import simplejson.decoder
6
-
7
- class TestScanString(TestCase):
8
- def test_py_scanstring(self):
9
- self._test_scanstring(simplejson.decoder.py_scanstring)
10
-
11
- def test_c_scanstring(self):
12
- if not simplejson.decoder.c_scanstring:
13
- return
14
- self._test_scanstring(simplejson.decoder.c_scanstring)
15
-
16
- def _test_scanstring(self, scanstring):
17
- self.assertEquals(
18
- scanstring('"z\\ud834\\udd20x"', 1, None, True),
19
- (u'z\U0001d120x', 16))
20
-
21
- if sys.maxunicode == 65535:
22
- self.assertEquals(
23
- scanstring(u'"z\U0001d120x"', 1, None, True),
24
- (u'z\U0001d120x', 6))
25
- else:
26
- self.assertEquals(
27
- scanstring(u'"z\U0001d120x"', 1, None, True),
28
- (u'z\U0001d120x', 5))
29
-
30
- self.assertEquals(
31
- scanstring('"\\u007b"', 1, None, True),
32
- (u'{', 8))
33
-
34
- self.assertEquals(
35
- scanstring('"A JSON payload should be an object or array, not a string."', 1, None, True),
36
- (u'A JSON payload should be an object or array, not a string.', 60))
37
-
38
- self.assertEquals(
39
- scanstring('["Unclosed array"', 2, None, True),
40
- (u'Unclosed array', 17))
41
-
42
- self.assertEquals(
43
- scanstring('["extra comma",]', 2, None, True),
44
- (u'extra comma', 14))
45
-
46
- self.assertEquals(
47
- scanstring('["double extra comma",,]', 2, None, True),
48
- (u'double extra comma', 21))
49
-
50
- self.assertEquals(
51
- scanstring('["Comma after the close"],', 2, None, True),
52
- (u'Comma after the close', 24))
53
-
54
- self.assertEquals(
55
- scanstring('["Extra close"]]', 2, None, True),
56
- (u'Extra close', 14))
57
-
58
- self.assertEquals(
59
- scanstring('{"Extra comma": true,}', 2, None, True),
60
- (u'Extra comma', 14))
61
-
62
- self.assertEquals(
63
- scanstring('{"Extra value after close": true} "misplaced quoted value"', 2, None, True),
64
- (u'Extra value after close', 26))
65
-
66
- self.assertEquals(
67
- scanstring('{"Illegal expression": 1 + 2}', 2, None, True),
68
- (u'Illegal expression', 21))
69
-
70
- self.assertEquals(
71
- scanstring('{"Illegal invocation": alert()}', 2, None, True),
72
- (u'Illegal invocation', 21))
73
-
74
- self.assertEquals(
75
- scanstring('{"Numbers cannot have leading zeroes": 013}', 2, None, True),
76
- (u'Numbers cannot have leading zeroes', 37))
77
-
78
- self.assertEquals(
79
- scanstring('{"Numbers cannot be hex": 0x14}', 2, None, True),
80
- (u'Numbers cannot be hex', 24))
81
-
82
- self.assertEquals(
83
- scanstring('[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]', 21, None, True),
84
- (u'Too deep', 30))
85
-
86
- self.assertEquals(
87
- scanstring('{"Missing colon" null}', 2, None, True),
88
- (u'Missing colon', 16))
89
-
90
- self.assertEquals(
91
- scanstring('{"Double colon":: null}', 2, None, True),
92
- (u'Double colon', 15))
93
-
94
- self.assertEquals(
95
- scanstring('{"Comma instead of colon", null}', 2, None, True),
96
- (u'Comma instead of colon', 25))
97
-
98
- self.assertEquals(
99
- scanstring('["Colon instead of comma": false]', 2, None, True),
100
- (u'Colon instead of comma', 25))
101
-
102
- self.assertEquals(
103
- scanstring('["Bad value", truth]', 2, None, True),
104
- (u'Bad value', 12))
105
-
106
- def test_issue3623(self):
107
- self.assertRaises(ValueError, json.decoder.scanstring, "xxx", 1,
108
- "xxx")
109
- self.assertRaises(UnicodeDecodeError,
110
- json.encoder.encode_basestring_ascii, "xx\xff")
111
-
112
- def test_overflow(self):
113
- # Python 2.5 does not have maxsize
114
- maxsize = getattr(sys, 'maxsize', sys.maxint)
115
- self.assertRaises(OverflowError, json.decoder.scanstring, "xxx",
116
- maxsize + 1)
117
-
@@ -1,42 +0,0 @@
1
- import textwrap
2
- from unittest import TestCase
3
-
4
- import simplejson as json
5
-
6
-
7
- class TestSeparators(TestCase):
8
- def test_separators(self):
9
- h = [['blorpie'], ['whoops'], [], 'd-shtaeou', 'd-nthiouh', 'i-vhbjkhnth',
10
- {'nifty': 87}, {'field': 'yes', 'morefield': False} ]
11
-
12
- expect = textwrap.dedent("""\
13
- [
14
- [
15
- "blorpie"
16
- ] ,
17
- [
18
- "whoops"
19
- ] ,
20
- [] ,
21
- "d-shtaeou" ,
22
- "d-nthiouh" ,
23
- "i-vhbjkhnth" ,
24
- {
25
- "nifty" : 87
26
- } ,
27
- {
28
- "field" : "yes" ,
29
- "morefield" : false
30
- }
31
- ]""")
32
-
33
-
34
- d1 = json.dumps(h)
35
- d2 = json.dumps(h, indent=' ', sort_keys=True, separators=(' ,', ' : '))
36
-
37
- h1 = json.loads(d1)
38
- h2 = json.loads(d2)
39
-
40
- self.assertEquals(h1, h)
41
- self.assertEquals(h2, h)
42
- self.assertEquals(d2, expect)
@@ -1,20 +0,0 @@
1
- from unittest import TestCase
2
-
3
- from simplejson import encoder, scanner
4
-
5
- def has_speedups():
6
- return encoder.c_make_encoder is not None
7
-
8
- class TestDecode(TestCase):
9
- def test_make_scanner(self):
10
- if not has_speedups():
11
- return
12
- self.assertRaises(AttributeError, scanner.c_make_scanner, 1)
13
-
14
- def test_make_encoder(self):
15
- if not has_speedups():
16
- return
17
- self.assertRaises(TypeError, encoder.c_make_encoder,
18
- None,
19
- "\xCD\x7D\x3D\x4E\x12\x4C\xF9\x79\xD7\x52\xBA\x82\xF2\x27\x4A\x7D\xA0\xCA\x75",
20
- None)
@@ -1,49 +0,0 @@
1
- import unittest
2
- from StringIO import StringIO
3
-
4
- import simplejson as json
5
-
6
- class TestTuples(unittest.TestCase):
7
- def test_tuple_array_dumps(self):
8
- t = (1, 2, 3)
9
- expect = json.dumps(list(t))
10
- # Default is True
11
- self.assertEqual(expect, json.dumps(t))
12
- self.assertEqual(expect, json.dumps(t, tuple_as_array=True))
13
- self.assertRaises(TypeError, json.dumps, t, tuple_as_array=False)
14
- # Ensure that the "default" does not get called
15
- self.assertEqual(expect, json.dumps(t, default=repr))
16
- self.assertEqual(expect, json.dumps(t, tuple_as_array=True, default=repr))
17
- # Ensure that the "default" gets called
18
- self.assertEqual(
19
- json.dumps(repr(t)),
20
- json.dumps(t, tuple_as_array=False, default=repr))
21
-
22
- def test_tuple_array_dump(self):
23
- t = (1, 2, 3)
24
- expect = json.dumps(list(t))
25
- # Default is True
26
- sio = StringIO()
27
- json.dump(t, sio)
28
- self.assertEqual(expect, sio.getvalue())
29
- sio = StringIO()
30
- json.dump(t, sio, tuple_as_array=True)
31
- self.assertEqual(expect, sio.getvalue())
32
- self.assertRaises(TypeError, json.dump, t, StringIO(), tuple_as_array=False)
33
- # Ensure that the "default" does not get called
34
- sio = StringIO()
35
- json.dump(t, sio, default=repr)
36
- self.assertEqual(expect, sio.getvalue())
37
- sio = StringIO()
38
- json.dump(t, sio, tuple_as_array=True, default=repr)
39
- self.assertEqual(expect, sio.getvalue())
40
- # Ensure that the "default" gets called
41
- sio = StringIO()
42
- json.dump(t, sio, tuple_as_array=False, default=repr)
43
- self.assertEqual(
44
- json.dumps(repr(t)),
45
- sio.getvalue())
46
-
47
- class TestNamedTuple(unittest.TestCase):
48
- def test_namedtuple_dump(self):
49
- pass
@@ -1,109 +0,0 @@
1
- from unittest import TestCase
2
-
3
- import simplejson as json
4
-
5
- class TestUnicode(TestCase):
6
- def test_encoding1(self):
7
- encoder = json.JSONEncoder(encoding='utf-8')
8
- u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
9
- s = u.encode('utf-8')
10
- ju = encoder.encode(u)
11
- js = encoder.encode(s)
12
- self.assertEquals(ju, js)
13
-
14
- def test_encoding2(self):
15
- u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
16
- s = u.encode('utf-8')
17
- ju = json.dumps(u, encoding='utf-8')
18
- js = json.dumps(s, encoding='utf-8')
19
- self.assertEquals(ju, js)
20
-
21
- def test_encoding3(self):
22
- u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
23
- j = json.dumps(u)
24
- self.assertEquals(j, '"\\u03b1\\u03a9"')
25
-
26
- def test_encoding4(self):
27
- u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
28
- j = json.dumps([u])
29
- self.assertEquals(j, '["\\u03b1\\u03a9"]')
30
-
31
- def test_encoding5(self):
32
- u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
33
- j = json.dumps(u, ensure_ascii=False)
34
- self.assertEquals(j, u'"' + u + u'"')
35
-
36
- def test_encoding6(self):
37
- u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
38
- j = json.dumps([u], ensure_ascii=False)
39
- self.assertEquals(j, u'["' + u + u'"]')
40
-
41
- def test_big_unicode_encode(self):
42
- u = u'\U0001d120'
43
- self.assertEquals(json.dumps(u), '"\\ud834\\udd20"')
44
- self.assertEquals(json.dumps(u, ensure_ascii=False), u'"\U0001d120"')
45
-
46
- def test_big_unicode_decode(self):
47
- u = u'z\U0001d120x'
48
- self.assertEquals(json.loads('"' + u + '"'), u)
49
- self.assertEquals(json.loads('"z\\ud834\\udd20x"'), u)
50
-
51
- def test_unicode_decode(self):
52
- for i in range(0, 0xd7ff):
53
- u = unichr(i)
54
- #s = '"\\u{0:04x}"'.format(i)
55
- s = '"\\u%04x"' % (i,)
56
- self.assertEquals(json.loads(s), u)
57
-
58
- def test_object_pairs_hook_with_unicode(self):
59
- s = u'{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}'
60
- p = [(u"xkd", 1), (u"kcw", 2), (u"art", 3), (u"hxm", 4),
61
- (u"qrt", 5), (u"pad", 6), (u"hoy", 7)]
62
- self.assertEqual(json.loads(s), eval(s))
63
- self.assertEqual(json.loads(s, object_pairs_hook=lambda x: x), p)
64
- od = json.loads(s, object_pairs_hook=json.OrderedDict)
65
- self.assertEqual(od, json.OrderedDict(p))
66
- self.assertEqual(type(od), json.OrderedDict)
67
- # the object_pairs_hook takes priority over the object_hook
68
- self.assertEqual(json.loads(s,
69
- object_pairs_hook=json.OrderedDict,
70
- object_hook=lambda x: None),
71
- json.OrderedDict(p))
72
-
73
-
74
- def test_default_encoding(self):
75
- self.assertEquals(json.loads(u'{"a": "\xe9"}'.encode('utf-8')),
76
- {'a': u'\xe9'})
77
-
78
- def test_unicode_preservation(self):
79
- self.assertEquals(type(json.loads(u'""')), unicode)
80
- self.assertEquals(type(json.loads(u'"a"')), unicode)
81
- self.assertEquals(type(json.loads(u'["a"]')[0]), unicode)
82
-
83
- def test_ensure_ascii_false_returns_unicode(self):
84
- # http://code.google.com/p/simplejson/issues/detail?id=48
85
- self.assertEquals(type(json.dumps([], ensure_ascii=False)), unicode)
86
- self.assertEquals(type(json.dumps(0, ensure_ascii=False)), unicode)
87
- self.assertEquals(type(json.dumps({}, ensure_ascii=False)), unicode)
88
- self.assertEquals(type(json.dumps("", ensure_ascii=False)), unicode)
89
-
90
- def test_ensure_ascii_false_bytestring_encoding(self):
91
- # http://code.google.com/p/simplejson/issues/detail?id=48
92
- doc1 = {u'quux': 'Arr\xc3\xaat sur images'}
93
- doc2 = {u'quux': u'Arr\xeat sur images'}
94
- doc_ascii = '{"quux": "Arr\\u00eat sur images"}'
95
- doc_unicode = u'{"quux": "Arr\xeat sur images"}'
96
- self.assertEquals(json.dumps(doc1), doc_ascii)
97
- self.assertEquals(json.dumps(doc2), doc_ascii)
98
- self.assertEquals(json.dumps(doc1, ensure_ascii=False), doc_unicode)
99
- self.assertEquals(json.dumps(doc2, ensure_ascii=False), doc_unicode)
100
-
101
- def test_ensure_ascii_linebreak_encoding(self):
102
- # http://timelessrepo.com/json-isnt-a-javascript-subset
103
- s1 = u'\u2029\u2028'
104
- s2 = s1.encode('utf8')
105
- expect = '"\\u2029\\u2028"'
106
- self.assertEquals(json.dumps(s1), expect)
107
- self.assertEquals(json.dumps(s2), expect)
108
- self.assertEquals(json.dumps(s1, ensure_ascii=False), expect)
109
- self.assertEquals(json.dumps(s2, ensure_ascii=False), expect)