?Mat@sdZddlZddlZejZdddZGdddejZGdd d ejZGd d d ej Z Gd d d ej Z ddZ dS)z Python 'utf-16' Codec Written by Marc-Andre Lemburg (mal@lemburg.com). (c) Copyright CNRI, All Rights Reserved. NO WARRANTY. NstrictcCstj||dS)NT)codecs utf_16_decode)inputerrorsr5/opt/alt/python35/lib64/python3.5/encodings/utf_16.pydecodesr c@sReZdZdddZdddZddZd d Zd d Zd S)IncrementalEncoderrcCs tjj||d|_dS)N)rr __init__encoder)selfrrrrr szIncrementalEncoder.__init__FcCsm|jdkrVtj||jd}tjdkrFtj|_n tj|_|S|j||jdS)Nrlittle)r r utf_16_encodersys byteorderutf_16_le_encodeutf_16_be_encode)r rfinalresultrrrencodes zIncrementalEncoder.encodecCstjj|d|_dS)N)rr resetr )r rrrr!szIncrementalEncoder.resetcCs|jdkrdSdS)Nr)r )r rrrgetstate%szIncrementalEncoder.getstatecCs@|rd|_n*tjdkr0tj|_n tj|_dS)Nr)r rrrrr)r staterrrsetstate,s  zIncrementalEncoder.setstateN)__name__ __module__ __qualname__r rrrrrrrrr s   r c@sOeZdZdddZddZddZdd Zd d Zd S) IncrementalDecoderrcCs tjj||d|_dS)N)rBufferedIncrementalDecoderr decoder)r rrrrr 6szIncrementalDecoder.__init__cCs|jdkrtj||d|\}}}|dkrKtj|_n3|dkrftj|_n|dkr~td||fS|j||j|S)Nrrz%UTF-16 stream does not start with BOM)r!rutf_16_ex_decodeutf_16_le_decodeutf_16_be_decode UnicodeErrorr)r rrroutputconsumedrrrr_buffer_decode:s!     z!IncrementalDecoder._buffer_decodecCstjj|d|_dS)N)rr rr!)r rrrrGszIncrementalDecoder.resetcCs`tjj|d}|jdkr/|dfSttjdk|jtjkk}||fS)Nrrbig)rr rr!intrrr&)r rZaddstaterrrrKs  zIncrementalDecoder.getstatecCstjj|||d}|dkrPtjdkrAtjntj|_n<|dkrtjdkrttjntj|_n d|_dS)Nr"rr+)rr rrrr&r%r!)r rrrrrYs   zIncrementalDecoder.setstateN)rrrr r*rrrrrrrr5s   rc@s:eZdZdddZddZdddZdS) StreamWriterrcCs#tjj|||d|_dS)N)rr-r r )r streamrrrrr iszStreamWriter.__init__cCstjj|d|_dS)N)rr-rr )r rrrrmszStreamWriter.resetcCsc|jdkrOtj||}tjdkr?tj|_n tj|_|S|j||SdS)Nr)r rrrrrr)r rrrrrrrqs zStreamWriter.encodeN)rrrr rrrrrrr-hs  r-c@s+eZdZddZdddZdS) StreamReaderc Cs3tjj|y |`Wntk r.YnXdS)N)rr/rr AttributeError)r rrrr~s   zStreamReader.resetrcCsytj||dd\}}}|dkr<tj|_n3|dkrWtj|_n|dkrotd||fS)NrFr"rz%UTF-16 stream does not start with BOMr#)rr$r%r r&r')r rrobjectr)rrrrr s!    zStreamReader.decodeN)rrrrr rrrrr/|s  r/cCs4tjdddtdtdtdtdtdtS) Nnamezutf-16rr incrementalencoderincrementaldecoder streamreader streamwriter)r CodecInforr r rr/r-rrrr getregentrys r8) __doc__rrrrr r r rr-r/r8rrrrs #3