6.4.9. auto weaver

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