PyDAX is designed to analyze DAX, it can extract comments, remove comments, and identify columns and measures referenced in DAX expressions.
Project description
PyDAX
PyDAX is a package designed to analyze DAX expressions. It can extract comments, remove comments, and identify columns and measures referenced in DAX expressions.
Installation
To install the package, use pip:
pip install PyDAXLexer
Usage
Here's a how to use PyDAXLexer. This example shows how to create a DAXExpression object and extract information.
from PyDAX import DAXExpression
if __name__ == '__main__':
# DAX expression as string:
dax_expression = """
// Calculate average sales per customer, considering only active customers
VAR SalesPerCustomer =
DIVIDE(
SUM(Sales[TotalAmount]),
COUNTROWS(VALUES(Customers[CustomerID]))
)
// Calculate discount impact
VAR DiscountImpact =
SUMX(
FILTER(
Sales,
Sales[Discount] > 0
),
Sales[DiscountAmount]
)
RETURN
IF(
SalesPerCustomer > 500 && DiscountImpact < 1000,
"High Value Customer",
"Standard Customer"
)
"""
# Initialize the DAXExpression object
expression = DAXExpression(dax_expression)
# Access various properties
print("Original Expression:", expression.dax_expression)
print("Expression without Comments:", expression.dax_expression_no_comments)
print("Table and Column References:", expression.table_column_references)
print("Extracted Comments:", expression.comments)
print("Cleaned Expression:", expression.clean_dax_expression)
print("Contains Division Operator:", expression.contains_div)
Additional Features
The DAXExpression class provides several utility methods:
remove_comments(): Removes comments from the DAX expression.extract_comments(): Extracts all comments in the expression.extract_artifact_references(): Extracts table and column references.generate_html(light: bool): Generates HTML output of the expression with syntax coloring.save_html_to_file(file_name: str): Saves the syntax-colored HTML output to a file.
License
This project is licensed under the MIT License.
Acknowledgments
TabularEditor
The lexer grammar used in this project is adapted from the TabularEditor GitHub repository.
- Source: TabularEditor GitHub Repository
- License: MIT License
ANTLR
This project uses ANTLR (ANother Tool for Language Recognition) to generate the lexer and parser for DAX expressions.
- Project: The ANTLR Project
- License: BSD-3-Clause License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pydaxlexer-0.1.3.tar.gz.
File metadata
- Download URL: pydaxlexer-0.1.3.tar.gz
- Upload date:
- Size: 53.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f176c778273a58ea70be5a0ced67a8e6637c019940964404009106cb84e3fa62
|
|
| MD5 |
133c597fa225a25b2ed9926ccaef9633
|
|
| BLAKE2b-256 |
54ffc798229a2b1dfd376e1f3c8262b30ef4e515f83097a4ee7e3fb787672baf
|
File details
Details for the file pydaxlexer-0.1.3-py3-none-any.whl.
File metadata
- Download URL: pydaxlexer-0.1.3-py3-none-any.whl
- Upload date:
- Size: 51.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31eead2bf15d2a9451c7cb367b83da9918a00a877c06f5f6067cbab8b23d8a99
|
|
| MD5 |
11e3a1ca77f083c70ab32631cf88e536
|
|
| BLAKE2b-256 |
acebc3eb6aeff4481d3dd0a7f7322e2a34fe0a214c3dabfc76190509d5023ce7
|