raiiaf.core.header

Header utilities for RAIIAF files.

This module defines functions to initialize, parse, and validate the RAIIAF file header. The header layout is defined by raiiaf.core.constants.HEADER_FORMAT and has the following fields:

  • magic (6s): ASCII bytes b”raiiaf”

  • version_major (B)

  • version_minor (B)

  • flags (B)

  • chunk_table_offset (I)

  • chunk_table_size (I)

  • chunk_count (I)

  • file_size (I)

  • reserved (I)

Functions

header_init([version_major, version_minor, ...])

Initialize and pack a RAIIAF file header.

header_parse(buf)

Parse a RAIIAF header from raw bytes.

header_validate(header)

Validate a parsed RAIIAF header.

raiiaf.core.header.header_init(version_major=1, version_minor=0, flags=0, chunk_table_offset=0, chunk_table_size=0, chunk_count=0, file_size=0, reserved=0)[source]

Initialize and pack a RAIIAF file header.

Parameters:
  • version_major (int) – Major version number.

  • version_minor (int) – Minor version number.

  • flags (int) – Header flags.

  • chunk_table_offset (int) – Offset (in bytes) to the start of the chunk table.

  • chunk_table_size (int) – Size (in bytes) of the chunk table.

  • chunk_count (int) – Number of chunks referenced in the table.

  • file_size (int) – Total file size in bytes.

  • reserved (int) – Reserved for future use.

Returns:

Packed header bytes conforming to HEADER_FORMAT.

Return type:

bytes

raiiaf.core.header.header_parse(buf: bytes) dict[source]

Parse a RAIIAF header from raw bytes.

Parameters:

buf (bytes) – Raw file bytes containing the header at the beginning.

Returns:

Parsed header fields with keys: magic, version_major, version_minor,

flags, chunk_table_offset, chunk_table_size, chunk_count, file_size, reserved.

Return type:

dict

Raises:

raiiafCorruptHeader – If the provided buffer is too small.

raiiaf.core.header.header_validate(header: dict) bool[source]

Validate a parsed RAIIAF header.

Parameters:

header (dict) – Parsed header fields as returned by header_parse.

Returns:

True if the header is valid, False otherwise.

Return type:

bool