Current Dir: /snap/core22/2437/usr/lib/python3.10/encodings/

[DIR]  __pycache__ [ delete | rename ]
[FILE] aliases.py [ edit | delete | rename ]
[FILE] ascii.py [ edit | delete | rename ]
[FILE] base64_codec.py [ edit | delete | rename ]
[FILE] big5.py [ edit | delete | rename ]
[FILE] big5hkscs.py [ edit | delete | rename ]
[FILE] bz2_codec.py [ edit | delete | rename ]
[FILE] charmap.py [ edit | delete | rename ]
[FILE] cp037.py [ edit | delete | rename ]
[FILE] cp273.py [ edit | delete | rename ]
[FILE] cp424.py [ edit | delete | rename ]
[FILE] cp437.py [ edit | delete | rename ]
[FILE] cp500.py [ edit | delete | rename ]
[FILE] cp720.py [ edit | delete | rename ]
[FILE] cp737.py [ edit | delete | rename ]
[FILE] cp775.py [ edit | delete | rename ]
[FILE] cp850.py [ edit | delete | rename ]
[FILE] cp852.py [ edit | delete | rename ]
[FILE] cp855.py [ edit | delete | rename ]
[FILE] cp856.py [ edit | delete | rename ]
[FILE] cp857.py [ edit | delete | rename ]
[FILE] cp858.py [ edit | delete | rename ]
[FILE] cp860.py [ edit | delete | rename ]
[FILE] cp861.py [ edit | delete | rename ]
[FILE] cp862.py [ edit | delete | rename ]
[FILE] cp863.py [ edit | delete | rename ]
[FILE] cp864.py [ edit | delete | rename ]
[FILE] cp865.py [ edit | delete | rename ]
[FILE] cp866.py [ edit | delete | rename ]
[FILE] cp869.py [ edit | delete | rename ]
[FILE] cp874.py [ edit | delete | rename ]
[FILE] cp875.py [ edit | delete | rename ]
[FILE] cp932.py [ edit | delete | rename ]
[FILE] cp949.py [ edit | delete | rename ]
[FILE] cp950.py [ edit | delete | rename ]
[FILE] cp1006.py [ edit | delete | rename ]
[FILE] cp1026.py [ edit | delete | rename ]
[FILE] cp1125.py [ edit | delete | rename ]
[FILE] cp1140.py [ edit | delete | rename ]
[FILE] cp1250.py [ edit | delete | rename ]
[FILE] cp1251.py [ edit | delete | rename ]
[FILE] cp1252.py [ edit | delete | rename ]
[FILE] cp1253.py [ edit | delete | rename ]
[FILE] cp1254.py [ edit | delete | rename ]
[FILE] cp1255.py [ edit | delete | rename ]
[FILE] cp1256.py [ edit | delete | rename ]
[FILE] cp1257.py [ edit | delete | rename ]
[FILE] cp1258.py [ edit | delete | rename ]
[FILE] euc_jisx0213.py [ edit | delete | rename ]
[FILE] euc_jis_2004.py [ edit | delete | rename ]
[FILE] euc_jp.py [ edit | delete | rename ]
[FILE] euc_kr.py [ edit | delete | rename ]
[FILE] gb2312.py [ edit | delete | rename ]
[FILE] gb18030.py [ edit | delete | rename ]
[FILE] gbk.py [ edit | delete | rename ]
[FILE] hex_codec.py [ edit | delete | rename ]
[FILE] hp_roman8.py [ edit | delete | rename ]
[FILE] hz.py [ edit | delete | rename ]
[FILE] idna.py [ edit | delete | rename ]
[FILE] iso2022_jp.py [ edit | delete | rename ]
[FILE] iso2022_jp_1.py [ edit | delete | rename ]
[FILE] iso2022_jp_2.py [ edit | delete | rename ]
[FILE] iso2022_jp_3.py [ edit | delete | rename ]
[FILE] iso2022_jp_2004.py [ edit | delete | rename ]
[FILE] iso2022_jp_ext.py [ edit | delete | rename ]
[FILE] iso2022_kr.py [ edit | delete | rename ]
[FILE] iso8859_1.py [ edit | delete | rename ]
[FILE] iso8859_2.py [ edit | delete | rename ]
[FILE] iso8859_3.py [ edit | delete | rename ]
[FILE] iso8859_4.py [ edit | delete | rename ]
[FILE] iso8859_5.py [ edit | delete | rename ]
[FILE] iso8859_6.py [ edit | delete | rename ]
[FILE] iso8859_7.py [ edit | delete | rename ]
[FILE] iso8859_8.py [ edit | delete | rename ]
[FILE] iso8859_9.py [ edit | delete | rename ]
[FILE] iso8859_10.py [ edit | delete | rename ]
[FILE] iso8859_11.py [ edit | delete | rename ]
[FILE] iso8859_13.py [ edit | delete | rename ]
[FILE] iso8859_14.py [ edit | delete | rename ]
[FILE] iso8859_15.py [ edit | delete | rename ]
[FILE] iso8859_16.py [ edit | delete | rename ]
[FILE] johab.py [ edit | delete | rename ]
[FILE] koi8_r.py [ edit | delete | rename ]
[FILE] koi8_t.py [ edit | delete | rename ]
[FILE] koi8_u.py [ edit | delete | rename ]
[FILE] kz1048.py [ edit | delete | rename ]
[FILE] latin_1.py [ edit | delete | rename ]
[FILE] mac_arabic.py [ edit | delete | rename ]
[FILE] mac_croatian.py [ edit | delete | rename ]
[FILE] mac_cyrillic.py [ edit | delete | rename ]
[FILE] mac_farsi.py [ edit | delete | rename ]
[FILE] mac_greek.py [ edit | delete | rename ]
[FILE] mac_iceland.py [ edit | delete | rename ]
[FILE] mac_latin2.py [ edit | delete | rename ]
[FILE] mac_roman.py [ edit | delete | rename ]
[FILE] mac_romanian.py [ edit | delete | rename ]
[FILE] mac_turkish.py [ edit | delete | rename ]
[FILE] mbcs.py [ edit | delete | rename ]
[FILE] oem.py [ edit | delete | rename ]
[FILE] palmos.py [ edit | delete | rename ]
[FILE] ptcp154.py [ edit | delete | rename ]
[FILE] punycode.py [ edit | delete | rename ]
[FILE] quopri_codec.py [ edit | delete | rename ]
[FILE] raw_unicode_escape.py [ edit | delete | rename ]
[FILE] rot_13.py [ edit | delete | rename ]
[FILE] shift_jis.py [ edit | delete | rename ]
[FILE] shift_jisx0213.py [ edit | delete | rename ]
[FILE] shift_jis_2004.py [ edit | delete | rename ]
[FILE] tis_620.py [ edit | delete | rename ]
[FILE] undefined.py [ edit | delete | rename ]
[FILE] unicode_escape.py [ edit | delete | rename ]
[FILE] utf_7.py [ edit | delete | rename ]
[FILE] utf_8.py [ edit | delete | rename ]
[FILE] utf_8_sig.py [ edit | delete | rename ]
[FILE] utf_16.py [ edit | delete | rename ]
[FILE] utf_16_be.py [ edit | delete | rename ]
[FILE] utf_16_le.py [ edit | delete | rename ]
[FILE] utf_32.py [ edit | delete | rename ]
[FILE] utf_32_be.py [ edit | delete | rename ]
[FILE] utf_32_le.py [ edit | delete | rename ]
[FILE] uu_codec.py [ edit | delete | rename ]
[FILE] zlib_codec.py [ edit | delete | rename ]
[FILE] __init__.py [ edit | delete | rename ]

Viewing: /snap/core22/2437/usr/lib/python3.10/encodings/utf_32.py

"""
Python 'utf-32' Codec
"""
import codecs, sys

### Codec APIs

encode = codecs.utf_32_encode

def decode(input, errors='strict'):
    return codecs.utf_32_decode(input, errors, True)

class IncrementalEncoder(codecs.IncrementalEncoder):
    def __init__(self, errors='strict'):
        codecs.IncrementalEncoder.__init__(self, errors)
        self.encoder = None

    def encode(self, input, final=False):
        if self.encoder is None:
            result = codecs.utf_32_encode(input, self.errors)[0]
            if sys.byteorder == 'little':
                self.encoder = codecs.utf_32_le_encode
            else:
                self.encoder = codecs.utf_32_be_encode
            return result
        return self.encoder(input, self.errors)[0]

    def reset(self):
        codecs.IncrementalEncoder.reset(self)
        self.encoder = None

    def getstate(self):
        # state info we return to the caller:
        # 0: stream is in natural order for this platform
        # 2: endianness hasn't been determined yet
        # (we're never writing in unnatural order)
        return (2 if self.encoder is None else 0)

    def setstate(self, state):
        if state:
            self.encoder = None
        else:
            if sys.byteorder == 'little':
                self.encoder = codecs.utf_32_le_encode
            else:
                self.encoder = codecs.utf_32_be_encode

class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
    def __init__(self, errors='strict'):
        codecs.BufferedIncrementalDecoder.__init__(self, errors)
        self.decoder = None

    def _buffer_decode(self, input, errors, final):
        if self.decoder is None:
            (output, consumed, byteorder) = \
                codecs.utf_32_ex_decode(input, errors, 0, final)
            if byteorder == -1:
                self.decoder = codecs.utf_32_le_decode
            elif byteorder == 1:
                self.decoder = codecs.utf_32_be_decode
            elif consumed >= 4:
                raise UnicodeError("UTF-32 stream does not start with BOM")
            return (output, consumed)
        return self.decoder(input, self.errors, final)

    def reset(self):
        codecs.BufferedIncrementalDecoder.reset(self)
        self.decoder = None

    def getstate(self):
        # additional state info from the base class must be None here,
        # as it isn't passed along to the caller
        state = codecs.BufferedIncrementalDecoder.getstate(self)[0]
        # additional state info we pass to the caller:
        # 0: stream is in natural order for this platform
        # 1: stream is in unnatural order
        # 2: endianness hasn't been determined yet
        if self.decoder is None:
            return (state, 2)
        addstate = int((sys.byteorder == "big") !=
                       (self.decoder is codecs.utf_32_be_decode))
        return (state, addstate)

    def setstate(self, state):
        # state[1] will be ignored by BufferedIncrementalDecoder.setstate()
        codecs.BufferedIncrementalDecoder.setstate(self, state)
        state = state[1]
        if state == 0:
            self.decoder = (codecs.utf_32_be_decode
                            if sys.byteorder == "big"
                            else codecs.utf_32_le_decode)
        elif state == 1:
            self.decoder = (codecs.utf_32_le_decode
                            if sys.byteorder == "big"
                            else codecs.utf_32_be_decode)
        else:
            self.decoder = None

class StreamWriter(codecs.StreamWriter):
    def __init__(self, stream, errors='strict'):
        self.encoder = None
        codecs.StreamWriter.__init__(self, stream, errors)

    def reset(self):
        codecs.StreamWriter.reset(self)
        self.encoder = None

    def encode(self, input, errors='strict'):
        if self.encoder is None:
            result = codecs.utf_32_encode(input, errors)
            if sys.byteorder == 'little':
                self.encoder = codecs.utf_32_le_encode
            else:
                self.encoder = codecs.utf_32_be_encode
            return result
        else:
            return self.encoder(input, errors)

class StreamReader(codecs.StreamReader):

    def reset(self):
        codecs.StreamReader.reset(self)
        try:
            del self.decode
        except AttributeError:
            pass

    def decode(self, input, errors='strict'):
        (object, consumed, byteorder) = \
            codecs.utf_32_ex_decode(input, errors, 0, False)
        if byteorder == -1:
            self.decode = codecs.utf_32_le_decode
        elif byteorder == 1:
            self.decode = codecs.utf_32_be_decode
        elif consumed>=4:
            raise UnicodeError("UTF-32 stream does not start with BOM")
        return (object, consumed)

### encodings module API

def getregentry():
    return codecs.CodecInfo(
        name='utf-32',
        encode=encode,
        decode=decode,
        incrementalencoder=IncrementalEncoder,
        incrementaldecoder=IncrementalDecoder,
        streamreader=StreamReader,
        streamwriter=StreamWriter,
    )

Upload File: