Skip to content

manager_definition

manager_definition

KPI definition manager for DomoCard.

Provides access to the card's kpi definition — column mappings, filters, beast modes, and dataset schema — via the composition pattern (card.Definition.get(), card.Definition.used_columns, etc.).

DomoCard_DefinitionManager dataclass

DomoCard_DefinitionManager(
    parent: DomoCard_Default = None,
    kpi: KpiDefinition | None = None,
)

Bases: DomoSubEntity

Manager for a card's kpi definition.

Provides typed access to: - KpiDefinition with subscriptions, formulas, and column schema - Convenience properties: used_columns, available_columns, unused_columns

Usage

await card.Definition.get() card.Definition.kpi # KpiDefinition card.Definition.used_columns # set[str] card.Definition.available_columns # list[str] card.Definition.kpi.main.columns # list[ColumnMapping] card.Definition.kpi.formula_by_id # dict[str, Formula]

With dataset beast mode resolution

await card.Definition.get(is_resolve_dataset_beastmodes=True)

Now formula_by_id includes dataset-level beast modes

and filter/group_by columns resolve calculation_xxx IDs

available_columns property

available_columns: list[str]

All available columns from the dataset schema. Empty if not loaded.

unused_columns property

unused_columns: set[str]

Dataset columns NOT used by this card. Empty if not loaded.

used_columns property

used_columns: set[str]

Columns used by this card. Empty if definition not loaded.

get async

get(
    is_resolve_dataset_beastmodes: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs
) -> KpiDefinition

Fetch the kpi definition for this card.

Populates self.kpi with a typed KpiDefinition.

Parameters:

Name Type Description Default
is_resolve_dataset_beastmodes bool

If True, also fetch the card's datasets and resolve any calculation_xxx formula IDs that reference dataset-level beast modes. This ensures formula_by_id and used_columns correctly resolve beast modes saved to the dataset (not on the card itself).

False
context RouteContext | None

Optional RouteContext for request configuration

None

Returns:

Type Description
KpiDefinition

KpiDefinition instance with typed access to all definition data.

Source code in src/crew_dcs/classes/DomoCard/manager_definition.py
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
async def get(
    self,
    is_resolve_dataset_beastmodes: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs,
) -> KpiDefinition:
    """Fetch the kpi definition for this card.

    Populates self.kpi with a typed KpiDefinition.

    Args:
        is_resolve_dataset_beastmodes: If True, also fetch the card's
            datasets and resolve any ``calculation_xxx`` formula IDs
            that reference dataset-level beast modes. This ensures
            ``formula_by_id`` and ``used_columns`` correctly resolve
            beast modes saved to the dataset (not on the card itself).
        context: Optional RouteContext for request configuration

    Returns:
        KpiDefinition instance with typed access to all definition data.
    """
    context = RouteContext.build_context(context=context, **context_kwargs)

    res = await card_routes.get_kpi_definition(
        auth=self.auth,
        card_id=self.parent.id,
        context=context,
    )

    if res.is_success:
        self.kpi = KpiDefinition.from_dict(res.response)

    if is_resolve_dataset_beastmodes and self.kpi:
        await self._resolve_dataset_beastmodes(context=context)

    return self.kpi