Do2 Commandline Utility - Do2.py

philrist at comcast.net philrist at comcast.net
Tue Feb 28 11:54:15 CET 2012


This is an extension to the Do.py program.  It adds several features. 
Documentation is included in the source.

begin 644 Do2.py
M#0HC("TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2T-"B, at 3F%M93H at 1&\R#0HC($1E<V-R:7!T:6]N.B!%>'!A;F0 at 86YD
M(&5X96-U=&4 at 8V]M;6%N9`T*(R, at 1#(P2"TS-2!%>'!A;F0 at 86YD(&5X96-U
M=&4 at 8V]M;6%N9`T*(PT*(R!!=71H;W(Z(%!H:6QI<"!3+B!2:7-T#0HC($1A
M=&4Z(#$P+S(T+S(P,3`-"B, at 0V]P>7)I9VAT(#(P,3`@8GD at 4W0N(%1H;VUA
M<R!3;V9T=V%R90T*(R`M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM#0HC(%1H:7,@<')O9W)A;2!I<R!F<F5E=V%R92X@
M($ET(&UA>2!B92!U<V5D#0HC(&9O<B!A;GD@;6]R86P@<'5R<&]S92X@(%EO
M=2!U<V4@:70 at 870@>6]U<@T*(R!O=VX@<FES:RX@(%-T+B!4:&]M87, at 4V]F
M='=A<F4@;6%K97,@;F\-"B, at 9W5A<F%N=&5E<R!T;R!I=', at 9FET;F5S<R!T
M;R!D;R!A;GET:&EN9RX-"B,-"B, at 268@>6]U(&9E96P@>6]U(&UU<W0@<&%Y
M(&9O<B!I="X at 4&QE87-E#0HC('-E;F0@;VYE(&UI;&QI;VX at 9&]L;&%R<R!T
M;PT*(PT*(R`@("`@5&AE($EN=&5R;F%T:6]N86P at 4F5S8W5E($-O;6UI='1E
M90T*(R`@("`@,3(R($5A<W0 at -#)N9"!3=')E970-"B,@("`@($YE=R!9;W)K
M+"!.+EDN("`@,3`Q-C at M,3(X.0T*(PT*(R!/:RP@=V4 at 87)E(&EN(&$@<F5C
M97-S:6]N+B`@4V\L(&UA:V4@:70 at 82!H86QF#0HC(&UI;&QI;VXN#0H-"B,@
M57-A9V4 at 97AA;7!L97,Z#0HC#0HC6TA+15E?0TQ!4U-%4U]23T]47"I<4VAE
M;&Q<1&\R0FMU<%T-"B-`/2)"86-K=7`@*$1O,BDB#0HC(D5D:71&;&%G<R(]
M:&5X.C`Q+#`P+#`P+#`P#0HC6TA+15E?0TQ!4U-%4U]23T]47"I<4VAE;&Q<
M1&\R0FMU<%Q#;VUM86YD70T*(T`](F,Z7%QS>7-<7'!Y=&AO;C(U7%QP>71H
M;VYW+F5X92!C.EQ<8FEN7%QD;S(N<'D at 7"(E,5PB(&,Z7%Q7:6YD;W=S7%QS
M>7-T96TS,EQ<8VUD+F5X92`O2R!C;W!Y(%PB>V%]7"(@7")[=7U<7'LR?5Q<
M>V9]7"(@("`@("`B#0HC#0HC6TA+15E?0TQ!4U-%4U]23T]47"I<4VAE;&Q<
M1&\R161I=%T-"B-`/2)%9&ET("A$;S(I(@T*(R)%9&ET1FQA9W,B/6AE>#HP
M,2PP,"PP,"PP,`T*(UM(2T597T-,05-315-?4D]/5%PJ7%-H96QL7$1O,D5D
M:71<0V]M;6%N9%T-"B-`/2)C.EQ<<WES7%QP>71H;VXR-5Q<<'ET:&]N=RYE
M>&4 at 8SI<7&)I;EQ<9&\R+G!Y(%PB)3%<(B!C.EQ<4V]U<F-E7%Q[,GU<7'%E
M9&ET;W(N97AE("!<(GMA?5PB("`@("`B#0HC#0HC(%1H:7,@<')O9W)A;2!B
M=6EL9',@;VX@=&]P(&]F('1H92!$;R!P<F]G<F%M+B`@26YS=&5A9"!O9B!E
M>'!A;F1I;F<@86X at 96YT:7)E(&-O;6UA;F0@;&EN92!I;B!O;F4 at 8V%L;`T*
M(R!I="!E>'!A;F1S(&5A8V@@87)G=6UE;G0@<V5P87)A=&5L>2X@($ET(&%D
M9',@=&AE('L\+7T@;6%C<F\@=VAI8V@@=VEL;"!S96%R8V@@=7`@82!P871H
M(&QO;VMI;F<@9F]R(&$-"B, at 9FEL92X@($EF('1H92!P87-S960 at 9FEL92!I
M<R!C.EQS;W5R8V5<<'ET:&]N7&YE=R!T:&4@=&5M<&QA=&4@>SPM?61I<F5C
M=&]R>2YI;FD@=VEL;"!S96%R8V@@9F]R(&$-"B, at 9&ER96-T;W)Y+FEN:2!F
M:6QE(&EN('1H92!F;VQL;W=I;F<@9F]L9&5R<R!C.EQS;W5R8V5<<'ET:&]N
M7&YE=RP at 8SI<<V]U<F-E7'!Y=&AO;BP at 8SI<<V]U<F-E(&%N9"!C.EPN#0HC
M($EF('1H92!F:6QE(&ES(&YO="!F;W5N9"!A(&1E9F%U;'0 at 8V%N(&)E('5S
M960N#0HC#0HC($UU;'1I<&QE(&9I;&5S(&-A;B!B92!S=7!P;&EE9"!S97!A
M<F%T960 at 8GD@)SLG+B`@5&AE('1E;7!L871E('L\+7UD:7)E8W1O<GDN:6YI
M.V,Z7'1E<W1<9&ER96-T;W)Y+FEN:3MC.EQB:6Y<9&ER96-T;W)Y+FEN:0T*
M(R!W:6QL(&-A=7-E('1H92!S96%R8V@@9&5S8W)I8F5D(&%B;W9E('1O(&)E
M('!E<F9O<FUE9"!F;VQL;W=E9"!B>2!A(&-H96-K(&]F(&,Z7'1E<W0 at 86YD
M(&9I;F%L;'D at 8SI<8FEN(&9O<B!T:&4-"B, at 9&ER96-T;W)Y+FEN:2!F:6QE
M+B`@22!U<V4@=&AI<R!I;B!M>2!$:7)E8W1O<GD at 8V]N=&5X="!M96YU('=I
M=&@@=VET:"!A;B!E>&5C=71I;VX@;V8@;7D at 0G5T=&]N0F%R('!R;V=R86T-
M"B,@<V\@=&AA="!)(&-A;B!P<F]D=6-E(&)U='1O;B!B87)S(&1E<&5N9&5N
M="!O;B!T:&4@<V5L96-T960 at 9&ER96-T;W)Y+ at T*(PT*#0HC(%M(2T597T-,
M05-315-?4D]/5%Q$:7)E8W1O<GE<4VAE;&Q<5&]O;'-=#0HC($`](E1O;VQS
M("XN+B(-"B,@(D5D:71&;&%G<R(]:&5X.C`Q+#`P+#`P+#`P#0HC(%M(2T59
M7T-,05-315-?4D]/5%Q$:7)E8W1O<GE<4VAE;&Q<5&]O;'-<0V]M;6%N9%T-
M"B, at 0#TB8SI<7'-Y<UQ<;&%N9W5A9V5<7%!Y=&AO;EQ<4'ET:&]N=RYE>&4@
M(&,Z7%QB:6Y<7$)U='1O;D)A<BYP>2`@(%PB)3%<(B`@(%PB>SPM?41I<F5C
M=&]R>2YI;FE<(B`@('1O;VQS("(-"@T*#0II;7!O<G0@<WES+"!G971O<'0L
M(&]S#0II;7!O<G0 at 1&\-"FEM<&]R="!S=6)P<F]C97-S#0H-"F1E9B!087)E
M;G1396%R8V at H<%-E87)C:%!A=&@L('!&:6QE4&%T:"P@<$IO:6X])UQ<)RP@
M<$1E9F%U;'10871H/2)C.EQ<8FEN(BDZ#0H@("`@)R<G#0H@("`@4V-A;B!P
M87)E;G0@;&ES="!F;W(@9FEL92!S96QE8W1I;F<@;&]W97-T(&QE=F5L(&UA
M=&-H:6YG(&9I;&4-"B`@("`G)R<-"B`@("`-"B`@("!L4&]S(#T@<%-E87)C
M:%!A=&@N<F9I;F0H<$IO:6XI#0H@("`@:68@;%!O<R`^(#`Z#0H@("`@("`@
M(&Q&:6QE4&%T:"`]('!396%R8VA0871H6VQ0;W,Z70T*("`@(&5L<V4Z#0H@
M("`@("`@(&Q&:6QE4&%T:"`]('!396%R8VA0871H#0H-"B`@("!I9B!P1FEL
M95!A=&A;+3%=(#T]("=<7"<Z#0H@("`@("`@(&Q3<&QI=%!A=&@@/2!P1FEL
M95!A=&A;,#HM,5T-"B`@("!E;'-E. at T*("`@("`@("!L4W!L:710871H(#T@
M<$9I;&50871H#0H@("`@("`@(`T*("`@(&Q087)T<R`](&Q3<&QI=%!A=&@N
M<W!L:70H<$IO:6XI#0H@("`@:68@;W,N<&%T:"YI<V1I<BAL4W!L:710871H
M*3H-"B`@("`@("`@;$-O=6YT(#T@;&5N*&Q087)T<RD@#0H@("`@96QS93H-
M"B`@("`@("`@;$-O=6YT(#T@;&5N*&Q087)T<RD at +2`Q#0H@("`@("`@(`T*
M("`@(&Q0871H(#T@)R<-"B`@("!W:&EL92!L0V]U;G0@/B`P. at T*("`@("`@
M("!L4&%T:"`]('!*;VEN+FIO:6XH;%!A<G1S6S`Z;$-O=6YT72D@*R!L1FEL
M95!A=&@-"B`@("`@("`@:68@;W,N<&%T:"YE>&ES=',H;%!A=&@I. at T*("`@
M("`@("`@("`@<')I;G0@)T9O=6YD)PT*("`@("`@("`@("`@8G)E86L-"B`@
M("`@("`@;$-O=6YT("T](#$-"B`@("!E;'-E. at T*("`@("`@("!L4&%T:"`]
M('!$969A=6QT4&%T:"`K(&Q&:6QE4&%T:`T*("`@(')E='5R;B!L4&%T:`T*
M#0ID968 at 17AP86YD07)G*'!!<F<L('!&:6QE4&%T:"P@<$1E9F%U;'10871H
M+"!P3&5F=#TG>R<L('!397`])SLG+"!P475O=&4])R(G+"`-"B`@("`@("`@
M("`@("`@("`@("`@("`@("`@("`@('!0<F5F/2=[/"U])RP@<$IO:6X])UQ<
M)RDZ#0H@("`@)R<G#0H@("`@17AP86YD('-I;F=L92!C;VUM86YD(&QI;F4@
M87)G=6UE;G0-"B`@("`G)R<-"B,@("`@("`@("`@("`@("`@("`@($5X<&%N
M9"!A<F=U;65N="`@(`T*("`@(&EF('!!<F<N9FEN9"AP3&5F="D@/CT@,#H-
M"B`@("`@("`@;$%R9R`]($1O+D5X<&%N9"AP07)G+"!P1FEL95!A=&@I#0H@
M("`@96QS93H-"B`@("`@("`@;$%R9R`]('!!<F<-"@T*(R`@("`@("`@("`@
M("`@("`@("`@268@<W1A<G1S('=I=&@@>SPM?2!A;F0@<VEN9VQE('!A=&@@
M<V-A;B!P87)E;G0 at 9F]L9&5R<R!F;W(-"B,@("`@("`@("`@("`@("`@("`@
M(&9I<G-T(&UA=&-H:6YG(&9I;&4N("!%86-H(&9O;&1E<B!A8F]V92!S<&5C
M:69I960@<&%T:"!W:6QL#0HC("`@("`@("`@("`@("`@("`@("!B92!C:&5C
M:V5D('5N=&EL(&9I;&4@:7, at 9F]U;F0N#0H@("`@:68@;$%R9RYS=&%R='-W
M:71H*'!0<F5F*2!A;F0@;$%R9RYF:6YD*'!397`I(#P@,#H-"B`@("`@("`@
M;$%R9R`](&]S+G!A=&@N86)S<&%T:"AL07)G6S0Z72D-"B`@("`@("`@;$%R
M9R`](%!A<F5N=%-E87)C:"AL07)G+"!P1FEL95!A=&@L('!*;VEN/7!*;VEN
M*0T*#0HC("`@("`@("`@("`@("`@("`@("!)9B!M=6QT:7!L92!P871H<R!S
M97!A<F%T960 at 8GD@<%-E<"@G.R<I('-E;&5C="!F:7)S="!V86QI9"!P871H
M#0H@("`@;$9O=6YD(#T@)R<-"B`@("!I9B!L07)G+F9I;F0H<%-E<"D@/CT@
M,#H-"B`@("`@("`@;%!A=&AS(#T@;$%R9RYS<&QI="AP4V5P*0T*("`@("`@
M("!F;W(@;%!A=&@@:6X@;%!A=&AS. at T*("`@("`@("`@("`@:68@;%!A=&@N
M<W1A<G1S=VET:"AP4')E9BDZ#0H@("`@("`@("`@("`@("`@;%!A=&@@/2!O
M<RYP871H+F%B<W!A=&@H;%!A=&A;-#I=*0T*("`@("`@("`@("`@("`@('1R
M>3H-"B`@("`@("`@("`@("`@("`@("`@;%!A=&@@/2!087)E;G1396%R8V at H
M;%!A=&@L('!&:6QE4&%T:"P@<$IO:6X]<$IO:6XI#0H@("`@("`@("`@("`@
M("`@97AC97!T($5X8V5P=&EO;B!A<R!E. at T*("`@("`@("`@("`@("`@("`@
M("!P<FEN="!E#0H@("`@("`@("`@("`@("`@("`@(&-O;G1I;G5E#0H@("`@
M("`@("`@("!E;'-E. at T*("`@("`@("`@("`@("`@(&Q0871H(#T@;W,N<&%T
M:"YA8G-P871H*&Q0871H*0T*("`@("`@("`@("`@:68@;W,N<&%T:"YE>&ES
M=',H;%!A=&@I. at T*("`@("`@("`@("`@("`@(&Q&;W5N9"`](&Q0871H#0H@
M("`@("`@("`@("`@("`@8G)E86L-"B`@("`@("`@96QS93H-"B`@("`@("`@
M("`@(&Q&;W5N9"`](&]S+G!A=&@N86)S<&%T:"AP1&5F875L=%!A=&@I#0H@
M("`@96QS93H-"B`@("`@("`@;$9O=6YD(#T@;$%R9PT*("`@(`T*(R`@("`@
M("`@("`@("`@("`@("`@268 at 87)G=6UE;G0 at 8V]N=&%I;G,@<W!A8V4 at 96YC
M;&]S92!I="!W:71H:6X@<75O=&5S#0H@("`@;$9O=6YD(#T@;$9O=6YD+G-T
M<FEP*"D-"B`@("!I9B!L1F]U;F0N9FEN9"@G("<I(#X@,"!A;F0@;$9O=6YD
M6S!=("$]('!1=6]T93H-"B`@("`@("`@;$9O=6YD(#T@<%%U;W1E("L@;$9O
M=6YD("L@<%%U;W1E#0H@("`@<F5T=7)N(&Q&;W5N9`T*#0ID968@<W5B;6ET
M;F]W*'!#;VUM86YD*3H-"B`@("`G)R<-"B`@("!3=6)M:70 at 8V]M;6%N9`T*
M("`@("<G)PT*("`@("-P<FEN="`G7&Y<;E-U8FUI='1I;F<Z)RP@<$-O;6UA
M;F0-"B`@("!S=6)P<F]C97-S+E!O<&5N*'!#;VUM86YD+"!S:&5L;#U4<G5E
M*0T*#0H-"@T*(W-Y<RYA<F=V+F5X=&5N9"@@6R`G+60G+"`G>W!])RP@)V,Z
M7%QS;W5R8V5<7'!Y=&AO;EQ<;F5W7%QD;RYP>2<L("=C.EQ<8FEN7%QE8VAO
M<"YB870G+"`-"B,@("`@("`@)WMA?2<L("=[<'U<7'1E<W1<7'MF?2<L("=[
M/"U];65N=7,N:6YI)RP@)WMT?5Q<>WAX?2YB:W`G+`T*(R`@("`@("`G>VE]
M7%Q[+3%])RP@)R`@('MU?5Q<>RTR?2<L("=[+GU<7'LM,WT@("`G+"`G(GMG
M?5Q<>S)]7%QT97-T+GME?2(G+"`-"B,@("`@("`@)WLP?5Q<>S-]7%Q[;GTN
M>V5]+G1X="<@("`@72D-"@T*:68 at 7U]N86UE7U\@/3T@)U]?;6%I;E]?)SH-
M"B`@("`H;4]P=&EO;G,L(&U!<F=S*2`](&=E=&]P="YG971O<'0H<WES+F%R
M9W9;,3I=+"`G9#IE.B<I#0H@("`@#0H@("`@;49I;&50871H(#T@;4%R9W-;
M,%T-"@T*("`@(&U$969A=6QT4&%T:"`]("<G#0H@("`@9F]R("AM2V5Y+"!M
M5F%L=64I(&EN(&U/<'1I;VYS. at T*("`@("`@("!I9B!M2V5Y(#T]("<M9"<Z
M#0H@("`@("`@("`@("!I9B!M5F%L=64N9FEN9"@G?2<I. at T*("`@("`@("`@
M("`@("`@(&U686QU92`]($5X<&%N9$%R9RAM5F%L=64L(&U&:6QE4&%T:"P@
M)R<I#0H@("`@("`@("`@("!I9B!M5F%L=64@(3T@)R<Z#0H@("`@("`@("`@
M("`@("`@;W,N8VAD:7(H;59A;'5E*0T*("`@("`@("`@("`@#0H@("`@("`@
M(&5L:68@;4ME>2`]/2`G+64G. at T*("`@("`@("`@("`@<V5T96YV:7)O;BAM
M5F%L=64L(&U&:6QE4&%T:"D-"@T*("`@("`@("!E;&EF(&U+97D@/3T@)RUP
M)SH-"B`@("`@("`@("`@(&U686QU92`]($5X<&%N9$%R9RAM5F%L=64L(&U&
M:6QE4&%T:"P@)R<I#0H@("`@("`@("`@("!I9B!M5F%L=64@(3T@)R<Z#0H@
M("`@("`@("`@("`@("`@;41E9F%U;'10871H(#T@;59A;'5E#0H-"B`@("!M
M0V]M;6%N9"`]("<G#0H@("`@;4-O=6YT(#T@,`T*("`@(&9O<B!M07)G(&EN
M(&U!<F=S6S$Z73H-"B`@("`@("`@;51E>'0@/2!%>'!A;F1!<F<H;4%R9RP@
M;49I;&50871H+"!M1&5F875L=%!A=&@I("L@)R`G#0H@("`@("`@("-P<FEN
M="`G)35D.B`E+3(T<R`J("4M,S!S("TM+3X@)7,G("4@*&U#;W5N="P@;4%R
M9W-;;4-O=6YT*S%=+"!M1FEL95!A=&@L(&U497AT*0T*("`@("`@("!M0V]M
M;6%N9"`K/2!M5&5X=`T*("`@("`@("!M0V]U;G0@*ST@,0T*#0H@("`@:68@
M;&5N*&U#;VUM86YD*2`^(#`Z("`@("`@("`@("`@("`@(`T*("`@("`@("!S
M=6)M:71N;W<H;4-O;6UA;F0I#0H@("`@#0H-"B`@("`-"@T*#0H-"@T*#0H-
!"@``
`
end



More information about the Python-announce-list mailing list