ñÕYft ã @ sª d Z d d l Z d d l Z e j Z d d d „ Z Gd d „ d e j ƒ Z Gd d „ d e j ƒ Z Gd d „ d e j ƒ Z Gd d „ d e j ƒ Z d d „ Z d S)z‚ Python 'utf-16' Codec Written by Marc-Andre Lemburg (mal@lemburg.com). (c) Copyright CNRI, All Rights Reserved. NO WARRANTY. é NÚstrictc C s t j | | d ƒ S)NT)ÚcodecsÚ utf_16_decode)ÚinputÚerrors© r ú5/opt/alt/python35/lib64/python3.5/encodings/utf_16.pyÚdecode s r c @ sR e Z d Z d d d „ Z d d d „ Z d d „ Z d d „ Z d d „ Z d S)ÚIncrementalEncoderr c C s t j j | | ƒ d | _ d S)N)r r Ú__init__Úencoder)Úselfr r r r r s zIncrementalEncoder.__init__Fc C sm | j d k rV t j | | j ƒ d } t j d k rF t j | _ n t j | _ | S| j | | j ƒ d S)Nr Úlittle)r r Ú utf_16_encoder ÚsysÚ byteorderÚutf_16_le_encodeÚutf_16_be_encode)r r ÚfinalÚresultr r r Úencode s zIncrementalEncoder.encodec C s t j j | ƒ d | _ d S)N)r r Úresetr )r r r r r ! s zIncrementalEncoder.resetc C s | j d k r d Sd S)Né r )r )r r r r Úgetstate% s zIncrementalEncoder.getstatec C s@ | r d | _ n* t j d k r0 t j | _ n t j | _ d S)Nr )r r r r r r )r Ústater r r Úsetstate, s zIncrementalEncoder.setstateN)Ú__name__Ú __module__Ú__qualname__r r r r r r r r r r s r c @ sO e Z d Z d d d „ Z d d „ Z d d „ Z d d „ Z d d „ Z d S) ÚIncrementalDecoderr c C s t j j | | ƒ d | _ d S)N)r ÚBufferedIncrementalDecoderr Údecoder)r r r r r r 6 s zIncrementalDecoder.__init__c C sž | j d k rˆ t j | | d | ƒ \ } } } | d k rK t j | _ n3 | d k rf t j | _ n | d k r~ t d ƒ ‚ | | f S| j | | j | ƒ S)Nr é r z%UTF-16 stream does not start with BOMéÿÿÿÿ)r! r Úutf_16_ex_decodeÚutf_16_le_decodeÚutf_16_be_decodeÚUnicodeErrorr )r r r r ÚoutputÚconsumedr r r r Ú_buffer_decode: s ! z!IncrementalDecoder._buffer_decodec C s t j j | ƒ d | _ d S)N)r r r r! )r r r r r G s zIncrementalDecoder.resetc C s` t j j | ƒ d } | j d k r/ | d f St t j d k | j t j k k ƒ } | | f S)Nr r Úbig)r r r r! Úintr r r&