Skip to content

Strategy Introspection

describe()

Every strategy class exposes a describe() class method that returns a FigureStrategyDescription without requiring an instance:

from orama.strategies.bar import BarChartStrategy
from orama.strategies.base import FigureStrategyDescription

desc: FigureStrategyDescription = BarChartStrategy.describe(fields_metadata)

desc.name          # "Bar Chart"
desc.description   # human-readable strategy description
desc.variables     # dict[str, dict[str, Any]] — variable descriptors
desc.options       # dict[str, dict[str, Any]] — option descriptors
desc.colors        # ColorStrategyDescription — supported selectors and assigners

Each variable descriptor includes type, name, description, map_to, candidate_fields, and (for categorical variables) multicategorical, ordered, optional. Each option descriptor includes type, name, description, map_to, default_value, and value_type.

get_query_params()

get_query_params() returns a dict[str, QueryParams]. Inspecting each QueryParams reveals the group_fields, aggregations, and dataframe_schema that your data layer must satisfy:

params = strategy.get_query_params()
for query_name, qp in params.items():
    print(query_name, qp.group_fields, qp.dataframe_schema)