doot.reporters.basic

Type Aliases

TreeElem

Classes

BaseGroup

TreeGroup

Methods to report a tree of data.

WorkflowGroup

Methods for reporting the progress of a workflow

GenGroup

General user level messaging

SummaryGroup

A reporter group for producing a summary at end of the workflow.

BasicReporter

The initial reporter for prior to configuration

Module Contents

doot.reporters.basic.TreeElem: TypeAlias = None | str | list[TreeElem] | dict[str, TreeElem] | tuple[str, TreeElem]
class doot.reporters.basic.BaseGroup(
*,
log: logmod.Logger,
fmt: doot.reporters.formatter.ReportFormatter,
lvl: int = logmod.DEBUG,
)[source]
Parameters:
_log: logmod.Logger
_fmt: doot.reporters._interface.ReportFormatter_p
_lvl: int
_entry_count = 0
_stack
property state: doot.reporters._interface.ReportStackEntry_d[source]
Return type:

doot.reporters._interface.ReportStackEntry_d

_out(
key: str,
*,
info: jgdv.Maybe = None,
msg: jgdv.Maybe = None,
level: int = 0,
) None[source]

reporter groups delegate formatting and logging/printing to this method

Parameters:
  • key (str)

  • info (jgdv.Maybe)

  • msg (jgdv.Maybe)

  • level (int)

Return type:

None

push_state(state: str, **kwargs: Any) Self[source]
Parameters:
  • state (str)

  • kwargs (Any)

Return type:

Self

pop_state() Self[source]
Return type:

Self

gap() Self[source]
Return type:

Self

line(
msg: jgdv.Maybe[str] = None,
char: jgdv.Maybe[str] = None,
) Self[source]
Parameters:
  • msg (jgdv.Maybe[str])

  • char (jgdv.Maybe[str])

Return type:

Self

class doot.reporters.basic.TreeGroup(**kwargs: Any)[source]

Bases: BaseGroup, doot.reporters._interface.TreeGroup_p

Methods to report a tree of data.

eg: a tree of jobs/tasks and their dependencies

data format is a nesting of list, where each sublist is a branch

Parameters:

kwargs (Any)

_labels: dict
_label(key: str) str[source]
Parameters:

key (str)

Return type:

str

tree(
data: dict | list,
*,
title: jgdv.Maybe[str] = None,
) Self[source]
Parameters:
Return type:

Self

root(title: jgdv.Maybe[str] = None) Self[source]
Parameters:

title (jgdv.Maybe[str])

Return type:

Self

branch(
name: str | doot.workflow._interface.TaskName_p,
info: jgdv.Maybe[str] = None,
) Self[source]
Parameters:
Return type:

Self

leaf(msg: str, level: int = 0) Self[source]
Parameters:
Return type:

Self

unbranch() Self[source]
Return type:

Self

finished() Self[source]
Return type:

Self

class doot.reporters.basic.WorkflowGroup(
*,
log: logmod.Logger,
fmt: doot.reporters.formatter.ReportFormatter,
lvl: int = logmod.DEBUG,
)[source]

Bases: BaseGroup, doot.reporters._interface.WorkflowGroup_p

Methods for reporting the progress of a workflow

eg: marking start/end of workflow, entry/exit of tasks, action content…

Parameters:
root() Self[source]
Return type:

Self

wait() Self[source]
Return type:

Self

act(info: str, msg: str, level: int = 0) Self[source]
Parameters:
Return type:

Self

branch(
name: str | doot.workflow._interface.TaskName_p,
info: jgdv.Maybe[str] = None,
) Self[source]
Parameters:
Return type:

Self

resume(
name: str | doot.workflow._interface.TaskName_p,
) Self[source]
Parameters:

name (str | doot.workflow._interface.TaskName_p)

Return type:

Self

pause(reason: str) Self[source]
Parameters:

reason (str)

Return type:

Self

result(
state: list[str],
info: jgdv.Maybe[str] = None,
) Self[source]
Parameters:
Return type:

Self

fail(
*,
info: jgdv.Maybe[str] = None,
msg: jgdv.Maybe[str] = None,
) Self[source]
Parameters:
  • info (jgdv.Maybe[str])

  • msg (jgdv.Maybe[str])

Return type:

Self

finished() Self[source]
Return type:

Self

abstractmethod queue(num: int) Self[source]
Parameters:

num (int)

Return type:

Self

abstractmethod state_result(*vals: str) Self[source]
Parameters:

vals (str)

Return type:

Self

class doot.reporters.basic.GenGroup(
*,
log: logmod.Logger,
fmt: doot.reporters.formatter.ReportFormatter,
lvl: int = logmod.DEBUG,
)[source]

Bases: BaseGroup, doot.reporters._interface.GeneralGroup_p

General user level messaging

Parameters:
header(*, header: jgdv.Maybe[str] = None) Self[source]
Parameters:

header (jgdv.Maybe[str])

Return type:

Self

user(msg: str, *rest: Any, **kwargs: Any) Self[source]
Parameters:
  • msg (str)

  • rest (Any)

  • kwargs (Any)

Return type:

Self

trace(msg: str, *rest: Any, **kwargs: Any) Self[source]
Parameters:
  • msg (str)

  • rest (Any)

  • kwargs (Any)

Return type:

Self

detail(
msg: str,
*rest: Any,
**kwargs: Any,
) Self[source]
Parameters:
  • msg (str)

  • rest (Any)

  • kwargs (Any)

Return type:

Self

failure(
msg: str,
*rest: Any,
**kwargs: Any,
) Self[source]
Parameters:
  • msg (str)

  • rest (Any)

  • kwargs (Any)

Return type:

Self

warn(msg: str, *rest: Any, **kwargs: Any) Self[source]
Parameters:
  • msg (str)

  • rest (Any)

  • kwargs (Any)

Return type:

Self

error(msg: str, *rest: Any, **kwargs: Any) Self[source]
Parameters:
  • msg (str)

  • rest (Any)

  • kwargs (Any)

Return type:

Self

class doot.reporters.basic.SummaryGroup(**kwargs: Any)[source]

Bases: BaseGroup, doot.reporters._interface.SummaryGroup_p

A reporter group for producing a summary at end of the workflow.

eg: success/failures, actions performed, time taken…

Parameters:

kwargs (Any)

_start: jgdv.Maybe[jgdv.DateTime]
_end: jgdv.Maybe[jgdv.DateTime]
_subgroups: dict[str, list]
abstractmethod start() None[source]

Set the Start Time

Return type:

None

abstractmethod finish() None[source]

Set the End Time

Return type:

None

abstractmethod add(key: str, *vals: Any) Self[source]

Add a summary group value

Parameters:
  • key (str)

  • vals (Any)

Return type:

Self

summarise(*, state: bool = True) Self[source]

Output the summary that has been accumulated

Parameters:

state (bool)

Return type:

Self

class doot.reporters.basic.BasicReporter(
*args: Any,
logger: jgdv.Maybe[logmod.Logger] = None,
segments: jgdv.Maybe[dict] = None,
**kwargs: Any,
)[source]

The initial reporter for prior to configuration

Parameters:
  • args (Any)

  • logger (jgdv.Maybe[logmod.Logger])

  • segments (jgdv.Maybe[dict])

  • kwargs (Any)

_entry_count = 0
_fmt
_logger
_stack = []
_tree
_workflow
_general
_summary
property state: doot.reporters._interface.ReportStackEntry_d[source]
Return type:

doot.reporters._interface.ReportStackEntry_d

property wf: doot.reporters._interface.WorkflowGroup_p[source]
Return type:

doot.reporters._interface.WorkflowGroup_p

property gen: doot.reporters._interface.GeneralGroup_p[source]
Return type:

doot.reporters._interface.GeneralGroup_p

property tree: doot.reporters._interface.TreeGroup_p[source]
Return type:

doot.reporters._interface.TreeGroup_p

property summary: doot.reporters._interface.SummaryGroup_p[source]
Return type:

doot.reporters._interface.SummaryGroup_p

property log: logmod.Logger[source]
Return type:

logmod.Logger

active_level(level: int) None[source]

Set the base level the reporter will log at.

Parameters:

level (int)

Return type:

None

push_state(state: str, **kwargs: Any) Self[source]
Parameters:
  • state (str)

  • kwargs (Any)

Return type:

Self

pop_state() Self[source]
Return type:

Self