Decoders¶
Used to decode the low level contents of files extracted from MPQFiles
ByteDecoder¶
-
class
sc2reader.decoders.ByteDecoder(contents, endian)¶ Parameters: - contents – The string or file-like object to decode
- endian – Either > or <. Indicates the endian the bytes are stored in.
Used to unpack parse byte aligned files.
-
done()¶ Returns true when all bytes have been decoded
-
peek(count)¶ Returns the raw byte string for the next
countbytes
-
read_bytes(count)¶ Returns the next
countbytes as a byte string
-
read_cstring(encoding=u'utf8')¶ Read a NULL byte terminated character string decoded with given encoding (default utf8). Ignores endian.
-
read_range(start, end)¶ Returns the raw byte string from the indicated address range
-
read_string(count, encoding=u'utf8')¶ Read a string in given encoding (default utf8) that is
countbytes long
-
read_uint(count)¶ Returns the next
countbytes as an unsigned integer
-
read_uint16()¶ Returns the next two bytes as an unsigned integer
-
read_uint32()¶ Returns the next four bytes as an unsigned integer
-
read_uint64()¶ Returns the next eight bytes as an unsigned integer
-
read_uint8()¶ Returns the next byte as an unsigned integer
BitPackedDecoder¶
-
class
sc2reader.decoders.BitPackedDecoder(contents)¶ Parameters: contents – The string of file-like object to decode Extends
ByteDecoder. Always packed BIG_ENDIANAdds capabilities for parsing files that Blizzard has packed in bits and not in bytes.
-
byte_align()¶ Moves cursor to the beginning of the next byte
-
done()¶ Returns true when all bytes in the buffer have been used
-
read_aligned_bytes(count)¶ Skips to the beginning of the next byte and returns the next
countbytes as a byte string
-
read_aligned_string(count, encoding=u'utf8')¶ Skips to the beginning of the next byte and returns the next
countbytes decoded with encoding (default utf8)
-
read_bits(count)¶ Returns the next
countbits as an unsigned integer
-
read_bytes(count)¶ Returns the next
count*8bits as a byte string
-
read_frames()¶ Reads a frame count as an unsigned integer
-
read_struct(datatype=None)¶ Reads a nested data structure. If the type is not specified the first byte is used as the type identifier.
-
read_uint16()¶ Returns the next 16 bits as an unsigned integer
-
read_uint32()¶ Returns the next 32 bits as an unsigned integer
-
read_uint64()¶ Returns the next 64 bits as an unsigned integer
-
read_uint8()¶ Returns the next 8 bits as an unsigned integer
-
read_vint()¶ Reads a signed integer of variable length
-