MINI MINI MANI MO
3
\t @ sx d Z ddlZddlZejZdddZG dd dejZG dd d ejZG d
d dej Z G dd
d
ej
Z
dd ZdS )z Python 'utf-16' Codec
Written by Marc-Andre Lemburg (mal@lemburg.com).
(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
Nstrictc C s t j| |dS )NT)codecs
utf_16_decode)inputerrors r (/usr/lib64/python3.6/encodings/utf_16.pydecode s r c @ s8 e Zd ZdddZdddZdd Zd d
Zdd Zd
S )IncrementalEncoderr c C s t jj| | d | _d S )N)r r
__init__encoder)selfr r r r r s zIncrementalEncoder.__init__Fc C sN | j d kr<tj|| jd }tjdkr0tj| _ ntj| _ |S | j || jd S )Nr little)r r
utf_16_encoder sys byteorderutf_16_le_encodeutf_16_be_encode)r
r finalresultr r r encode s
zIncrementalEncoder.encodec C s t jj| d | _d S )N)r r
resetr )r
r r r r ! s zIncrementalEncoder.resetc C s | j d krdS dS )N r )r )r
r r r getstate% s zIncrementalEncoder.getstatec C s, |rd | _ ntjdkr tj| _ ntj| _ d S )Nr )r r r r r r )r
stater r r setstate, s
zIncrementalEncoder.setstateN)r )F)__name__
__module____qualname__r r r r r r r r r r
s
r
c @ s6 e Zd Zd
ddZdd Zdd Zdd Zd
d ZdS )IncrementalDecoderr c C s t jj| | d | _d S )N)r BufferedIncrementalDecoderr decoder)r
r r r r r 6 s zIncrementalDecoder.__init__c C sl | j d kr\tj||d|\}}}|dkr2tj| _ n"|dkrDtj| _ n|dkrTtd||fS | j || j|S )Nr r z%UTF-16 stream does not start with BOM)r! r utf_16_ex_decodeutf_16_le_decodeutf_16_be_decodeUnicodeErrorr )r
r r r outputconsumedr r r r _buffer_decode: s
z!IncrementalDecoder._buffer_decodec C s t jj| d | _d S )N)r r r r! )r
r r r r G s zIncrementalDecoder.resetc C sD t jj| d }| jd kr"|dfS ttjdk| jt jkk}||fS )Nr r big)r r r r! intr r r&