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.