semantic-link-labs 0.11.3__tar.gz → 0.12.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of semantic-link-labs might be problematic. Click here for more details.

Files changed (221) hide show
  1. {semantic_link_labs-0.11.3/src/semantic_link_labs.egg-info → semantic_link_labs-0.12.1}/PKG-INFO +6 -4
  2. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/README.md +4 -2
  3. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/pyproject.toml +2 -2
  4. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1/src/semantic_link_labs.egg-info}/PKG-INFO +6 -4
  5. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/semantic_link_labs.egg-info/SOURCES.txt +3 -2
  6. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/semantic_link_labs.egg-info/requires.txt +1 -1
  7. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/__init__.py +6 -0
  8. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_a_lib_info.py +1 -1
  9. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_authentication.py +85 -32
  10. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_capacities.py +2 -2
  11. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_capacity_migration.py +4 -4
  12. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_clear_cache.py +1 -1
  13. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_connections.py +107 -70
  14. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_dashboards.py +6 -2
  15. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_data_pipelines.py +1 -1
  16. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_dataflows.py +1 -1
  17. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_dax.py +3 -3
  18. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_delta_analyzer.py +4 -4
  19. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_delta_analyzer_history.py +1 -1
  20. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_deployment_pipelines.py +1 -1
  21. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_environments.py +1 -1
  22. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_eventhouses.py +9 -3
  23. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_eventstreams.py +1 -1
  24. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_external_data_shares.py +1 -1
  25. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_gateways.py +14 -7
  26. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_generate_semantic_model.py +7 -12
  27. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_git.py +1 -1
  28. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_graphQL.py +1 -1
  29. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_helper_functions.py +161 -54
  30. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_job_scheduler.py +12 -1
  31. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_kql_databases.py +1 -1
  32. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_kql_querysets.py +10 -2
  33. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_kusto.py +2 -2
  34. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_list_functions.py +1 -1
  35. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_managed_private_endpoints.py +1 -1
  36. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_mirrored_databases.py +40 -16
  37. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_mirrored_warehouses.py +1 -1
  38. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_ml_experiments.py +1 -1
  39. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_model_bpa.py +6 -6
  40. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_model_bpa_bulk.py +3 -3
  41. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_model_dependencies.py +1 -1
  42. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_mounted_data_factories.py +3 -3
  43. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_notebooks.py +2 -1
  44. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_query_scale_out.py +2 -2
  45. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_refresh_semantic_model.py +1 -1
  46. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_semantic_models.py +15 -3
  47. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_spark.py +1 -1
  48. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_sql.py +3 -3
  49. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_sql_endpoints.py +5 -3
  50. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_sqldatabase.py +5 -1
  51. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_tags.py +3 -1
  52. semantic_link_labs-0.12.1/src/sempy_labs/_translations.py +43 -0
  53. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_user_delegation_key.py +2 -2
  54. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_utils.py +27 -0
  55. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_vertipaq.py +3 -3
  56. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_vpax.py +1 -1
  57. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_warehouses.py +5 -0
  58. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_workloads.py +1 -1
  59. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_workspace_identity.py +1 -1
  60. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_workspaces.py +145 -11
  61. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/admin/__init__.py +6 -0
  62. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/admin/_capacities.py +37 -14
  63. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/admin/_items.py +2 -2
  64. semantic_link_labs-0.12.1/src/sempy_labs/admin/_tenant_keys.py +89 -0
  65. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/directlake/_dl_helper.py +1 -1
  66. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/lakehouse/__init__.py +4 -0
  67. semantic_link_labs-0.12.1/src/sempy_labs/lakehouse/_materialized_lake_views.py +76 -0
  68. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/lakehouse/_shortcuts.py +8 -2
  69. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_download_report.py +4 -1
  70. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_export_report.py +12 -5
  71. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_generate_report.py +11 -3
  72. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_paginated.py +21 -15
  73. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_report_functions.py +19 -11
  74. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_report_rebind.py +56 -33
  75. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/theme/_org_themes.py +5 -6
  76. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/tom/_model.py +5 -16
  77. semantic_link_labs-0.11.3/src/sempy_labs/_translations.py +0 -396
  78. semantic_link_labs-0.11.3/tests/test_friendly_case.py +0 -11
  79. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/LICENSE +0 -0
  80. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/setup.cfg +0 -0
  81. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/semantic_link_labs.egg-info/dependency_links.txt +0 -0
  82. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/semantic_link_labs.egg-info/top_level.txt +0 -0
  83. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_ai.py +0 -0
  84. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_am-ET.po +0 -0
  85. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_ar-AE.po +0 -0
  86. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_bg-BG.po +0 -0
  87. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_ca-ES.po +0 -0
  88. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_cs-CZ.po +0 -0
  89. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_da-DK.po +0 -0
  90. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_de-DE.po +0 -0
  91. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_el-GR.po +0 -0
  92. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_es-ES.po +0 -0
  93. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_fa-IR.po +0 -0
  94. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_fi-FI.po +0 -0
  95. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_fr-FR.po +0 -0
  96. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_ga-IE.po +0 -0
  97. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_he-IL.po +0 -0
  98. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_hi-IN.po +0 -0
  99. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_hu-HU.po +0 -0
  100. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_id-ID.po +0 -0
  101. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_is-IS.po +0 -0
  102. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_it-IT.po +0 -0
  103. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_ja-JP.po +0 -0
  104. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_ko-KR.po +0 -0
  105. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_mt-MT.po +0 -0
  106. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_nl-NL.po +0 -0
  107. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_pl-PL.po +0 -0
  108. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_pt-BR.po +0 -0
  109. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_pt-PT.po +0 -0
  110. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_ro-RO.po +0 -0
  111. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_ru-RU.po +0 -0
  112. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_sk-SK.po +0 -0
  113. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_sl-SL.po +0 -0
  114. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_sv-SE.po +0 -0
  115. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_ta-IN.po +0 -0
  116. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_te-IN.po +0 -0
  117. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_th-TH.po +0 -0
  118. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_tr-TR.po +0 -0
  119. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_uk-UA.po +0 -0
  120. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_zh-CN.po +0 -0
  121. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po +0 -0
  122. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_daxformatter.py +0 -0
  123. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_dictionary_diffs.py +0 -0
  124. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_documentation.py +0 -0
  125. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_icons.py +0 -0
  126. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_labels.py +0 -0
  127. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_model_auto_build.py +0 -0
  128. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_model_bpa_rules.py +0 -0
  129. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/_one_lake_integration.py +0 -0
  130. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/admin/_activities.py +0 -0
  131. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/admin/_apps.py +0 -0
  132. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/admin/_artifacts.py +0 -0
  133. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/admin/_basic_functions.py +0 -0
  134. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/admin/_dataflows.py +0 -0
  135. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/admin/_datasets.py +0 -0
  136. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/admin/_domains.py +0 -0
  137. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/admin/_external_data_share.py +0 -0
  138. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/admin/_git.py +0 -0
  139. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/admin/_reports.py +0 -0
  140. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/admin/_scanner.py +0 -0
  141. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/admin/_shared.py +0 -0
  142. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/admin/_tags.py +0 -0
  143. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/admin/_tenant.py +0 -0
  144. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/admin/_users.py +0 -0
  145. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/admin/_workspaces.py +0 -0
  146. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/directlake/__init__.py +0 -0
  147. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/directlake/_directlake_schema_compare.py +0 -0
  148. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/directlake/_directlake_schema_sync.py +0 -0
  149. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/directlake/_generate_shared_expression.py +0 -0
  150. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/directlake/_get_directlake_lakehouse.py +0 -0
  151. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/directlake/_get_shared_expression.py +0 -0
  152. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/directlake/_guardrails.py +0 -0
  153. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/directlake/_list_directlake_model_calc_tables.py +0 -0
  154. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/directlake/_show_unsupported_directlake_objects.py +0 -0
  155. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py +0 -0
  156. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/directlake/_update_directlake_partition_entity.py +0 -0
  157. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/directlake/_warm_cache.py +0 -0
  158. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/dotnet_lib/dotnet.runtime.config.json +0 -0
  159. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/graph/__init__.py +0 -0
  160. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/graph/_groups.py +0 -0
  161. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/graph/_teams.py +0 -0
  162. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/graph/_users.py +0 -0
  163. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/lakehouse/_blobs.py +0 -0
  164. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/lakehouse/_get_lakehouse_columns.py +0 -0
  165. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/lakehouse/_get_lakehouse_tables.py +0 -0
  166. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/lakehouse/_helper.py +0 -0
  167. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/lakehouse/_lakehouse.py +0 -0
  168. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/lakehouse/_livy_sessions.py +0 -0
  169. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/migration/__init__.py +0 -0
  170. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/migration/_create_pqt_file.py +0 -0
  171. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/migration/_direct_lake_to_import.py +0 -0
  172. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/migration/_migrate_calctables_to_lakehouse.py +0 -0
  173. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/migration/_migrate_calctables_to_semantic_model.py +0 -0
  174. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/migration/_migrate_model_objects_to_semantic_model.py +0 -0
  175. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py +0 -0
  176. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/migration/_migration_validation.py +0 -0
  177. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/migration/_refresh_calc_tables.py +0 -0
  178. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/mirrored_azure_databricks_catalog/__init__.py +0 -0
  179. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/mirrored_azure_databricks_catalog/_discover.py +0 -0
  180. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/mirrored_azure_databricks_catalog/_refresh_catalog_metadata.py +0 -0
  181. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/ml_model/__init__.py +0 -0
  182. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/ml_model/_functions.py +0 -0
  183. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_BPAReportTemplate.json +0 -0
  184. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/__init__.py +0 -0
  185. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/StaticResources/SharedResources/BaseThemes/CY24SU06.json +0 -0
  186. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/page.json +0 -0
  187. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/1b08bce3bebabb0a27a8/visual.json +0 -0
  188. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/2f22ddb70c301693c165/visual.json +0 -0
  189. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/3b1182230aa6c600b43a/visual.json +0 -0
  190. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/58577ba6380c69891500/visual.json +0 -0
  191. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/a2a8fa5028b3b776c96c/visual.json +0 -0
  192. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/adfd47ef30652707b987/visual.json +0 -0
  193. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/b6a80ee459e716e170b1/visual.json +0 -0
  194. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/ce3130a721c020cc3d81/visual.json +0 -0
  195. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/page.json +0 -0
  196. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/visuals/66e60dfb526437cd78d1/visual.json +0 -0
  197. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/page.json +0 -0
  198. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/07deb8bce824e1be37d7/visual.json +0 -0
  199. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0b1c68838818b32ad03b/visual.json +0 -0
  200. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0c171de9d2683d10b930/visual.json +0 -0
  201. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0efa01be0510e40a645e/visual.json +0 -0
  202. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/6bf2f0eb830ab53cc668/visual.json +0 -0
  203. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/88d8141cb8500b60030c/visual.json +0 -0
  204. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/a753273590beed656a03/visual.json +0 -0
  205. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/b8fdc82cddd61ac447bc/visual.json +0 -0
  206. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json +0 -0
  207. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/visuals/ce8532a7e25020271077/visual.json +0 -0
  208. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/pages/pages.json +0 -0
  209. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/report.json +0 -0
  210. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition/version.json +0 -0
  211. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_bpareporttemplate/definition.pbir +0 -0
  212. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_report_bpa.py +0 -0
  213. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_report_bpa_rules.py +0 -0
  214. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_report_helper.py +0 -0
  215. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_report_list_functions.py +0 -0
  216. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_reportwrapper.py +0 -0
  217. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/report/_save_report.py +0 -0
  218. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/theme/__init__.py +0 -0
  219. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/tom/__init__.py +0 -0
  220. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/variable_library/__init__.py +0 -0
  221. {semantic_link_labs-0.11.3 → semantic_link_labs-0.12.1}/src/sempy_labs/variable_library/_functions.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: semantic-link-labs
3
- Version: 0.11.3
3
+ Version: 0.12.1
4
4
  Summary: Semantic Link Labs for Microsoft Fabric
5
5
  Author: Microsoft Corporation
6
6
  License: MIT License
@@ -15,7 +15,7 @@ Classifier: Framework :: Jupyter
15
15
  Requires-Python: <3.12,>=3.10
16
16
  Description-Content-Type: text/markdown
17
17
  License-File: LICENSE
18
- Requires-Dist: semantic-link-sempy>=0.11.1
18
+ Requires-Dist: semantic-link-sempy>=0.12.0
19
19
  Requires-Dist: anytree
20
20
  Requires-Dist: polib
21
21
  Requires-Dist: jsonpath_ng
@@ -26,7 +26,7 @@ Dynamic: license-file
26
26
  # Semantic Link Labs
27
27
 
28
28
  [![PyPI version](https://badge.fury.io/py/semantic-link-labs.svg)](https://badge.fury.io/py/semantic-link-labs)
29
- [![Read The Docs](https://readthedocs.org/projects/semantic-link-labs/badge/?version=0.11.3&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
29
+ [![Read The Docs](https://readthedocs.org/projects/semantic-link-labs/badge/?version=0.12.1&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
30
30
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
31
31
  [![Downloads](https://static.pepy.tech/badge/semantic-link-labs)](https://pepy.tech/project/semantic-link-labs)
32
32
 
@@ -154,6 +154,8 @@ An even better way to ensure the semantic-link-labs library is available in your
154
154
  2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
155
155
 
156
156
  ## Version History
157
+ * [0.12.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.1) (September 4, 2025)
158
+ * [0.12.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.0) (September 2, 2025)
157
159
  * [0.11.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.3) (August 6, 2025)
158
160
  * [0.11.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.2) (July 8, 2025)
159
161
  * [0.11.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.1) (June 24, 2025)
@@ -213,7 +215,7 @@ Check out my [blog post](https://www.elegantbi.com/post/direct-lake-migration) o
213
215
  ### Instructions
214
216
 
215
217
  1. Download this [notebook](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Migration%20to%20Direct%20Lake.ipynb).
216
- 2. Make sure you are in the ['Data Engineering' persona](https://learn.microsoft.com/fabric/get-started/microsoft-fabric-overview#components-of-microsoft-fabric). Click the icon at the bottom left corner of your Workspace screen and select 'Data Engineering'
218
+ 2. Make sure you are in the 'Fabric Developer' experience. Click the icon at the bottom left corner of your Workspace screen and select 'Fabric'.
217
219
  3. In your workspace, select 'New -> Import notebook' and import the notebook from step 1.
218
220
  4. [Add your lakehouse](https://learn.microsoft.com/fabric/data-engineering/lakehouse-notebook-explore#add-or-remove-a-lakehouse) to your Fabric notebook
219
221
  5. Follow the instructions within the notebook.
@@ -1,7 +1,7 @@
1
1
  # Semantic Link Labs
2
2
 
3
3
  [![PyPI version](https://badge.fury.io/py/semantic-link-labs.svg)](https://badge.fury.io/py/semantic-link-labs)
4
- [![Read The Docs](https://readthedocs.org/projects/semantic-link-labs/badge/?version=0.11.3&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
4
+ [![Read The Docs](https://readthedocs.org/projects/semantic-link-labs/badge/?version=0.12.1&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
5
5
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
6
6
  [![Downloads](https://static.pepy.tech/badge/semantic-link-labs)](https://pepy.tech/project/semantic-link-labs)
7
7
 
@@ -129,6 +129,8 @@ An even better way to ensure the semantic-link-labs library is available in your
129
129
  2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
130
130
 
131
131
  ## Version History
132
+ * [0.12.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.1) (September 4, 2025)
133
+ * [0.12.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.0) (September 2, 2025)
132
134
  * [0.11.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.3) (August 6, 2025)
133
135
  * [0.11.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.2) (July 8, 2025)
134
136
  * [0.11.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.1) (June 24, 2025)
@@ -188,7 +190,7 @@ Check out my [blog post](https://www.elegantbi.com/post/direct-lake-migration) o
188
190
  ### Instructions
189
191
 
190
192
  1. Download this [notebook](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Migration%20to%20Direct%20Lake.ipynb).
191
- 2. Make sure you are in the ['Data Engineering' persona](https://learn.microsoft.com/fabric/get-started/microsoft-fabric-overview#components-of-microsoft-fabric). Click the icon at the bottom left corner of your Workspace screen and select 'Data Engineering'
193
+ 2. Make sure you are in the 'Fabric Developer' experience. Click the icon at the bottom left corner of your Workspace screen and select 'Fabric'.
192
194
  3. In your workspace, select 'New -> Import notebook' and import the notebook from step 1.
193
195
  4. [Add your lakehouse](https://learn.microsoft.com/fabric/data-engineering/lakehouse-notebook-explore#add-or-remove-a-lakehouse) to your Fabric notebook
194
196
  5. Follow the instructions within the notebook.
@@ -7,7 +7,7 @@ name="semantic-link-labs"
7
7
  authors = [
8
8
  { name = "Microsoft Corporation" },
9
9
  ]
10
- version="0.11.3"
10
+ version="0.12.1"
11
11
  description="Semantic Link Labs for Microsoft Fabric"
12
12
  readme="README.md"
13
13
  requires-python=">=3.10,<3.12"
@@ -23,7 +23,7 @@ classifiers = [
23
23
  license= { text = "MIT License" }
24
24
 
25
25
  dependencies = [
26
- "semantic-link-sempy>=0.11.1",
26
+ "semantic-link-sempy>=0.12.0",
27
27
  "anytree",
28
28
  "polib",
29
29
  "jsonpath_ng",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: semantic-link-labs
3
- Version: 0.11.3
3
+ Version: 0.12.1
4
4
  Summary: Semantic Link Labs for Microsoft Fabric
5
5
  Author: Microsoft Corporation
6
6
  License: MIT License
@@ -15,7 +15,7 @@ Classifier: Framework :: Jupyter
15
15
  Requires-Python: <3.12,>=3.10
16
16
  Description-Content-Type: text/markdown
17
17
  License-File: LICENSE
18
- Requires-Dist: semantic-link-sempy>=0.11.1
18
+ Requires-Dist: semantic-link-sempy>=0.12.0
19
19
  Requires-Dist: anytree
20
20
  Requires-Dist: polib
21
21
  Requires-Dist: jsonpath_ng
@@ -26,7 +26,7 @@ Dynamic: license-file
26
26
  # Semantic Link Labs
27
27
 
28
28
  [![PyPI version](https://badge.fury.io/py/semantic-link-labs.svg)](https://badge.fury.io/py/semantic-link-labs)
29
- [![Read The Docs](https://readthedocs.org/projects/semantic-link-labs/badge/?version=0.11.3&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
29
+ [![Read The Docs](https://readthedocs.org/projects/semantic-link-labs/badge/?version=0.12.1&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
30
30
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
31
31
  [![Downloads](https://static.pepy.tech/badge/semantic-link-labs)](https://pepy.tech/project/semantic-link-labs)
32
32
 
@@ -154,6 +154,8 @@ An even better way to ensure the semantic-link-labs library is available in your
154
154
  2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
155
155
 
156
156
  ## Version History
157
+ * [0.12.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.1) (September 4, 2025)
158
+ * [0.12.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.0) (September 2, 2025)
157
159
  * [0.11.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.3) (August 6, 2025)
158
160
  * [0.11.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.2) (July 8, 2025)
159
161
  * [0.11.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.1) (June 24, 2025)
@@ -213,7 +215,7 @@ Check out my [blog post](https://www.elegantbi.com/post/direct-lake-migration) o
213
215
  ### Instructions
214
216
 
215
217
  1. Download this [notebook](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Migration%20to%20Direct%20Lake.ipynb).
216
- 2. Make sure you are in the ['Data Engineering' persona](https://learn.microsoft.com/fabric/get-started/microsoft-fabric-overview#components-of-microsoft-fabric). Click the icon at the bottom left corner of your Workspace screen and select 'Data Engineering'
218
+ 2. Make sure you are in the 'Fabric Developer' experience. Click the icon at the bottom left corner of your Workspace screen and select 'Fabric'.
217
219
  3. In your workspace, select 'New -> Import notebook' and import the notebook from step 1.
218
220
  4. [Add your lakehouse](https://learn.microsoft.com/fabric/data-engineering/lakehouse-notebook-explore#add-or-remove-a-lakehouse) to your Fabric notebook
219
221
  5. Follow the instructions within the notebook.
@@ -124,6 +124,7 @@ src/sempy_labs/admin/_scanner.py
124
124
  src/sempy_labs/admin/_shared.py
125
125
  src/sempy_labs/admin/_tags.py
126
126
  src/sempy_labs/admin/_tenant.py
127
+ src/sempy_labs/admin/_tenant_keys.py
127
128
  src/sempy_labs/admin/_users.py
128
129
  src/sempy_labs/admin/_workspaces.py
129
130
  src/sempy_labs/directlake/__init__.py
@@ -151,6 +152,7 @@ src/sempy_labs/lakehouse/_get_lakehouse_tables.py
151
152
  src/sempy_labs/lakehouse/_helper.py
152
153
  src/sempy_labs/lakehouse/_lakehouse.py
153
154
  src/sempy_labs/lakehouse/_livy_sessions.py
155
+ src/sempy_labs/lakehouse/_materialized_lake_views.py
154
156
  src/sempy_labs/lakehouse/_shortcuts.py
155
157
  src/sempy_labs/migration/__init__.py
156
158
  src/sempy_labs/migration/_create_pqt_file.py
@@ -212,5 +214,4 @@ src/sempy_labs/theme/_org_themes.py
212
214
  src/sempy_labs/tom/__init__.py
213
215
  src/sempy_labs/tom/_model.py
214
216
  src/sempy_labs/variable_library/__init__.py
215
- src/sempy_labs/variable_library/_functions.py
216
- tests/test_friendly_case.py
217
+ src/sempy_labs/variable_library/_functions.py
@@ -1,4 +1,4 @@
1
- semantic-link-sempy>=0.11.1
1
+ semantic-link-sempy>=0.12.0
2
2
  anytree
3
3
  polib
4
4
  jsonpath_ng
@@ -188,6 +188,8 @@ from ._workspaces import (
188
188
  unassign_workspace_from_capacity,
189
189
  list_workspace_role_assignments,
190
190
  delete_workspace,
191
+ get_workspace_network_communication_policy,
192
+ set_workspace_network_communication_policy,
191
193
  )
192
194
  from ._notebooks import (
193
195
  get_notebook_definition,
@@ -282,6 +284,7 @@ from ._list_functions import (
282
284
  list_synonyms,
283
285
  )
284
286
  from ._helper_functions import (
287
+ get_item_definition,
285
288
  copy_item,
286
289
  convert_to_friendly_case,
287
290
  resolve_environment_id,
@@ -593,4 +596,7 @@ __all__ = [
593
596
  "copy_item",
594
597
  "search_notebooks",
595
598
  "list_notebooks",
599
+ "get_item_definition",
600
+ "get_workspace_network_communication_policy",
601
+ "set_workspace_network_communication_policy",
596
602
  ]
@@ -1,2 +1,2 @@
1
1
  lib_name = "semanticlinklabs"
2
- lib_version = "0.11.3"
2
+ lib_version = "0.12.1"
@@ -1,18 +1,27 @@
1
- from typing import Literal, Optional
2
- from sempy.fabric._token_provider import TokenProvider
1
+ from typing import Dict, Literal, Optional
2
+ from azure.core.credentials import AccessToken, TokenCredential
3
3
  from azure.identity import ClientSecretCredential
4
4
  from sempy._utils._log import log
5
5
  from contextlib import contextmanager
6
6
  import contextvars
7
7
 
8
8
 
9
- class ServicePrincipalTokenProvider(TokenProvider):
9
+ class ServicePrincipalTokenProvider(TokenCredential):
10
10
  """
11
- Implementation of the sempy.fabric.TokenProvider to be used with Service Principal.
11
+ A class to acquire authentication token with Service Principal.
12
12
 
13
13
  For more information on Service Principal see: `Application and service principal objects in Microsoft Entra ID <https://learn.microsoft.com/en-us/entra/identity-platform/app-objects-and-service-principals?tabs=browser#service-principal-object>`_
14
14
  """
15
15
 
16
+ _shorthand_scopes: Dict[str, str] = {
17
+ "pbi": "https://analysis.windows.net/powerbi/api/.default",
18
+ "storage": "https://storage.azure.com/.default",
19
+ "azure": "https://management.azure.com/.default",
20
+ "graph": "https://graph.microsoft.com/.default",
21
+ "asazure": "https://{region}.asazure.windows.net/.default",
22
+ "keyvault": "https://vault.azure.net/.default",
23
+ }
24
+
16
25
  def __init__(self, credential: ClientSecretCredential):
17
26
 
18
27
  self.credential = credential
@@ -20,7 +29,7 @@ class ServicePrincipalTokenProvider(TokenProvider):
20
29
  @classmethod
21
30
  def from_aad_application_key_authentication(
22
31
  cls, tenant_id: str, client_id: str, client_secret: str
23
- ):
32
+ ) -> "ServicePrincipalTokenProvider":
24
33
  """
25
34
  Generates the ServicePrincipalTokenProvider, providing the Service Principal information.
26
35
 
@@ -37,7 +46,7 @@ class ServicePrincipalTokenProvider(TokenProvider):
37
46
 
38
47
  Returns
39
48
  -------
40
- sempy.fabric.TokenProvider
49
+ ServicePrincipalTokenProvider
41
50
  Token provider to be used with FabricRestClient or PowerBIRestClient.
42
51
  """
43
52
  credential = ClientSecretCredential(
@@ -57,7 +66,7 @@ class ServicePrincipalTokenProvider(TokenProvider):
57
66
  key_vault_tenant_id: str,
58
67
  key_vault_client_id: str,
59
68
  key_vault_client_secret: str,
60
- ):
69
+ ) -> "ServicePrincipalTokenProvider":
61
70
  """
62
71
  Generates the ServicePrincipalTokenProvider, providing the Azure Key Vault details.
63
72
 
@@ -76,7 +85,7 @@ class ServicePrincipalTokenProvider(TokenProvider):
76
85
 
77
86
  Returns
78
87
  -------
79
- sempy.fabric.TokenProvider
88
+ ServicePrincipalTokenProvider
80
89
  Token provider to be used with FabricRestClient or PowerBIRestClient.
81
90
  """
82
91
 
@@ -117,32 +126,69 @@ class ServicePrincipalTokenProvider(TokenProvider):
117
126
  region : str, default=None
118
127
  The region of the Azure Analysis Services. For example: 'westus2'.
119
128
  """
120
- if audience == "pbi":
121
- return self.credential.get_token(
122
- "https://analysis.windows.net/powerbi/api/.default"
123
- ).token
124
- elif audience == "storage":
125
- return self.credential.get_token("https://storage.azure.com/.default").token
126
- elif audience == "azure":
127
- return self.credential.get_token(
128
- "https://management.azure.com/.default"
129
- ).token
130
- elif audience == "graph":
131
- return self.credential.get_token(
132
- "https://graph.microsoft.com/.default"
133
- ).token
134
- elif audience == "asazure":
135
- return self.credential.get_token(
136
- f"https://{region}.asazure.windows.net/.default"
137
- ).token
138
- elif audience == "keyvault":
139
- return self.credential.get_token("https://vault.azure.net/.default").token
140
- else:
129
+ # Check if audience is supported
130
+ if audience not in self._shorthand_scopes:
141
131
  raise NotImplementedError
142
132
 
133
+ return self.get_token(audience).token
134
+
135
+ def get_token(self, *scopes, **kwargs) -> AccessToken:
136
+ """
137
+ Gets a token for the specified scopes.
138
+
139
+ Parameters
140
+ ----------
141
+ *scopes : str
142
+ The scopes for which to obtain a token.
143
+ **kwargs : dict
144
+ Additional parameters to pass to the token request.
145
+
146
+ Returns
147
+ -------
148
+ AccessToken
149
+ The access token.
150
+ """
151
+ if len(scopes) == 0:
152
+ scopes = ("pbi",)
153
+
154
+ region = kwargs.pop("region", None)
155
+ scopes = [
156
+ self._get_fully_qualified_scope(scope, region=region) for scope in scopes
157
+ ]
158
+ return self.credential.get_token(*scopes, **kwargs)
159
+
160
+ def _get_fully_qualified_scope(
161
+ self, scope: str, region: Optional[str] = None
162
+ ) -> str:
163
+ """
164
+ Resolve to fully qualified scope if Fabric short-handed scope is given.
165
+ Otherwise, return the original scope.
166
+
167
+ Parameters
168
+ ----------
169
+ scope : str
170
+ The scope to resolve.
171
+ region : str, default=None
172
+ The specific region to use to resolve scope.
173
+ Required if scope is "asazure".
174
+
175
+ Returns
176
+ -------
177
+ str
178
+ The resolved scope.
179
+ """
180
+ fully_qualified_scope = self._shorthand_scopes.get(scope, scope)
181
+
182
+ if scope == "asazure":
183
+ if region is None:
184
+ raise ValueError("Region is required for 'asazure' scope")
185
+ return fully_qualified_scope.format(region=region)
186
+
187
+ return fully_qualified_scope
188
+
143
189
 
144
190
  def _get_headers(
145
- token_provider: str,
191
+ token_provider: TokenCredential,
146
192
  audience: Literal[
147
193
  "pbi", "storage", "azure", "graph", "asazure", "keyvault"
148
194
  ] = "azure",
@@ -151,7 +197,7 @@ def _get_headers(
151
197
  Generates headers for an API request.
152
198
  """
153
199
 
154
- token = token_provider(audience=audience)
200
+ token = token_provider.get_token(audience).token
155
201
 
156
202
  headers = {"Authorization": f"Bearer {token}"}
157
203
 
@@ -202,7 +248,14 @@ def service_principal_authentication(
202
248
  )
203
249
  )
204
250
  try:
205
- yield
251
+ from sempy.fabric import set_service_principal
252
+
253
+ with set_service_principal(
254
+ (key_vault_uri, key_vault_tenant_id),
255
+ (key_vault_uri, key_vault_client_id),
256
+ client_secret=(key_vault_uri, key_vault_client_secret),
257
+ ):
258
+ yield
206
259
  finally:
207
260
  # Restore the prior state
208
261
  if prior_token is None:
@@ -4,12 +4,12 @@ import sempy_labs._icons as icons
4
4
  from sempy.fabric.exceptions import FabricHTTPException
5
5
  import requests
6
6
  import pandas as pd
7
- from ._authentication import (
7
+ from sempy_labs._authentication import (
8
8
  _get_headers,
9
9
  ServicePrincipalTokenProvider,
10
10
  )
11
11
  from uuid import UUID
12
- from ._helper_functions import (
12
+ from sempy_labs._helper_functions import (
13
13
  _is_valid_uuid,
14
14
  _update_dataframe_datatypes,
15
15
  _base_api,
@@ -2,20 +2,20 @@ import sempy.fabric as fabric
2
2
  from typing import Optional, List
3
3
  from sempy._utils._log import log
4
4
  import sempy_labs._icons as icons
5
- from ._workspaces import assign_workspace_to_capacity
6
- from .admin import (
5
+ from sempy_labs._workspaces import assign_workspace_to_capacity
6
+ from sempy_labs.admin import (
7
7
  assign_workspaces_to_capacity,
8
8
  )
9
9
  from .admin._capacities import (
10
10
  _list_capacities_meta,
11
11
  list_capacities,
12
12
  )
13
- from ._helper_functions import (
13
+ from sempy_labs._helper_functions import (
14
14
  resolve_capacity_id,
15
15
  convert_to_alphanumeric_lowercase,
16
16
  _base_api,
17
17
  )
18
- from ._capacities import create_fabric_capacity
18
+ from sempy_labs._capacities import create_fabric_capacity
19
19
  from uuid import UUID
20
20
 
21
21
 
@@ -1,5 +1,5 @@
1
1
  import sempy.fabric as fabric
2
- from ._helper_functions import (
2
+ from sempy_labs._helper_functions import (
3
3
  is_default_semantic_model,
4
4
  _get_adls_client,
5
5
  resolve_workspace_name_and_id,