¨ÕYfnã@s™dZddlZddlZddlZdddgZGdd„deƒZdddd„Zdddd d„Zd d „Z e d kr•e ƒdS) zƒImplementation of the UUencode and UUdecode functions. encode(in_file, out_file [,name, mode]) decode(in_file [, out_file, mode]) éNÚErrorÚencodeÚdecodec@seZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©rrú'/opt/alt/python35/lib64/python3.5/uu.pyr's cCs°g}z‡|dkr$tjj}n€t|tƒr¤|dkrQtjj|ƒ}|dkrˆytj|ƒj }Wnt k r‡YnXt |dƒ}|j |ƒ|dkr¿tj j}n+t|tƒrêt |dƒ}|j |ƒ|dkrüd}|dkrd}|jd|d@|fjdƒƒ|jd ƒ}x;t|ƒd kr~|jtj|ƒƒ|jd ƒ}qDW|jd ƒWdx|D]}|jƒq—WXdS) z Uuencode fileú-NÚrbÚwbi¶z begin %o %s iÿÚasciié-rs end )ÚsysÚstdinÚbufferÚ isinstanceÚstrÚosÚpathÚbasenameÚstatÚst_modeÚAttributeErrorÚopenÚappendÚstdoutÚwriterÚreadÚlenÚbinasciiZb2a_uuÚclose)Úin_fileÚout_fileÚnameÚmodeÚ opened_filesÚdataÚfrrr r*s>         $ Fc CsÒg}|dkr!tjj}n+t|tƒrLt|dƒ}|j|ƒzcx“|jƒ}|sptdƒ‚|j dƒs‚qR|j ddƒ}t |ƒdkrR|ddkrRyt |d d ƒPWqRt k ràYqRXqRW|d kr/|djd ƒjd ƒ}tjj|ƒr/td|ƒ‚|d krNt |d d ƒ}|dkritjj}n]t|tƒrÆt|dƒ}ytjj||ƒWntk r²YnX|}|j|ƒ|jƒ}xÇ|r›|jd ƒdkr›ytj|ƒ} Wnytjk r~} zV|ddd@ddd} tj|d | …ƒ} |sltjjd| ƒWYd d } ~ XnX|j| ƒ|jƒ}qÕW|s®tdƒ‚Wd x|D]} | jƒq¹WXd S)zDecode uuencoded filer r z'No valid begin line found in input filesbeginó éérééNs r z"Cannot overwrite existing file: %sr sendé é?ééz Warning: %s zTruncated input file)rrrrrrrÚreadlinerÚ startswithÚsplitrÚintÚ ValueErrorÚrstriprrrÚexistsrÚchmodrÚstripr Za2b_uuÚstderrrr!) r"r#r%Úquietr&ZhdrZ hdrfieldsÚfpÚsr'ÚvÚnbytesr(rrr rZsf    "        '  c Cs¼ddl}|jddƒ}|jddddd d d d d dƒ|jddddd dd d d dƒ|jƒ\}}t|ƒdkr¬|jdƒtjdƒtjj }tj j }t|ƒdkrà|d}t|ƒdkrü|d}|j r`|j rPt |tƒr/t|dƒ}n!ttjddƒtjdƒt ||ƒnX|j r«t |tƒrŠt|dƒ}n!ttjddƒtjdƒt||ƒdS)zuuencode/uudecode main programrNZusagez'usage: %prog [-d] [-t] [input [output]]z-dz--decodeÚdestrÚhelpzDecode (instead of encode)?ÚdefaultFÚactionÚ store_truez-tz--textÚtextz2data is text, encoded format unix-compatible text?r*zincorrect number of argumentsr,r z: cannot do -t to stdoutr z: cannot do -t from stdin)ÚoptparseZ OptionParserZ add_optionÚ parse_argsrÚerrorrÚexitrrrrrFrrrÚprintÚargvr)rGÚparserZoptionsÚargsÚinputÚoutputrrr Útest s6 ((           rQÚ__main__) Ú__doc__r rrÚ__all__Ú ExceptionrrrrQrrrrr Ús   0F &