cjm-substrate-qt-kit
The ONE Qt foundation library for the cjm-substrate application lane (ruling 8b7351e4), in three strata: (a) the design-system runtime — semantic theme tokens as data -> QPalette + QSS + fonts; (b) the app shell (ruling 2bae2cc1, landing); (c) the chrome every app shares — the loop-thread session base, KeymapRegistry, key hints + the modal grammar, the status strip, find bar, picker list, form shell + the manifest-driven config-form model, the HITL panel, the span player (requires ffmpeg on PATH), and text clamps. Born at first duplication between the workbench and the transcription shell (DEC dcf8a712); grown by demand, never speculation. The Textual-era tui-kit's live pieces (ConfigForm, tail) ported here 2026-09-25 and the tui-kit archived — nothing Textual remains on any app's import path.
Modules
cjm_substrate_qt_kit.__init__— The ONE Qt foundation library for the cjm-substrate application lane (ruling 8b7351e4).cjm_substrate_qt_kit.configform— Manifest-driven config form MODEL — the schema half of every kit form.cjm_substrate_qt_kit.findbar— The lane's find-bar universal (the Ctrl-F half of signal c7955f25).cjm_substrate_qt_kit.formdialog— Kit FormShell (work item d55292f9): the frameless modal FORM chrome —cjm_substrate_qt_kit.hitl— Kit HITL confirm chrome (work item 55bcc3c5, the payload-agnostic half ofcjm_substrate_qt_kit.keyhints— Keyboard-hints surface: the ?-overlay + contextual hint line (DEC 2a42c028).cjm_substrate_qt_kit.keymap— KeymapRegistry: the QAction layer from the toolbox verdict (DEC d55f1d0f).cjm_substrate_qt_kit.keys— The keybinding helper both shells grew independently.cjm_substrate_qt_kit.layout— Layout roles for the application lane — the FastHTML-era framework's Qtcjm_substrate_qt_kit.loopthread— The loop-thread session base: a private asyncio loop behind a Qt shell.cjm_substrate_qt_kit.pickerlist— Kit PickerList (work item 8d29f0f0): the native list PAGE the paintedcjm_substrate_qt_kit.player— Span playback over ONE persistent audio stream — the Qt lane's one audiocjm_substrate_qt_kit.statusstrip— StatusStrip: the footer's slot model (DEC 2a42c028).cjm_substrate_qt_kit.style— Row-style vocabulary for the lane's list widgets.cjm_substrate_qt_kit.testbed— Readability test-bed: error-seeded reading trials measuring which themecjm_substrate_qt_kit.testbed_corpus— Bundled clean-prose corpus for the readability test-bed.cjm_substrate_qt_kit.text— Text clamps for one-line surfaces — path-like strings keep their END.cjm_substrate_qt_kit.theme— Semantic theme tokens for the lane: one flat dict -> QPalette + QSS + fonts.
API
cjm_substrate_qt_kit.configform
ConfigFieldclass — One schema property as an editable form row.ConfigFormclass — A capability's editable config, derived from its manifest config_schema.
cjm_substrate_qt_kit.findbar
FindBarclass — Incremental find over an attached text pane. While the bar is open the
cjm_substrate_qt_kit.formdialog
FormShellclass — Frameless modal shell: head (QTextBrowser, fixed) / body (PickerList,
cjm_substrate_qt_kit.hitl
HitlPanelclass — The composed confirm panel: worklist (stretch) over the verdict stripProposalWorklistclass — The proposal list page: items above (a kit PickerList), the host'sProvenancePaneclass — Key/value provenance — a two-column table of whatever the lane'sVerdictStripclass — The derived-verdict status strip: one line per tier, each verdictfmt_tsfunction — Source-seconds as mm:ss.s — the worklist's span column.worklist_rowfunction — Project one item into a picker row: tier glyph (? / ??), the category
cjm_substrate_qt_kit.keyhints
KeyHintsOverlayclass — ?-toggled keyboard-hints overlay. Modal + frameless, centered overcolumn_countfunction — Responsive column count: what the CONTAINER width affords (layoutgroup_entriesfunction — [{verb,label,key,group}] -> [(group, entries)] in first-seen grouphint_linefunction — Project the pinned verbs (in pin order, capped at limit) into theis_close_anchorfunction — True for the close affordance modal_header paints — the dialog'skeycapsfunction — Public key-cap renderer — the overlay's chip grammar for OTHERmodal_boundsfunction — (avail_w, avail_h) a kit modal may occupy: the owner's size less amodal_headerfunction — A kit modal's title row: the title at left, the mouse CLOSEopen_centeredfunction — Open a kit modal centered over its owner at (width, height) capped byrender_hints_htmlfunction — The overlay's document: sections distributed across columns in
cjm_substrate_qt_kit.keymap
KeymapRegistryclass — Declarative verb table -> live QActions on an owner widget.
cjm_substrate_qt_kit.keys
bindfunction — One QShortcut:keyonparent(default: the owner window) firesfn.
cjm_substrate_qt_kit.layout
affordfunction — R3 container affordance: how many fixed-width units fit in theclassifyfunction — One geometry -> its three role ids: {"mode", "shape", "height"}.height_tierfunction — Absolute height -> height-tier role id ("H1".."H4").modefunction — Width -> mode role id ("M1".."M6").shapefunction — Aspect ratio -> shape role id ("S1".."S6").
cjm_substrate_qt_kit.loopthread
LoopThreadSessionclass — Owns one daemon asyncio loop thread; subclasses put their subsystem's
cjm_substrate_qt_kit.pickerlist
PickerListclass — The kit list page: native list above, budget-reserved detail below.SpanRowDelegateclass — Paint one row's rich-text fragment (the _ROW_HTML data) through aspans_to_htmlfunction — Project style-worded spans into one QTextDocument-ready fragment.
cjm_substrate_qt_kit.player
SpanPlayerclass — Play/stop one file span at a time over the persistent stream; replaydecode_commandfunction — The ffmpeg invocation for one span: input-side seek (fast),-tbounds
cjm_substrate_qt_kit.statusstrip
StatusStripclass — Two-row footer: chips + readout + transient above, hint line below
cjm_substrate_qt_kit.style
apply_row_stylefunction — Map a row's style words onto a list item (color words + bold).
cjm_substrate_qt_kit.testbed
ClickPaneclass — Read-only pane reporting the whitespace-token index of clicks thatTrialWindowclass — The trial loop: render the paragraph under its variant, take thebuild_trialsfunction — The trial plan: variants covered evenly (shuffled round-robin over thebuild_variantsfunction — Cross the sweep dimensions into variant dicts. Defaults reproduce theload_paragraphsfunction — Prose paragraphs from a markdown file: fence markers stripped (fencemainfunction — CLI: run trials over a markdown file, or summarize result JSONLs.seed_errorfunction — Apply one error class to a token list; (mutated_words, target_token,summarizefunction — Catch rate + latency per dimension marginal, per variant cell, per
cjm_substrate_qt_kit.text
tailfunction — Clamp a string to width keeping its END.
cjm_substrate_qt_kit.theme
apply_themefunction — THE entry point: resolve the theme and land palette + QSS + ui font onbuild_palettefunction — Project the palette roles onto QPalette so NATIVE widgets follow thebuild_qssfunction — Generate the lane's QSS layer: chrome polish + dynamic-property statecurrent_themefunction — The theme apply_theme last landed (default-resolved before any apply).document_cssfunction — Default stylesheet for rich-text documents (setDefaultStyleSheet):load_themefunction — Read a theme-as-data JSON file (a flat token dict): themes are sharedmake_fontfunction — Build the theme's font for a slot: "body" / "mono" / "ui". An emptyresolve_themefunction — Merge override tokens onto the built-in pair member for the schemestate_colorfunction — Resolve a legacy style word or a semantic role to the theme's colorstyle_text_panefunction — Reading-quality setup for a text pane (QTextEdit / QTextBrowser /
Dependencies
Depends on: PySide6
Used by: cjm-graph-workbench-qt, cjm-session-scratchpad-qt, cjm-transcript-correction-qt, cjm-transcript-decomp-qt, cjm-transcription-qt, cjm-workflow-hub-qt
Release files for cjm-substrate-qt-kit 0.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cjm_substrate_qt_kit-0.0.7.tar.gz | 79.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cjm_substrate_qt_kit-0.0.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 144.0 kB
Release files / cjm_substrate_qt_kit-0.0.7.tar.gz
| Download URL | cjm_substrate_qt_kit-0.0.7.tar.gz |
|---|---|
| Size | 79.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
725b9771dd38089292805e5bd4c5d0ae26af4ef001e048d18cc66378deb5ead2
|
|
BLAKE2b-256 checksum How to use checksums |
aaa059bda6f985121429ec1fa4f87536649daf659fb4e6e4f284cba11f00eb3a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / cjm_substrate_qt_kit-0.0.7-py3-none-any.whl
| Download URL | cjm_substrate_qt_kit-0.0.7-py3-none-any.whl |
|---|---|
| Size | 64.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
79f0592281e9d71fbc0f2732cd9284e72b7dbb7bff50d6d9bb918073bbab9bdc
|
|
BLAKE2b-256 checksum How to use checksums |
d7946f98929a588e8c88a46d9ba464aeed5ad8588d44b5443ae6047d7f298edf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|