EvsysLoggerCallback
Persist EVERYTHING to the evsys dashboard store via callbacks - the
experiment/group/run records, per-step metrics, checkpoints, and benchmark
evals + predictions. Keyed off the shared ctx.ids it populates
(experiment_id → group:\<name> → run_id).
This is the "callbacks own the store" mode: construct Experiment WITHOUT
a store= (so the orchestrator makes no store calls) and add this
callback instead. If Experiment already has a store (ctx.store set),
this callback disables itself to avoid double-writing. The store handle is
built lazily from the environment (EvsysStore) unless one is injected
(cb._store = ...) - the test seam.
Attributes
attributenamestr= 'evsys_logger'attributeConfigtype= EvsysLoggerConfigattributeproject_id= project_idattributeflush_every= max(1, int(flush_every))Functions
func__init__(self, *, project_id=None, flush_every=1) -> Noneparamselfparamproject_idstr | None= Noneparamflush_everyint= 1Returns
Nonefunc_ensure_store(self, ctx) -> AnyparamselfparamctxLogContextReturns
typing.Anyfunc_id(resp) -> str | NoneparamrespAnyReturns
str | Nonefuncon_experiment_start(self, ctx) -> NoneparamselfparamctxLogContextReturns
Nonefuncon_group_start(self, ctx, group_name) -> NoneparamselfparamctxLogContextparamgroup_namestrReturns
Nonefuncon_run_start(self, ctx) -> NoneparamselfparamctxLogContextReturns
Nonefuncon_benchmark_eval(self, ctx, eval_result, predictions, *, step=None) -> Noneparamselfparamctxparameval_resultparampredictionsparamstep= NoneReturns
Nonefuncon_run_end(self, ctx, run_result, arm) -> Noneparamselfparamctxparamrun_resultparamarmReturns
Nonefuncon_step_end(self, state, step_idx, batch, metrics) -> NoneparamselfparamstateLoopStateparamstep_idxparambatchparammetricsReturns
Nonefuncon_eval(self, state, step_idx, eval_name, metrics) -> NoneparamselfparamstateLoopStateparamstep_idxparameval_nameparammetricsReturns
Nonefuncon_checkpoint(self, state, row) -> NoneparamselfparamstateLoopStateparamrowReturns
Nonefunc_flush(self, ctx) -> NoneparamselfparamctxLogContext | NoneReturns
None