o
9jt @ 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 | |dS )NT)codecs
utf_16_decode)inputerrors r '/usr/lib/python3.10/encodings/utf_16.pydecode s r c @ s8 e Zd ZdddZdddZdd Zd d
Zdd Zd
S )IncrementalEncoderr c C t j| | d | _d S N)r r
__init__encoderselfr r r r r
zIncrementalEncoder.__init__Fc C sP | j d u rt|| jd }tjdkrtj| _ |S tj| _ |S | || 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 t j| d | _d S r )r r
resetr r r r r r !
zIncrementalEncoder.resetc C s | j d u rdS dS )N r )r r r r r getstate% s zIncrementalEncoder.getstatec C s0 |rd | _ d S tjdkrtj| _ d S tj| _ d S Nr )r r r r r r r stater r r setstate, s
zIncrementalEncoder.setstateNr )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 r r )r BufferedIncrementalDecoderr
decoderr r r r r
6 r zIncrementalDecoder.__init__c C sx | j d u r4t||d|\}}}|dkrtj| _ ||fS |dkr(tj| _ ||fS |dkr0td||fS | || j|S )Nr r %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 r r )r r* r r+ r r r r r G r zIncrementalDecoder.resetc C sD t j| d }| jd u r|dfS ttjdk| jt ju k}||fS )Nr r big)r r* r r+ intr r r1 )r r# addstater r r r K s
zIncrementalDecoder.getstatec C st t j| | |d }|dkr tjdkrt j| _d S t j| _d S |dkr5tjdkr/t j| _d S t j| _d S d | _d S )Nr- r r6 )r r* r$ r r r1 r0 r+ r" r r r r$ Y s
zIncrementalDecoder.setstateNr% )r&