B
\@l5 @ s d Z ddlZddlZddlmZ dddZdd d
ZG dd dejZG d
d dejZG dd dej Z G dd deej
Z
G dd deejZdd ZdS )a Python '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)BytesIOstrict c C s |dkst t| }t }|j}|j}|dd}|dd}|d|d@ |f d |d }x|r~|t| |d }qbW |d
| t | fS )Nr
z\n
z\rzbegin %o %s
i ascii- s
end
)
AssertionErrorr readwritereplaceencodebinasciiZb2a_uugetvaluelen) inputerrorsfilenamemodeinfileoutfiler r chunk r 7/opt/alt/python37/lib64/python3.7/encodings/uu_codec.py uu_encode s r c
C s |dkst t| }t }|j}|j}x(| }|s:td|d d dkr(P q(W x| }|rd|dkrfP yt|}W nR tjk
r } z2|d d d@ d d d
} t|d | }W d d }~X Y nX || qRW |std| t | fS )Nr z"Missing "begin" line in input data s begins end
r ? zTruncated input data)
r
r readliner
ValueErrorr Za2b_uuErrorr r )
r r r r r! r sdatavnbytesr r r uu_decode% s0 $r( c @ s e Zd ZdddZdddZdS ) Codecr c C s
t ||S )N)r )selfr r r r r r G s zCodec.encodec C s
t ||S )N)r( )r* r r r r r decodeJ s zCodec.decodeN)r )r )__name__
__module____qualname__r r+ r r r r r) F s
r) c @ s e Zd ZdddZdS )IncrementalEncoderFc C s t || jd S )Nr )r r )r* r finalr r r r N s zIncrementalEncoder.encodeN)F)r, r- r. r r r r r r/ M s r/ c @ s e Zd ZdddZdS )IncrementalDecoderFc C s t || jd S )Nr )r( r )r* r r0 r r r r+ R s zIncrementalDecoder.decodeN)F)r, r- r. r+ r r r r r1 Q s r1 c @ s e Zd ZeZdS )StreamWriterN)r, r- r. bytescharbuffertyper r r r r2 U s r2 c @ s e Zd ZeZdS )StreamReaderN)r, r- r. r3 r4 r r r r r5 X s r5 c
C s t jdttttttddS )NuuF)namer r+ incrementalencoderincrementaldecoderstreamreaderstreamwriter_is_text_encoding)codecs CodecInfor r( r/ r1 r5 r2 r r r r getregentry] s r? )r r r )r )
__doc__r= r ior r r( r) r/ r1 r2 r5 r? r r r r