pygments.rb 1.2.1 → 2.0.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 (381) hide show
  1. checksums.yaml +5 -5
  2. data/.github/dependabot.yml +13 -0
  3. data/.github/workflows/ci.yml +28 -0
  4. data/.github/workflows/release.yml +24 -0
  5. data/.gitignore +5 -6
  6. data/CHANGELOG.adoc +128 -0
  7. data/Gemfile +3 -1
  8. data/LICENSE +1 -1
  9. data/README.adoc +160 -0
  10. data/Rakefile +11 -21
  11. data/bench.rb +8 -7
  12. data/cache-lexers.rb +3 -2
  13. data/lexers +0 -0
  14. data/lib/pygments/lexer.rb +5 -5
  15. data/lib/pygments/mentos.py +23 -110
  16. data/lib/pygments/popen.rb +148 -229
  17. data/lib/pygments/version.rb +2 -2
  18. data/lib/pygments.rb +10 -11
  19. data/pygments.rb.gemspec +12 -10
  20. data/test/test_pygments.rb +46 -104
  21. data/vendor/pygments-main/{AUTHORS → Pygments-2.7.3.dist-info/AUTHORS} +21 -3
  22. data/vendor/pygments-main/Pygments-2.7.3.dist-info/INSTALLER +1 -0
  23. data/vendor/pygments-main/{LICENSE → Pygments-2.7.3.dist-info/LICENSE} +1 -1
  24. data/vendor/pygments-main/Pygments-2.7.3.dist-info/METADATA +49 -0
  25. data/vendor/pygments-main/Pygments-2.7.3.dist-info/RECORD +482 -0
  26. data/vendor/pygments-main/Pygments-2.7.3.dist-info/REQUESTED +0 -0
  27. data/vendor/pygments-main/Pygments-2.7.3.dist-info/WHEEL +5 -0
  28. data/vendor/pygments-main/Pygments-2.7.3.dist-info/entry_points.txt +3 -0
  29. data/vendor/pygments-main/Pygments-2.7.3.dist-info/top_level.txt +1 -0
  30. data/vendor/pygments-main/bin/pygmentize +8 -0
  31. data/vendor/pygments-main/pygments/__init__.py +6 -11
  32. data/vendor/pygments-main/pygments/__main__.py +18 -0
  33. data/vendor/pygments-main/pygments/cmdline.py +38 -29
  34. data/vendor/pygments-main/pygments/console.py +6 -9
  35. data/vendor/pygments-main/pygments/filter.py +4 -6
  36. data/vendor/pygments-main/pygments/filters/__init__.py +609 -21
  37. data/vendor/pygments-main/pygments/formatter.py +4 -4
  38. data/vendor/pygments-main/pygments/formatters/__init__.py +9 -8
  39. data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -3
  40. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  41. data/vendor/pygments-main/pygments/formatters/html.py +223 -135
  42. data/vendor/pygments-main/pygments/formatters/img.py +68 -41
  43. data/vendor/pygments-main/pygments/formatters/irc.py +39 -39
  44. data/vendor/pygments-main/pygments/formatters/latex.py +56 -26
  45. data/vendor/pygments-main/pygments/formatters/other.py +12 -8
  46. data/vendor/pygments-main/pygments/formatters/rtf.py +29 -29
  47. data/vendor/pygments-main/pygments/formatters/svg.py +38 -4
  48. data/vendor/pygments-main/pygments/formatters/terminal.py +25 -31
  49. data/vendor/pygments-main/pygments/formatters/terminal256.py +22 -12
  50. data/vendor/pygments-main/pygments/lexer.py +41 -39
  51. data/vendor/pygments-main/pygments/lexers/__init__.py +28 -15
  52. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +5 -5
  53. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +15 -15
  54. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +11 -12
  55. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1717 -1338
  56. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -1
  57. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -4
  58. data/vendor/pygments-main/pygments/lexers/_mapping.py +74 -29
  59. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +2 -2
  60. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +1282 -0
  61. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  62. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +17 -20
  63. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +73 -16
  64. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +2 -2
  65. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -3
  66. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +151 -125
  67. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +6 -4
  68. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  69. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +113 -0
  70. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +280 -0
  71. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  72. data/vendor/pygments-main/pygments/lexers/actionscript.py +8 -3
  73. data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
  74. data/vendor/pygments-main/pygments/lexers/algebra.py +20 -1
  75. data/vendor/pygments-main/pygments/lexers/ambient.py +1 -1
  76. data/vendor/pygments-main/pygments/lexers/ampl.py +3 -3
  77. data/vendor/pygments-main/pygments/lexers/apl.py +15 -15
  78. data/vendor/pygments-main/pygments/lexers/archetype.py +3 -3
  79. data/vendor/pygments-main/pygments/lexers/arrow.py +117 -0
  80. data/vendor/pygments-main/pygments/lexers/asm.py +440 -76
  81. data/vendor/pygments-main/pygments/lexers/automation.py +1 -1
  82. data/vendor/pygments-main/pygments/lexers/bare.py +104 -0
  83. data/vendor/pygments-main/pygments/lexers/basic.py +166 -4
  84. data/vendor/pygments-main/pygments/lexers/bibtex.py +5 -5
  85. data/vendor/pygments-main/pygments/lexers/boa.py +102 -0
  86. data/vendor/pygments-main/pygments/lexers/business.py +17 -2
  87. data/vendor/pygments-main/pygments/lexers/c_cpp.py +137 -45
  88. data/vendor/pygments-main/pygments/lexers/c_like.py +67 -42
  89. data/vendor/pygments-main/pygments/lexers/capnproto.py +7 -7
  90. data/vendor/pygments-main/pygments/lexers/chapel.py +23 -13
  91. data/vendor/pygments-main/pygments/lexers/clean.py +135 -244
  92. data/vendor/pygments-main/pygments/lexers/compiled.py +1 -1
  93. data/vendor/pygments-main/pygments/lexers/configs.py +187 -36
  94. data/vendor/pygments-main/pygments/lexers/console.py +1 -1
  95. data/vendor/pygments-main/pygments/lexers/crystal.py +3 -4
  96. data/vendor/pygments-main/pygments/lexers/csound.py +288 -187
  97. data/vendor/pygments-main/pygments/lexers/css.py +18 -16
  98. data/vendor/pygments-main/pygments/lexers/d.py +10 -5
  99. data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -1
  100. data/vendor/pygments-main/pygments/lexers/data.py +240 -97
  101. data/vendor/pygments-main/pygments/lexers/devicetree.py +109 -0
  102. data/vendor/pygments-main/pygments/lexers/diff.py +4 -4
  103. data/vendor/pygments-main/pygments/lexers/dotnet.py +40 -24
  104. data/vendor/pygments-main/pygments/lexers/dsls.py +144 -62
  105. data/vendor/pygments-main/pygments/lexers/dylan.py +16 -18
  106. data/vendor/pygments-main/pygments/lexers/ecl.py +16 -2
  107. data/vendor/pygments-main/pygments/lexers/eiffel.py +1 -1
  108. data/vendor/pygments-main/pygments/lexers/elm.py +5 -5
  109. data/vendor/pygments-main/pygments/lexers/email.py +151 -0
  110. data/vendor/pygments-main/pygments/lexers/erlang.py +29 -32
  111. data/vendor/pygments-main/pygments/lexers/esoteric.py +46 -19
  112. data/vendor/pygments-main/pygments/lexers/ezhil.py +21 -13
  113. data/vendor/pygments-main/pygments/lexers/factor.py +1 -1
  114. data/vendor/pygments-main/pygments/lexers/fantom.py +1 -1
  115. data/vendor/pygments-main/pygments/lexers/felix.py +1 -1
  116. data/vendor/pygments-main/pygments/lexers/floscript.py +83 -0
  117. data/vendor/pygments-main/pygments/lexers/forth.py +41 -40
  118. data/vendor/pygments-main/pygments/lexers/fortran.py +5 -4
  119. data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -2
  120. data/vendor/pygments-main/pygments/lexers/freefem.py +898 -0
  121. data/vendor/pygments-main/pygments/lexers/functional.py +1 -1
  122. data/vendor/pygments-main/pygments/lexers/gdscript.py +346 -0
  123. data/vendor/pygments-main/pygments/lexers/go.py +1 -1
  124. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +62 -5
  125. data/vendor/pygments-main/pygments/lexers/graph.py +14 -9
  126. data/vendor/pygments-main/pygments/lexers/graphics.py +272 -25
  127. data/vendor/pygments-main/pygments/lexers/haskell.py +48 -21
  128. data/vendor/pygments-main/pygments/lexers/haxe.py +6 -6
  129. data/vendor/pygments-main/pygments/lexers/hdl.py +176 -86
  130. data/vendor/pygments-main/pygments/lexers/hexdump.py +1 -1
  131. data/vendor/pygments-main/pygments/lexers/html.py +31 -19
  132. data/vendor/pygments-main/pygments/lexers/idl.py +19 -8
  133. data/vendor/pygments-main/pygments/lexers/igor.py +244 -112
  134. data/vendor/pygments-main/pygments/lexers/inferno.py +2 -2
  135. data/vendor/pygments-main/pygments/lexers/installers.py +1 -1
  136. data/vendor/pygments-main/pygments/lexers/int_fiction.py +40 -15
  137. data/vendor/pygments-main/pygments/lexers/iolang.py +2 -2
  138. data/vendor/pygments-main/pygments/lexers/j.py +3 -3
  139. data/vendor/pygments-main/pygments/lexers/javascript.py +60 -45
  140. data/vendor/pygments-main/pygments/lexers/julia.py +44 -46
  141. data/vendor/pygments-main/pygments/lexers/jvm.py +265 -165
  142. data/vendor/pygments-main/pygments/lexers/lisp.py +882 -804
  143. data/vendor/pygments-main/pygments/lexers/make.py +10 -6
  144. data/vendor/pygments-main/pygments/lexers/markup.py +213 -43
  145. data/vendor/pygments-main/pygments/lexers/math.py +1 -1
  146. data/vendor/pygments-main/pygments/lexers/matlab.py +98 -41
  147. data/vendor/pygments-main/pygments/lexers/mime.py +226 -0
  148. data/vendor/pygments-main/pygments/lexers/ml.py +198 -9
  149. data/vendor/pygments-main/pygments/lexers/modeling.py +26 -18
  150. data/vendor/pygments-main/pygments/lexers/modula2.py +25 -6
  151. data/vendor/pygments-main/pygments/lexers/monte.py +1 -1
  152. data/vendor/pygments-main/pygments/lexers/mosel.py +448 -0
  153. data/vendor/pygments-main/pygments/lexers/ncl.py +1 -1
  154. data/vendor/pygments-main/pygments/lexers/nimrod.py +4 -4
  155. data/vendor/pygments-main/pygments/lexers/nit.py +1 -1
  156. data/vendor/pygments-main/pygments/lexers/nix.py +1 -1
  157. data/vendor/pygments-main/pygments/lexers/oberon.py +17 -1
  158. data/vendor/pygments-main/pygments/lexers/objective.py +16 -16
  159. data/vendor/pygments-main/pygments/lexers/ooc.py +1 -1
  160. data/vendor/pygments-main/pygments/lexers/other.py +1 -1
  161. data/vendor/pygments-main/pygments/lexers/parasail.py +1 -1
  162. data/vendor/pygments-main/pygments/lexers/parsers.py +23 -58
  163. data/vendor/pygments-main/pygments/lexers/pascal.py +22 -22
  164. data/vendor/pygments-main/pygments/lexers/pawn.py +30 -24
  165. data/vendor/pygments-main/pygments/lexers/perl.py +260 -148
  166. data/vendor/pygments-main/pygments/lexers/php.py +64 -10
  167. data/vendor/pygments-main/pygments/lexers/pointless.py +71 -0
  168. data/vendor/pygments-main/pygments/lexers/pony.py +94 -0
  169. data/vendor/pygments-main/pygments/lexers/praat.py +38 -30
  170. data/vendor/pygments-main/pygments/lexers/prolog.py +36 -36
  171. data/vendor/pygments-main/pygments/lexers/promql.py +183 -0
  172. data/vendor/pygments-main/pygments/lexers/python.py +439 -227
  173. data/vendor/pygments-main/pygments/lexers/qvt.py +6 -6
  174. data/vendor/pygments-main/pygments/lexers/r.py +13 -275
  175. data/vendor/pygments-main/pygments/lexers/rdf.py +232 -39
  176. data/vendor/pygments-main/pygments/lexers/rebol.py +8 -8
  177. data/vendor/pygments-main/pygments/lexers/resource.py +2 -2
  178. data/vendor/pygments-main/pygments/lexers/ride.py +139 -0
  179. data/vendor/pygments-main/pygments/lexers/rnc.py +1 -1
  180. data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -1
  181. data/vendor/pygments-main/pygments/lexers/robotframework.py +23 -31
  182. data/vendor/pygments-main/pygments/lexers/ruby.py +22 -24
  183. data/vendor/pygments-main/pygments/lexers/rust.py +76 -72
  184. data/vendor/pygments-main/pygments/lexers/sas.py +1 -1
  185. data/vendor/pygments-main/pygments/lexers/scdoc.py +83 -0
  186. data/vendor/pygments-main/pygments/lexers/scripting.py +75 -13
  187. data/vendor/pygments-main/pygments/lexers/sgf.py +61 -0
  188. data/vendor/pygments-main/pygments/lexers/shell.py +162 -42
  189. data/vendor/pygments-main/pygments/lexers/sieve.py +69 -0
  190. data/vendor/pygments-main/pygments/lexers/slash.py +185 -0
  191. data/vendor/pygments-main/pygments/lexers/smalltalk.py +2 -2
  192. data/vendor/pygments-main/pygments/lexers/smv.py +3 -3
  193. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
  194. data/vendor/pygments-main/pygments/lexers/solidity.py +92 -0
  195. data/vendor/pygments-main/pygments/lexers/special.py +5 -3
  196. data/vendor/pygments-main/pygments/lexers/sql.py +333 -177
  197. data/vendor/pygments-main/pygments/lexers/stata.py +107 -44
  198. data/vendor/pygments-main/pygments/lexers/supercollider.py +6 -1
  199. data/vendor/pygments-main/pygments/lexers/tcl.py +1 -1
  200. data/vendor/pygments-main/pygments/lexers/templates.py +102 -121
  201. data/vendor/pygments-main/pygments/lexers/teraterm.py +335 -0
  202. data/vendor/pygments-main/pygments/lexers/testing.py +6 -6
  203. data/vendor/pygments-main/pygments/lexers/text.py +2 -1
  204. data/vendor/pygments-main/pygments/lexers/textedit.py +4 -4
  205. data/vendor/pygments-main/pygments/lexers/textfmts.py +146 -13
  206. data/vendor/pygments-main/pygments/lexers/theorem.py +69 -53
  207. data/vendor/pygments-main/pygments/lexers/tnt.py +263 -0
  208. data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -1
  209. data/vendor/pygments-main/pygments/lexers/typoscript.py +4 -11
  210. data/vendor/pygments-main/pygments/lexers/unicon.py +412 -0
  211. data/vendor/pygments-main/pygments/lexers/urbi.py +14 -1
  212. data/vendor/pygments-main/pygments/lexers/usd.py +90 -0
  213. data/vendor/pygments-main/pygments/lexers/varnish.py +3 -3
  214. data/vendor/pygments-main/pygments/lexers/verification.py +13 -10
  215. data/vendor/pygments-main/pygments/lexers/web.py +1 -1
  216. data/vendor/pygments-main/pygments/lexers/webidl.py +299 -0
  217. data/vendor/pygments-main/pygments/lexers/webmisc.py +31 -28
  218. data/vendor/pygments-main/pygments/lexers/whiley.py +5 -5
  219. data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
  220. data/vendor/pygments-main/pygments/lexers/xorg.py +5 -4
  221. data/vendor/pygments-main/pygments/lexers/yang.py +104 -0
  222. data/vendor/pygments-main/pygments/lexers/zig.py +124 -0
  223. data/vendor/pygments-main/pygments/modeline.py +1 -1
  224. data/vendor/pygments-main/pygments/plugin.py +4 -2
  225. data/vendor/pygments-main/pygments/regexopt.py +1 -1
  226. data/vendor/pygments-main/pygments/scanner.py +2 -2
  227. data/vendor/pygments-main/pygments/sphinxext.py +2 -4
  228. data/vendor/pygments-main/pygments/style.py +61 -24
  229. data/vendor/pygments-main/pygments/styles/__init__.py +10 -4
  230. data/vendor/pygments-main/pygments/styles/abap.py +1 -1
  231. data/vendor/pygments-main/pygments/styles/algol.py +1 -1
  232. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -1
  233. data/vendor/pygments-main/pygments/styles/arduino.py +2 -2
  234. data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
  235. data/vendor/pygments-main/pygments/styles/borland.py +1 -1
  236. data/vendor/pygments-main/pygments/styles/bw.py +1 -1
  237. data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
  238. data/vendor/pygments-main/pygments/styles/default.py +1 -1
  239. data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
  240. data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
  241. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  242. data/vendor/pygments-main/pygments/styles/igor.py +1 -1
  243. data/vendor/pygments-main/pygments/styles/inkpot.py +67 -0
  244. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -1
  245. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  246. data/vendor/pygments-main/pygments/styles/monokai.py +4 -3
  247. data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
  248. data/vendor/pygments-main/pygments/styles/native.py +1 -1
  249. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
  250. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
  251. data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
  252. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
  253. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -1
  254. data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
  255. data/vendor/pygments-main/pygments/styles/sas.py +1 -1
  256. data/vendor/pygments-main/pygments/styles/solarized.py +134 -0
  257. data/vendor/pygments-main/pygments/styles/stata_dark.py +41 -0
  258. data/vendor/pygments-main/pygments/styles/{stata.py → stata_light.py} +14 -15
  259. data/vendor/pygments-main/pygments/styles/tango.py +1 -1
  260. data/vendor/pygments-main/pygments/styles/trac.py +1 -1
  261. data/vendor/pygments-main/pygments/styles/vim.py +1 -1
  262. data/vendor/pygments-main/pygments/styles/vs.py +1 -1
  263. data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
  264. data/vendor/pygments-main/pygments/token.py +1 -1
  265. data/vendor/pygments-main/pygments/unistring.py +47 -108
  266. data/vendor/pygments-main/pygments/util.py +15 -92
  267. metadata +68 -136
  268. data/CHANGELOG.md +0 -111
  269. data/README.md +0 -121
  270. data/circle.yml +0 -20
  271. data/test/test_data.c +0 -2581
  272. data/test/test_data.py +0 -514
  273. data/test/test_data_generated +0 -2582
  274. data/vendor/custom_lexers/github.py +0 -565
  275. data/vendor/pygments-main/CHANGES +0 -1186
  276. data/vendor/pygments-main/MANIFEST.in +0 -6
  277. data/vendor/pygments-main/Makefile +0 -65
  278. data/vendor/pygments-main/README.rst +0 -39
  279. data/vendor/pygments-main/REVISION +0 -1
  280. data/vendor/pygments-main/TODO +0 -12
  281. data/vendor/pygments-main/doc/Makefile +0 -153
  282. data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
  283. data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
  284. data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
  285. data/vendor/pygments-main/doc/_templates/docssidebar.html +0 -3
  286. data/vendor/pygments-main/doc/_templates/indexsidebar.html +0 -25
  287. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +0 -98
  288. data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
  289. data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
  290. data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
  291. data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
  292. data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
  293. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +0 -401
  294. data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +0 -15
  295. data/vendor/pygments-main/doc/conf.py +0 -241
  296. data/vendor/pygments-main/doc/docs/api.rst +0 -354
  297. data/vendor/pygments-main/doc/docs/authors.rst +0 -4
  298. data/vendor/pygments-main/doc/docs/changelog.rst +0 -1
  299. data/vendor/pygments-main/doc/docs/cmdline.rst +0 -166
  300. data/vendor/pygments-main/doc/docs/filterdevelopment.rst +0 -71
  301. data/vendor/pygments-main/doc/docs/filters.rst +0 -41
  302. data/vendor/pygments-main/doc/docs/formatterdevelopment.rst +0 -169
  303. data/vendor/pygments-main/doc/docs/formatters.rst +0 -48
  304. data/vendor/pygments-main/doc/docs/index.rst +0 -66
  305. data/vendor/pygments-main/doc/docs/integrate.rst +0 -40
  306. data/vendor/pygments-main/doc/docs/java.rst +0 -70
  307. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +0 -728
  308. data/vendor/pygments-main/doc/docs/lexers.rst +0 -69
  309. data/vendor/pygments-main/doc/docs/moinmoin.rst +0 -39
  310. data/vendor/pygments-main/doc/docs/plugins.rst +0 -93
  311. data/vendor/pygments-main/doc/docs/quickstart.rst +0 -205
  312. data/vendor/pygments-main/doc/docs/rstdirective.rst +0 -22
  313. data/vendor/pygments-main/doc/docs/styles.rst +0 -201
  314. data/vendor/pygments-main/doc/docs/tokens.rst +0 -372
  315. data/vendor/pygments-main/doc/docs/unicode.rst +0 -58
  316. data/vendor/pygments-main/doc/download.rst +0 -41
  317. data/vendor/pygments-main/doc/faq.rst +0 -139
  318. data/vendor/pygments-main/doc/index.rst +0 -54
  319. data/vendor/pygments-main/doc/languages.rst +0 -154
  320. data/vendor/pygments-main/doc/make.bat +0 -190
  321. data/vendor/pygments-main/doc/pygmentize.1 +0 -94
  322. data/vendor/pygments-main/external/autopygmentize +0 -101
  323. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +0 -162
  324. data/vendor/pygments-main/external/markdown-processor.py +0 -67
  325. data/vendor/pygments-main/external/moin-parser.py +0 -112
  326. data/vendor/pygments-main/external/pygments.bashcomp +0 -38
  327. data/vendor/pygments-main/external/rst-directive.py +0 -82
  328. data/vendor/pygments-main/pygmentize +0 -8
  329. data/vendor/pygments-main/pygments/lexers/github.py +0 -565
  330. data/vendor/pygments-main/requirements.txt +0 -5
  331. data/vendor/pygments-main/scripts/check_sources.py +0 -211
  332. data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
  333. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
  334. data/vendor/pygments-main/scripts/epydoc.css +0 -280
  335. data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
  336. data/vendor/pygments-main/scripts/pylintrc +0 -301
  337. data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
  338. data/vendor/pygments-main/setup.cfg +0 -10
  339. data/vendor/pygments-main/setup.py +0 -77
  340. data/vendor/pygments-main/tox.ini +0 -7
  341. data/vendor/simplejson/.gitignore +0 -10
  342. data/vendor/simplejson/.travis.yml +0 -5
  343. data/vendor/simplejson/CHANGES.txt +0 -291
  344. data/vendor/simplejson/LICENSE.txt +0 -19
  345. data/vendor/simplejson/MANIFEST.in +0 -5
  346. data/vendor/simplejson/README.rst +0 -19
  347. data/vendor/simplejson/conf.py +0 -179
  348. data/vendor/simplejson/index.rst +0 -628
  349. data/vendor/simplejson/scripts/make_docs.py +0 -18
  350. data/vendor/simplejson/setup.py +0 -104
  351. data/vendor/simplejson/simplejson/__init__.py +0 -510
  352. data/vendor/simplejson/simplejson/_speedups.c +0 -2745
  353. data/vendor/simplejson/simplejson/decoder.py +0 -425
  354. data/vendor/simplejson/simplejson/encoder.py +0 -567
  355. data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
  356. data/vendor/simplejson/simplejson/scanner.py +0 -77
  357. data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
  358. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
  359. data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
  360. data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
  361. data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
  362. data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
  363. data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
  364. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
  365. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
  366. data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
  367. data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
  368. data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
  369. data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
  370. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
  371. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
  372. data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
  373. data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
  374. data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
  375. data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
  376. data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
  377. data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
  378. data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
  379. data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
  380. data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
  381. data/vendor/simplejson/simplejson/tool.py +0 -39
@@ -1,19 +0,0 @@
1
- import math
2
- from unittest import TestCase
3
-
4
- import simplejson as json
5
-
6
- class TestFloat(TestCase):
7
- def test_floats(self):
8
- for num in [1617161771.7650001, math.pi, math.pi**100,
9
- math.pi**-100, 3.1]:
10
- self.assertEquals(float(json.dumps(num)), num)
11
- self.assertEquals(json.loads(json.dumps(num)), num)
12
- self.assertEquals(json.loads(unicode(json.dumps(num))), num)
13
-
14
- def test_ints(self):
15
- for num in [1, 1L, 1<<32, 1<<64]:
16
- self.assertEquals(json.dumps(num), str(num))
17
- self.assertEquals(int(json.dumps(num)), num)
18
- self.assertEquals(json.loads(json.dumps(num)), num)
19
- self.assertEquals(json.loads(unicode(json.dumps(num))), num)
@@ -1,86 +0,0 @@
1
- from unittest import TestCase
2
-
3
- import simplejson as json
4
- import textwrap
5
- from StringIO import StringIO
6
-
7
- class TestIndent(TestCase):
8
- def test_indent(self):
9
- h = [['blorpie'], ['whoops'], [], 'd-shtaeou', 'd-nthiouh',
10
- 'i-vhbjkhnth',
11
- {'nifty': 87}, {'field': 'yes', 'morefield': False} ]
12
-
13
- expect = textwrap.dedent("""\
14
- [
15
- \t[
16
- \t\t"blorpie"
17
- \t],
18
- \t[
19
- \t\t"whoops"
20
- \t],
21
- \t[],
22
- \t"d-shtaeou",
23
- \t"d-nthiouh",
24
- \t"i-vhbjkhnth",
25
- \t{
26
- \t\t"nifty": 87
27
- \t},
28
- \t{
29
- \t\t"field": "yes",
30
- \t\t"morefield": false
31
- \t}
32
- ]""")
33
-
34
-
35
- d1 = json.dumps(h)
36
- d2 = json.dumps(h, indent='\t', sort_keys=True, separators=(',', ': '))
37
- d3 = json.dumps(h, indent=' ', sort_keys=True, separators=(',', ': '))
38
- d4 = json.dumps(h, indent=2, sort_keys=True, separators=(',', ': '))
39
-
40
- h1 = json.loads(d1)
41
- h2 = json.loads(d2)
42
- h3 = json.loads(d3)
43
- h4 = json.loads(d4)
44
-
45
- self.assertEquals(h1, h)
46
- self.assertEquals(h2, h)
47
- self.assertEquals(h3, h)
48
- self.assertEquals(h4, h)
49
- self.assertEquals(d3, expect.replace('\t', ' '))
50
- self.assertEquals(d4, expect.replace('\t', ' '))
51
- # NOTE: Python 2.4 textwrap.dedent converts tabs to spaces,
52
- # so the following is expected to fail. Python 2.4 is not a
53
- # supported platform in simplejson 2.1.0+.
54
- self.assertEquals(d2, expect)
55
-
56
- def test_indent0(self):
57
- h = {3: 1}
58
- def check(indent, expected):
59
- d1 = json.dumps(h, indent=indent)
60
- self.assertEquals(d1, expected)
61
-
62
- sio = StringIO()
63
- json.dump(h, sio, indent=indent)
64
- self.assertEquals(sio.getvalue(), expected)
65
-
66
- # indent=0 should emit newlines
67
- check(0, '{\n"3": 1\n}')
68
- # indent=None is more compact
69
- check(None, '{"3": 1}')
70
-
71
- def test_separators(self):
72
- lst = [1,2,3,4]
73
- expect = '[\n1,\n2,\n3,\n4\n]'
74
- expect_spaces = '[\n1, \n2, \n3, \n4\n]'
75
- # Ensure that separators still works
76
- self.assertEquals(
77
- expect_spaces,
78
- json.dumps(lst, indent=0, separators=(', ', ': ')))
79
- # Force the new defaults
80
- self.assertEquals(
81
- expect,
82
- json.dumps(lst, indent=0, separators=(',', ': ')))
83
- # Added in 2.1.4
84
- self.assertEquals(
85
- expect,
86
- json.dumps(lst, indent=0))
@@ -1,20 +0,0 @@
1
- from unittest import TestCase
2
-
3
- import simplejson as json
4
- from operator import itemgetter
5
-
6
- class TestItemSortKey(TestCase):
7
- def test_simple_first(self):
8
- a = {'a': 1, 'c': 5, 'jack': 'jill', 'pick': 'axe', 'array': [1, 5, 6, 9], 'tuple': (83, 12, 3), 'crate': 'dog', 'zeak': 'oh'}
9
- self.assertEquals(
10
- '{"a": 1, "c": 5, "crate": "dog", "jack": "jill", "pick": "axe", "zeak": "oh", "array": [1, 5, 6, 9], "tuple": [83, 12, 3]}',
11
- json.dumps(a, item_sort_key=json.simple_first))
12
-
13
- def test_case(self):
14
- a = {'a': 1, 'c': 5, 'Jack': 'jill', 'pick': 'axe', 'Array': [1, 5, 6, 9], 'tuple': (83, 12, 3), 'crate': 'dog', 'zeak': 'oh'}
15
- self.assertEquals(
16
- '{"Array": [1, 5, 6, 9], "Jack": "jill", "a": 1, "c": 5, "crate": "dog", "pick": "axe", "tuple": [83, 12, 3], "zeak": "oh"}',
17
- json.dumps(a, item_sort_key=itemgetter(0)))
18
- self.assertEquals(
19
- '{"a": 1, "Array": [1, 5, 6, 9], "c": 5, "crate": "dog", "Jack": "jill", "pick": "axe", "tuple": [83, 12, 3], "zeak": "oh"}',
20
- json.dumps(a, item_sort_key=lambda kv: kv[0].lower()))
@@ -1,121 +0,0 @@
1
- import unittest
2
- import simplejson as json
3
- from StringIO import StringIO
4
-
5
- try:
6
- from collections import namedtuple
7
- except ImportError:
8
- class Value(tuple):
9
- def __new__(cls, *args):
10
- return tuple.__new__(cls, args)
11
-
12
- def _asdict(self):
13
- return {'value': self[0]}
14
- class Point(tuple):
15
- def __new__(cls, *args):
16
- return tuple.__new__(cls, args)
17
-
18
- def _asdict(self):
19
- return {'x': self[0], 'y': self[1]}
20
- else:
21
- Value = namedtuple('Value', ['value'])
22
- Point = namedtuple('Point', ['x', 'y'])
23
-
24
- class DuckValue(object):
25
- def __init__(self, *args):
26
- self.value = Value(*args)
27
-
28
- def _asdict(self):
29
- return self.value._asdict()
30
-
31
- class DuckPoint(object):
32
- def __init__(self, *args):
33
- self.point = Point(*args)
34
-
35
- def _asdict(self):
36
- return self.point._asdict()
37
-
38
- class DeadDuck(object):
39
- _asdict = None
40
-
41
- class DeadDict(dict):
42
- _asdict = None
43
-
44
- CONSTRUCTORS = [
45
- lambda v: v,
46
- lambda v: [v],
47
- lambda v: [{'key': v}],
48
- ]
49
-
50
- class TestNamedTuple(unittest.TestCase):
51
- def test_namedtuple_dumps(self):
52
- for v in [Value(1), Point(1, 2), DuckValue(1), DuckPoint(1, 2)]:
53
- d = v._asdict()
54
- self.assertEqual(d, json.loads(json.dumps(v)))
55
- self.assertEqual(
56
- d,
57
- json.loads(json.dumps(v, namedtuple_as_object=True)))
58
- self.assertEqual(d, json.loads(json.dumps(v, tuple_as_array=False)))
59
- self.assertEqual(
60
- d,
61
- json.loads(json.dumps(v, namedtuple_as_object=True,
62
- tuple_as_array=False)))
63
-
64
- def test_namedtuple_dumps_false(self):
65
- for v in [Value(1), Point(1, 2)]:
66
- l = list(v)
67
- self.assertEqual(
68
- l,
69
- json.loads(json.dumps(v, namedtuple_as_object=False)))
70
- self.assertRaises(TypeError, json.dumps, v,
71
- tuple_as_array=False, namedtuple_as_object=False)
72
-
73
- def test_namedtuple_dump(self):
74
- for v in [Value(1), Point(1, 2), DuckValue(1), DuckPoint(1, 2)]:
75
- d = v._asdict()
76
- sio = StringIO()
77
- json.dump(v, sio)
78
- self.assertEqual(d, json.loads(sio.getvalue()))
79
- sio = StringIO()
80
- json.dump(v, sio, namedtuple_as_object=True)
81
- self.assertEqual(
82
- d,
83
- json.loads(sio.getvalue()))
84
- sio = StringIO()
85
- json.dump(v, sio, tuple_as_array=False)
86
- self.assertEqual(d, json.loads(sio.getvalue()))
87
- sio = StringIO()
88
- json.dump(v, sio, namedtuple_as_object=True,
89
- tuple_as_array=False)
90
- self.assertEqual(
91
- d,
92
- json.loads(sio.getvalue()))
93
-
94
- def test_namedtuple_dump_false(self):
95
- for v in [Value(1), Point(1, 2)]:
96
- l = list(v)
97
- sio = StringIO()
98
- json.dump(v, sio, namedtuple_as_object=False)
99
- self.assertEqual(
100
- l,
101
- json.loads(sio.getvalue()))
102
- self.assertRaises(TypeError, json.dump, v, StringIO(),
103
- tuple_as_array=False, namedtuple_as_object=False)
104
-
105
- def test_asdict_not_callable_dump(self):
106
- for f in CONSTRUCTORS:
107
- self.assertRaises(TypeError,
108
- json.dump, f(DeadDuck()), StringIO(), namedtuple_as_object=True)
109
- sio = StringIO()
110
- json.dump(f(DeadDict()), sio, namedtuple_as_object=True)
111
- self.assertEqual(
112
- json.dumps(f({})),
113
- sio.getvalue())
114
-
115
- def test_asdict_not_callable_dumps(self):
116
- for f in CONSTRUCTORS:
117
- self.assertRaises(TypeError,
118
- json.dumps, f(DeadDuck()), namedtuple_as_object=True)
119
- self.assertEqual(
120
- json.dumps(f({})),
121
- json.dumps(f(DeadDict()), namedtuple_as_object=True))
@@ -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