Kaydet (Commit) cf6eac40 authored tarafından Raymond Hettinger's avatar Raymond Hettinger

Minor cleanups

üst ecea0fb1
......@@ -28,6 +28,7 @@ ftpmirror.py FTP mirror script
google.py Open a webbrowser with Google
gprof2html.py Transform gprof(1) output into useful HTML
h2py.py Translate #define's into Python assignments
highlight.py Python syntax highlighting with HTML output
idle3 Main program to start IDLE
ifdef.py Remove #if(n)def groups from C sources
lfcr.py Change LF line endings to CRLF (Unix to Windows)
......@@ -47,7 +48,6 @@ pdeps.py Print dependencies between Python modules
pickle2db.py Load a pickle generated by db2pickle.py to a database
pindent.py Indent Python code, giving block-closing comments
ptags.py Create vi tags file for Python modules
pycolorize.py Python syntax highlighting with HTML output
pydoc3 Python documentation browser
pysource.py Find Python source files
redemo.py Basic regular expression demonstration facility
......
......@@ -21,7 +21,7 @@ def escape_range(lines, start, end):
def colorize(source):
'Convert Python source code to an HTML fragment with colorized markup'
lines = source.splitlines(True)
lines = source.splitlines(keepends=True)
lines.append('')
readline = functools.partial(next, iter(lines), '')
kind = tok_str = ''
......@@ -31,7 +31,7 @@ def colorize(source):
for tok in tokenize.generate_tokens(readline):
prev_tok_type, prev_tok_str = tok_type, tok_str
tok_type, tok_str, (srow, scol), (erow, ecol), logical_lineno = tok
kind, prev_kind = '', kind
kind = ''
if tok_type == tokenize.COMMENT:
kind = 'comment'
elif tok_type == tokenize.OP and tok_str[:1] not in '{}[](),.:;':
......@@ -102,22 +102,22 @@ if __name__ == '__main__':
import sys, argparse, webbrowser, os
parser = argparse.ArgumentParser(
description = 'Convert Python source code to colorized HTML')
parser.add_argument('sourcefile', metavar = 'SOURCEFILE', nargs = 1,
description = 'Convert Python source code to colorized HTML')
parser.add_argument('sourcefile', metavar = 'SOURCEFILE',
help = 'File containing Python sourcecode')
parser.add_argument('-b', '--browser', action = 'store_true',
help = 'launch a browser to show results')
parser.add_argument('-s', '--standalone', action = 'store_true',
help = 'show a standalone snippet rather than a complete webpage')
parser.add_argument('-s', '--section', action = 'store_true',
help = 'show an HTML section rather than a complete webpage')
args = parser.parse_args()
if args.browser and args.standalone:
parser.error('The -s/--standalone option is incompatible with '
if args.browser and args.section:
parser.error('The -s/--section option is incompatible with '
'the -b/--browser option')
sourcefile = args.sourcefile[0]
sourcefile = args.sourcefile
with open(sourcefile) as f:
page = f.read()
html = colorize(page) if args.standalone else build_page(page, title=sourcefile)
html = colorize(page) if args.section else build_page(page, title=sourcefile)
if args.browser:
htmlfile = os.path.splitext(os.path.basename(sourcefile))[0] + '.html'
with open(htmlfile, 'w') as f:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment