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) -> NoneSet 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_sourcestrReturns
Nonefuncresolve_zenml_version() -> strResolve the installed ZenML version lazily.
Returns
strfunctrack(event_name, metadata=None) -> boolTrack 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_nameAnalyticsEventparammetadatadict[str, Any] | None= NoneReturns
bool