def parse(): form = IndexForm(request.form) options = dict(font=None, shadow=None, png=None) if form.validate(): fout = StringIO.StringIO() fin = form.data['source'] svg = subprocess.Popen(['/usr/bin/dot', '-Tsvg'], stdin=subprocess.PIPE, stdout=subprocess.PIPE).communicate(input=fin)[0] scruffy.transform(svg, fout, options) if form.data['type'] == 'png': return cairosvg.svg2png(fout) return render_template('index.html', form=form, svg=fout.getvalue()) return render_template('index.html', form=form)