3
« f# ã @ sž d Z ddlZddlZddlmZ ddd„Zdd d
„ZG dd„ dejƒZG d
d„ dejƒZG dd„ dej ƒZ G dd„ deej
ƒZ
G dd„ deejƒZdd„ 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)ÚBytesIOÚstrictúé¶ c C s˜ |dkst ‚t| ƒ}tƒ }|j}|j}|jddƒ}|jddƒ}|d|d@ |f jdƒƒ |d ƒ}x|r~|tj|ƒƒ |d ƒ}qbW |d
ƒ |jƒ t | ƒfS )Nr Ú
z\nú
z\rzbegin %o %s
iÿ Úasciié- s
end
)
ÚAssertionErrorr ÚreadÚwriteÚreplaceÚencodeÚbinasciiZb2a_uuÚgetvalueÚlen) ÚinputÚerrorsÚfilenameÚmodeÚinfileÚoutfiler r Úchunk© r ú7/opt/alt/python36/lib64/python3.6/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„|ƒ }| sf|dkrhP ytj|ƒ}W nR tjk
rÈ } z4|d d d@ d d d
} tj|d | … ƒ}W Y d d }~X nX ||ƒ qRW |sâtdƒ‚|jƒ t | ƒfS )Nr z"Missing "begin" line in input dataé s begins end
r é é? é é zTruncated input data)
r
r Úreadliner Ú
ValueErrorr Za2b_uuÚErrorr r )
r r r r r! r ÚsÚdataÚvÚnbytesr r r Ú uu_decode% s0 $r( c @ s e Zd Zddd„Zddd„ZdS ) Ú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 Zddd„ZdS )ÚIncrementalEncoderFc C s t || jƒd 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 Zddd„ZdS )ÚIncrementalDecoderFc C s t || jƒd 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. ÚbytesÚcharbuffertyper 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 jdttttttdd�S )NÚuuF)Únamer r+ ÚincrementalencoderÚincrementaldecoderÚstreamreaderÚstreamwriterÚ_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 Ú