Ejemplo n.º 1
0
def crystal_image(crystal):
    C = make_tableaux_crystal(crystal)
    from sage.all import tmp_dir

    d = tmp_dir()

    import os

    filename = os.path.join(d, "crystal.png")

    try:
        from sage.misc.latex import png

        png(C, filename, debug=True, pdflatex=True)

        image_data = open(filename, "rb").read()
        response = make_response(image_data)
        response.headers["Content-Type"] = "image/png"

        return response
    except IOError:
        return "internal error rendering graph", 500
    finally:
        # Get rid of the temporary directory
        import shutil

        shutil.rmtree(d)
Ejemplo n.º 2
0
Archivo: qasm.py Proyecto: chos9/sage
def qasm_png(s, outfile=None, res=150, verbose=False):
    """
    INPUT:
        s -- input string that describes QASM diagram
        res -- output resolution
        outfile -- None or a filename
    """
    global n
    if outfile is None:
        outfile = "%s.png"%n
        n += 1

    E = "%s/local/lib/qasm"%SAGE_ROOT
    if not os.path.exists(E):
        raise RuntimeError, "the optional qasm package is not installed"

    D = tmp_dir()
    open('%s/input.qasm'%D,'w').write(s)
    shutil.copy('%s/xyqcirc.tex'%E, '%s/xyqcirc.tex'%D)
    cmd = 'cd "%s" && python "%s/qasm2tex.py" input.qasm > input.tex && latex \\\\nonstopmode \\\\input input.tex && dvipng -D%s input.dvi -o input.png'%(D, E, res)
    if verbose:
        print cmd
    r = os.popen(cmd).read()
    if verbose:
        print r
    if not os.path.exists(D + '/input.png'):
        raise RuntimeError, r + '\n Error running qasm'
    shutil.copy(D+'/input.png', outfile)
    shutil.rmtree(D, ignore_errors=True)
Ejemplo n.º 3
0
def crystal_image(crystal):
    C = make_tableaux_crystal(crystal)
    from sage.all import tmp_dir
    d = tmp_dir()

    import os
    filename = os.path.join(d, 'crystal.png')

    try:
        from sage.misc.latex import png
        png(C, filename, debug=True, pdflatex=True)

        image_data = open(filename, 'rb').read()
        response = make_response(image_data)
        response.headers['Content-Type'] = 'image/png'

        return response
    except IOError:
        return "internal error rendering graph", 500
    finally:
        # Get rid of the temporary directory
        import shutil
        shutil.rmtree(d)