stepsrs r__repr__zTemplate.__repr__]s.26**>>rc g|_yNrrs rr zTemplate.resetas J rcf t}|jdd|_|j|_|Sr)rrr )rts rclonezTemplate.clonees- - J**Q-nn rc ||_yr)r )rflags rdebugzTemplate.debugms 6rc t|ts td|tvrt d||t k(r t d|j r$|j ddtk(r t d|ddk(r!tjd |s t d |ddk(r!tjd |s t d |j j||fy) Nz%Template.append: cmd must be a stringzTemplate.append: bad kind z-Template.append: SOURCE can only be prependedz'Template.append: already ends with SINKrf\$IN\bz#Template.append: missing $IN in cmd\$OUT\bz$Template.append: missing $OUT in cmd) isinstancestr TypeError stepkinds ValueErrorSOURCErSINKresearchappendrcmdkinds rr/zTemplate.appendqs=#s#CD D y tEF F 6>LM M ::$**R.+t3FG G 7c>"))Is";BC C 7c>"))J"<CD D 3+&rc t|ts td|tvrt d||t k(r t d|j r$|j ddtk(r t d|ddk(r!tjd|s t d |ddk(r!tjd |s t d |j jd||fy) Nz&Template.prepend: cmd must be a stringzTemplate.prepend: bad kind z+Template.prepend: SINK can only be appendedrr"z,Template.prepend: already begins with SOURCEr#r$z$Template.prepend: missing $IN in cmdr%z%Template.prepend: missing $OUT in cmd) r&r'r(r)r*r,rr+r-r.insertr0s rprependzTemplate.prepends@#s#DE E y FG G 4<JK K ::$**Q-*f4KL L 7c>"))Is";CD D 7c>"))J"<DE E !c4[)rcx |dk(r|j|S|dk(r|j|Std|)Nrwz*Template.open: rw must be 'r' or 'w', not )open_ropen_wr*)rfilerws ropenz Template.opensI J 9;;t$ $ 9;;t$ $!" "rc |js t|dS|jddtk(r td|j |d}t j |dS)Nr7r!r"z)Template.open_r: pipeline ends width SINK)rr=r,r* makepipelineospopenrr;r1s rr9zTemplate.open_rs_ Azzc? " ::b>!  $HI Ib)xxS!!rc|js t|dS|jddtk(r td|j d|}t j |dS)Nr8rr"z,Template.open_w: pipeline begins with SOURCEr?)rr=r+r*r@rArBrCs rr:zTemplate.open_wsYzzc? " ::a= v %KL LD)xxS!!rcLtj|j||Sr)rAsystemr@)rinfileoutfiles rcopyz Template.copysyy**67;<> #Js"C rN)__name__ __module__ __qualname__rrr rrr/r5r=r9r:rIr@rrrrUsA1 ?' * """=rcPg}|D]\}}|jd||dg|s|jgd|ddd\}}|ddk(r|s|jdgd||dd<|ddd\}}|ddk(r|s|jgd||dd<g}tdt|D]v}||dz d}||d} |ddk(s | ddk(s't j \} } t j| |j| | x||dz d<||d<x|D]|} | \} }}}|ddk(rd t|zd z|z}|ddk(rd t| zd z|z}|dd k(r| r|d zt| z}|dd k(r|r|dzt|z}|| d<~|dd}|ddD]/} | dd\}}| ddk(rd|vrd|zdz}|dz|z}(|dz|z}1|rz{ z; }z |  zrm -f ztrap z; exitz 1 2 3 13 14 15) r/r4rangelentempfilemkstemprAcloser)rGrrHlistr1r2garbageilkindrkindfdtempiteminfoutfcmdlistrmcmdr;trapcmds rr@r@s D T RdB'(  )*q'!A,KS$ Aw#~f A,-DGAJr(1Q-KS$ Aw#~g )*DHRLG 1c$i QqS ! Q  8s?eAh#o!))+JR HHRL NN4 )- -D1IbMDGAJ!!%c4 7c>5;&-3C 7c>%*$t+c1C 7c>c*uSz)C 7c>d*uT{*CQ1gajGQR1Qi d 7b=d{Sj5(&,Gns*GDCK%+-EE%("2336GGD.7*T1E9 Nr)r-rArXwarningsshlexr _deprecatedrL__all__FILEIN_FILEOUT STDIN_FILEOUT FILEIN_STDOUT STDIN_STDOUTr+r,r)rr@rOrrrps8v Xg. ,    ]M< T  ``FBr