Example #1
0
def transform(expr, fout, options):
    pic = suml2pic(expr, options)

    if options.png or options.svg:
        import subprocess
        import StringIO

        if options.scruffy:
            import scruffy

            svg = subprocess.Popen(
                ['pic2plot', '-Tsvg'],
                stdin=subprocess.PIPE,
                stdout=subprocess.PIPE).communicate(input=pic)[0]
            if options.png:
                tocrop = StringIO.StringIO()
                scruffy.transform(StringIO.StringIO(svg), tocrop, options)
                common.crop(StringIO.StringIO(tocrop.getvalue()), fout)
            else:
                scruffy.transform(StringIO.StringIO(svg), fout, options)
        elif options.png:
            png = subprocess.Popen(
                ['pic2plot', '-Tpng'],
                stdin=subprocess.PIPE,
                stdout=subprocess.PIPE).communicate(input=pic)[0]
            common.crop(StringIO.StringIO(png), fout)
        elif options.svg:
            subprocess.Popen(['pic2plot', '-Tsvg'],
                             stdin=subprocess.PIPE,
                             stdout=fout).communicate(input=pic)
    else:
        fout.write(pic)
Example #2
0
def transform(expr, fout, options):
    dot = yuml2dot(expr, options)

    if options.png or options.svg:
        import subprocess

        if options.scruffy:
            import StringIO
            import scruffy

            svg = subprocess.Popen(
                ['dot', '-Tsvg'],
                stdin=subprocess.PIPE,
                stdout=subprocess.PIPE).communicate(input=dot)[0]
            scruffy.transform(StringIO.StringIO(svg), fout, options)
        elif options.png:
            subprocess.Popen(['dot', '-Tpng'],
                             stdin=subprocess.PIPE,
                             stdout=fout).communicate(input=dot)
        elif options.svg:
            subprocess.Popen(['dot', '-Tsvg'],
                             stdin=subprocess.PIPE,
                             stdout=fout).communicate(input=dot)
    else:
        fout.write(dot)
Example #3
0
def transform(expr, fout, options):
    pic = suml2pic(expr, options)

    if options.png or options.svg:
        import subprocess
        import StringIO

        svg = subprocess.Popen(['pic2plot', '-Tsvg'], stdin=subprocess.PIPE, stdout=subprocess.PIPE).communicate(input=pic)[0]
        
        etree.register_namespace('', 'http://www.w3.org/2000/svg')
        root = etree.parse(StringIO.StringIO(svg)).getroot()

        common.clear(root)

        if options.scruffy:
            import scruffy

            scruffy.transform(root, options)
        
        svg = '<?xml version="1.0" encoding="UTF-8" standalone="no" ?>\n' + etree.tostring(root) + '\n'
        
        if options.png:
            png = subprocess.Popen(['convert', '-', '-'], stdin=subprocess.PIPE, stdout=subprocess.PIPE).communicate(input=svg)[0]
            fout.write(png)
        elif options.svg:
            fout.write(svg)
    else:
        fout.write(pic)
Example #4
0
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)
Example #5
0
def transform(expr, fout, options):
    dot = yuml2dot(expr, options)

    if options.png or options.svg:
        import subprocess

        if options.scruffy:
            import StringIO
            import scruffy

            svg = subprocess.Popen(['dot', '-Tsvg'], stdin=subprocess.PIPE, stdout=subprocess.PIPE).communicate(input=dot)[0]
            scruffy.transform(StringIO.StringIO(svg), fout, options)
        elif options.png:
            subprocess.Popen(['dot', '-Tpng'], stdin=subprocess.PIPE, stdout=fout).communicate(input=dot)
        elif options.svg:
            subprocess.Popen(['dot', '-Tsvg'], stdin=subprocess.PIPE, stdout=fout).communicate(input=dot)
    else:
        fout.write(dot)
Example #6
0
def transform(expr, fout, options):
    pic = suml2pic(expr, options)

    if options.png or options.svg:
        import subprocess
        import StringIO

        if options.scruffy:
            import scruffy

            svg = subprocess.Popen(['pic2plot', '-Tsvg'], stdin=subprocess.PIPE, stdout=subprocess.PIPE).communicate(input=pic)[0]
            if options.png:
                tocrop = StringIO.StringIO()
                scruffy.transform(StringIO.StringIO(svg), tocrop, options)
                common.crop(StringIO.StringIO(tocrop.getvalue()), fout)
            else:
                scruffy.transform(StringIO.StringIO(svg), fout, options)
        elif options.png:
            png = subprocess.Popen(['pic2plot', '-Tpng'], stdin=subprocess.PIPE, stdout=subprocess.PIPE).communicate(input=pic)[0]
            common.crop(StringIO.StringIO(png), fout)
        elif options.svg:
            subprocess.Popen(['pic2plot', '-Tsvg'], stdin=subprocess.PIPE, stdout=fout).communicate(input=pic)
    else:
        fout.write(pic)