X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=hiprofile.py;h=c1d1052e2f7513f3f153963c7857f9bff398c343;hb=be4f86318de93e331951e9b698a69d9c4c6cd514;hp=212fbf13e76a32e8dd26fdbb650fd387df5edb12;hpb=45d77ca5ecee3a58aa0d889ad1d3b72368966e7f;p=hiprofile diff --git a/hiprofile.py b/hiprofile.py index 212fbf1..c1d1052 100644 --- a/hiprofile.py +++ b/hiprofile.py @@ -6,7 +6,7 @@ import shutil import os import socket from xml.dom.minidom import parse as parseXML -from django.template.loader import render_to_string +from jinja2 import Environment, FileSystemLoader b_id = 0 s_id = 0 @@ -306,24 +306,27 @@ def write_report(report, resourcedir, outdir): os.mkdir(outdir) + # set up template engine + env = Environment(loader = FileSystemLoader(resourcedir), + autoescape = True) + templates = {} + for name in ['report', 'binary', 'symbol']: + templates[name] = env.get_template('%s.html' % name) + # copy required files over files = ['style.css', 'hiprofile.js', 'bar.png', 'jquery-1.3.1.min.js'] for file in files: shutil.copy(os.path.join(resourcedir, file), outdir) - f = open(os.path.join(outdir, 'index.html'), 'w') - f.write(render_to_string('report.html', { 'report': report })) - f.close() + reportfile = os.path.join(outdir, 'index.html') + templates['report'].stream(report = report).dump(reportfile) for binary in report.binaries: - f = open(os.path.join(outdir, binary.filename()), 'w') - f.write(render_to_string('binary.html', - { 'report': report, 'binary': binary })) - f.close() - - for ref in binary.references: - f = open(os.path.join(outdir, ref.filename()), 'w') - f.write(render_to_string('symbol.html', - { 'report': report, 'binary': binary, 'symbol': ref })) - f.close() - + binaryfile = os.path.join(outdir, binary.filename()) + templates['binary'].stream(report = report, binary = binary). \ + dump(binaryfile) + + for symbol in binary.references: + symbolfile = os.path.join(outdir, symbol.filename()) + templates['symbol'].stream(report = report, binary = binary, + symbol = symbol).dump(symbolfile)