3 \ @sdZddlZddlZddlmZdddZdd d ZGd d d ejZGd ddejZGdddej Z Gdddeej Z Gdddeej Z ddZ dS)aPython 'uu_codec' Codec - UU content transfer encoding. This codec de/encodes from bytes to bytes. Written by Marc-Andre Lemburg (mal@lemburg.com). Some details were adapted from uu.py which was written by Lance Ellinghouse and modified by Jack Jansen and Fredrik Lundh. N)BytesIOstrictc Cstt|}t}|j}|j}|d|d@|fjd|d}x|rZ|tj||d}q>W|d|jt|fS)Nz begin %o %s iascii-s end )rreadwriteencodebinasciiZb2a_uugetvaluelen) inputerrorsfilenamemodeinfileoutfilerr chunkr /usr/lib64/python3.6/uu_codec.py uu_encodes rc Cst|}t}|j}|j}x(|}|s.td|dddkrPqWx|}| sZ|dkr\Pytj|}WnRtjk r}z4|ddd@ddd } tj|d| }WYdd}~XnX||qFW|std |jt|fS) Nz"Missing "begin" line in input datasbeginsend r ?zTruncated input data) rreadliner ValueErrorr Za2b_uuErrorr r ) rrrrrr sdatavnbytesrrr uu_decode!s.$ r$c@s eZdZdddZdddZdS) CodecrcCs t||S)N)r)selfrrrrrr Csz Codec.encodecCs t||S)N)r$)r&rrrrrdecodeFsz Codec.decodeN)r)r)__name__ __module__ __qualname__r r'rrrrr%Bs r%c@seZdZdddZdS)IncrementalEncoderFcCst||jdS)Nr)rr)r&rfinalrrrr JszIncrementalEncoder.encodeN)F)r(r)r*r rrrrr+Isr+c@seZdZdddZdS)IncrementalDecoderFcCst||jdS)Nr)r$r)r&rr,rrrr'NszIncrementalDecoder.decodeN)F)r(r)r*r'rrrrr-Msr-c@seZdZeZdS) StreamWriterN)r(r)r*bytescharbuffertyperrrrr.Qsr.c@seZdZeZdS) StreamReaderN)r(r)r*r/r0rrrrr1Tsr1c CstjdttttttddS)NuuF)namer r'incrementalencoderincrementaldecoder streamreader streamwriter_is_text_encoding)codecs CodecInforr$r+r-r1r.rrrr getregentryYsr;)rrr)r) __doc__r9r iorrr$r%r+r-r.r1r;rrrrs   !