a DOg# @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 Jt|}t}|j}|j}|dd}|dd}|d|d@|fd|d }|r||t||d }q`|d |t|fS) Nr z\n z\rz begin %o %s iascii-s end ) rreadwritereplaceencodebinasciiZb2a_uugetvaluelen) inputerrorsfilenamemodeinfileoutfiler r chunkr7/opt/alt/python39/lib64/python3.9/encodings/uu_codec.py uu_encodes    rc Cs|dks Jt|}t}|j}|j}|}|s8td|dddkr&qLq&|}|r|dkr`qzt|}WnTtjy}z:|ddd@d dd } t|d| }WYd}~n d}~00||qL|std |t|fS) Nrz"Missing "begin" line in input datasbeginsend r ?zTruncated input data) rreadliner ValueErrorrZa2b_uuErrorrr) rrrrr r sdatavnbytesrrr uu_decode%s,  ( r'c@s eZdZdddZdddZdS) CodecrcCs t||SN)rselfrrrrrr Gsz Codec.encodecCs t||Sr))r'r*rrrdecodeJsz Codec.decodeN)r)r)__name__ __module__ __qualname__r r,rrrrr(Fs r(c@seZdZdddZdS)IncrementalEncoderFcCst||jdSNr)rrr+rfinalrrrr NszIncrementalEncoder.encodeN)F)r-r.r/r rrrrr0Msr0c@seZdZdddZdS)IncrementalDecoderFcCst||jdSr1)r'rr2rrrr,RszIncrementalDecoder.decodeN)F)r-r.r/r,rrrrr4Qsr4c@seZdZeZdS) StreamWriterNr-r.r/bytescharbuffertyperrrrr5Usr5c@seZdZeZdS) StreamReaderNr6rrrrr9Xsr9c CstjdttttttddS)NuuF)namer r,incrementalencoderincrementaldecoder streamreader streamwriter_is_text_encoding)codecs CodecInforr'r0r4r9r5rrrr getregentry]srC)rrr)r) __doc__rAriorrr'r(r0r4r5r9rCrrrrs    !