diff --git a/pep2html.py b/pep2html.py
index a31781888..4d8ecbc64 100755
--- a/pep2html.py
+++ b/pep2html.py
@@ -1,37 +1,37 @@
#!/usr/bin/env python
"""Convert PEPs to (X)HTML - courtesy of /F
-Usage: %(PROGRAM)s [options] [peps]
+Usage: %(PROGRAM)s [options] [ ...]
Options:
- -u/--user
- python.org username
+-u, --user
+ python.org username
- -b/--browse
- After generating the HTML, direct your web browser to view it
- (using the Python webbrowser module). If both -i and -b are
- given, this will browse the on-line HTML; otherwise it will
- browse the local HTML. If no pep arguments are given, this
- will browse PEP 0.
+-b, --browse
+ After generating the HTML, direct your web browser to view it
+ (using the Python webbrowser module). If both -i and -b are
+ given, this will browse the on-line HTML; otherwise it will
+ browse the local HTML. If no pep arguments are given, this
+ will browse PEP 0.
- -i/--install
- After generating the HTML, install it and the plaintext source file
- (.txt) on python.org. In that case the user's name is used in the scp
- and ssh commands, unless "-u username" is given (in which case, it is
- used instead). Without -i, -u is ignored.
+-i, --install
+ After generating the HTML, install it and the plaintext source file
+ (.txt) on python.org. In that case the user's name is used in the scp
+ and ssh commands, unless "-u username" is given (in which case, it is
+ used instead). Without -i, -u is ignored.
- -l/--local
- Same as -i/--install, except install on the local machine. Use this
- when logged in to the python.org machine (creosote).
+-l, --local
+ Same as -i/--install, except install on the local machine. Use this
+ when logged in to the python.org machine (creosote).
- -q/--quiet
- Turn off verbose messages.
+-q, --quiet
+ Turn off verbose messages.
- -h/--help
- Print this help message and exit.
+-h, --help
+ Print this help message and exit.
-The optional argument `peps' is a list of either pep numbers or .txt files.
+The optional arguments ``peps`` are either pep numbers or .txt files.
"""
import sys
@@ -81,9 +81,14 @@ COMMASPACE = ', '
def usage(code, msg=''):
- print >> sys.stderr, __doc__ % globals()
+ """Print usage message and exit. Uses stderr if code != 0."""
+ if code == 0:
+ out = sys.stdout
+ else:
+ out = sys.stderr
+ print >> out, __doc__ % globals()
if msg:
- print >> sys.stderr, msg
+ print >> out, msg
sys.exit(code)
@@ -302,7 +307,9 @@ def fix_rst_pep(inpath, input_lines, outfile):
reader_name='pep',
parser_name='restructuredtext',
writer_name='pep_html',
- settings=docutils_settings)
+ settings=docutils_settings,
+ # Allow Docutils traceback if there's an exception:
+ settings_overrides={'traceback': 1})
outfile.write(output)
@@ -423,7 +430,9 @@ def check_requirements():
'Docutils not present for "%(pep_type)s" PEP file %(inpath)s. '
'See README.txt for installation.')
else:
- if docutils.__version__ < REQUIRES['docutils']:
+ installed = [int(part) for part in docutils.__version__.split('.')]
+ required = [int(part) for part in REQUIRES['docutils'].split('.')]
+ if installed < required:
PEP_TYPE_DISPATCH['text/x-rst'] = None
PEP_TYPE_MESSAGES['text/x-rst'] = (
'Docutils must be reinstalled for "%%(pep_type)s" PEP '