semantic-link-labs 0.9.4__tar.gz → 0.9.6__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 (230) hide show
  1. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/PKG-INFO +19 -2
  2. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/README.md +18 -1
  3. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/docs/source/conf.py +1 -1
  4. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/notebooks/Service Principal.ipynb +1 -1
  5. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/pyproject.toml +1 -1
  6. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/semantic_link_labs.egg-info/PKG-INFO +19 -2
  7. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/semantic_link_labs.egg-info/SOURCES.txt +7 -1
  8. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/__init__.py +33 -4
  9. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_capacities.py +59 -128
  10. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_capacity_migration.py +19 -21
  11. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_connections.py +2 -4
  12. semantic_link_labs-0.9.6/src/sempy_labs/_dashboards.py +60 -0
  13. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_data_pipelines.py +5 -31
  14. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_dataflows.py +2 -2
  15. semantic_link_labs-0.9.6/src/sempy_labs/_dax_query_view.py +55 -0
  16. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_delta_analyzer.py +16 -14
  17. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_environments.py +28 -49
  18. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_eventhouses.py +27 -53
  19. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_eventstreams.py +16 -34
  20. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_external_data_shares.py +4 -10
  21. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_gateways.py +4 -4
  22. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_generate_semantic_model.py +2 -2
  23. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_git.py +90 -1
  24. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_graphQL.py +8 -21
  25. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_helper_functions.py +440 -91
  26. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_kql_databases.py +24 -35
  27. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_kql_querysets.py +15 -32
  28. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_list_functions.py +17 -192
  29. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_managed_private_endpoints.py +9 -2
  30. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_mirrored_databases.py +17 -49
  31. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_ml_experiments.py +6 -31
  32. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_ml_models.py +4 -28
  33. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_model_bpa.py +4 -11
  34. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_model_bpa_bulk.py +23 -27
  35. semantic_link_labs-0.9.6/src/sempy_labs/_mounted_data_factories.py +119 -0
  36. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_notebooks.py +16 -26
  37. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_one_lake_integration.py +2 -1
  38. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_semantic_models.py +20 -0
  39. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_sql.py +13 -8
  40. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_sqldatabase.py +61 -100
  41. semantic_link_labs-0.9.6/src/sempy_labs/_utils.py +42 -0
  42. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_vertipaq.py +25 -13
  43. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_warehouses.py +19 -20
  44. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_workloads.py +23 -9
  45. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_workspace_identity.py +6 -0
  46. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_workspaces.py +55 -7
  47. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/admin/__init__.py +21 -1
  48. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/admin/_apps.py +1 -1
  49. semantic_link_labs-0.9.6/src/sempy_labs/admin/_artifacts.py +62 -0
  50. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/admin/_basic_functions.py +3 -54
  51. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/admin/_capacities.py +61 -0
  52. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/admin/_reports.py +74 -0
  53. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/admin/_scanner.py +2 -2
  54. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/admin/_shared.py +4 -2
  55. semantic_link_labs-0.9.6/src/sempy_labs/admin/_users.py +133 -0
  56. semantic_link_labs-0.9.6/src/sempy_labs/admin/_workspaces.py +148 -0
  57. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/directlake/_directlake_schema_compare.py +2 -1
  58. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/directlake/_directlake_schema_sync.py +65 -19
  59. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/directlake/_dl_helper.py +0 -6
  60. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/directlake/_generate_shared_expression.py +10 -11
  61. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/directlake/_guardrails.py +2 -1
  62. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py +12 -25
  63. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/directlake/_update_directlake_partition_entity.py +11 -3
  64. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/lakehouse/__init__.py +2 -0
  65. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/lakehouse/_lakehouse.py +6 -7
  66. semantic_link_labs-0.9.6/src/sempy_labs/lakehouse/_shortcuts.py +401 -0
  67. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/migration/_migration_validation.py +0 -4
  68. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_download_report.py +4 -6
  69. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_generate_report.py +15 -23
  70. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_report_bpa.py +12 -19
  71. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_report_functions.py +2 -1
  72. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_report_rebind.py +8 -6
  73. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/tom/_model.py +34 -16
  74. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/tests/test_tom.py +2 -3
  75. semantic_link_labs-0.9.4/src/sempy_labs/lakehouse/_shortcuts.py +0 -260
  76. semantic_link_labs-0.9.4/tests/test_shortcuts.py +0 -57
  77. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  78. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  79. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/.github/ISSUE_TEMPLATE/issue--question---advice-needed.md +0 -0
  80. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/.github/workflows/build.yaml +0 -0
  81. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/.github/workflows/codeql.yaml +0 -0
  82. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/.gitignore +0 -0
  83. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/.readthedocs.yaml +0 -0
  84. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/.vscode/settings.json +0 -0
  85. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/CODE_OF_CONDUCT.md +0 -0
  86. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/LICENSE +0 -0
  87. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/SECURITY.md +0 -0
  88. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/SUPPORT.md +0 -0
  89. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/docs/Makefile +0 -0
  90. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/docs/make.bat +0 -0
  91. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/docs/requirements.txt +0 -0
  92. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/docs/source/index.rst +0 -0
  93. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/docs/source/modules.rst +0 -0
  94. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/environment.yml +0 -0
  95. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/notebooks/Best Practice Analyzer Report.ipynb +0 -0
  96. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/notebooks/Capacity Migration.ipynb +0 -0
  97. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/notebooks/Delta Analyzer.ipynb +0 -0
  98. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/notebooks/Migration to Direct Lake.ipynb +0 -0
  99. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/notebooks/Model Optimization.ipynb +0 -0
  100. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/notebooks/Query Scale Out.ipynb +0 -0
  101. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/notebooks/Report Analysis.ipynb +0 -0
  102. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/notebooks/SQL.ipynb +0 -0
  103. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/notebooks/Semantic Model Management.ipynb +0 -0
  104. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/notebooks/Semantic Model Refresh.ipynb +0 -0
  105. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/notebooks/Tabular Object Model.ipynb +0 -0
  106. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/setup.cfg +0 -0
  107. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/semantic_link_labs.egg-info/dependency_links.txt +0 -0
  108. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/semantic_link_labs.egg-info/requires.txt +0 -0
  109. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/semantic_link_labs.egg-info/top_level.txt +0 -0
  110. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_ai.py +0 -0
  111. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_authentication.py +0 -0
  112. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_am-ET.po +0 -0
  113. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_ar-AE.po +0 -0
  114. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_bg-BG.po +0 -0
  115. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_ca-ES.po +0 -0
  116. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_cs-CZ.po +0 -0
  117. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_da-DK.po +0 -0
  118. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_de-DE.po +0 -0
  119. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_el-GR.po +0 -0
  120. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_es-ES.po +0 -0
  121. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_fa-IR.po +0 -0
  122. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_fi-FI.po +0 -0
  123. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_fr-FR.po +0 -0
  124. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_ga-IE.po +0 -0
  125. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_he-IL.po +0 -0
  126. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_hi-IN.po +0 -0
  127. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_hu-HU.po +0 -0
  128. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_id-ID.po +0 -0
  129. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_is-IS.po +0 -0
  130. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_it-IT.po +0 -0
  131. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_ja-JP.po +0 -0
  132. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_ko-KR.po +0 -0
  133. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_mt-MT.po +0 -0
  134. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_nl-NL.po +0 -0
  135. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_pl-PL.po +0 -0
  136. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_pt-BR.po +0 -0
  137. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_pt-PT.po +0 -0
  138. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_ro-RO.po +0 -0
  139. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_ru-RU.po +0 -0
  140. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_sk-SK.po +0 -0
  141. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_sl-SL.po +0 -0
  142. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_sv-SE.po +0 -0
  143. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_ta-IN.po +0 -0
  144. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_te-IN.po +0 -0
  145. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_th-TH.po +0 -0
  146. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_tr-TR.po +0 -0
  147. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_uk-UA.po +0 -0
  148. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_zh-CN.po +0 -0
  149. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po +0 -0
  150. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_clear_cache.py +0 -0
  151. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_dax.py +0 -0
  152. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_deployment_pipelines.py +0 -0
  153. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_documentation.py +0 -0
  154. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_icons.py +0 -0
  155. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_job_scheduler.py +0 -0
  156. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_mirrored_warehouses.py +0 -0
  157. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_model_auto_build.py +0 -0
  158. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_model_bpa_rules.py +0 -0
  159. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_model_dependencies.py +0 -0
  160. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_query_scale_out.py +0 -0
  161. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_refresh_semantic_model.py +0 -0
  162. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_spark.py +0 -0
  163. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/_translations.py +0 -0
  164. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/admin/_activities.py +0 -0
  165. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/admin/_datasets.py +0 -0
  166. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/admin/_domains.py +0 -0
  167. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/admin/_external_data_share.py +0 -0
  168. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/admin/_git.py +0 -0
  169. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/admin/_items.py +0 -0
  170. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/admin/_tenant.py +0 -0
  171. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/directlake/__init__.py +0 -0
  172. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/directlake/_get_directlake_lakehouse.py +0 -0
  173. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/directlake/_get_shared_expression.py +0 -0
  174. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/directlake/_list_directlake_model_calc_tables.py +0 -0
  175. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/directlake/_show_unsupported_directlake_objects.py +0 -0
  176. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/directlake/_warm_cache.py +0 -0
  177. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/graph/__init__.py +0 -0
  178. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/graph/_groups.py +0 -0
  179. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/graph/_teams.py +0 -0
  180. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/graph/_users.py +0 -0
  181. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/lakehouse/_get_lakehouse_columns.py +0 -0
  182. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/lakehouse/_get_lakehouse_tables.py +0 -0
  183. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/migration/__init__.py +0 -0
  184. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/migration/_create_pqt_file.py +0 -0
  185. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/migration/_direct_lake_to_import.py +0 -0
  186. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/migration/_migrate_calctables_to_lakehouse.py +0 -0
  187. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/migration/_migrate_calctables_to_semantic_model.py +0 -0
  188. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/migration/_migrate_model_objects_to_semantic_model.py +0 -0
  189. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py +0 -0
  190. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/migration/_refresh_calc_tables.py +0 -0
  191. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_BPAReportTemplate.json +0 -0
  192. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/__init__.py +0 -0
  193. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/.pbi/localSettings.json +0 -0
  194. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/.platform +0 -0
  195. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/StaticResources/SharedResources/BaseThemes/CY24SU06.json +0 -0
  196. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/page.json +0 -0
  197. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/1b08bce3bebabb0a27a8/visual.json +0 -0
  198. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/2f22ddb70c301693c165/visual.json +0 -0
  199. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/3b1182230aa6c600b43a/visual.json +0 -0
  200. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/58577ba6380c69891500/visual.json +0 -0
  201. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/a2a8fa5028b3b776c96c/visual.json +0 -0
  202. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/adfd47ef30652707b987/visual.json +0 -0
  203. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/b6a80ee459e716e170b1/visual.json +0 -0
  204. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/ce3130a721c020cc3d81/visual.json +0 -0
  205. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/page.json +0 -0
  206. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/visuals/66e60dfb526437cd78d1/visual.json +0 -0
  207. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/page.json +0 -0
  208. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/07deb8bce824e1be37d7/visual.json +0 -0
  209. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0b1c68838818b32ad03b/visual.json +0 -0
  210. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0c171de9d2683d10b930/visual.json +0 -0
  211. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0efa01be0510e40a645e/visual.json +0 -0
  212. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/6bf2f0eb830ab53cc668/visual.json +0 -0
  213. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/88d8141cb8500b60030c/visual.json +0 -0
  214. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/a753273590beed656a03/visual.json +0 -0
  215. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/b8fdc82cddd61ac447bc/visual.json +0 -0
  216. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json +0 -0
  217. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/visuals/ce8532a7e25020271077/visual.json +0 -0
  218. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/pages/pages.json +0 -0
  219. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/report.json +0 -0
  220. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition/version.json +0 -0
  221. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_bpareporttemplate/definition.pbir +0 -0
  222. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_export_report.py +0 -0
  223. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_paginated.py +0 -0
  224. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_report_bpa_rules.py +0 -0
  225. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_report_helper.py +0 -0
  226. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_report_list_functions.py +0 -0
  227. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/report/_reportwrapper.py +0 -0
  228. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/src/sempy_labs/tom/__init__.py +0 -0
  229. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/tests/__init__.py +0 -0
  230. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.6}/tests/test_friendly_case.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: semantic-link-labs
3
- Version: 0.9.4
3
+ Version: 0.9.6
4
4
  Summary: Semantic Link Labs for Microsoft Fabric
5
5
  Author: Microsoft Corporation
6
6
  License: MIT License
@@ -26,7 +26,7 @@ Requires-Dist: pytest>=8.2.1; extra == "test"
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.9.4&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
29
+ [![Read The Docs](https://readthedocs.org/projects/semantic-link-labs/badge/?version=0.9.6&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
 
@@ -34,6 +34,9 @@ Requires-Dist: pytest>=8.2.1; extra == "test"
34
34
  [Read the documentation on ReadTheDocs!](https://semantic-link-labs.readthedocs.io/en/stable/)
35
35
  ---
36
36
 
37
+ [Read the Wiki!](https://github.com/microsoft/semantic-link-labs/wiki)
38
+ ---
39
+
37
40
  Semantic Link Labs is a Python library designed for use in [Microsoft Fabric notebooks](https://learn.microsoft.com/fabric/data-engineering/how-to-use-notebook). This library extends the capabilities of [Semantic Link](https://learn.microsoft.com/fabric/data-science/semantic-link-overview) offering additional functionalities to seamlessly integrate and work alongside it. The goal of Semantic Link Labs is to simplify technical processes, empowering people to focus on higher level activities and allowing tasks that are better suited for machines to be efficiently handled without human intervention.
38
41
 
39
42
  If you encounter any issues, please [raise a bug](https://github.com/microsoft/semantic-link-labs/issues/new?assignees=&labels=&projects=&template=bug_report.md&title=).
@@ -145,6 +148,8 @@ An even better way to ensure the semantic-link-labs library is available in your
145
148
  2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
146
149
 
147
150
  ## Version History
151
+ * [0.9.6](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.6) (March 12, 2025)
152
+ * [0.9.5](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.5) (March 7, 2025)
148
153
  * [0.9.4](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.4) (February 27, 2025)
149
154
  * [0.9.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.3) (February 13, 2025)
150
155
  * [0.9.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.2) (February 5, 2025)
@@ -299,6 +304,18 @@ python -m build
299
304
  4. Enter details into the description.
300
305
  5. Click 'Create'.
301
306
 
307
+ #### Code Formatting
308
+ We use [black](github.com/psf/black) formatting as a code formatting standard. Make sure to run 'black' formatting on your code before submitting a pull request.
309
+
310
+ Run this code to install black
311
+ ```cli
312
+ pip install black
313
+ ```
314
+
315
+ Run this code to format your code using black
316
+ ```cli
317
+ python -m black src
318
+ ```
302
319
 
303
320
  ## Trademarks
304
321
 
@@ -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.9.4&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
4
+ [![Read The Docs](https://readthedocs.org/projects/semantic-link-labs/badge/?version=0.9.6&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
 
@@ -9,6 +9,9 @@
9
9
  [Read the documentation on ReadTheDocs!](https://semantic-link-labs.readthedocs.io/en/stable/)
10
10
  ---
11
11
 
12
+ [Read the Wiki!](https://github.com/microsoft/semantic-link-labs/wiki)
13
+ ---
14
+
12
15
  Semantic Link Labs is a Python library designed for use in [Microsoft Fabric notebooks](https://learn.microsoft.com/fabric/data-engineering/how-to-use-notebook). This library extends the capabilities of [Semantic Link](https://learn.microsoft.com/fabric/data-science/semantic-link-overview) offering additional functionalities to seamlessly integrate and work alongside it. The goal of Semantic Link Labs is to simplify technical processes, empowering people to focus on higher level activities and allowing tasks that are better suited for machines to be efficiently handled without human intervention.
13
16
 
14
17
  If you encounter any issues, please [raise a bug](https://github.com/microsoft/semantic-link-labs/issues/new?assignees=&labels=&projects=&template=bug_report.md&title=).
@@ -120,6 +123,8 @@ An even better way to ensure the semantic-link-labs library is available in your
120
123
  2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
121
124
 
122
125
  ## Version History
126
+ * [0.9.6](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.6) (March 12, 2025)
127
+ * [0.9.5](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.5) (March 7, 2025)
123
128
  * [0.9.4](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.4) (February 27, 2025)
124
129
  * [0.9.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.3) (February 13, 2025)
125
130
  * [0.9.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.2) (February 5, 2025)
@@ -274,6 +279,18 @@ python -m build
274
279
  4. Enter details into the description.
275
280
  5. Click 'Create'.
276
281
 
282
+ #### Code Formatting
283
+ We use [black](github.com/psf/black) formatting as a code formatting standard. Make sure to run 'black' formatting on your code before submitting a pull request.
284
+
285
+ Run this code to install black
286
+ ```cli
287
+ pip install black
288
+ ```
289
+
290
+ Run this code to format your code using black
291
+ ```cli
292
+ python -m black src
293
+ ```
277
294
 
278
295
  ## Trademarks
279
296
 
@@ -13,7 +13,7 @@ sys.path.insert(0, os.path.abspath('../../src/'))
13
13
  project = 'semantic-link-labs'
14
14
  copyright = '2024, Microsoft and community'
15
15
  author = 'Microsoft and community'
16
- release = '0.9.4'
16
+ release = '0.9.6'
17
17
 
18
18
  # -- General configuration ---------------------------------------------------
19
19
  # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
@@ -144,7 +144,7 @@
144
144
  " key_vault_client_secret=key_vault_client_secret):\n",
145
145
  "\n",
146
146
  " labs.suspend_fabric_capacity(\n",
147
- " capacity_name='',\n",
147
+ " capacity='',\n",
148
148
  " azure_subscription_id='',\n",
149
149
  " resource_group='',\n",
150
150
  " )"
@@ -7,7 +7,7 @@ name="semantic-link-labs"
7
7
  authors = [
8
8
  { name = "Microsoft Corporation" },
9
9
  ]
10
- version="0.9.4"
10
+ version="0.9.6"
11
11
  description="Semantic Link Labs for Microsoft Fabric"
12
12
  readme="README.md"
13
13
  requires-python=">=3.10,<3.12"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: semantic-link-labs
3
- Version: 0.9.4
3
+ Version: 0.9.6
4
4
  Summary: Semantic Link Labs for Microsoft Fabric
5
5
  Author: Microsoft Corporation
6
6
  License: MIT License
@@ -26,7 +26,7 @@ Requires-Dist: pytest>=8.2.1; extra == "test"
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.9.4&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
29
+ [![Read The Docs](https://readthedocs.org/projects/semantic-link-labs/badge/?version=0.9.6&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
 
@@ -34,6 +34,9 @@ Requires-Dist: pytest>=8.2.1; extra == "test"
34
34
  [Read the documentation on ReadTheDocs!](https://semantic-link-labs.readthedocs.io/en/stable/)
35
35
  ---
36
36
 
37
+ [Read the Wiki!](https://github.com/microsoft/semantic-link-labs/wiki)
38
+ ---
39
+
37
40
  Semantic Link Labs is a Python library designed for use in [Microsoft Fabric notebooks](https://learn.microsoft.com/fabric/data-engineering/how-to-use-notebook). This library extends the capabilities of [Semantic Link](https://learn.microsoft.com/fabric/data-science/semantic-link-overview) offering additional functionalities to seamlessly integrate and work alongside it. The goal of Semantic Link Labs is to simplify technical processes, empowering people to focus on higher level activities and allowing tasks that are better suited for machines to be efficiently handled without human intervention.
38
41
 
39
42
  If you encounter any issues, please [raise a bug](https://github.com/microsoft/semantic-link-labs/issues/new?assignees=&labels=&projects=&template=bug_report.md&title=).
@@ -145,6 +148,8 @@ An even better way to ensure the semantic-link-labs library is available in your
145
148
  2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
146
149
 
147
150
  ## Version History
151
+ * [0.9.6](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.6) (March 12, 2025)
152
+ * [0.9.5](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.5) (March 7, 2025)
148
153
  * [0.9.4](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.4) (February 27, 2025)
149
154
  * [0.9.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.3) (February 13, 2025)
150
155
  * [0.9.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.2) (February 5, 2025)
@@ -299,6 +304,18 @@ python -m build
299
304
  4. Enter details into the description.
300
305
  5. Click 'Create'.
301
306
 
307
+ #### Code Formatting
308
+ We use [black](github.com/psf/black) formatting as a code formatting standard. Make sure to run 'black' formatting on your code before submitting a pull request.
309
+
310
+ Run this code to install black
311
+ ```cli
312
+ pip install black
313
+ ```
314
+
315
+ Run this code to format your code using black
316
+ ```cli
317
+ python -m black src
318
+ ```
302
319
 
303
320
  ## Trademarks
304
321
 
@@ -43,9 +43,11 @@ src/sempy_labs/_capacities.py
43
43
  src/sempy_labs/_capacity_migration.py
44
44
  src/sempy_labs/_clear_cache.py
45
45
  src/sempy_labs/_connections.py
46
+ src/sempy_labs/_dashboards.py
46
47
  src/sempy_labs/_data_pipelines.py
47
48
  src/sempy_labs/_dataflows.py
48
49
  src/sempy_labs/_dax.py
50
+ src/sempy_labs/_dax_query_view.py
49
51
  src/sempy_labs/_delta_analyzer.py
50
52
  src/sempy_labs/_deployment_pipelines.py
51
53
  src/sempy_labs/_documentation.py
@@ -73,6 +75,7 @@ src/sempy_labs/_model_bpa.py
73
75
  src/sempy_labs/_model_bpa_bulk.py
74
76
  src/sempy_labs/_model_bpa_rules.py
75
77
  src/sempy_labs/_model_dependencies.py
78
+ src/sempy_labs/_mounted_data_factories.py
76
79
  src/sempy_labs/_notebooks.py
77
80
  src/sempy_labs/_one_lake_integration.py
78
81
  src/sempy_labs/_query_scale_out.py
@@ -82,6 +85,7 @@ src/sempy_labs/_spark.py
82
85
  src/sempy_labs/_sql.py
83
86
  src/sempy_labs/_sqldatabase.py
84
87
  src/sempy_labs/_translations.py
88
+ src/sempy_labs/_utils.py
85
89
  src/sempy_labs/_vertipaq.py
86
90
  src/sempy_labs/_warehouses.py
87
91
  src/sempy_labs/_workloads.py
@@ -128,6 +132,7 @@ src/sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po
128
132
  src/sempy_labs/admin/__init__.py
129
133
  src/sempy_labs/admin/_activities.py
130
134
  src/sempy_labs/admin/_apps.py
135
+ src/sempy_labs/admin/_artifacts.py
131
136
  src/sempy_labs/admin/_basic_functions.py
132
137
  src/sempy_labs/admin/_capacities.py
133
138
  src/sempy_labs/admin/_datasets.py
@@ -139,6 +144,8 @@ src/sempy_labs/admin/_reports.py
139
144
  src/sempy_labs/admin/_scanner.py
140
145
  src/sempy_labs/admin/_shared.py
141
146
  src/sempy_labs/admin/_tenant.py
147
+ src/sempy_labs/admin/_users.py
148
+ src/sempy_labs/admin/_workspaces.py
142
149
  src/sempy_labs/directlake/__init__.py
143
150
  src/sempy_labs/directlake/_directlake_schema_compare.py
144
151
  src/sempy_labs/directlake/_directlake_schema_sync.py
@@ -216,5 +223,4 @@ src/sempy_labs/tom/__init__.py
216
223
  src/sempy_labs/tom/_model.py
217
224
  tests/__init__.py
218
225
  tests/test_friendly_case.py
219
- tests/test_shortcuts.py
220
226
  tests/test_tom.py
@@ -1,6 +1,16 @@
1
+ from sempy_labs._dax_query_view import (
2
+ generate_dax_query_view_url,
3
+ )
4
+ from sempy_labs._mounted_data_factories import (
5
+ list_mounted_data_factories,
6
+ get_mounted_data_factory_definition,
7
+ delete_mounted_data_factory,
8
+ )
9
+
1
10
  from sempy_labs._semantic_models import (
2
11
  get_semantic_model_refresh_schedule,
3
12
  enable_semantic_model_scheduled_refresh,
13
+ delete_semantic_model,
4
14
  )
5
15
  from sempy_labs._graphQL import (
6
16
  list_graphql_apis,
@@ -99,7 +109,7 @@ from sempy_labs._kql_querysets import (
99
109
  )
100
110
  from sempy_labs._kql_databases import (
101
111
  list_kql_databases,
102
- create_kql_database,
112
+ # create_kql_database,
103
113
  delete_kql_database,
104
114
  )
105
115
  from sempy_labs._mirrored_warehouses import list_mirrored_warehouses
@@ -142,6 +152,7 @@ from sempy_labs._capacities import (
142
152
  create_or_update_resource_group,
143
153
  list_resource_groups,
144
154
  get_resource_group,
155
+ list_capacities,
145
156
  )
146
157
  from sempy_labs._spark import (
147
158
  get_spark_settings,
@@ -159,6 +170,7 @@ from sempy_labs._workspaces import (
159
170
  assign_workspace_to_capacity,
160
171
  unassign_workspace_from_capacity,
161
172
  list_workspace_role_assignments,
173
+ delete_workspace,
162
174
  )
163
175
  from sempy_labs._notebooks import (
164
176
  get_notebook_definition,
@@ -174,6 +186,9 @@ from sempy_labs._sql import (
174
186
  from sempy_labs._sqldatabase import (
175
187
  get_sql_database_columns,
176
188
  get_sql_database_tables,
189
+ create_sql_database,
190
+ delete_sql_database,
191
+ list_sql_databases,
177
192
  )
178
193
  from sempy_labs._workspace_identity import (
179
194
  provision_workspace_identity,
@@ -193,6 +208,8 @@ from sempy_labs._git import (
193
208
  connect_workspace_to_azure_dev_ops,
194
209
  connect_workspace_to_github,
195
210
  disconnect_workspace_from_git,
211
+ get_my_git_credentials,
212
+ update_my_git_credentials,
196
213
  )
197
214
  from sempy_labs._dataflows import (
198
215
  list_dataflow_storage_accounts,
@@ -226,6 +243,9 @@ from sempy_labs._generate_semantic_model import (
226
243
  update_semantic_model_from_bim,
227
244
  get_semantic_model_definition,
228
245
  )
246
+ from sempy_labs._dashboards import (
247
+ list_dashboards,
248
+ )
229
249
  from sempy_labs._list_functions import (
230
250
  list_reports_using_semantic_model,
231
251
  list_semantic_model_object_report_usage,
@@ -233,8 +253,6 @@ from sempy_labs._list_functions import (
233
253
  list_semantic_model_objects,
234
254
  list_shortcuts,
235
255
  get_object_level_security,
236
- list_capacities,
237
- list_dashboards,
238
256
  list_datamarts,
239
257
  list_lakehouses,
240
258
  list_sql_endpoints,
@@ -425,7 +443,7 @@ __all__ = [
425
443
  "convert_to_friendly_case",
426
444
  "list_mirrored_warehouses",
427
445
  "list_kql_databases",
428
- "create_kql_database",
446
+ # "create_kql_database",
429
447
  "delete_kql_database",
430
448
  "create_eventhouse",
431
449
  "list_eventhouses",
@@ -525,4 +543,15 @@ __all__ = [
525
543
  "create_item_schedule_cron",
526
544
  "create_item_schedule_daily",
527
545
  "create_item_schedule_weekly",
546
+ "get_my_git_credentials",
547
+ "update_my_git_credentials",
548
+ "list_mounted_data_factories",
549
+ "get_mounted_data_factory_definition",
550
+ "delete_mounted_data_factory",
551
+ "generate_dax_query_view_url",
552
+ "delete_semantic_model",
553
+ "delete_workspace",
554
+ "create_sql_database",
555
+ "delete_sql_database",
556
+ "list_sql_databases",
528
557
  ]
@@ -242,7 +242,7 @@ def list_vcores() -> pd.DataFrame:
242
242
 
243
243
  def get_capacity_resource_governance(capacity_name: str):
244
244
 
245
- dfC = fabric.list_capacities()
245
+ dfC = list_capacities()
246
246
  dfC_filt = dfC[dfC["Display Name"] == capacity_name]
247
247
  capacity_id = dfC_filt["Id"].iloc[0].upper()
248
248
 
@@ -256,7 +256,6 @@ def suspend_fabric_capacity(
256
256
  capacity_name: str,
257
257
  azure_subscription_id: str,
258
258
  resource_group: str,
259
- **kwargs,
260
259
  ):
261
260
  """
262
261
  This function suspends a Fabric capacity.
@@ -275,26 +274,9 @@ def suspend_fabric_capacity(
275
274
  The name of the Azure resource group.
276
275
  """
277
276
 
278
- token_provider = auth.token_provider.get()
279
- if token_provider is None:
280
- token_provider = ServicePrincipalTokenProvider.from_azure_key_vault(
281
- key_vault_uri=kwargs["key_vault_uri"],
282
- key_vault_tenant_id=kwargs["key_vault_tenant_id"],
283
- key_vault_client_id=kwargs["key_vault_client_id"],
284
- key_vault_client_secret=kwargs["key_vault_client_secret"],
285
- )
286
- print(
287
- f"{icons.info} Please use the 'token_provider' parameter instead of the key vault parameters within this function as the key vault parameters have been deprecated."
288
- )
289
-
290
- headers = _get_headers(token_provider, audience="azure")
291
-
292
277
  url = f"https://management.azure.com/subscriptions/{azure_subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.Fabric/capacities/{capacity_name}/suspend?api-version={icons.azure_api_version}"
293
278
 
294
- response = requests.post(url, headers=headers)
295
-
296
- if response.status_code != 202:
297
- raise FabricHTTPException(response)
279
+ _base_api(request=url, client="azure", method="post", status_codes=202)
298
280
 
299
281
  print(f"{icons.green_dot} The '{capacity_name}' capacity has been suspended.")
300
282
 
@@ -304,7 +286,6 @@ def resume_fabric_capacity(
304
286
  capacity_name: str,
305
287
  azure_subscription_id: str,
306
288
  resource_group: str,
307
- **kwargs,
308
289
  ):
309
290
  """
310
291
  This function resumes a Fabric capacity.
@@ -323,26 +304,9 @@ def resume_fabric_capacity(
323
304
  The name of the Azure resource group.
324
305
  """
325
306
 
326
- token_provider = auth.token_provider.get()
327
- if token_provider is None:
328
- token_provider = ServicePrincipalTokenProvider.from_azure_key_vault(
329
- key_vault_uri=kwargs["key_vault_uri"],
330
- key_vault_tenant_id=kwargs["key_vault_tenant_id"],
331
- key_vault_client_id=kwargs["key_vault_client_id"],
332
- key_vault_client_secret=kwargs["key_vault_client_secret"],
333
- )
334
- print(
335
- f"{icons.info} Please use the 'token_provider' parameter instead of the key vault parameters within this function as the key vault parameters have been deprecated."
336
- )
337
-
338
- headers = _get_headers(token_provider, audience="azure")
339
-
340
307
  url = f"https://management.azure.com/subscriptions/{azure_subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.Fabric/capacities/{capacity_name}/resume?api-version={icons.azure_api_version}"
341
308
 
342
- response = requests.post(url, headers=headers)
343
-
344
- if response.status_code != 202:
345
- raise FabricHTTPException(response)
309
+ _base_api(request=url, client="azure", method="post", status_codes=202)
346
310
 
347
311
  print(f"{icons.green_dot} The '{capacity_name}' capacity has been resumed.")
348
312
 
@@ -352,7 +316,6 @@ def delete_embedded_capacity(
352
316
  capacity_name: str,
353
317
  azure_subscription_id: str,
354
318
  resource_group: str,
355
- **kwargs,
356
319
  ):
357
320
  """
358
321
  This function deletes a Power BI Embedded capacity.
@@ -369,53 +332,36 @@ def delete_embedded_capacity(
369
332
  The name of the Azure resource group.
370
333
  """
371
334
 
372
- token_provider = auth.token_provider.get()
373
- if token_provider is None:
374
- token_provider = ServicePrincipalTokenProvider.from_azure_key_vault(
375
- key_vault_uri=kwargs["key_vault_uri"],
376
- key_vault_tenant_id=kwargs["key_vault_tenant_id"],
377
- key_vault_client_id=kwargs["key_vault_client_id"],
378
- key_vault_client_secret=kwargs["key_vault_client_secret"],
379
- )
380
- print(
381
- f"{icons.info} Please use the 'token_provider' parameter instead of the key vault parameters within this function as the key vault parameters have been deprecated."
382
- )
383
-
384
- headers = _get_headers(token_provider, audience="azure")
385
-
386
335
  url = f"https://management.azure.com/subscriptions/{azure_subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.PowerBIDedicated/capacities/{capacity_name}?api-version={icons.azure_api_version}"
387
336
 
388
- response = requests.delete(url, headers=headers)
389
-
390
- if response.status_code not in [200, 202]:
391
- raise FabricHTTPException(response)
337
+ _base_api(request=url, client="azure", method="delete", status_codes=[200, 202])
392
338
 
393
339
  print(f"{icons.green_dot} The '{capacity_name}' capacity has been deleted.")
394
340
 
395
341
 
396
342
  @log
397
- def delete_premium_capacity(capacity_name: str):
343
+ def delete_premium_capacity(capacity: str | UUID, **kwargs):
398
344
  """
399
345
  This function deletes a Power BI Premium capacity.
400
346
 
401
347
  Parameters
402
348
  ----------
403
- capacity_name : str
404
- Name of the Fabric capacity.
349
+ capacity : str | uuid.UUID
350
+ Name or ID of the Fabric capacity.
405
351
  """
352
+ from sempy_labs._helper_functions import resolve_capacity_id
406
353
 
407
- dfC = fabric.list_capacities()
408
-
409
- dfC_filt = dfC[dfC["Display Name"] == capacity_name]
410
- if len(dfC_filt) == 0:
411
- raise ValueError(
412
- f"{icons.red_dot} The '{capacity_name}' capacity does not exist."
354
+ if "capacity_name" in kwargs:
355
+ capacity = kwargs["capacity_name"]
356
+ print(
357
+ f"{icons.warning} The 'capacity_name' parameter is deprecated. Please use 'capacity' instead."
413
358
  )
414
- capacity_id = dfC_filt["Id"].iloc[0].upper()
359
+
360
+ capacity_id = resolve_capacity_id(capacity=capacity).upper()
415
361
 
416
362
  _base_api(request=f"capacities/{capacity_id}", method="delete", status_codes=204)
417
363
 
418
- print(f"{icons.green_dot} The '{capacity_name}' capacity has been deleted.")
364
+ print(f"{icons.green_dot} The '{capacity}' capacity has been deleted.")
419
365
 
420
366
 
421
367
  @log
@@ -423,7 +369,6 @@ def delete_fabric_capacity(
423
369
  capacity_name: str,
424
370
  azure_subscription_id: str,
425
371
  resource_group: str,
426
- **kwargs,
427
372
  ):
428
373
  """
429
374
  This function deletes a Fabric capacity.
@@ -442,26 +387,9 @@ def delete_fabric_capacity(
442
387
  The name of the Azure resource group.
443
388
  """
444
389
 
445
- token_provider = auth.token_provider.get()
446
- if token_provider is None:
447
- token_provider = ServicePrincipalTokenProvider.from_azure_key_vault(
448
- key_vault_uri=kwargs["key_vault_uri"],
449
- key_vault_tenant_id=kwargs["key_vault_tenant_id"],
450
- key_vault_client_id=kwargs["key_vault_client_id"],
451
- key_vault_client_secret=kwargs["key_vault_client_secret"],
452
- )
453
- print(
454
- f"{icons.info} Please use the 'token_provider' parameter instead of the key vault parameters within this function as the key vault parameters have been deprecated."
455
- )
456
-
457
- headers = _get_headers(token_provider, audience="azure")
458
-
459
390
  url = f"https://management.azure.com/subscriptions/{azure_subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.Fabric/capacities/{capacity_name}?api-version={icons.azure_api_version}"
460
391
 
461
- response = requests.delete(url, headers=headers)
462
-
463
- if response.status_code != 202:
464
- raise FabricHTTPException(response)
392
+ _base_api(request=url, client="azure", method="delete", status_codes=202)
465
393
 
466
394
  print(f"{icons.green_dot} The '{capacity_name}' capacity has been deleted.")
467
395
 
@@ -474,7 +402,6 @@ def update_fabric_capacity(
474
402
  sku: Optional[str] = None,
475
403
  admin_members: Optional[str | List[str]] = None,
476
404
  tags: Optional[dict] = None,
477
- **kwargs,
478
405
  ):
479
406
  """
480
407
  This function updates a Fabric capacity's properties.
@@ -499,25 +426,9 @@ def update_fabric_capacity(
499
426
  Tag(s) to add to the capacity. Example: {'tagName': 'tagValue'}.
500
427
  """
501
428
 
502
- token_provider = auth.token_provider.get()
503
- if token_provider is None:
504
- token_provider = ServicePrincipalTokenProvider.from_azure_key_vault(
505
- key_vault_uri=kwargs["key_vault_uri"],
506
- key_vault_tenant_id=kwargs["key_vault_tenant_id"],
507
- key_vault_client_id=kwargs["key_vault_client_id"],
508
- key_vault_client_secret=kwargs["key_vault_client_secret"],
509
- )
510
- print(
511
- f"{icons.info} Please use the 'token_provider' parameter instead of the key vault parameters within this function as the key vault parameters have been deprecated."
512
- )
513
-
514
- headers = _get_headers(token_provider, audience="azure")
515
-
516
429
  url = f"https://management.azure.com/subscriptions/{azure_subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.Fabric/capacities/{capacity_name}?api-version={icons.azure_api_version}"
517
430
 
518
- get_response = requests.get(url, headers=headers)
519
- if get_response.status_code != 200:
520
- raise FabricHTTPException(get_response)
431
+ get_response = _base_api(request=url, client="azure")
521
432
 
522
433
  get_json = get_response.json()
523
434
  current_sku = get_json.get("sku", {}).get("name")
@@ -549,10 +460,9 @@ def update_fabric_capacity(
549
460
  return
550
461
 
551
462
  payload = _add_sll_tag(payload, tags)
552
- response = requests.patch(url, headers=headers, json=payload)
553
-
554
- if response.status_code != 202:
555
- raise FabricHTTPException(response)
463
+ _base_api(
464
+ request=url, client="azure", method="patch", payload=payload, status_codes=202
465
+ )
556
466
 
557
467
  print(
558
468
  f"{icons.green_dot} The '{capacity_name}' capacity has been updated accordingly."
@@ -588,28 +498,13 @@ def check_fabric_capacity_name_availablility(
588
498
  An indication as to whether the Fabric capacity name is available or not.
589
499
  """
590
500
 
591
- token_provider = auth.token_provider.get()
592
- if token_provider is None:
593
- token_provider = ServicePrincipalTokenProvider.from_azure_key_vault(
594
- key_vault_uri=kwargs["key_vault_uri"],
595
- key_vault_tenant_id=kwargs["key_vault_tenant_id"],
596
- key_vault_client_id=kwargs["key_vault_client_id"],
597
- key_vault_client_secret=kwargs["key_vault_client_secret"],
598
- )
599
- print(
600
- f"{icons.info} Please use the 'token_provider' parameter instead of the key vault parameters within this function as the key vault parameters have been deprecated."
601
- )
602
-
603
- headers = _get_headers(token_provider, audience="azure")
604
-
605
501
  payload = {"name": capacity_name, "type": "Microsoft.Fabric/capacities"}
606
502
 
607
503
  url = f"https://management.azure.com/subscriptions/{azure_subscription_id}/providers/Microsoft.Fabric/locations/{region}/checkNameAvailability?api-version={icons.azure_api_version}"
608
504
 
609
- response = requests.post(url, headers=headers, json=payload)
610
-
611
- if response.status_code != 202:
612
- raise FabricHTTPException(response)
505
+ response = _base_api(
506
+ request=url, client="azure", method="post", payload=payload, status_codes=202
507
+ )
613
508
 
614
509
  return bool(response.json().get("nameAvailable"))
615
510
 
@@ -1236,3 +1131,39 @@ def get_resource_group(azure_subscription_id: str, resource_group: str) -> pd.Da
1236
1131
  }
1237
1132
 
1238
1133
  return pd.DataFrame(new_data, index=[0])
1134
+
1135
+
1136
+ def list_capacities() -> pd.DataFrame:
1137
+ """
1138
+ Shows the capacities and their properties.
1139
+
1140
+ Returns
1141
+ -------
1142
+ pandas.DataFrame
1143
+ A pandas dataframe showing the capacities and their properties
1144
+ """
1145
+
1146
+ columns = {
1147
+ "Id": "string",
1148
+ "Display Name": "string",
1149
+ "Sku": "string",
1150
+ "Region": "string",
1151
+ "State": "string",
1152
+ "Admins": "string",
1153
+ }
1154
+ df = _create_dataframe(columns=columns)
1155
+
1156
+ response = _base_api(request="/v1.0/myorg/capacities", client="fabric_sp")
1157
+
1158
+ for i in response.json().get("value", []):
1159
+ new_data = {
1160
+ "Id": i.get("id").lower(),
1161
+ "Display Name": i.get("displayName"),
1162
+ "Sku": i.get("sku"),
1163
+ "Region": i.get("region"),
1164
+ "State": i.get("state"),
1165
+ "Admins": [i.get("admins", [])],
1166
+ }
1167
+ df = pd.concat([df, pd.DataFrame(new_data, index=[0])], ignore_index=True)
1168
+
1169
+ return df