[wwwsearch-commits] r31956 - wwwsearch/release_scripts
jjlee at codespeak.net
jjlee at codespeak.net
Sat Sep 2 21:16:45 CEST 2006
Author: jjlee
Date: Sat Sep 2 21:16:44 2006
New Revision: 31956
Modified:
wwwsearch/release_scripts/colorize.py
Log:
Accept unicode strings as input (just str() them); Add unit test; Add a colorize_ex function that doesn't print; Don't use module string, where possible
Modified: wwwsearch/release_scripts/colorize.py
==============================================================================
--- wwwsearch/release_scripts/colorize.py (original)
+++ wwwsearch/release_scripts/colorize.py Sat Sep 2 21:16:44 2006
@@ -37,22 +37,42 @@
def colorize(text):
# for use with EmPy
+ print colorize_ex(text)
+
+def colorize_ex(text):
from StringIO import StringIO
+ text = str(text) # we don't like unicode
inp = StringIO(text)
out = StringIO()
Parser(inp.read(), out).format(None, None)
- print out.getvalue()
+ return out.getvalue()
class Parser:
""" Send colored python source.
+
+ >>> colorize('import blah\\n\\ndef foo():\\n blah()\\nprint "bye"\\n#comment\\n')
+ <pre><span class="pykw">import</span> blah
+ <BLANKLINE>
+ <span class="pykw">def</span> foo():
+ blah()
+ <span class="pykw">print</span> <span class="pystr">"bye"</span>
+ <span class="pycmt">#comment</span></pre>
+
+ >>> colorize(u'import blah\\n\\ndef foo():\\n blah()\\nprint "bye"\\n#comment\\n')
+ <pre><span class="pykw">import</span> blah
+ <BLANKLINE>
+ <span class="pykw">def</span> foo():
+ blah()
+ <span class="pykw">print</span> <span class="pystr">"bye"</span>
+ <span class="pycmt">#comment</span></pre>
+
"""
def __init__(self, raw, out = sys.stdout):
""" Store the source text.
"""
- #self.raw = string.strip(string.expandtabs(raw))
- self.raw = string.rstrip(string.expandtabs(raw))
+ self.raw = string.expandtabs(raw).rstrip()
self.out = out
def format(self, formatter, form):
@@ -62,7 +82,7 @@
self.lines = [0, 0]
pos = 0
while 1:
- pos = string.find(self.raw, '\n', pos) + 1
+ pos = self.raw.find('\n', pos) + 1
if not pos: break
self.lines.append(pos)
self.lines.append(len(self.raw))
@@ -125,7 +145,11 @@
self.out.write('</span>')
-def testmain():
+def test_main():
+ import doctest
+ doctest.testmod()
+
+def demo():
import os, sys
print "Formatting..."
@@ -143,4 +167,4 @@
if __name__ == "__main__":
- testmain()
+ test_main()
More information about the wwwsearch-commits
mailing list