report
report
¶
Publish matrix progress as an atomic JSON snapshot, independent of terminal output.
SlotReport(state='pending', reason='', observed='?', network_hint=None, duration=0, skips=None)
dataclass
¶
A slot's current phase and eventual outcome; duration includes its build.
state = 'pending'
class-attribute
instance-attribute
¶
reason = ''
class-attribute
instance-attribute
¶
observed = '?'
class-attribute
instance-attribute
¶
network_hint = None
class-attribute
instance-attribute
¶
duration = 0
class-attribute
instance-attribute
¶
skips = None
class-attribute
instance-attribute
¶
MatrixReport(path, slots)
¶
Write snapshots after each transition so readers can follow an unfinished run.
A missing destination disables file output. Readers see either the old snapshot or the new one, never half a JSON document.
Publish the initial pending slots before execution starts.
Source code in src/terok_util/matrix/report.py
path = path
instance-attribute
¶
slots = {name: SlotReport() for name in slots}
instance-attribute
¶
state = 'running'
instance-attribute
¶
exit_code = None
instance-attribute
¶
error = ''
instance-attribute
¶
update(name, state, *, reason='', observed='?', network_hint=None, skips=None)
¶
Record a build, test, or verdict from either serial or parallel execution.
Source code in src/terok_util/matrix/report.py
finish(exit_code, error='')
¶
Close the report, retaining completed verdicts after errors or interruption.