Ejemplo n.º 1
0
Archivo: LaTeX.py Proyecto: exedre/e4t
    def compile(self,name,document,multiple=1,notemp=False,fname=None):
        """Layout and compile LaTeX file"""
        setup=None
        if hasattr(document,'setup_elements'):
            setup=document.setup_elements
        with Timer() as t:
            txt = self.layout(document) 
        _accounting['tex.time.layout']=t.msecs

        with Timer() as t:
            (pdf, log) = tex(lart10,txt,multiple,notemp,setup)
        _accounting['tex.time.compile']=t.msecs

        if pdf:
            _accounting['tex.pdf.exists']=1

        if fname is None:
            if not re.search('\.pdf$',name,re.I):
                base = name
                name = '%s.pdf' % name
            else:
                base = name[:-4]

            fname = name
        else:
            if not re.search('\.pdf$',fname,re.I):
                base = name
                name = '%s.pdf' % name
            else:
                base = fname[:-4]
                name = fname

        # Write log and accounting
        open('%s.log' % base, 'wb').write(log)
        open('%s.acct' % base, 'wb').write(dictview(_accounting))

        if pdf is None:
            return

        logger.debug('Writing %s pdf,log,acct in dir %s',name,dirname(fname))
        pdf.write(open(fname, 'wb'))
Ejemplo n.º 2
0
Archivo: make.py Proyecto: exedre/e4t
def writeout_file(elem,ext=".req",fh=None,header=None,options=Options()):
    """Write a temp file with given elements, if dict write an INI file

    :param elem: filename copied in result or lines to add
    :type eleme: filename, list of strings, or dict
    :param ext: extension of output file
    :type ext: string (defaults to '.req')
    :param fh: file to write in (None, default, to create new file)
    :param fh: file handler or None
    :param header: prepend this to file content
    :type header: string or None (default)

    """
    if not elem:
        return
    D=None
    
    if isinstance(elem,basestring):
        if exists(elem):
            D='\n'.join(open(elem,'r').readlines())
        else:
            D=elem
    elif isinstance(elem,(list,tuple)):
        logger.debug('type(elem)==list')
        P=[]
        for e in elem:
            if exists(e):
                content = [_element2url(r,options) for r in open(e,'r').readlines()]
                P.append('\n'.join(content))
            else:
                P.append("%s\n"%_element2url(e,options))        
        D=''.join(P)
    elif isinstance(elem, (dict,vdict)):
        ext=".conf"
        D=''
        for _k,_v in sorted(elem.items()):
            if isinstance(_v,(dict,udict,ldict)):
                D += "[%s]\n%s\n" % (_k,
                                     '\n'.join([ "%s = %s"%(k,v) for k,v in _v.items()]))
            elif iisinstance(_v,basestring):
                D += "%s\n" % _v

    if fh is not None:
        f_in = fh
    else:
        f_in = NamedTemporaryFile(suffix=ext,
                                  delete=False)
        logger.debug('Write out a temp file %s',f_in.name)

    if D:
        if header:
            f_in.write("%s\n"%header)
        f_in.write(D)
        f_in.flush()
        f_in.close
        name = f_in.name
        logger.info('Temp-file written %s ok' , name )
        #report.info('Creato il file %s' % (name,))
        return name
    else:
        logger.debug('Cannot create the temp-file from %s\ntype: %s',dictview(elem),type(elem))