o
9j @ sx d Z ddlZddlZejZdddZG dd dejZG dd d ejZG d
d dej Z G dd
d
ej
Z
dd ZdS )z
Python 'utf-32' Codec
Nstrictc C s t | |dS )NT)codecs
utf_32_decode)inputerrors r '/usr/lib/python3.10/encodings/utf_32.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_32_encoder sys byteorderutf_32_le_encodeutf_32_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
1 r zIncrementalDecoder.__init__c C sx | j d u r4t||d|\}}}|dkrtj| _ ||fS |dkr(tj| _ ||fS |dkr0td||fS | || j|S )Nr %UTF-32 stream does not start with BOM)r+ r utf_32_ex_decodeutf_32_le_decodeutf_32_be_decodeUnicodeErrorr )r r r r outputconsumedr r r r _buffer_decode5 s
z!IncrementalDecoder._buffer_decodec C r r )r r* r r+ r r r r r B 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 r2 )r r# addstater r r r F 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 r7 )r r* r$ r r r2 r1 r+ r" r r r r$ T s
zIncrementalDecoder.setstateNr% )r&