6.4.9. auto weaver

6.4.9. auto weaver

make a weaver loom from the list of descriptors.
Start python section to interscript/weavers/auto.py[1]
     1: #line 193 "weavers.ipk"
     2: from interscript.weavers.multiplexor import multiplexor
     3: from interscript.weavers.text import plain_text_weaver
     4: from interscript.weavers.latex import latex_weaver
     5: from interscript.weavers.html import html_weaver
     6: from interscript.weavers.web import stacking_weaver
     7: from interscript.drivers.sinks.bufdisk import named_file_sink
     8: 
     9: def mk_html(pass_frame,basename, directory, prefix):
    10:  w = named_file_sink(pass_frame,directory+basename+'.html', prefix, eol='\r\n')
    11:  return html_weaver(pass_frame,w,title=basename)
    12: 
    13: def mk_web(pass_frame,basename, directory, prefix):
    14:   w = named_file_sink(pass_frame,directory+basename+'.html', prefix, eol='\r\n')
    15:   w = html_weaver(pass_frame,w,title=basename)
    16:   return stacking_weaver(w,basename+'_%s.html',(1,2,3,4,5,6,7,8,9,10))
    17: 
    18: def mk_latex(pass_frame,basename, directory, prefix):
    19:   w = named_file_sink(pass_frame,directory+basename+'.tex', prefix)
    20:   return latex_weaver(pass_frame,w)
    21: 
    22: def mk_text(pass_frame,basename, directory, prefix):
    23:   w = named_file_sink(pass_frame,directory+basename+'.txt', prefix)
    24:   return plain_text_weaver(pass_frame,w)
    25: 
    26: auto_weavers = {
    27:   'html': mk_html,
    28:   'web': mk_web,
    29:   'latex': mk_latex,
    30:   'text': mk_text
    31:   }
    32: 
    33: def auto_weaver(pass_frame,basename,autoweave):
    34:   prefix = pass_frame.master.weaver_prefix
    35:   directory = pass_frame.master.weaver_directory
    36:   weavers = []
    37:   for w in autoweave:
    38:     if auto_weavers.has_key(w):
    39:       weavers.append( auto_weavers[w](pass_frame, basename, directory, prefix) )
    40:   return multiplexor(pass_frame, weavers)
    41: 
End python section to interscript/weavers/auto.py[1]