The Fabric Analytics SDK for Python provides programmatic access to Microsoft Fabric Analytics services. It allows interaction with datasets, lakehouses, and warehouses within Fabric. The current version is 0.0.3.post1. Given its early 0.0.x versioning and the release patterns typical for new Microsoft SDKs, frequent updates and potential breaking changes are expected.
Install & Compatibility
Where this runs
tested against v0.0.3.post8 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
py 3.9
✕ build_error
✕ build_error
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
from fabric import AnalyticsClient
This quickstart demonstrates how to initialize the Fabric Analytics client using `DefaultAzureCredential` and retrieve basic information about a Fabric item (like a Lakehouse) within a specified workspace. It also shows how to list items in a workspace. Remember to replace placeholder IDs or set them as environment variables and ensure proper Azure authentication and Fabric permissions.
import os
from fabric_analytics.analytics_client import AnalyticsClient
from azure.identity import DefaultAzureCredential
from azure.core.exceptions import ResourceNotFoundError
# IMPORTANT: Ensure your environment is configured for Azure authentication.
# For local development, set environment variables like AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET
# or use Azure CLI/VS Code login. More info: https://learn.microsoft.com/en-us/azure/developer/python/authentication/managed-identity-sdk-azure-cli
try:
# Initialize DefaultAzureCredential. It attempts various authentication methods.
credential = DefaultAzureCredential()
# Replace with your actual Fabric workspace ID and item ID.
# For a runnable example, ensure these environment variables are set.
workspace_id = os.environ.get("FABRIC_WORKSPACE_ID", "<YOUR_FABRIC_WORKSPACE_ID>")
item_id = os.environ.get("FABRIC_ITEM_ID", "<YOUR_FABRIC_ITEM_ID>")
item_type = os.environ.get("FABRIC_ITEM_TYPE", "Lakehouse") # e.g., "Lakehouse", "Warehouse", "Dataset"
if workspace_id == "<YOUR_FABRIC_WORKSPACE_ID>" or item_id == "<YOUR_FABRIC_ITEM_ID>":
print("Please set FABRIC_WORKSPACE_ID and FABRIC_ITEM_ID environment variables, or replace placeholders in the code.")
exit(1)
client = AnalyticsClient(credential=credential)
print(f"Attempting to get item: {item_id} of type {item_type} in workspace {workspace_id}")
# Example: Get a specific Fabric item (e.g., Lakehouse, Warehouse, Dataset)
item_info = client.get_item(workspace_id=workspace_id, item_id=item_id, item_type=item_type)
print(f"Successfully retrieved item: {item_info.display_name} (ID: {item_info.id})")
print(f"Description: {item_info.description or 'No description'}")
# Example: List items in a workspace
print(f"\nListing first 3 items in workspace {workspace_id}:")
items_list_response = client.list_items(workspace_id=workspace_id)
if items_list_response.value:
for i, item in enumerate(items_list_response.value):
if i >= 3:
break
print(f"- {item.display_name} (Type: {item.type}, ID: {item.id})")
else:
print("No items found or insufficient permissions.")
except ResourceNotFoundError as e:
print(f"Error: Resource not found. Please check workspace ID, item ID, item type, and permissions. Details: {e}")
except Exception as e:
print(f"An unexpected error occurred: {e}")
print("Ensure your Azure environment is set up correctly and you have sufficient permissions in Fabric.")
Upgrade
Version history
Breaking-change detection hasn't run for this library yet.
Audit
Security & dependencies
CVE tracking and dependency tree are planned for a later release.