Semantic-link-labs

Latest version: v0.9.3

Safety actively analyzes 707009 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

0.9.3

Improvements

* Updated Functions
* sempy_labs
* [delta_analyzer](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.delta_analyzer) Added 'lakehouse' and 'workspace' parameters so now you can analyze any delta table from any lakehouse/workspace - not just in the lakehouse attached to the notebook. Note that if you export the delta analyzer results they will be saved to delta tables in the lakehouse attached to the notebook.
* [create_abfss_path](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.create_abfss_path) Made the 'delta_table_name' parameter optional so this function can also build the abfss path of a given lakehouse (not just a delta table).
* [Connection](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_connections) & [Gateway](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_gateways) functions now support Service Principal Authentication. Thanks ecotte!
* sempy_labs.admin
* [scan_workspaces](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.admin.html#sempy_labs.admin.scan_workspaces) Limited to 100 workspaces (per API limit). Improvements for passing workspace name/IDs. Thanks ecotte!

* General updates
* Most functions in semantic link labs can be executed using pure python notebooks. Some functions (in some instances) require PySpark notebooks. If you run a function which requires a PySpark notebook in a pure python notebook, a friendly error message will notify you as such.


Bug Fixes
* 398
* 444
* 445
* 447
* Bug in [report_rebind](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.report.html#sempy_labs.report.report_rebind) has been resolved.

0.9.2

Improvements

* New Functions
* sempy_labs
* [delta_analyzer](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.delta_analyzer) Provides statistics about delta tables, specifically relevant regarding their use in Direct Lake semantic models. This code is based on the work of dax-tips! More info can be found [here](https://github.com/microsoft/Analysis-Services/tree/master/DeltaAnalyzer).
* [list_synonyms](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_synonyms) Lists the synonyms from a semantic model's [linguistic schema](https://learn.microsoft.com/power-bi/natural-language/q-and-a-tooling-advanced)
* GraphQL
* [list_graphql_apis](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_graphql_apis)
* [create_graphql_api](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.create_graphql_api)
* sempy_labs.admin
* [get_capacity_state](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.admin.html#sempy_labs.admin.get_capacity_state) (424).
* $${\color{green}NEW!}$$ sempy_labs.graph functions to support [Microsoft Graph](https://learn.microsoft.com/graph/api/overview?view=graph-rest-1.0))
* Users
* [get_user](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.graph.html#sempy_labs.graph.get_user)
* [list_users](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.graph.html#sempy_labs.graph.list_users)
* [send_mail](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.graph.html#sempy_labs.graph.send_mail)
* [resolve_user_id](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.graph.html#sempy_labs.graph.resolve_user_id)
* Groups
* [list_groups](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.graph.html#sempy_labs.graph.list_groups)
* [list_group_owners](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.graph.html#sempy_labs.graph.list_group_owners)
* [list_group_members](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.graph.html#sempy_labs.graph.list_group_members)
* [add_group_members](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.graph.html#sempy_labs.graph.add_group_members)
* [add_group_owners](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.graph.html#sempy_labs.graph.add_group_owners)
* [resolve_group_id](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.graph.html#sempy_labs.graph.resolve_group_id)
* [renew_group](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.graph.html#sempy_labs.graph.renew_group)
* Teams
* [list_teams](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.graph.html#sempy_labs.graph.list_teams)
* sempy_labs.lakehouse
* [reset_shortcut_cache](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.reset_shortcut_cache)
* [run_table_maintenance](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.run_table_maintenance)
* sempy_labs.migration
* [migrate_direct_lake_to_import](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.migration.html#sempy_labs.migration.migrate_direct_lake_to_import) In-place migration of a semantic model from Direct Lake mode to Import mode.

* Updated Functions
* sempy_labs
* [list_deployment_pipeline_stages](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_deployment_pipeline_stages) parameters now accept either name or ID.
* [list_deployment_pipeline_stage_items](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_deployment_pipeline_stage_items) parameters now accept either name or ID. Changed parameter 'stage_name' to 'stage' as it can be either name or ID.
* sempy_labs.admin
* All 'domain' functions accept either name or ID. The parameter is now 'domain' instead of 'domain_name'.
* sempy_labs.lakehouse
* [lakehouse_attached](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.lakehouse_attached) No longer uses Spark to determine if a lakehouse is attached to the notebook.

Bug Fixes
* 423
* 430
* 436

Maintenance
* Functions which query Microsoft APIs now use an internal function (in Semantic Link Labs) to reduce and simplify code.
* Functions which return pandas dataframes and specify data types have been refactored to reduce and simplify code.

Notebooks
* [Delta Analyzer](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Delta%20Analyzer.ipynb) Shows how to use the new [delta_analyzer](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.delta_analyzer) function.
* [Service Principal](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb) Added examples for using the new wrapper functions for Microsoft Graph which were released in this version.

0.9.1

Bug Fixes
* Fixed minor critical issue with service principal authentication.

0.9.0

Improvements

* Authentication via Service Principal is now supported for the [admin](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.admin.html) and [tom](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html) (connect_semantic_model) subpackages. For [connect_semantic_model](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.connect_semantic_model), Service Principal Authentication is also supported for connecting to semantic models hosted on Azure Analysis Services.

To see code examples for authenticating via Service Principal, [click here](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb).

New Functions
* sempy_labs
* Authentication
* [service_principal_authentication](https://semantic-link-labs.readthedocs.io/en/latest/sempy_labs.html#sempy_labs.service_principal_authentication) Context manager to support Service Principal authentication.
* Capacities
* [list_skus](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_skus)
* [list_skus_for_capacity](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_skus_for_capacity)
* Job Scheduler
* [list_item_schedules](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_item_schedules)
* [run_on_demand_item_job](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.run_on_demand_item_job)
* Subscriptions
* [list_subscriptions](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_subscriptions)
* [get_subscription](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.get_subscription)
* Tenants
* [list_tenants](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_tenants)
* Resource Groups
* [list_resource_groups](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_resource_groups)
* [get_resource_group](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.get_resource_group)
* [create_or_update_resource_group](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.create_or_update_resource_group)
* [check_resource_group_existence](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.check_resource_group_existence)
* Storage Accounts
* [list_storage_accounts](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_storage_accounts)
* [create_storage_account](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.create_storage_account)

Updated Functions
* sempy_labs
* [run_model_bpa](https://semantic-link-labs.readthedocs.io/en/latest/sempy_labs.html#sempy_labs.run_model_bpa) added the 'check_dependencies' parameter. Set this to False for semantic models which are in shared workspaces so that the dependencies DMV check is not done and the remainder of the BPA rules can run (189).
* The following functions now leverage the [Service Principal Authentication](https://semantic-link-labs.readthedocs.io/en/latest/sempy_labs.html#sempy_labs.service_principal_authentication) context manager: [create_fabric_capacity](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.create_fabric_capacity), [suspend_fabric_capacity](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.suspend_fabric_capacity), [resume_fabric_capacity](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.resume_fabric_capacity), [delete_fabric_capacity](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.delete_fabric_capacity), [delete_embedded_capacity](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.delete_embedded_capacity), [update_fabric_capacity](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.update_fabric_capacity), [check_fabric_capacity_name_availablility](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.check_fabric_capacity_name_availablility), [create_resource_group](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.create_resource_group), [list_skus_for_capacity](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_skus_for_capacity), [list_skus](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_skus), [list_subscriptions](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_subscriptions), [get_subscription](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.get_subscription), [list_tenants](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_tenants), [create_or_update_resource_group](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.create_or_update_resource_group), [create_storage_account](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.create_storage_account), [list_storage_accounts](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_storage_accounts), [check_resource_group_existence](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.check_resource_group_existence), [list_resource_groups](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_resource_groups), [get_resource_group](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.get_resource_group)
* sempy_labs.admin
* All relevant functions now support authentication via Service Principal.
* sempy_labs.tom
* [connect_semantic_model](https://semantic-link-labs.readthedocs.io/en/latest/sempy_labs.tom.html#sempy_labs.tom.connect_semantic_model) Now supports Service Principal authentication via the service_principal_authencation context manager. This method also supports connecting to Azure Analysis Services (AAS) semantic models (simply enter the Azure AS server name in the the 'workspace' parameter and make sure to use the service principal authentication).

Dependencies
* Removed dependency on the azure.mgmt.resource python SDK. Removing this dependency will improve pip install times for Semantic Link Labs while maintaining all existing functionality.
* Updated semantic-link-sempy to 0.8.5

Removed Functionality
> [!IMPORTANT]
> If you are impacted by any of the aforementioned changes, please [raise an issue on GitHub](https://github.com/microsoft/semantic-link-labs/issues) with your concern (and ideally your company name as well)
* The P->F sku migration capability no longer migrates capacity settings. This is due to a restriction on certain APIs which are no longer accessible.
* Getting the source of a Direct Lake semantic model (lakehouse/warehouse & workspace) now only works when the source exists in the same workspace as the semantic model. This is due to a restriction on an API which is no longer accessible.
* Getting all downstream reports from a semantic model (cross-workspace) is no longer possible. This functionality is limited to reports which are in the same workspace as the semantic model. This is due to a restriction on an API which is no longer accessible.

Bug Fixes
* 375
* 383
* 408

Notebooks
* [Service Principal](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb) Contains instructions on how to use functions while authenticating via Service Principal.
* [Semantic Model Management](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Semantic%20Model%20Management.ipynb) Contains instructions for backing up, copying and restoring semantic models.

0.8.11

Improvements

* New Functions
* sempy_labs
* Job Scheduler
* [list_item_job_instances](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_item_job_instances) ([per request](https://www.linkedin.com/posts/jeloma_this-notebook-automates-the-monitoring-of-activity-7275123999750135809-ZA-6?utm_source=share&utm_medium=member_desktop))
* Git (the following functions *replace* the 'connect_workspace_to_git' function.
* [connect_workspace_to_azure_dev_ops](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.connect_workspace_to_azure_dev_ops)
* [connect_workspace_to_github](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.connect_workspace_to_github)
* sempy_labs.tom
* [remove_role_member](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.TOMWrapper.remove_role_member)

* Updated Functions
* sempy_labs
* Most (relevant) functions now accept dataset ID or Name; workspace ID or Name.
* sempy_labs.directlake
* Cache warming functions leverage updated DAX which yields better performance.

Bug Fixes
* 363
* 370
* Fixed [list_dataflows](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_dataflows)
* Fixed [get_capacity_id](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.get_capacity_id)
* Fixed [get_model_calc_dependencies](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.get_model_calc_dependencies) issue which could result in an infinite loop.
* Fixed [unqualified_columns](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.TOMWrapper.unqualified_columns) logic.
* Fixed [qualified_measures](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.TOMWrapper.qualified_measures) logic.

0.8.10

Improvements

* New Functions
* sempy_labs
* [list_server_properties](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_server_properties) Shows the server properties for a given workspace.
* [list_semantic_model_errors](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_semantic_model_errors) Shows if the model has any errors and their error messages.
* [get_tenant_id](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.get_tenant_id)
* [bind_semantic_model_to_gateway](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.bind_semantic_model_to_gateway)
* sempy_labs.tom
* [add_role_member](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.TOMWrapper.add_role_member)
* sempy_labs.admin
* [scan_workspaces](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.admin.html#sempy_labs.admin.scan_workspaces) Wrapper function for the Scanner API.

* Updated Functions
* sempy_labs
* [run_model_bpa](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.run_model_bpa) Setting 'extended=True' no longer requires annotations to be saved to the model.
* [list_dashboards](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_dashboards) Bug fixed in resolving the workspace.
* [run_model_bpa](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.run_model_bpa), [get_model_calc_dependencies](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.get_model_calc_dependencies), [refresh_semantic_model](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.refresh_semantic_model) The 'dataset' parameter now takes either the name or ID of the semantic model.
* [get_notebook_definition](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.get_notebook_definition) now works for any type of notebook (.py, .sql etc.)
* [create_notebook](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.create_notebook) Added the 'type' parameter so you can create other types of notebooks ('py, 'sql').
* sempy_labs.admin
* [list_activity_events](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.admin.html#sempy_labs.admin.list_activity_events) Additional columns added (340).
* sempy_labs.directlake
* [check_fallback_reason](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.directlake.html#sempy_labs.directlake.check_fallback_reason) The 'dataset' parameter now takes either the name or ID of the semantic model.
* sempy_labs.tom
* [TOMWrapper](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.TOMWrapper) The 'dataset' parameter now takes either the name or ID of the semantic model. Same for [connect_semantic_model](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.connect_semantic_model).


Bug Fixes
* 331
* 335

Page 1 of 4

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.