backends
flavor.psp.format_2025.backends
¶
TODO: Add module docstring.
Classes¶
Backend
¶
Bases: ABC
Abstract base class for PSPF bundle access backends.
Functions¶
close
abstractmethod
¶
open
abstractmethod
¶
read_at
abstractmethod
¶
read_slot
abstractmethod
¶
stream_slot
¶
stream_slot(
descriptor: SlotDescriptor,
chunk_size: int = DEFAULT_CHUNK_SIZE,
) -> Generator[bytes | memoryview, None, None]
Stream slot data in chunks.
Source code in flavor/psp/format_2025/backends.py
FileBackend
¶
Bases: Backend
Traditional file I/O backend.
Source code in flavor/psp/format_2025/backends.py
Functions¶
close
¶
Close the file.
Source code in flavor/psp/format_2025/backends.py
open
¶
Open file with buffered I/O.
Source code in flavor/psp/format_2025/backends.py
read_at
¶
Read data at specific offset.
Source code in flavor/psp/format_2025/backends.py
HybridBackend
¶
Bases: Backend
Hybrid backend - uses mmap for index/metadata, file I/O for slots.
Source code in flavor/psp/format_2025/backends.py
Functions¶
close
¶
Close mappings and file.
Source code in flavor/psp/format_2025/backends.py
open
¶
Open with partial memory mapping.
Source code in flavor/psp/format_2025/backends.py
read_at
¶
Read using mmap for header, file I/O for rest.
Source code in flavor/psp/format_2025/backends.py
read_slot
¶
MMapBackend
¶
Bases: Backend
Memory-mapped file access backend.
Source code in flavor/psp/format_2025/backends.py
Functions¶
close
¶
Close memory map and file.
Source code in flavor/psp/format_2025/backends.py
open
¶
Open file and create memory mapping.
Source code in flavor/psp/format_2025/backends.py
prefetch
¶
Hint to OS to prefetch pages.
Source code in flavor/psp/format_2025/backends.py
read_at
¶
Return a memory view without copying data.
Source code in flavor/psp/format_2025/backends.py
read_slot
¶
view_at
¶
StreamBackend
¶
Bases: Backend
Streaming backend - never loads full slots into memory.
Source code in flavor/psp/format_2025/backends.py
Functions¶
close
¶
open
¶
read_at
¶
Read data at specific offset - limited to chunk size.
Source code in flavor/psp/format_2025/backends.py
read_slot
¶
Read only first chunk of slot for streaming.
Source code in flavor/psp/format_2025/backends.py
stream_slot
¶
stream_slot(
descriptor: SlotDescriptor,
chunk_size: int | None = None,
) -> Generator[bytes | memoryview, None, None]
Stream slot data in chunks.
Source code in flavor/psp/format_2025/backends.py
Functions¶
create_backend
¶
Factory function to create the appropriate backend.