Skip to content

Library Module Map

github-actions[bot] edited this page Oct 18, 2026 · 2 revisions

Library Module Map

The wowlab command is a thin layer over a Python library, wowlab_core, under lab/core/src/wowlab_core/ in the repository. This page says which module does what, so you can find the code behind a command. The spec for each module is docs/LAB_PLAN.md.

Every module opens the install read-only, except wowlab_core.guard, the one write gate (Safety and Guarantees).

Finding and reading the install

Module What it does
wowlab_core.install Finds a World of Warcraft install and its flavors (wowlab install show, wowlab doctor).
wowlab_core.layout A typed, read-only walk of a flavor folder (wowlab tree).
wowlab_core.filemap What every path in an install is, who writes it, and whether wowlab may edit it (wowlab explain).
wowlab_core.verdict The safe-to-edit answer for one path: a level, whether a restore could put it back, and the words wowlab explain and wowlab tree --explain print.
wowlab_core.pathfacts Facts about one path for wowlab explain: its spelling on disk, its size and time, and what the snapshots of its flavor folder say about it.
wowlab_core.gaps Where the file map is thin: paths no row describes, or only a catch-all row matches (wowlab filemap gaps).
wowlab_core.longpath Long paths on Windows: the extended-length spelling at the system call, so paths past the usual limit work with long paths turned off.
wowlab_core.process Whether a game client is running.
wowlab_core.toc Reads addon manifests (.toc files) for wowlab addons list.
wowlab_core.luadata Parses and writes SavedVariables as data, never running Lua (wowlab sv dump).
wowlab_core.wtfconfig Reads the WTF text files: Config.wtf, config-cache.wtf, bindings-cache.wtf and macros (wowlab cvar list, wowlab binds list, wowlab macros list).
wowlab_core.combatlog Tokenizes and follows the combat log, and counts your own casts (Combat Log).
wowlab_core.macrocheck The rules wowlab macros check applies, over macros and the lab-addon's record.
wowlab_core.bindscoach The reports wowlab binds coach makes, and its key-cost table (Combat Log).

Snapshots and changes

Module What it does
wowlab_core.snapshot The content-addressed snapshot store (Snapshots and Undo).
wowlab_core.guard The write gate: client closed, allowed path, snapshot first, journaled, atomic replace.
wowlab_core.profiles Named sets of UI files (Profiles).
wowlab_core.svmerge Merges one SavedVariables file by key path (SavedVariables and Merging).

The lab-addon

Module What it does
wowlab_core.addoninstall Puts the lab-addon into a flavor and takes it out again.
wowlab_core.labaddon Reads what the lab-addon recorded (Lab-Addon and Characters).

Game data and looks

Module What it does
wowlab_core.gamedata Game tables by build from wago.tools, cached and never overwritten (Game Data).
wowlab_core.db2lake Typed SQLite tables built from the cached game tables, one file per build. No command uses it yet.
wowlab_core.looks Customization tables for one build, and looks checked against them (Customization Looks).
wowlab_core.lookstore Saved looks as JSON under the user data folder.
wowlab_core.lookspage The self-contained HTML page of wowlab looks page.

The doctor and the command line

Module What it does
wowlab_core.firstrun The first run of wowlab doctor (Getting Started).
wowlab_core.redact Identifier patterns, and redaction of text you are asked to share.
wowlab_core.doctorredact The report of wowlab doctor --redact (Getting Started).
wowlab_core.cli The wowlab command itself (Command Reference, CLI Reference).
wowlab_core.ui The local server behind wowlab ui, which runs this wowlab's own commands (Command Reference).

Clone this wiki locally