Professional CLI tool for comparing Power BI TMDL and PBIP project files with semantic diff.
Project description
🚀 TMDL Diff CLI
Stop hunting for broken visuals. Start comparing.
tmdl-diff is a high-level semantic comparison tool for Power BI developers. It compares TMDL (Tabular Model Definition Language) and PBIP (Power BI Project) files to instantly identify structural changes that break reports.
Whether you renamed a measure, changed a table structure, or modified a calculation, this tool saves hours of manual checking by showing you exactly what changed at the CLI level.
✨ Key Value
- Visual Integrity: Quickly see if a structural change (like a rename) will impact your report visuals.
- Semantic Diff: Goes beyond text comparison to understand Tables, Measures, and Columns.
- CLI Speed: No need to open heavy PBIX files just to see what's different between versions.
- Live Detection: Identify and inspect open Power BI Desktop instances on your machine.
📦 Installation
Install directly from PyPI (once published):
pip install tmdl-diff
Or install locally for development:
git clone https://github.com/your-username/tmdl-diff.git
cd tmdl-diff
pip install -e .
🚀 Quick Usage
1. Compare two Project Files (.pbip)
The most common way to compare two versions of a model:
tmdl-diff diff version1.pbip version2.pbip
2. List Open Instances & Files
See what Power BI models are currently running or available in your folder:
tmdl-diff list
3. Interactive Comparison
Don't remember the filenames? Use the interactive picker:
tmdl-diff compare
4. Direct TMDL Comparison
Compare raw .tmdl files exported from Tabular Editor or Power BI:
tmdl-diff diff table1.tmdl table2.tmdl
🛠️ How it works
- PBIP Parsing: Recursively scans
.SemanticModelfolders for TMDL definitions. - Semantic Analysis: Groups changes by Table, Measure, and Relationship.
- Smart Formatting: Provides a color-coded, high-level summary of additions, deletions, and modifications.
📄 License
MIT
Project details
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 tmdl_diff-1.0.1.tar.gz.
File metadata
- Download URL: tmdl_diff-1.0.1.tar.gz
- Upload date:
- Size: 13.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62f070db470632e959139e0c5b13f2ecfe8e98ac05b10c1b2c75e8ae11598e62
|
|
| MD5 |
ee1d3189c289353b2573c483f5dd736a
|
|
| BLAKE2b-256 |
19c319d334d847f73516bdda983c8de22063d3db9f788d416355a9a0b3798f04
|
File details
Details for the file tmdl_diff-1.0.1-py3-none-any.whl.
File metadata
- Download URL: tmdl_diff-1.0.1-py3-none-any.whl
- Upload date:
- Size: 13.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26b1cc159a32fac3d76d852dc68de248675ef37493395f0963569b01a6bb91ba
|
|
| MD5 |
e994c3ecb089538128a6821a9d4f0cf1
|
|
| BLAKE2b-256 |
a3bd9d0e0bb900c4cf8217902b6bc9d333338cdd3dc6dbced5fd5c2c0b7e2315
|