Kitaru

analytics

Kitaru product analytics (thin layer over ZenML analytics).

Event name constants are defined here so every track() call site references the same canonical string. Add new events to :class:AnalyticsEvent rather than scattering raw strings.

attributelogger
= logging.getLogger(__name__)
funcset_source(suffix_or_source) -> None

Set the ZenML Source-Context header to a Kitaru source type.

Accepts either a short suffix ("cli") or the full canonical value ("kitaru-cli"). The kitaru- prefix is added automatically when a bare suffix is given.

Silently ignored if ZenML's analytics module is unavailable.

paramsuffix_or_sourcestr

Returns

None
funcresolve_zenml_version() -> str

Resolve the installed ZenML version lazily.

Returns

str
functrack(event_name, metadata=None) -> bool

Track a Kitaru analytics event via ZenML's pipeline.

Passes event_name as a plain string to ZenML's track() (which accepts Union[AnalyticsEvent, str]). AnalyticsEvent is a StrEnum, so it works as a str at the ZenML boundary while giving callers type-checked event names.

The caller metadata is copied before central Kitaru fields are added. This keeps call sites from mutating shared dictionaries and makes kitaru_version / zenml_version authoritative for every event.

Silently returns False if analytics are disabled or if tracking fails.

paramevent_nameAnalyticsEvent
parammetadatadict[str, Any] | None
= None

Returns

bool