grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/20263 ¡ fýã@sddZddlZddlZddlZdddgZGdd„deƒZd dd„Zdd 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@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©rrú'/opt/alt/python36/lib64/python3.6/uu.pyr'scCs\g}�z6|dkrtjj}n`t|tƒrz|dkr8tjj|ƒ}|dkrfytj|ƒj }Wnt k rdYnXt |dƒ}|j |ƒ|dkrŒtj j}nt|tƒrªt |dƒ}|j |ƒ|dkr¶d}|dkrÂd}|jddƒ}|jdd ƒ}|jd |d @|fjd ƒƒ|jd ƒ}x.t|ƒdk�r.|jtj|ƒƒ|jd ƒ}�qW|jdƒWdx|D]}|jƒ�qDWXdS)z Uuencode fileú-NÚrbÚwbi¶Ú z\nú z\rz begin %o %s iÿÚasciié-rs end )ÚsysÚstdinÚbufferÚ isinstanceÚstrÚosÚpathÚbasenameÚstatÚst_modeÚAttributeErrorÚopenÚappendÚstdoutÚreplaceÚwriterÚreadÚlenÚbinasciiZb2a_uuÚclose)Úin_fileÚout_fileÚnameÚmodeÚ opened_filesÚdataÚfrrr r*sB             Fc Cs:g}|dkrtjj}nt|tƒr4t|dƒ}|j|ƒ�zäxr|jƒ}|sNtdƒ‚|j dƒsZq:|j ddƒ}t |ƒdkr:|ddkr:yt |d d ƒPWq:t k r¦Yq:Xq:W|d krà|djd ƒjd ƒ}tjj|ƒràtd|ƒ‚|d kröt |d d ƒ}|dk�r tjj}nNt|tƒ�rXt|dƒ}ytjj||ƒWntk �rHYnX|}|j|ƒ|jƒ}x¨|�r|jd ƒdk�rytj|ƒ} Wnjtjk �rð} zJ|ddd@ddd} tj|d | …ƒ} |�sàtjjd| ƒWYd d } ~ XnX|j| ƒ|jƒ}�qbW|�stdƒ‚Wd x|D]} | jƒ�q"WXd S)zDecode uuencoded filer r z'No valid begin line found in input filesbeginó éérééNs rz"Cannot overwrite existing file: %sr sendé é?ééz Warning: %s zTruncated input file)rrrrrrrÚreadlinerÚ startswithÚsplitr"ÚintÚ ValueErrorÚrstriprrrÚexistsrÚchmodrÚstripr#Za2b_uuÚstderrr r$) r%r&r(Úquietr)ZhdrZ hdrfieldsÚfpÚsr*ÚvÚnbytesr+rrr rasf              "   cCs4ddl}|jdd�}|jddddd d d �|jd d ddd d d �|jƒ\}}t|ƒdkrl|jdƒtjdƒtjj }tj j }t|ƒdkr�|d}t|ƒdkr¤|d}|j rì|j ràt |tƒrÆt|dƒ}nttjddƒtjdƒt ||ƒnD|j �r&t |tƒ�r t|dƒ}nttjddƒtjdƒt||ƒdS)zuuencode/uudecode main programrNz'usage: %prog [-d] [-t] [input [output]])Zusagez-dz--decoderzDecode (instead of encode)?FÚ store_true)ÚdestÚhelpÚdefaultÚactionz-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ÚexitrrrrrIrrrÚprintÚargvr)rJÚparserZoptionsÚargsÚinputÚoutputrrr Útest§s6              rTÚ__main__)NN)NNF) Ú__doc__r#rrÚ__all__Ú ExceptionrrrrTrrrrr Ús  7 F&