Skip to main content

easyfabric.dax_models

Data models for DAX query generation from natural language questions.

AmbiguousQueryError Objects​

class AmbiguousQueryError(Exception)

Raised when a question maps to multiple entities without clear intent.

InvalidQueryError Objects​

class InvalidQueryError(Exception)

Raised when a question cannot be parsed into valid DAX.

AggregationType Objects​

class AggregationType(str, Enum)

Supported aggregation functions in DAX.

ColumnMetadata Objects​

@dataclass
class ColumnMetadata()

Metadata about a column in the model.

is_dimension​

True for dimensions, False for facts

MeasureMetadata Objects​

@dataclass
class MeasureMetadata()

Metadata about a pre-written DAX measure.

RelationshipMetadata Objects​

@dataclass
class RelationshipMetadata()

Metadata about a relationship between tables.

ModelContext Objects​

@dataclass
class ModelContext()

Extracted metadata from a Model instance for DAX generation. This provides context for both rule-based and LLM-based generation.

tables​

Table names

columns​

All columns with metadata

measures​

Pre-written DAX measures

relationships​

Table relationships

get_columns_for_table​

def get_columns_for_table(table_name: str) -> list[ColumnMetadata]

Get all columns for a specific table.

get_measures_for_table​

def get_measures_for_table(table_name: str) -> list[MeasureMetadata]

Get all measures for a specific table.

find_column​

def find_column(column_name: str,
table_name: Optional[str] = None) -> Optional[ColumnMetadata]

Find a column by name, optionally filtered by table.

find_measure​

def find_measure(
measure_name: str,
table_name: Optional[str] = None) -> Optional[MeasureMetadata]

Find a measure by name, optionally filtered by table.

find_columns_by_pattern​

def find_columns_by_pattern(pattern: str) -> list[ColumnMetadata]

Find columns matching a pattern (substring or fuzzy match).

find_measures_by_pattern​

def find_measures_by_pattern(pattern: str) -> list[MeasureMetadata]

Find measures matching a pattern (substring or fuzzy match).

QueryFilter Objects​

@dataclass
class QueryFilter()

A filter condition in a query.

operator​

"=", ">", "<", ">=", "<=", "in", "between"

QueryIntent Objects​

@dataclass
class QueryIntent()

Parsed intent from a natural language question.

time_intelligence​

"YTD", "MTD", "YoY", etc.