semantic-link-labs 0.9.4__tar.gz → 0.9.5__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 (228) hide show
  1. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/PKG-INFO +18 -2
  2. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/README.md +17 -1
  3. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/docs/source/conf.py +1 -1
  4. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/pyproject.toml +1 -1
  5. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/semantic_link_labs.egg-info/PKG-INFO +18 -2
  6. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/semantic_link_labs.egg-info/SOURCES.txt +6 -1
  7. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/__init__.py +18 -3
  8. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_capacities.py +22 -127
  9. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_capacity_migration.py +8 -7
  10. semantic_link_labs-0.9.5/src/sempy_labs/_dashboards.py +60 -0
  11. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_data_pipelines.py +5 -31
  12. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_environments.py +20 -48
  13. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_eventhouses.py +22 -52
  14. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_eventstreams.py +16 -34
  15. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_gateways.py +4 -4
  16. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_generate_semantic_model.py +0 -1
  17. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_git.py +90 -1
  18. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_graphQL.py +3 -20
  19. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_helper_functions.py +171 -43
  20. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_kql_databases.py +19 -34
  21. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_kql_querysets.py +15 -32
  22. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_list_functions.py +12 -155
  23. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_mirrored_databases.py +14 -48
  24. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_ml_experiments.py +5 -30
  25. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_ml_models.py +4 -28
  26. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_model_bpa.py +2 -0
  27. semantic_link_labs-0.9.5/src/sempy_labs/_mounted_data_factories.py +119 -0
  28. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_notebooks.py +16 -26
  29. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_sql.py +7 -6
  30. semantic_link_labs-0.9.5/src/sempy_labs/_utils.py +42 -0
  31. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_vertipaq.py +17 -2
  32. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_warehouses.py +5 -17
  33. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_workloads.py +23 -9
  34. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_workspaces.py +13 -5
  35. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/__init__.py +21 -1
  36. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_apps.py +1 -1
  37. semantic_link_labs-0.9.5/src/sempy_labs/admin/_artifacts.py +62 -0
  38. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_basic_functions.py +0 -52
  39. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_capacities.py +61 -0
  40. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_reports.py +74 -0
  41. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_shared.py +4 -2
  42. semantic_link_labs-0.9.5/src/sempy_labs/admin/_users.py +133 -0
  43. semantic_link_labs-0.9.5/src/sempy_labs/admin/_workspaces.py +148 -0
  44. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_update_directlake_partition_entity.py +9 -1
  45. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/lakehouse/__init__.py +2 -0
  46. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/lakehouse/_lakehouse.py +6 -7
  47. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/lakehouse/_shortcuts.py +192 -53
  48. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_generate_report.py +9 -17
  49. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_report_bpa.py +12 -19
  50. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/tom/_model.py +34 -16
  51. semantic_link_labs-0.9.4/tests/test_shortcuts.py +0 -57
  52. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  53. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  54. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/.github/ISSUE_TEMPLATE/issue--question---advice-needed.md +0 -0
  55. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/.github/workflows/build.yaml +0 -0
  56. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/.github/workflows/codeql.yaml +0 -0
  57. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/.gitignore +0 -0
  58. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/.readthedocs.yaml +0 -0
  59. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/.vscode/settings.json +0 -0
  60. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/CODE_OF_CONDUCT.md +0 -0
  61. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/LICENSE +0 -0
  62. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/SECURITY.md +0 -0
  63. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/SUPPORT.md +0 -0
  64. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/docs/Makefile +0 -0
  65. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/docs/make.bat +0 -0
  66. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/docs/requirements.txt +0 -0
  67. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/docs/source/index.rst +0 -0
  68. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/docs/source/modules.rst +0 -0
  69. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/environment.yml +0 -0
  70. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Best Practice Analyzer Report.ipynb +0 -0
  71. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Capacity Migration.ipynb +0 -0
  72. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Delta Analyzer.ipynb +0 -0
  73. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Migration to Direct Lake.ipynb +0 -0
  74. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Model Optimization.ipynb +0 -0
  75. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Query Scale Out.ipynb +0 -0
  76. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Report Analysis.ipynb +0 -0
  77. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/SQL.ipynb +0 -0
  78. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Semantic Model Management.ipynb +0 -0
  79. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Semantic Model Refresh.ipynb +0 -0
  80. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Service Principal.ipynb +0 -0
  81. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Tabular Object Model.ipynb +0 -0
  82. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/setup.cfg +0 -0
  83. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/semantic_link_labs.egg-info/dependency_links.txt +0 -0
  84. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/semantic_link_labs.egg-info/requires.txt +0 -0
  85. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/semantic_link_labs.egg-info/top_level.txt +0 -0
  86. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_ai.py +0 -0
  87. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_authentication.py +0 -0
  88. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_am-ET.po +0 -0
  89. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_ar-AE.po +0 -0
  90. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_bg-BG.po +0 -0
  91. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_ca-ES.po +0 -0
  92. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_cs-CZ.po +0 -0
  93. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_da-DK.po +0 -0
  94. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_de-DE.po +0 -0
  95. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_el-GR.po +0 -0
  96. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_es-ES.po +0 -0
  97. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_fa-IR.po +0 -0
  98. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_fi-FI.po +0 -0
  99. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_fr-FR.po +0 -0
  100. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_ga-IE.po +0 -0
  101. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_he-IL.po +0 -0
  102. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_hi-IN.po +0 -0
  103. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_hu-HU.po +0 -0
  104. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_id-ID.po +0 -0
  105. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_is-IS.po +0 -0
  106. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_it-IT.po +0 -0
  107. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_ja-JP.po +0 -0
  108. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_ko-KR.po +0 -0
  109. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_mt-MT.po +0 -0
  110. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_nl-NL.po +0 -0
  111. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_pl-PL.po +0 -0
  112. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_pt-BR.po +0 -0
  113. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_pt-PT.po +0 -0
  114. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_ro-RO.po +0 -0
  115. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_ru-RU.po +0 -0
  116. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_sk-SK.po +0 -0
  117. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_sl-SL.po +0 -0
  118. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_sv-SE.po +0 -0
  119. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_ta-IN.po +0 -0
  120. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_te-IN.po +0 -0
  121. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_th-TH.po +0 -0
  122. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_tr-TR.po +0 -0
  123. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_uk-UA.po +0 -0
  124. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_zh-CN.po +0 -0
  125. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po +0 -0
  126. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_clear_cache.py +0 -0
  127. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_connections.py +0 -0
  128. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_dataflows.py +0 -0
  129. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_dax.py +0 -0
  130. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_delta_analyzer.py +0 -0
  131. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_deployment_pipelines.py +0 -0
  132. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_documentation.py +0 -0
  133. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_external_data_shares.py +0 -0
  134. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_icons.py +0 -0
  135. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_job_scheduler.py +0 -0
  136. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_managed_private_endpoints.py +0 -0
  137. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_mirrored_warehouses.py +0 -0
  138. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_model_auto_build.py +0 -0
  139. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_model_bpa_bulk.py +0 -0
  140. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_model_bpa_rules.py +0 -0
  141. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_model_dependencies.py +0 -0
  142. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_one_lake_integration.py +0 -0
  143. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_query_scale_out.py +0 -0
  144. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_refresh_semantic_model.py +0 -0
  145. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_semantic_models.py +0 -0
  146. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_spark.py +0 -0
  147. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_sqldatabase.py +0 -0
  148. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_translations.py +0 -0
  149. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_workspace_identity.py +0 -0
  150. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_activities.py +0 -0
  151. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_datasets.py +0 -0
  152. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_domains.py +0 -0
  153. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_external_data_share.py +0 -0
  154. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_git.py +0 -0
  155. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_items.py +0 -0
  156. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_scanner.py +0 -0
  157. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_tenant.py +0 -0
  158. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/__init__.py +0 -0
  159. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_directlake_schema_compare.py +0 -0
  160. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_directlake_schema_sync.py +0 -0
  161. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_dl_helper.py +0 -0
  162. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_generate_shared_expression.py +0 -0
  163. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_get_directlake_lakehouse.py +0 -0
  164. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_get_shared_expression.py +0 -0
  165. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_guardrails.py +0 -0
  166. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_list_directlake_model_calc_tables.py +0 -0
  167. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_show_unsupported_directlake_objects.py +0 -0
  168. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py +0 -0
  169. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_warm_cache.py +0 -0
  170. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/graph/__init__.py +0 -0
  171. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/graph/_groups.py +0 -0
  172. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/graph/_teams.py +0 -0
  173. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/graph/_users.py +0 -0
  174. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/lakehouse/_get_lakehouse_columns.py +0 -0
  175. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/lakehouse/_get_lakehouse_tables.py +0 -0
  176. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/migration/__init__.py +0 -0
  177. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/migration/_create_pqt_file.py +0 -0
  178. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/migration/_direct_lake_to_import.py +0 -0
  179. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/migration/_migrate_calctables_to_lakehouse.py +0 -0
  180. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/migration/_migrate_calctables_to_semantic_model.py +0 -0
  181. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/migration/_migrate_model_objects_to_semantic_model.py +0 -0
  182. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py +0 -0
  183. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/migration/_migration_validation.py +0 -0
  184. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/migration/_refresh_calc_tables.py +0 -0
  185. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_BPAReportTemplate.json +0 -0
  186. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/__init__.py +0 -0
  187. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/.pbi/localSettings.json +0 -0
  188. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/.platform +0 -0
  189. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/StaticResources/SharedResources/BaseThemes/CY24SU06.json +0 -0
  190. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/page.json +0 -0
  191. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/1b08bce3bebabb0a27a8/visual.json +0 -0
  192. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/2f22ddb70c301693c165/visual.json +0 -0
  193. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/3b1182230aa6c600b43a/visual.json +0 -0
  194. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/58577ba6380c69891500/visual.json +0 -0
  195. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/a2a8fa5028b3b776c96c/visual.json +0 -0
  196. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/adfd47ef30652707b987/visual.json +0 -0
  197. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/b6a80ee459e716e170b1/visual.json +0 -0
  198. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/ce3130a721c020cc3d81/visual.json +0 -0
  199. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/page.json +0 -0
  200. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/visuals/66e60dfb526437cd78d1/visual.json +0 -0
  201. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/page.json +0 -0
  202. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/07deb8bce824e1be37d7/visual.json +0 -0
  203. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0b1c68838818b32ad03b/visual.json +0 -0
  204. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0c171de9d2683d10b930/visual.json +0 -0
  205. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0efa01be0510e40a645e/visual.json +0 -0
  206. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/6bf2f0eb830ab53cc668/visual.json +0 -0
  207. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/88d8141cb8500b60030c/visual.json +0 -0
  208. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/a753273590beed656a03/visual.json +0 -0
  209. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/b8fdc82cddd61ac447bc/visual.json +0 -0
  210. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json +0 -0
  211. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/visuals/ce8532a7e25020271077/visual.json +0 -0
  212. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/pages.json +0 -0
  213. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/report.json +0 -0
  214. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/version.json +0 -0
  215. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition.pbir +0 -0
  216. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_download_report.py +0 -0
  217. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_export_report.py +0 -0
  218. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_paginated.py +0 -0
  219. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_report_bpa_rules.py +0 -0
  220. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_report_functions.py +0 -0
  221. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_report_helper.py +0 -0
  222. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_report_list_functions.py +0 -0
  223. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_report_rebind.py +0 -0
  224. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_reportwrapper.py +0 -0
  225. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/tom/__init__.py +0 -0
  226. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/tests/__init__.py +0 -0
  227. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/tests/test_friendly_case.py +0 -0
  228. {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/tests/test_tom.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.5
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.5&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,7 @@ 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.5](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.5) (March 7, 2025)
148
152
  * [0.9.4](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.4) (February 27, 2025)
149
153
  * [0.9.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.3) (February 13, 2025)
150
154
  * [0.9.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.2) (February 5, 2025)
@@ -299,6 +303,18 @@ python -m build
299
303
  4. Enter details into the description.
300
304
  5. Click 'Create'.
301
305
 
306
+ #### Code Formatting
307
+ 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.
308
+
309
+ Run this code to install black
310
+ ```cli
311
+ pip install black
312
+ ```
313
+
314
+ Run this code to format your code using black
315
+ ```cli
316
+ python -m black src
317
+ ```
302
318
 
303
319
  ## Trademarks
304
320
 
@@ -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.5&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,7 @@ 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.5](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.5) (March 7, 2025)
123
127
  * [0.9.4](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.4) (February 27, 2025)
124
128
  * [0.9.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.3) (February 13, 2025)
125
129
  * [0.9.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.2) (February 5, 2025)
@@ -274,6 +278,18 @@ python -m build
274
278
  4. Enter details into the description.
275
279
  5. Click 'Create'.
276
280
 
281
+ #### Code Formatting
282
+ 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.
283
+
284
+ Run this code to install black
285
+ ```cli
286
+ pip install black
287
+ ```
288
+
289
+ Run this code to format your code using black
290
+ ```cli
291
+ python -m black src
292
+ ```
277
293
 
278
294
  ## Trademarks
279
295
 
@@ -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.5'
17
17
 
18
18
  # -- General configuration ---------------------------------------------------
19
19
  # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
@@ -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.5"
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.5
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.5&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,7 @@ 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.5](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.5) (March 7, 2025)
148
152
  * [0.9.4](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.4) (February 27, 2025)
149
153
  * [0.9.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.3) (February 13, 2025)
150
154
  * [0.9.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.2) (February 5, 2025)
@@ -299,6 +303,18 @@ python -m build
299
303
  4. Enter details into the description.
300
304
  5. Click 'Create'.
301
305
 
306
+ #### Code Formatting
307
+ 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.
308
+
309
+ Run this code to install black
310
+ ```cli
311
+ pip install black
312
+ ```
313
+
314
+ Run this code to format your code using black
315
+ ```cli
316
+ python -m black src
317
+ ```
302
318
 
303
319
  ## Trademarks
304
320
 
@@ -43,6 +43,7 @@ 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
@@ -73,6 +74,7 @@ src/sempy_labs/_model_bpa.py
73
74
  src/sempy_labs/_model_bpa_bulk.py
74
75
  src/sempy_labs/_model_bpa_rules.py
75
76
  src/sempy_labs/_model_dependencies.py
77
+ src/sempy_labs/_mounted_data_factories.py
76
78
  src/sempy_labs/_notebooks.py
77
79
  src/sempy_labs/_one_lake_integration.py
78
80
  src/sempy_labs/_query_scale_out.py
@@ -82,6 +84,7 @@ src/sempy_labs/_spark.py
82
84
  src/sempy_labs/_sql.py
83
85
  src/sempy_labs/_sqldatabase.py
84
86
  src/sempy_labs/_translations.py
87
+ src/sempy_labs/_utils.py
85
88
  src/sempy_labs/_vertipaq.py
86
89
  src/sempy_labs/_warehouses.py
87
90
  src/sempy_labs/_workloads.py
@@ -128,6 +131,7 @@ src/sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po
128
131
  src/sempy_labs/admin/__init__.py
129
132
  src/sempy_labs/admin/_activities.py
130
133
  src/sempy_labs/admin/_apps.py
134
+ src/sempy_labs/admin/_artifacts.py
131
135
  src/sempy_labs/admin/_basic_functions.py
132
136
  src/sempy_labs/admin/_capacities.py
133
137
  src/sempy_labs/admin/_datasets.py
@@ -139,6 +143,8 @@ src/sempy_labs/admin/_reports.py
139
143
  src/sempy_labs/admin/_scanner.py
140
144
  src/sempy_labs/admin/_shared.py
141
145
  src/sempy_labs/admin/_tenant.py
146
+ src/sempy_labs/admin/_users.py
147
+ src/sempy_labs/admin/_workspaces.py
142
148
  src/sempy_labs/directlake/__init__.py
143
149
  src/sempy_labs/directlake/_directlake_schema_compare.py
144
150
  src/sempy_labs/directlake/_directlake_schema_sync.py
@@ -216,5 +222,4 @@ src/sempy_labs/tom/__init__.py
216
222
  src/sempy_labs/tom/_model.py
217
223
  tests/__init__.py
218
224
  tests/test_friendly_case.py
219
- tests/test_shortcuts.py
220
225
  tests/test_tom.py
@@ -1,3 +1,9 @@
1
+ from sempy_labs._mounted_data_factories import (
2
+ list_mounted_data_factories,
3
+ get_mounted_data_factory_definition,
4
+ delete_mounted_data_factory,
5
+ )
6
+
1
7
  from sempy_labs._semantic_models import (
2
8
  get_semantic_model_refresh_schedule,
3
9
  enable_semantic_model_scheduled_refresh,
@@ -99,7 +105,7 @@ from sempy_labs._kql_querysets import (
99
105
  )
100
106
  from sempy_labs._kql_databases import (
101
107
  list_kql_databases,
102
- create_kql_database,
108
+ # create_kql_database,
103
109
  delete_kql_database,
104
110
  )
105
111
  from sempy_labs._mirrored_warehouses import list_mirrored_warehouses
@@ -193,6 +199,8 @@ from sempy_labs._git import (
193
199
  connect_workspace_to_azure_dev_ops,
194
200
  connect_workspace_to_github,
195
201
  disconnect_workspace_from_git,
202
+ get_my_git_credentials,
203
+ update_my_git_credentials,
196
204
  )
197
205
  from sempy_labs._dataflows import (
198
206
  list_dataflow_storage_accounts,
@@ -226,6 +234,9 @@ from sempy_labs._generate_semantic_model import (
226
234
  update_semantic_model_from_bim,
227
235
  get_semantic_model_definition,
228
236
  )
237
+ from sempy_labs._dashboards import (
238
+ list_dashboards,
239
+ )
229
240
  from sempy_labs._list_functions import (
230
241
  list_reports_using_semantic_model,
231
242
  list_semantic_model_object_report_usage,
@@ -234,7 +245,6 @@ from sempy_labs._list_functions import (
234
245
  list_shortcuts,
235
246
  get_object_level_security,
236
247
  list_capacities,
237
- list_dashboards,
238
248
  list_datamarts,
239
249
  list_lakehouses,
240
250
  list_sql_endpoints,
@@ -425,7 +435,7 @@ __all__ = [
425
435
  "convert_to_friendly_case",
426
436
  "list_mirrored_warehouses",
427
437
  "list_kql_databases",
428
- "create_kql_database",
438
+ # "create_kql_database",
429
439
  "delete_kql_database",
430
440
  "create_eventhouse",
431
441
  "list_eventhouses",
@@ -525,4 +535,9 @@ __all__ = [
525
535
  "create_item_schedule_cron",
526
536
  "create_item_schedule_daily",
527
537
  "create_item_schedule_weekly",
538
+ "get_my_git_credentials",
539
+ "update_my_git_credentials",
540
+ "list_mounted_data_factories",
541
+ "get_mounted_data_factory_definition",
542
+ "delete_mounted_data_factory",
528
543
  ]
@@ -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
 
@@ -16,6 +16,7 @@ from sempy_labs._helper_functions import (
16
16
  _base_api,
17
17
  )
18
18
  from sempy_labs._capacities import create_fabric_capacity
19
+ from uuid import UUID
19
20
 
20
21
 
21
22
  def _migrate_settings(source_capacity: str, target_capacity: str):
@@ -531,7 +532,7 @@ def _migrate_delegated_tenant_settings(source_capacity: str, target_capacity: st
531
532
 
532
533
 
533
534
  @log
534
- def _migrate_spark_settings(source_capacity: str, target_capacity: str):
535
+ def _migrate_spark_settings(source_capacity: str | UUID, target_capacity: str | UUID):
535
536
  """
536
537
  This function migrates a capacity's spark settings to another capacity.
537
538
 
@@ -539,14 +540,14 @@ def _migrate_spark_settings(source_capacity: str, target_capacity: str):
539
540
 
540
541
  Parameters
541
542
  ----------
542
- source_capacity : str
543
- Name of the source capacity.
544
- target_capacity : str
545
- Name of the target capacity.
543
+ source_capacity : str | uuid.UUID
544
+ Name or ID of the source capacity.
545
+ target_capacity : str | uuid.UUID
546
+ Name or ID of the target capacity.
546
547
  """
547
548
 
548
- source_capacity_id = resolve_capacity_id(capacity_name=source_capacity)
549
- target_capacity_id = resolve_capacity_id(capacity_name=target_capacity)
549
+ source_capacity_id = resolve_capacity_id(capacity=source_capacity)
550
+ target_capacity_id = resolve_capacity_id(capacity=target_capacity)
550
551
 
551
552
  # Get source capacity server dns
552
553
  response = _base_api(request=f"metadata/capacityInformation/{source_capacity_id}")
@@ -0,0 +1,60 @@
1
+ from typing import Optional
2
+ from uuid import UUID
3
+ import pandas as pd
4
+ from sempy_labs._helper_functions import (
5
+ _create_dataframe,
6
+ _base_api,
7
+ resolve_workspace_name_and_id,
8
+ _update_dataframe_datatypes,
9
+ )
10
+
11
+
12
+ def list_dashboards(workspace: Optional[str | UUID] = None) -> pd.DataFrame:
13
+ """
14
+ Shows a list of the dashboards within a workspace.
15
+
16
+ Parameters
17
+ ----------
18
+ workspace : str | uuid.UUID, default=None
19
+ The Fabric workspace name or ID.
20
+ Defaults to None which resolves to the workspace of the attached lakehouse
21
+ or if no lakehouse attached, resolves to the workspace of the notebook.
22
+
23
+ Returns
24
+ -------
25
+ pandas.DataFrame
26
+ A pandas dataframe showing the dashboards within a workspace.
27
+ """
28
+
29
+ columns = {
30
+ "Dashboard ID": "string",
31
+ "Dashboard Name": "string",
32
+ "Read Only": "bool",
33
+ "Web URL": "string",
34
+ "Embed URL": "string",
35
+ "Data Classification": "string",
36
+ "Users": "string",
37
+ "Subscriptions": "string",
38
+ }
39
+ df = _create_dataframe(columns=columns)
40
+
41
+ (workspace_name, workspace_id) = resolve_workspace_name_and_id(workspace)
42
+
43
+ response = _base_api(request=f"/v1.0/myorg/groups/{workspace_id}/dashboards")
44
+
45
+ for v in response.json().get("value", []):
46
+ new_data = {
47
+ "Dashboard ID": v.get("id"),
48
+ "Dashboard Name": v.get("displayName"),
49
+ "Read Only": v.get("isReadOnly"),
50
+ "Web URL": v.get("webUrl"),
51
+ "Embed URL": v.get("embedUrl"),
52
+ "Data Classification": v.get("dataClassification"),
53
+ "Users": v.get("users"),
54
+ "Subscriptions": v.get("subscriptions"),
55
+ }
56
+ df = pd.concat([df, pd.DataFrame(new_data, index=[0])], ignore_index=True)
57
+
58
+ _update_dataframe_datatypes(dataframe=df, column_map=columns)
59
+
60
+ return df