easyfabric.dax_models
Data models for DAX query generation from natural language questions.
dataclass
field
Enum
Any
Optional
AmbiguousQueryError Objects
class AmbiguousQueryError(Exception)
Raised when a question maps to multiple entities without clear intent.
__init__
def __init__(message: str, suggestions: list[str])
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.
SUM
AVERAGE
COUNT
DISTINCT_COUNT
MIN
MAX
ColumnMetadata Objects
@dataclass
class ColumnMetadata()
Metadata about a column in the model.
name
table_name
data_type
is_dimension
True for dimensions, False for facts
is_date
description
MeasureMetadata Objects
@dataclass
class MeasureMetadata()
Metadata about a pre-written DAX measure.
name
table_name
expression
data_type
description
format_string
RelationshipMetadata Objects
@dataclass
class RelationshipMetadata()
Metadata about a relationship between tables.
from_table
from_column
to_table
to_column
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
model_name
description
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.
column
operator
"=", ">", "<", ">=", "<=", "in", "between"
value
QueryIntent Objects
@dataclass
class QueryIntent()
Parsed intent from a natural language question.
aggregation
measure
group_by_columns
filters
order_by_column
order_by_measure
order_ascending
top_n
bottom_n
time_intelligence
"YTD", "MTD", "YoY", etc.