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)
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)