Metadata-Version: 2.4
Name: loomaa
Version: 0.1.1
Summary: DevOps-native semantic model compiler for Microsoft Fabric
Author: Abiodun Adenugba
License: Apache-2.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: typer>=0.9.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: jinja2>=3.1.0
Requires-Dist: requests>=2.31.0
Requires-Dist: msal>=1.27.0
Requires-Dist: streamlit>=1.28.0
Requires-Dist: plotly>=5.17.0
Requires-Dist: networkx>=3.2.0
Requires-Dist: pandas>=2.0.0
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# Loomaa

Semantic Model as Code for Microsoft Fabric / Power BI.

Loomaa provides an end-to-end workflow:

- `loomaa init` – scaffold an example project
- `loomaa compile` – generate a Fabric/PBIP `.SemanticModel` (TMDL)
- `loomaa view` – local interactive model viewer (Streamlit)
- `loomaa deploy` – deploy to a Fabric workspace via REST API

The default scaffold created by `loomaa init` targets the Microsoft Fabric **Sample Warehouse** tables:
`Trip`, `Medallion`, `Date`, and `Time`.

## Install

```bash
pip install loomaa
```

## Quickstart

```bash
loomaa init my-model
cd my-model
```

This creates an example model under `models/example/` that you can edit.

Compile the model:

```bash
loomaa compile
```

View the model locally:

```bash
loomaa view
```

Deploy to Fabric (requires `.env` values created by `init`):

```bash
loomaa deploy
```

## Output

After `loomaa compile`, output is written under `compiled/`:

- `compiled/<model>/model.json` – viewer-friendly JSON
- `compiled/<model>/<model>.SemanticModel/` – Fabric/PBIP semantic model artifact

## Notes

- Do not commit `.env` (it contains secrets)
- Generated artifacts like `compiled/`, `test_compiled/`, and `*.egg-info/` should not be committed

## License

Apache-2.0
