コード例 #1
0
ファイル: jobs.py プロジェクト: exedre/e4t
def save_definition(options,formats,_dataset,outputs,_cfgs,extn,*args,**kw):
    kw=udict(kw)
    label = kw.xget('LABEL').upper()
    kind = kw.xget('KIND').upper()

    parts = udict({ 'page'    : LaTeXPage,
                    'addtotoc': LaTeXAddToToc,
                    'part'    : LaTeXPart,
                    'chapter' : LaTeXChapter,
                    'toc'     : LaTeXTOC,
                    'cover'   : LaTeXCover,
                    'empty'   : LaTeXEmpty,
                    'table'   : OutputTable,
                    'figure'  : OutputFigure,              
                    'dataset' : None,
                    'multiple' : OutputMultiple
                    })
        
    if kind not in parts.keys():
        raise ValueError, "Document part %s not found" % kind

    elem_class = parts[kind]
    fname = "%s.tex" % options.job

    defn = []
    for ou in outputs:
        if not exists(ou):
            ou = join(options.process_path,ou)
            if not exists(ou):
                logger.error('E01#001: Il file di specifica del processore %s non esiste',pr)
                raise ValueError, 'E:MKEL:001'
        wcfg = udict(cfg2hash(ou))
        lcfg = wcfg.xget(label)
        if exists(ou):
            spec = cfg2hash(ou)
            kw=udict(kw)
            if 'macros' in kw:
                spec['macros']=kw['macros']
        else:
            logger.error('{OUTPUTELEMENT}:E:INIT:001 -- Il file di configurazione %s non esiste', ou)
            raise ValueError, "E:OUTPUTELEMENT:INIT:001"
        spec = mapspec(label,spec,_dataset,options, 
                       lambda k,v,name,spec,_dataset,options: 
                       (k, expandfuncs(v,name,spec,_dataset,options)))

        t = elem_class(label,spec,_dataset,options)
        xml = t.to_xml()
        defn.append( xml )
        xmls = dom.parseString(xml) # or xml.dom.minidom.parseString(xml_string)

        pp = Postprocessor(options=options)
        pp.output(False,xmls.toprettyxml(),'%s.xml'% options.job)
コード例 #2
0
ファイル: index.py プロジェクト: exedre/e4t
def exec_index_EXPORT(options,jlist,base,jobspecfile,order,jjspec):

    def xmloutjobs(w,name,*args,**kw):
        (datareqs,processors,outputs) = e4t.cli.get_elem_configs(*args,**kw)
        cfg = e4t.cli._read_cfgfile(kw,'OUTPUT',name)
        _cfgs = (kw, cfg)
        if cfg:
            # pprint(cfg)
            cfg = udict(cfg)
            cfg.remove('^__.*')
            cfg = ldict([ (k.replace(' ','_'),v) for k,v in cfg.items()])
            w.start("job",name=name,**ldict(cfg))
            w.end("job")

    formats = options.options.xget('FORMAT','XML')            

    from elementtree.SimpleXMLWriter import XMLWriter
    from StringIO import StringIO
    myxml = StringIO()
    w = XMLWriter(myxml)

    for part,jobs in jlist.items():        
        w.start('index', name=part )
        
        for j,k in jobs:
            if k['kind'] in ('table','figure'):
                xmloutjobs(w,j,**k)

        w.end('index')

        ret = myxml.getvalue()

        xmls = dom.parseString(ret) # or xml.dom.minidom.parseString(xml_string)

        pp = Postprocessor(options=options)
        pp.output(False,xmls.toprettyxml(),'%s.xml'% part)