API Reference

This reference is generated from Python docstrings.

Package

cabfile

CabFile

High-level cabinet reader with member-centric and ZipFile-compatible APIs.

NameToInfo: dict[str, CabMember] property

Member-name to metadata mapping (ZipFile-compatible property).

file_manager property

Low-level FDI file manager for map/unmap and callback-backed I/O.

filelist: list[CabMember] property

Ordered member metadata list (ZipFile-compatible property).

extract(member: str | CabMember, path: CabTargetDir | None = None, pwd: bytes | None = None) -> str

Extract one member and return its destination path.

Note: pwd is unsupported for CAB and raises NotImplementedError.

extract_members(target_dir: CabTargetDir, names: Iterable[str] | None = None) -> Iterator[CabMember]

Extract selected names, or all when names is None, and yield metadata.

extractall(path: CabTargetDir | None = None, members: Iterable[str] | None = None, pwd: bytes | None = None) -> None

Extract all members, or selected members, to path.

Note: pwd is unsupported for CAB and raises NotImplementedError.

getinfo(name: str) -> CabMember

Return metadata for one member (ZipFile-compatible alias).

infolist() -> list[CabMember]

Return member metadata objects (ZipFile-compatible alias).

items() -> list[tuple[str, CabMember]]

Return (name, member) pairs in cabinet order.

keys() -> list[str]

Return member names in cabinet order.

namelist() -> list[str]

Return member names in cabinet order (ZipFile-compatible alias).

printdir(file=None) -> None

Print a table of archive members (ZipFile-compatible shape).

read(name: str, pwd: bytes | None = None) -> bytes

Read payload bytes for one member name (ZipFile-compatible shape).

Note: pwd is unsupported for CAB and raises NotImplementedError.

read_members(names: Iterable[str] | None = None) -> Iterator[tuple[CabMember, bytes]]

Yield (member, payload) for selected names, or all when names is None.

Output follows cabinet traversal order.

test() -> bool

Test cabinet readability by copying all member data to in-memory sinks.

values() -> list[CabMember]

Return member metadata objects in cabinet order.

visit(on_copy_file: VisitCopyCallback) -> bool

Low-level FDICopy visit API.

For each member (fdintCOPY_FILE), on_copy_file is called with a CabMember instance.

  • Return None to skip member data copy. - Return (file_like, on_done) where file_like is writable and on_done() runs after data is written and unmapped. The callback owns finalization, including closing/reusing the file-like object.

Raise CabStopIteration to stop traversal early. Returns False for early-stop, True otherwise.

CabSummary dataclass

Top-level cabinet summary metadata returned by probe().

is_cabinet(source: CabSource) -> bool

Return True if source is a readable cabinet file.

main(args: Sequence[str] | None = None, stdout: TextIO | None = None, stderr: TextIO | None = None) -> int

Run the cabfile CLI and return a process-style exit code.

The command shape mirrors python -m zipfile for listing, testing, and extraction workflows.

probe(source: CabSource) -> CabSummary

Return cabinet-level summary metadata for source.

Raises CabinetError when source is not a cabinet.

Models

cabfile.models

CabMember dataclass

Metadata for a cabinet member.

CabSummary dataclass

Top-level cabinet summary metadata returned by probe().

DecodeFATTime(FATdate, FATtime)

Convert FAT date/time bitfields to datetime.

Returns None when the bitfields encode an invalid date/time.