PATH:
opt
/
alt
/
python311
/
lib64
/
python3.11
/
encodings
"""Python 'uu_codec' Codec - UU content transfer encoding. This codec de/encodes from bytes to bytes. Written by Marc-Andre Lemburg (mal@lemburg.com). Some details were adapted from uu.py which was written by Lance Ellinghouse and modified by Jack Jansen and Fredrik Lundh. """ import codecs import binascii from io import BytesIO ### Codec APIs def uu_encode(input, errors='strict', filename='<data>', mode=0o666): assert errors == 'strict' infile = BytesIO(input) outfile = BytesIO() read = infile.read write = outfile.write # Remove newline chars from filename filename = filename.replace('\n','\\n') filename = filename.replace('\r','\\r') # Encode write(('begin %o %s\n' % (mode & 0o777, filename)).encode('ascii')) chunk = read(45) while chunk: write(binascii.b2a_uu(chunk)) chunk = read(45) write(b' \nend\n') return (outfile.getvalue(), len(input)) def uu_decode(input, errors='strict'): assert errors == 'strict' infile = BytesIO(input) outfile = BytesIO() readline = infile.readline write = outfile.write # Find start of encoded data while 1: s = readline() if not s: raise ValueError('Missing "begin" line in input data') if s[:5] == b'begin': break # Decode while True: s = readline() if not s or s == b'end\n': break try: data = binascii.a2b_uu(s) except binascii.Error as v: # Workaround for broken uuencoders by /Fredrik Lundh nbytes = (((s[0]-32) & 63) * 4 + 5) // 3 data = binascii.a2b_uu(s[:nbytes]) #sys.stderr.write("Warning: %s\n" % str(v)) write(data) if not s: raise ValueError('Truncated input data') return (outfile.getvalue(), len(input)) class Codec(codecs.Codec): def encode(self, input, errors='strict'): return uu_encode(input, errors) def decode(self, input, errors='strict'): return uu_decode(input, errors) class IncrementalEncoder(codecs.IncrementalEncoder): def encode(self, input, final=False): return uu_encode(input, self.errors)[0] class IncrementalDecoder(codecs.IncrementalDecoder): def decode(self, input, final=False): return uu_decode(input, self.errors)[0] class StreamWriter(Codec, codecs.StreamWriter): charbuffertype = bytes class StreamReader(Codec, codecs.StreamReader): charbuffertype = bytes ### encodings module API def getregentry(): return codecs.CodecInfo( name='uu', encode=uu_encode, decode=uu_decode, incrementalencoder=IncrementalEncoder, incrementaldecoder=IncrementalDecoder, streamreader=StreamReader, streamwriter=StreamWriter, _is_text_encoding=False, )
[-] palmos.py
[edit]
[-] iso8859_3.py
[edit]
[-] kz1048.py
[edit]
[-] euc_jis_2004.py
[edit]
[-] iso8859_15.py
[edit]
[-] cp1256.py
[edit]
[-] mac_croatian.py
[edit]
[-] raw_unicode_escape.py
[edit]
[-] unicode_escape.py
[edit]
[-] utf_32_be.py
[edit]
[-] mac_roman.py
[edit]
[-] iso8859_14.py
[edit]
[-] cp862.py
[edit]
[-] charmap.py
[edit]
[-] iso2022_jp_2004.py
[edit]
[-] iso8859_5.py
[edit]
[-] cp1251.py
[edit]
[-] iso8859_10.py
[edit]
[-] koi8_u.py
[edit]
[-] hz.py
[edit]
[-] oem.py
[edit]
[-] cp037.py
[edit]
[-] euc_jisx0213.py
[edit]
[-] utf_32_le.py
[edit]
[-] cp1026.py
[edit]
[-] iso2022_jp_ext.py
[edit]
[-] iso8859_11.py
[edit]
[-] latin_1.py
[edit]
[-] utf_32.py
[edit]
[-] quopri_codec.py
[edit]
[+]
..
[-] tis_620.py
[edit]
[-] rot_13.py
[edit]
[-] cp874.py
[edit]
[-] shift_jis.py
[edit]
[-] iso8859_2.py
[edit]
[-] gb18030.py
[edit]
[-] cp864.py
[edit]
[-] cp875.py
[edit]
[-] cp1125.py
[edit]
[-] cp1254.py
[edit]
[-] undefined.py
[edit]
[-] iso8859_6.py
[edit]
[-] cp1006.py
[edit]
[-] cp860.py
[edit]
[-] mac_farsi.py
[edit]
[-] hex_codec.py
[edit]
[-] mac_cyrillic.py
[edit]
[-] cp1257.py
[edit]
[-] ptcp154.py
[edit]
[-] cp949.py
[edit]
[-] cp861.py
[edit]
[-] mac_arabic.py
[edit]
[-] zlib_codec.py
[edit]
[-] iso8859_8.py
[edit]
[-] gb2312.py
[edit]
[-] utf_8_sig.py
[edit]
[-] gbk.py
[edit]
[-] big5hkscs.py
[edit]
[-] mac_iceland.py
[edit]
[-] base64_codec.py
[edit]
[-] aliases.py
[edit]
[-] iso8859_7.py
[edit]
[-] cp424.py
[edit]
[-] utf_16_le.py
[edit]
[-] cp437.py
[edit]
[-] iso8859_16.py
[edit]
[-] cp866.py
[edit]
[-] euc_kr.py
[edit]
[-] cp500.py
[edit]
[-] iso2022_jp_3.py
[edit]
[-] cp1250.py
[edit]
[-] cp869.py
[edit]
[-] shift_jisx0213.py
[edit]
[-] utf_8.py
[edit]
[-] cp737.py
[edit]
[+]
__pycache__
[-] cp850.py
[edit]
[-] iso2022_jp_1.py
[edit]
[-] cp1255.py
[edit]
[-] cp863.py
[edit]
[-] cp858.py
[edit]
[-] koi8_r.py
[edit]
[-] mac_greek.py
[edit]
[-] cp1253.py
[edit]
[-] cp273.py
[edit]
[-] euc_jp.py
[edit]
[-] punycode.py
[edit]
[-] ascii.py
[edit]
[-] cp932.py
[edit]
[-] shift_jis_2004.py
[edit]
[-] bz2_codec.py
[edit]
[-] utf_7.py
[edit]
[-] cp855.py
[edit]
[-] uu_codec.py
[edit]
[-] utf_16.py
[edit]
[-] koi8_t.py
[edit]
[-] cp1258.py
[edit]
[-] cp950.py
[edit]
[-] cp857.py
[edit]
[-] cp1140.py
[edit]
[-] cp852.py
[edit]
[-] hp_roman8.py
[edit]
[-] iso8859_9.py
[edit]
[-] idna.py
[edit]
[-] __init__.py
[edit]
[-] mac_turkish.py
[edit]
[-] utf_16_be.py
[edit]
[-] cp856.py
[edit]
[-] cp720.py
[edit]
[-] iso8859_4.py
[edit]
[-] iso8859_13.py
[edit]
[-] mbcs.py
[edit]
[-] johab.py
[edit]
[-] cp775.py
[edit]
[-] iso2022_kr.py
[edit]
[-] big5.py
[edit]
[-] iso2022_jp.py
[edit]
[-] iso8859_1.py
[edit]
[-] iso2022_jp_2.py
[edit]
[-] mac_romanian.py
[edit]
[-] cp1252.py
[edit]
[-] cp865.py
[edit]
[-] mac_latin2.py
[edit]