Core#
Core module. It defines base classes and their interaction interface.
Base#
Base class for all processable files.
- class BaseFile[source]#
Bases:
ABCAbstract base class providing interface for encoders/decoders.
-
format:
FileFormat#
-
signature:
Optional[bytes] = None#
-
options:
UserOptions#
-
format:
Decoder#
Base class for file decoder (parsing).
- class FileDecoder(file, options=None)[source]#
Bases:
BaseFile,StructFileIO,Generic[Content],ABCBase class for decoding file content into structured data objects.
-
mode:
str= 'rb'#
- decode(seek=True)[source]#
Decode file: prepare, validate signature, parse. Returns parsed data.
- Return type:
TypeVar(Content, bound=FileContent)
- convert_to(encoder, options=None)[source]#
Decode and convert to encoder. Returns encoder with open buffer (must be closed).
- Return type:
FileEncoder[TypeVar(Content, bound=FileContent)]
- convert(encoder, options=None)[source]#
Decode, convert to encoder and return bytes. Closes encoder automatically.
- Return type:
bytes
-
mode:
Encoder#
Base class for file encoder (serialization).
- class FileEncoder(data, options=None)[source]#
Bases:
BaseFile,StructBytesIO,Generic[Content],ABCBase class for encoding structured data objects into file content.
- property mode: str#
- property suffix: str#
Return standard file extension for this format (with dot).
- prepare()[source]#
Perform preparations before serialization. (e.g. calculations in content).
- Return type:
None
- add_signature()[source]#
Write format signature (magic bytes) to buffer if defined.
- Return type:
None
- abstractmethod serialize()[source]#
Convert structured self.data into bytes and write to buffer.
- Return type:
None
- export_as(path)[source]#
Save to path (without suffix) adding format suffix automatically. Keeps encoder open.
- Return type:
None