diff --git a/pep2pyramid.py b/pep2pyramid.py index a05357e88..d40cc6cc8 100755 --- a/pep2pyramid.py +++ b/pep2pyramid.py @@ -212,17 +212,22 @@ def fixfile(inpath, input_lines, outfile): otherpep) v = otherpeps elif k.lower() in ('last-modified',): - date = v or time.strftime('%d-%b-%Y', + date = v or time.strftime('%Y-%m-%d', time.localtime(os.stat(inpath)[8])) + if date.startswith('$' 'Date: ') and date.endswith(' $'): + date = date[6:-2] try: url = PEPCVSURL % int(pep) v = '%s ' % (url, cgi.escape(date)) except ValueError, error: v = date - elif k.lower() in ('content-type',): + elif k.lower() == 'content-type': url = PEPURL % 9 pep_type = v or 'text/plain' v = '%s ' % (url, cgi.escape(pep_type)) + elif k.lower() == 'version': + if v.startswith('$' 'Revision: ') and v.endswith(' $'): + v = cgi.escape(v[11:-2]) else: v = cgi.escape(v) print >> outfile, (' %s: ' @@ -292,7 +297,7 @@ def fix_rst_pep(inpath, input_lines, outfile): settings=docutils_settings, # Allow Docutils traceback if there's an exception: settings_overrides={'traceback': 1}) - outfile.write(parts['body']) + outfile.write(parts['whole']) title = 'PEP %s -- %s' % (parts['pepnum'], parts['title'][0]) return title @@ -365,6 +370,7 @@ def make_html(inpath, verbose=0): # for PEP 0, copy body to parent directory as well if pepnum == '0000': shutil.copyfile(outpath, os.path.join(destDir, '..', 'body.html')) + copy_aux_files(inpath, destDir) return outpath def set_up_pyramid(inpath): @@ -401,6 +407,20 @@ def write_pyramid_index(destDir, title): fp.close() os.chmod(filename, 0664) +def copy_aux_files(pep_path, dest_dir): + """ + Copy auxiliary files whose names match 'pep-XXXX-*.*'. + """ + dirname, pepname = os.path.split(pep_path) + base, ext = os.path.splitext(pepname) + files = glob.glob(os.path.join(dirname, base) + '-*.*') + for path in files: + filename = os.path.basename(path) + dest_path = os.path.join(dest_dir, filename) + print '%s -> %s' % (path, dest_path) + shutil.copy(path, dest_path) + + PEP_TYPE_DISPATCH = {'text/plain': fixfile, 'text/x-rst': fix_rst_pep} @@ -466,25 +486,15 @@ def main(argv=None): verbose = 0 if args: - peptxt = [] - html = [] for pep in args: - file = find_pep(pep) - peptxt.append(file) - newfile = make_html(file, verbose=verbose) - if newfile: - html.append(newfile) + filename = find_pep(pep) + make_html(filename, verbose=verbose) else: # do them all - peptxt = [] - html = [] files = glob.glob("pep-*.txt") files.sort() - for file in files: - peptxt.append(file) - newfile = make_html(file, verbose=verbose) - if newfile: - html.append(newfile) + for filename in files: + make_html(filename, verbose=verbose)