î e fn ã @ sœ d Z d d l Z d d l Z d d l Z d d d g Z Gd d „ d e ƒ Z d d d d „ Z d d d d d „ Z d d „ Z e d k r˜ e ƒ n d S) 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 e Z d Z d S)r N)Ú__name__Ú __module__Ú__qualname__© r r ú'/opt/alt/python34/lib64/python3.4/uu.pyr ' s c C s g } z™| d k r$ t j j } n‰ t | t ƒ r | d k rT t j j | ƒ } n | d k rŽ y t j | ƒ j } WqŽ t k rŠ YqŽ Xn t | d ƒ } | j | ƒ n | d k rÈ t j j } n. t | t ƒ rö t | d ƒ } | j | ƒ n | d k rd } n | d k r d } n | j d | d @| f j d ƒ ƒ | j d ƒ } x; t | ƒ d k r�| j t j | ƒ ƒ | j d ƒ } qVW| j d ƒ Wd x | D] } | j ƒ q©WXd S)z Uuencode fileú-NÚrbÚwbi¶ zbegin %o %s iÿ Úasciié- r s 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Úfr r r r * s> $ Fc C sð g } | d k r! t j j } n. t | t ƒ rO t | d ƒ } | j | ƒ n z~xœ | j ƒ } | sv t d ƒ ‚ n | j d ƒ s‹ qU n | j d d ƒ } t | ƒ d k rU | d d k rU y t | d d ƒ PWqí t k ré Yqí XqU qU W| d k rA| d j d ƒ j d ƒ } t j j | ƒ rAt d | ƒ ‚ qAn | d k rct | d d ƒ } n | d k r~t j j } n` t | t ƒ rÞt | d ƒ } y t j j | | ƒ Wn t k rÇYn X| } | j | ƒ n | j ƒ } xÊ | r¶| j d ƒ d k r¶y t j | ƒ } Wn| t j k r™} zY | d d d @d d d } t j | d | … ƒ } | s‡t j j d | ƒ n WYd d } ~ Xn X| j | ƒ | j ƒ } qíW| sÌt d ƒ ‚ n Wd x | D] } | j ƒ q×WXd S)zDecode uuencoded filer r z'No valid begin line found in input files beginó é é r é é Ns r z"Cannot overwrite existing file: %sr s endé é? é é zWarning: %s zTruncated input file)r r r r r r r Úreadliner Ú startswithÚsplitr ÚintÚ ValueErrorÚrstripr r r Úexistsr Úchmodr Ústripr Za2b_uuÚstderrr r! ) r" r# r% Úquietr&