B /g^# @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 Cs|dks tt|}t}|j}|j}|dd}|dd}|d|d@|fd|d }x|r~|t||d }qbW|d |t |fS) Nr z\n z\rz begin %o %s iascii-s end ) AssertionErrorrreadwritereplaceencodebinasciiZb2a_uugetvaluelen) inputerrorsfilenamemodeinfileoutfiler r chunkr*/usr/lib64/python3.7/encodings/uu_codec.py uu_encodes    rc Cs|dks tt|}t}|j}|j}x(|}|s:td|dddkr(Pq(Wx|}|rd|dkrfPyt|}WnRtjk r}z2|ddd@d dd } t|d| }Wdd}~XYnX||qRW|std |t |fS) Nrz"Missing "begin" line in input datasbeginsend r ?zTruncated input data) r rreadliner ValueErrorrZa2b_uuErrorrr) rrrrr!r sdatavnbytesrrr uu_decode%s0  $ r(c@s eZdZdddZdddZdS) CodecrcCs t||S)N)r)selfrrrrrrGsz Codec.encodecCs t||S)N)r()r*rrrrrdecodeJsz Codec.decodeN)r)r)__name__ __module__ __qualname__rr+rrrrr)Fs r)c@seZdZdddZdS)IncrementalEncoderFcCst||jdS)Nr)rr)r*rfinalrrrrNszIncrementalEncoder.encodeN)F)r,r-r.rrrrrr/Msr/c@seZdZdddZdS)IncrementalDecoderFcCst||jdS)Nr)r(r)r*rr0rrrr+RszIncrementalDecoder.decodeN)F)r,r-r.r+rrrrr1Qsr1c@seZdZeZdS) StreamWriterN)r,r-r.bytescharbuffertyperrrrr2Usr2c@seZdZeZdS) StreamReaderN)r,r-r.r3r4rrrrr5Xsr5c CstjdttttttddS)NuuF)namerr+incrementalencoderincrementaldecoder streamreader streamwriter_is_text_encoding)codecs CodecInforr(r/r1r5r2rrrr getregentry]sr?)rrr)r) __doc__r=riorrr(r)r/r1r2r5r?rrrrs   !