ž ¦ÿfnc@sœdZddlZddlZddlZdddgZGdd„deƒZdddd„Zddd dd„Z d d „Z e d kr˜e ƒndS( uƒImplementation of the UUencode and UUdecode functions. encode(in_file, out_file [,name, mode]) decode(in_file [, out_file, mode]) iNuErroruencodeudecodecBs|EeZdZdS(uErrorN(u__name__u __module__u __qualname__(u __locals__((u'/opt/alt/python33/lib64/python3.3/uu.pyuError'scCsÂg}z™|dkr$tjj}n‰t|tƒr­|d krTtjj|ƒ}n|d krŽytj |ƒj }WqŽt k rŠYqŽXnt |dƒ}|j |ƒn|dkrÈtjj}n.t|tƒröt |dƒ}|j |ƒn|d kr d}n|d kr d}n|jd|d@|fjdƒƒ|jdƒ}x;t|ƒd kr|jtj|ƒƒ|jdƒ}qVW|jd ƒWd x|D]}|jƒq©WXd S( u Uuencode fileu-urbuwbi¶u begin %o %s iÿuasciii-is end N(usysustdinubufferu isinstanceustruNoneuosupathubasenameustatust_modeuAttributeErroruopenuappendustdoutuwriteuencodeureadulenubinasciiub2a_uuuclose(uin_fileuout_fileunameumodeu opened_filesudatauf((u'/opt/alt/python33/lib64/python3.3/uu.pyuencode*s>         $ c Csïg}|dkr!tjj}n.t|tƒrOt|dƒ}|j|ƒnz}x›|jƒ}|svtdƒ‚n|j dƒs‹qUn|j ddƒ}t |ƒdkrU|ddkrUyt |d d ƒPWqít k réYqíXqUqU|dkr@|djd ƒjd ƒ}tjj|ƒr@td |ƒ‚q@n|dkrbt |d d ƒ}n|dkr}tjj}n`t|tƒrÝt|dƒ}ytjj||ƒWntk rÆYnX|}|j|ƒn|jƒ}xÊ|rµ|jd ƒdkrµytj|ƒ} Wn|tjk r˜} zY|ddd@ddd} tj|d| …ƒ} |s†tjjd| ƒnWYdd} ~ XnX|j| ƒ|jƒ}qìW|sËtdƒ‚nWdx|D]} | jƒqÖWXdS(uDecode uuencoded fileu-urbu'No valid begin line found in input filesbegins iiiiis uasciiu"Cannot overwrite existing file: %suwbsendi i?iiNu Warning: %s uTruncated input file(usysustdinubufferu isinstanceustruopenuappendureadlineuErroru startswithusplitulenuintu ValueErroruNoneurstripudecodeuosupathuexistsustdoutuchmoduAttributeErrorustripubinasciiua2b_uuustderruwriteuclose( uin_fileuout_fileumodeuquietu opened_filesuhdru hdrfieldsufpusudatauvunbytesuf((u'/opt/alt/python33/lib64/python3.3/uu.pyudecodeZsf  "       *  c CsËddl}|jddƒ}|jddddd d d dd d ƒ|jddddd dd dd d ƒ|jƒ\}}t|ƒdkr¯|jdƒtjdƒntj j }tj j }t|ƒdkræ|d}nt|ƒdkr|d}n|j rl|j r\t|tƒr8t|dƒ}q\ttjddƒtjdƒnt ||ƒn[|j rºt|tƒr–t|dƒ}qºttjddƒtjdƒnt||ƒdS(uuuencode/uudecode main programiNuusageu'usage: %prog [-d] [-t] [input [output]]u-du--decodeudestudecodeuhelpuDecode (instead of encode)?udefaultuactionu store_trueu-tu--textutextu2data is text, encoded format unix-compatible text?iuincorrect number of argumentsiuwbu: cannot do -t to stdouturbu: cannot do -t from stdinF(uoptparseu OptionParseru add_optionuFalseu parse_argsulenuerrorusysuexitustdinubufferustdoutudecodeutextu isinstanceustruopenuprintuargvuencode(uoptparseuparseruoptionsuargsuinputuoutput((u'/opt/alt/python33/lib64/python3.3/uu.pyutest s6 ((        utestu__main__F( u__doc__ubinasciiuosusysu__all__u ExceptionuErroruNoneuencodeuFalseudecodeutestu__name__(((u'/opt/alt/python33/lib64/python3.3/uu.pyus   0F &