semantic-link-labs 0.9.2__tar.gz → 0.9.4__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 (225) hide show
  1. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/.github/workflows/build.yaml +2 -2
  2. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/PKG-INFO +10 -6
  3. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/README.md +9 -5
  4. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/docs/source/conf.py +1 -1
  5. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/notebooks/Delta Analyzer.ipynb +20 -4
  6. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/pyproject.toml +1 -1
  7. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/semantic_link_labs.egg-info/PKG-INFO +10 -6
  8. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/semantic_link_labs.egg-info/SOURCES.txt +10 -0
  9. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/__init__.py +27 -1
  10. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_ai.py +8 -5
  11. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_capacity_migration.py +3 -2
  12. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_connections.py +45 -9
  13. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_dax.py +17 -3
  14. semantic_link_labs-0.9.4/src/sempy_labs/_delta_analyzer.py +473 -0
  15. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_eventhouses.py +70 -1
  16. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_gateways.py +56 -8
  17. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_generate_semantic_model.py +30 -9
  18. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_helper_functions.py +84 -9
  19. semantic_link_labs-0.9.4/src/sempy_labs/_job_scheduler.py +439 -0
  20. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_list_functions.py +42 -19
  21. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_ml_experiments.py +1 -1
  22. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_model_bpa.py +17 -2
  23. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_model_bpa_rules.py +20 -8
  24. semantic_link_labs-0.9.4/src/sempy_labs/_semantic_models.py +117 -0
  25. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_sql.py +73 -6
  26. semantic_link_labs-0.9.4/src/sempy_labs/_sqldatabase.py +227 -0
  27. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_translations.py +2 -2
  28. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_vertipaq.py +3 -3
  29. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_warehouses.py +1 -1
  30. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/admin/__init__.py +49 -8
  31. semantic_link_labs-0.9.4/src/sempy_labs/admin/_activities.py +166 -0
  32. semantic_link_labs-0.9.4/src/sempy_labs/admin/_apps.py +143 -0
  33. semantic_link_labs-0.9.4/src/sempy_labs/admin/_basic_functions.py +480 -0
  34. semantic_link_labs-0.9.4/src/sempy_labs/admin/_capacities.py +250 -0
  35. semantic_link_labs-0.9.4/src/sempy_labs/admin/_datasets.py +184 -0
  36. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/admin/_domains.py +1 -3
  37. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/admin/_items.py +3 -1
  38. semantic_link_labs-0.9.4/src/sempy_labs/admin/_reports.py +165 -0
  39. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/admin/_scanner.py +53 -49
  40. semantic_link_labs-0.9.4/src/sempy_labs/admin/_shared.py +74 -0
  41. semantic_link_labs-0.9.4/src/sempy_labs/admin/_tenant.py +489 -0
  42. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/directlake/_dl_helper.py +0 -1
  43. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/directlake/_update_directlake_partition_entity.py +6 -0
  44. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/graph/_teams.py +1 -1
  45. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/graph/_users.py +9 -1
  46. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/lakehouse/_get_lakehouse_columns.py +2 -2
  47. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/lakehouse/_get_lakehouse_tables.py +2 -2
  48. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/lakehouse/_lakehouse.py +3 -3
  49. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/lakehouse/_shortcuts.py +29 -16
  50. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/migration/_migrate_calctables_to_lakehouse.py +2 -2
  51. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/migration/_refresh_calc_tables.py +2 -2
  52. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/__init__.py +3 -1
  53. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_download_report.py +4 -1
  54. semantic_link_labs-0.9.4/src/sempy_labs/report/_export_report.py +272 -0
  55. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_report_functions.py +11 -263
  56. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_report_rebind.py +1 -1
  57. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/tom/_model.py +281 -29
  58. semantic_link_labs-0.9.2/src/sempy_labs/_delta_analyzer.py +0 -303
  59. semantic_link_labs-0.9.2/src/sempy_labs/_job_scheduler.py +0 -215
  60. semantic_link_labs-0.9.2/src/sempy_labs/admin/_basic_functions.py +0 -1100
  61. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  62. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  63. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/.github/ISSUE_TEMPLATE/issue--question---advice-needed.md +0 -0
  64. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/.github/workflows/codeql.yaml +0 -0
  65. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/.gitignore +0 -0
  66. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/.readthedocs.yaml +0 -0
  67. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/.vscode/settings.json +0 -0
  68. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/CODE_OF_CONDUCT.md +0 -0
  69. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/LICENSE +0 -0
  70. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/SECURITY.md +0 -0
  71. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/SUPPORT.md +0 -0
  72. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/docs/Makefile +0 -0
  73. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/docs/make.bat +0 -0
  74. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/docs/requirements.txt +0 -0
  75. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/docs/source/index.rst +0 -0
  76. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/docs/source/modules.rst +0 -0
  77. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/environment.yml +0 -0
  78. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/notebooks/Best Practice Analyzer Report.ipynb +0 -0
  79. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/notebooks/Capacity Migration.ipynb +0 -0
  80. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/notebooks/Migration to Direct Lake.ipynb +0 -0
  81. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/notebooks/Model Optimization.ipynb +0 -0
  82. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/notebooks/Query Scale Out.ipynb +0 -0
  83. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/notebooks/Report Analysis.ipynb +0 -0
  84. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/notebooks/SQL.ipynb +0 -0
  85. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/notebooks/Semantic Model Management.ipynb +0 -0
  86. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/notebooks/Semantic Model Refresh.ipynb +0 -0
  87. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/notebooks/Service Principal.ipynb +0 -0
  88. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/notebooks/Tabular Object Model.ipynb +0 -0
  89. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/setup.cfg +0 -0
  90. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/semantic_link_labs.egg-info/dependency_links.txt +0 -0
  91. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/semantic_link_labs.egg-info/requires.txt +0 -0
  92. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/semantic_link_labs.egg-info/top_level.txt +0 -0
  93. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_authentication.py +0 -0
  94. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_am-ET.po +0 -0
  95. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_ar-AE.po +0 -0
  96. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_bg-BG.po +0 -0
  97. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_ca-ES.po +0 -0
  98. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_cs-CZ.po +0 -0
  99. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_da-DK.po +0 -0
  100. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_de-DE.po +0 -0
  101. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_el-GR.po +0 -0
  102. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_es-ES.po +0 -0
  103. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_fa-IR.po +0 -0
  104. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_fi-FI.po +0 -0
  105. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_fr-FR.po +0 -0
  106. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_ga-IE.po +0 -0
  107. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_he-IL.po +0 -0
  108. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_hi-IN.po +0 -0
  109. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_hu-HU.po +0 -0
  110. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_id-ID.po +0 -0
  111. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_is-IS.po +0 -0
  112. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_it-IT.po +0 -0
  113. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_ja-JP.po +0 -0
  114. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_ko-KR.po +0 -0
  115. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_mt-MT.po +0 -0
  116. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_nl-NL.po +0 -0
  117. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_pl-PL.po +0 -0
  118. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_pt-BR.po +0 -0
  119. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_pt-PT.po +0 -0
  120. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_ro-RO.po +0 -0
  121. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_ru-RU.po +0 -0
  122. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_sk-SK.po +0 -0
  123. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_sl-SL.po +0 -0
  124. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_sv-SE.po +0 -0
  125. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_ta-IN.po +0 -0
  126. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_te-IN.po +0 -0
  127. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_th-TH.po +0 -0
  128. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_tr-TR.po +0 -0
  129. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_uk-UA.po +0 -0
  130. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_zh-CN.po +0 -0
  131. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po +0 -0
  132. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_capacities.py +0 -0
  133. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_clear_cache.py +0 -0
  134. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_data_pipelines.py +0 -0
  135. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_dataflows.py +0 -0
  136. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_deployment_pipelines.py +0 -0
  137. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_documentation.py +0 -0
  138. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_environments.py +0 -0
  139. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_eventstreams.py +0 -0
  140. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_external_data_shares.py +0 -0
  141. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_git.py +0 -0
  142. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_graphQL.py +0 -0
  143. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_icons.py +0 -0
  144. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_kql_databases.py +0 -0
  145. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_kql_querysets.py +0 -0
  146. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_managed_private_endpoints.py +0 -0
  147. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_mirrored_databases.py +0 -0
  148. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_mirrored_warehouses.py +0 -0
  149. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_ml_models.py +0 -0
  150. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_model_auto_build.py +0 -0
  151. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_model_bpa_bulk.py +0 -0
  152. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_model_dependencies.py +0 -0
  153. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_notebooks.py +0 -0
  154. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_one_lake_integration.py +0 -0
  155. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_query_scale_out.py +0 -0
  156. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_refresh_semantic_model.py +0 -0
  157. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_spark.py +0 -0
  158. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_workloads.py +0 -0
  159. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_workspace_identity.py +0 -0
  160. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/_workspaces.py +0 -0
  161. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/admin/_external_data_share.py +0 -0
  162. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/admin/_git.py +0 -0
  163. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/directlake/__init__.py +0 -0
  164. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/directlake/_directlake_schema_compare.py +0 -0
  165. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/directlake/_directlake_schema_sync.py +0 -0
  166. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/directlake/_generate_shared_expression.py +0 -0
  167. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/directlake/_get_directlake_lakehouse.py +0 -0
  168. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/directlake/_get_shared_expression.py +0 -0
  169. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/directlake/_guardrails.py +0 -0
  170. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/directlake/_list_directlake_model_calc_tables.py +0 -0
  171. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/directlake/_show_unsupported_directlake_objects.py +0 -0
  172. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py +0 -0
  173. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/directlake/_warm_cache.py +0 -0
  174. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/graph/__init__.py +0 -0
  175. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/graph/_groups.py +0 -0
  176. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/lakehouse/__init__.py +0 -0
  177. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/migration/__init__.py +0 -0
  178. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/migration/_create_pqt_file.py +0 -0
  179. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/migration/_direct_lake_to_import.py +0 -0
  180. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/migration/_migrate_calctables_to_semantic_model.py +0 -0
  181. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/migration/_migrate_model_objects_to_semantic_model.py +0 -0
  182. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py +0 -0
  183. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/migration/_migration_validation.py +0 -0
  184. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_BPAReportTemplate.json +0 -0
  185. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/.pbi/localSettings.json +0 -0
  186. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/.platform +0 -0
  187. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/StaticResources/SharedResources/BaseThemes/CY24SU06.json +0 -0
  188. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/page.json +0 -0
  189. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/1b08bce3bebabb0a27a8/visual.json +0 -0
  190. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/2f22ddb70c301693c165/visual.json +0 -0
  191. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/3b1182230aa6c600b43a/visual.json +0 -0
  192. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/58577ba6380c69891500/visual.json +0 -0
  193. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/a2a8fa5028b3b776c96c/visual.json +0 -0
  194. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/adfd47ef30652707b987/visual.json +0 -0
  195. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/b6a80ee459e716e170b1/visual.json +0 -0
  196. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/ce3130a721c020cc3d81/visual.json +0 -0
  197. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/page.json +0 -0
  198. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/visuals/66e60dfb526437cd78d1/visual.json +0 -0
  199. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/page.json +0 -0
  200. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/07deb8bce824e1be37d7/visual.json +0 -0
  201. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0b1c68838818b32ad03b/visual.json +0 -0
  202. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0c171de9d2683d10b930/visual.json +0 -0
  203. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0efa01be0510e40a645e/visual.json +0 -0
  204. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/6bf2f0eb830ab53cc668/visual.json +0 -0
  205. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/88d8141cb8500b60030c/visual.json +0 -0
  206. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/a753273590beed656a03/visual.json +0 -0
  207. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/b8fdc82cddd61ac447bc/visual.json +0 -0
  208. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json +0 -0
  209. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/visuals/ce8532a7e25020271077/visual.json +0 -0
  210. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/pages.json +0 -0
  211. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/report.json +0 -0
  212. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition/version.json +0 -0
  213. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_bpareporttemplate/definition.pbir +0 -0
  214. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_generate_report.py +0 -0
  215. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_paginated.py +0 -0
  216. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_report_bpa.py +0 -0
  217. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_report_bpa_rules.py +0 -0
  218. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_report_helper.py +0 -0
  219. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_report_list_functions.py +0 -0
  220. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/report/_reportwrapper.py +0 -0
  221. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/src/sempy_labs/tom/__init__.py +0 -0
  222. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/tests/__init__.py +0 -0
  223. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/tests/test_friendly_case.py +0 -0
  224. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/tests/test_shortcuts.py +0 -0
  225. {semantic_link_labs-0.9.2 → semantic_link_labs-0.9.4}/tests/test_tom.py +0 -0
@@ -28,7 +28,7 @@ jobs:
28
28
  shell: bash
29
29
 
30
30
  - name: Cache conda
31
- uses: actions/cache@v2
31
+ uses: actions/cache@v3
32
32
  env:
33
33
  # Increase this value to reset cache if environment.yml has not changed
34
34
  CACHE_NUMBER: 0
@@ -37,7 +37,7 @@ jobs:
37
37
  key:
38
38
  ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{ steps.get-date.outputs.today }}-${{ hashFiles('environment.yml') }}
39
39
 
40
- - uses: conda-incubator/setup-miniconda@v2
40
+ - uses: conda-incubator/setup-miniconda@v3
41
41
  with:
42
42
  auto-update-conda: true
43
43
  activate-environment: fabric
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: semantic-link-labs
3
- Version: 0.9.2
3
+ Version: 0.9.4
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.2&style=flat)](https://readthedocs.org/projects/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/)
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
 
@@ -66,6 +66,7 @@ Check out the video below for an introduction to Semantic Link, Semantic Link La
66
66
  * [View unique columns touched in a single (or multiple) DAX query(ies)](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.get_dax_query_dependencies)
67
67
  * [Analyze delta tables for Direct Lake semantic models using Delta Analyzer](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Delta%20Analyzer.ipynb)
68
68
  * [View synonyms from the linguistic schema](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_synonyms)
69
+ * [Add](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.TOMWrapper.add_incremental_refresh_policy), [update](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.TOMWrapper.update_incremental_refresh_policy) and [view](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.TOMWrapper.show_incremental_refresh_policy) an incremental refresh policy.
69
70
  * Reports
70
71
  * [Report Best Practice Analyzer (BPA)](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.report.html#sempy_labs.report.run_report_bpa)
71
72
  * [View report metadata](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Report%20Analysis.ipynb)
@@ -144,6 +145,8 @@ An even better way to ensure the semantic-link-labs library is available in your
144
145
  2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
145
146
 
146
147
  ## Version History
148
+ * [0.9.4](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.4) (February 27, 2025)
149
+ * [0.9.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.3) (February 13, 2025)
147
150
  * [0.9.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.2) (February 5, 2025)
148
151
  * [0.9.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.1) (January 22, 2025)
149
152
  * [0.9.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.0) (January 22, 2025)
@@ -283,10 +286,11 @@ python -m build
283
286
 
284
287
  #### Running and testing the .whl file
285
288
  1. Open a notebook in a Fabric workspace.
286
- 2. Navigate to 'Resources' within the Explorer tab.
287
- 3. Upload the .whl file here.
288
- 4. Drag the .whl file into a notebook cell.
289
- 5. Run the %pip install command generated by step 4.
289
+ 2. Navigate to 'Resources' within the Explorer tab on the left pane. Do not use the 'Files' section.
290
+ 3. Upload the .whl file to the 'Resource' section.
291
+ 4. Click on the '...' next to the .whl file and click 'Copy relative path'.
292
+ 5. Enter '%pip install ""' into a notebook cell. Within the double quotes, paste the copied path from step 4.
293
+ 6. Run the notebook cell.
290
294
 
291
295
  #### Submitting a Pull Request (PR)
292
296
  1. Within the 'Source Control' tab, commit your changes to the branch.
@@ -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.2&style=flat)](https://readthedocs.org/projects/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/)
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
 
@@ -41,6 +41,7 @@ Check out the video below for an introduction to Semantic Link, Semantic Link La
41
41
  * [View unique columns touched in a single (or multiple) DAX query(ies)](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.get_dax_query_dependencies)
42
42
  * [Analyze delta tables for Direct Lake semantic models using Delta Analyzer](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Delta%20Analyzer.ipynb)
43
43
  * [View synonyms from the linguistic schema](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_synonyms)
44
+ * [Add](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.TOMWrapper.add_incremental_refresh_policy), [update](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.TOMWrapper.update_incremental_refresh_policy) and [view](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.TOMWrapper.show_incremental_refresh_policy) an incremental refresh policy.
44
45
  * Reports
45
46
  * [Report Best Practice Analyzer (BPA)](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.report.html#sempy_labs.report.run_report_bpa)
46
47
  * [View report metadata](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Report%20Analysis.ipynb)
@@ -119,6 +120,8 @@ An even better way to ensure the semantic-link-labs library is available in your
119
120
  2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
120
121
 
121
122
  ## Version History
123
+ * [0.9.4](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.4) (February 27, 2025)
124
+ * [0.9.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.3) (February 13, 2025)
122
125
  * [0.9.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.2) (February 5, 2025)
123
126
  * [0.9.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.1) (January 22, 2025)
124
127
  * [0.9.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.0) (January 22, 2025)
@@ -258,10 +261,11 @@ python -m build
258
261
 
259
262
  #### Running and testing the .whl file
260
263
  1. Open a notebook in a Fabric workspace.
261
- 2. Navigate to 'Resources' within the Explorer tab.
262
- 3. Upload the .whl file here.
263
- 4. Drag the .whl file into a notebook cell.
264
- 5. Run the %pip install command generated by step 4.
264
+ 2. Navigate to 'Resources' within the Explorer tab on the left pane. Do not use the 'Files' section.
265
+ 3. Upload the .whl file to the 'Resource' section.
266
+ 4. Click on the '...' next to the .whl file and click 'Copy relative path'.
267
+ 5. Enter '%pip install ""' into a notebook cell. Within the double quotes, paste the copied path from step 4.
268
+ 6. Run the notebook cell.
265
269
 
266
270
  #### Submitting a Pull Request (PR)
267
271
  1. Within the 'Source Control' tab, commit your changes to the branch.
@@ -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.2'
16
+ release = '0.9.4'
17
17
 
18
18
  # -- General configuration ---------------------------------------------------
19
19
  # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
@@ -52,7 +52,9 @@
52
52
  "outputs": [],
53
53
  "source": [
54
54
  "import sempy_labs as labs\n",
55
- "table_name = 'MyTable'"
55
+ "table_name = 'MyTable' # Enter the name of the delta table\n",
56
+ "lakehouse = 'MyLakehouse' # Enter the name or ID of the lakehouse in which the delta table resides\n",
57
+ "workspace = 'MyWorkspace' # Enter the name or ID of the workspace in which the lakehouse resides"
56
58
  ]
57
59
  },
58
60
  {
@@ -70,7 +72,11 @@
70
72
  "metadata": {},
71
73
  "outputs": [],
72
74
  "source": [
73
- "x = labs.delta_analyzer(table_name=table_name)"
75
+ "x = labs.delta_analyzer(\n",
76
+ " table_name=table_name,\n",
77
+ " lakehouse=lakehouse,\n",
78
+ " workspace=workspace\n",
79
+ ")"
74
80
  ]
75
81
  },
76
82
  {
@@ -100,7 +106,12 @@
100
106
  "metadata": {},
101
107
  "outputs": [],
102
108
  "source": [
103
- "x = labs.delta_analyzer(table_name=table_name, approx_distinct_count=False)"
109
+ "x = labs.delta_analyzer(\n",
110
+ " table_name=table_name,\n",
111
+ " approx_distinct_count=False,\n",
112
+ " lakehouse=lakehouse,\n",
113
+ " workspace=workspace\n",
114
+ " )"
104
115
  ]
105
116
  },
106
117
  {
@@ -119,7 +130,12 @@
119
130
  "metadata": {},
120
131
  "outputs": [],
121
132
  "source": [
122
- "x = labs.delta_analyzer(table_name=table_name, export=True)"
133
+ "x = labs.delta_analyzer(\n",
134
+ " table_name=table_name,\n",
135
+ " lakehouse=lakehouse,\n",
136
+ " workspace=workspace,\n",
137
+ " export=True\n",
138
+ " )"
123
139
  ]
124
140
  }
125
141
  ],
@@ -7,7 +7,7 @@ name="semantic-link-labs"
7
7
  authors = [
8
8
  { name = "Microsoft Corporation" },
9
9
  ]
10
- version="0.9.2"
10
+ version="0.9.4"
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.2
3
+ Version: 0.9.4
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.2&style=flat)](https://readthedocs.org/projects/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/)
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
 
@@ -66,6 +66,7 @@ Check out the video below for an introduction to Semantic Link, Semantic Link La
66
66
  * [View unique columns touched in a single (or multiple) DAX query(ies)](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.get_dax_query_dependencies)
67
67
  * [Analyze delta tables for Direct Lake semantic models using Delta Analyzer](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Delta%20Analyzer.ipynb)
68
68
  * [View synonyms from the linguistic schema](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_synonyms)
69
+ * [Add](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.TOMWrapper.add_incremental_refresh_policy), [update](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.TOMWrapper.update_incremental_refresh_policy) and [view](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.TOMWrapper.show_incremental_refresh_policy) an incremental refresh policy.
69
70
  * Reports
70
71
  * [Report Best Practice Analyzer (BPA)](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.report.html#sempy_labs.report.run_report_bpa)
71
72
  * [View report metadata](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Report%20Analysis.ipynb)
@@ -144,6 +145,8 @@ An even better way to ensure the semantic-link-labs library is available in your
144
145
  2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
145
146
 
146
147
  ## Version History
148
+ * [0.9.4](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.4) (February 27, 2025)
149
+ * [0.9.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.3) (February 13, 2025)
147
150
  * [0.9.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.2) (February 5, 2025)
148
151
  * [0.9.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.1) (January 22, 2025)
149
152
  * [0.9.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.0) (January 22, 2025)
@@ -283,10 +286,11 @@ python -m build
283
286
 
284
287
  #### Running and testing the .whl file
285
288
  1. Open a notebook in a Fabric workspace.
286
- 2. Navigate to 'Resources' within the Explorer tab.
287
- 3. Upload the .whl file here.
288
- 4. Drag the .whl file into a notebook cell.
289
- 5. Run the %pip install command generated by step 4.
289
+ 2. Navigate to 'Resources' within the Explorer tab on the left pane. Do not use the 'Files' section.
290
+ 3. Upload the .whl file to the 'Resource' section.
291
+ 4. Click on the '...' next to the .whl file and click 'Copy relative path'.
292
+ 5. Enter '%pip install ""' into a notebook cell. Within the double quotes, paste the copied path from step 4.
293
+ 6. Run the notebook cell.
290
294
 
291
295
  #### Submitting a Pull Request (PR)
292
296
  1. Within the 'Source Control' tab, commit your changes to the branch.
@@ -77,8 +77,10 @@ src/sempy_labs/_notebooks.py
77
77
  src/sempy_labs/_one_lake_integration.py
78
78
  src/sempy_labs/_query_scale_out.py
79
79
  src/sempy_labs/_refresh_semantic_model.py
80
+ src/sempy_labs/_semantic_models.py
80
81
  src/sempy_labs/_spark.py
81
82
  src/sempy_labs/_sql.py
83
+ src/sempy_labs/_sqldatabase.py
82
84
  src/sempy_labs/_translations.py
83
85
  src/sempy_labs/_vertipaq.py
84
86
  src/sempy_labs/_warehouses.py
@@ -124,12 +126,19 @@ src/sempy_labs/_bpa_translation/_model/_translations_uk-UA.po
124
126
  src/sempy_labs/_bpa_translation/_model/_translations_zh-CN.po
125
127
  src/sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po
126
128
  src/sempy_labs/admin/__init__.py
129
+ src/sempy_labs/admin/_activities.py
130
+ src/sempy_labs/admin/_apps.py
127
131
  src/sempy_labs/admin/_basic_functions.py
132
+ src/sempy_labs/admin/_capacities.py
133
+ src/sempy_labs/admin/_datasets.py
128
134
  src/sempy_labs/admin/_domains.py
129
135
  src/sempy_labs/admin/_external_data_share.py
130
136
  src/sempy_labs/admin/_git.py
131
137
  src/sempy_labs/admin/_items.py
138
+ src/sempy_labs/admin/_reports.py
132
139
  src/sempy_labs/admin/_scanner.py
140
+ src/sempy_labs/admin/_shared.py
141
+ src/sempy_labs/admin/_tenant.py
133
142
  src/sempy_labs/directlake/__init__.py
134
143
  src/sempy_labs/directlake/_directlake_schema_compare.py
135
144
  src/sempy_labs/directlake/_directlake_schema_sync.py
@@ -164,6 +173,7 @@ src/sempy_labs/migration/_refresh_calc_tables.py
164
173
  src/sempy_labs/report/_BPAReportTemplate.json
165
174
  src/sempy_labs/report/__init__.py
166
175
  src/sempy_labs/report/_download_report.py
176
+ src/sempy_labs/report/_export_report.py
167
177
  src/sempy_labs/report/_generate_report.py
168
178
  src/sempy_labs/report/_paginated.py
169
179
  src/sempy_labs/report/_report_bpa.py
@@ -1,3 +1,7 @@
1
+ from sempy_labs._semantic_models import (
2
+ get_semantic_model_refresh_schedule,
3
+ enable_semantic_model_scheduled_refresh,
4
+ )
1
5
  from sempy_labs._graphQL import (
2
6
  list_graphql_apis,
3
7
  create_graphql_api,
@@ -5,8 +9,14 @@ from sempy_labs._graphQL import (
5
9
  from sempy_labs._job_scheduler import (
6
10
  list_item_job_instances,
7
11
  list_item_schedules,
12
+ create_item_schedule_cron,
13
+ create_item_schedule_daily,
14
+ create_item_schedule_weekly,
15
+ )
16
+ from sempy_labs._delta_analyzer import (
17
+ delta_analyzer,
18
+ get_delta_table_history,
8
19
  )
9
- from sempy_labs._delta_analyzer import delta_analyzer
10
20
  from sempy_labs._gateways import (
11
21
  list_gateway_members,
12
22
  list_gateway_role_assigments,
@@ -75,6 +85,7 @@ from sempy_labs._eventhouses import (
75
85
  create_eventhouse,
76
86
  list_eventhouses,
77
87
  delete_eventhouse,
88
+ get_eventhouse_definition,
78
89
  )
79
90
  from sempy_labs._eventstreams import (
80
91
  list_eventstreams,
@@ -158,6 +169,11 @@ from sempy_labs._notebooks import (
158
169
  from sempy_labs._sql import (
159
170
  ConnectWarehouse,
160
171
  ConnectLakehouse,
172
+ ConnectSQLDatabase,
173
+ )
174
+ from sempy_labs._sqldatabase import (
175
+ get_sql_database_columns,
176
+ get_sql_database_tables,
161
177
  )
162
178
  from sempy_labs._workspace_identity import (
163
179
  provision_workspace_identity,
@@ -291,6 +307,7 @@ __all__ = [
291
307
  "resolve_warehouse_id",
292
308
  "ConnectWarehouse",
293
309
  "ConnectLakehouse",
310
+ "ConnectSQLDatabase",
294
311
  "update_semantic_model_from_bim",
295
312
  "list_connections",
296
313
  "get_semantic_model_size",
@@ -499,4 +516,13 @@ __all__ = [
499
516
  "delta_analyzer",
500
517
  # "dax_perf_test",
501
518
  # "dax_perf_test_bulk",
519
+ "get_semantic_model_refresh_schedule",
520
+ "get_eventhouse_definition",
521
+ "enable_semantic_model_scheduled_refresh",
522
+ "get_delta_table_history",
523
+ "get_sql_database_columns",
524
+ "get_sql_database_tables",
525
+ "create_item_schedule_cron",
526
+ "create_item_schedule_daily",
527
+ "create_item_schedule_weekly",
502
528
  ]
@@ -1,10 +1,13 @@
1
1
  import sempy
2
2
  import sempy.fabric as fabric
3
3
  import pandas as pd
4
- from pyspark.sql import SparkSession
5
4
  from typing import List, Optional, Union
6
5
  from IPython.display import display
7
6
  import sempy_labs._icons as icons
7
+ from sempy_labs._helper_functions import (
8
+ _read_delta_table,
9
+ _run_spark_sql_query,
10
+ )
8
11
 
9
12
 
10
13
  def optimize_semantic_model(dataset: str, workspace: Optional[str] = None):
@@ -186,13 +189,13 @@ def generate_aggs(
186
189
 
187
190
  query = query[:-1]
188
191
 
189
- spark = SparkSession.builder.getOrCreate()
190
192
  fromTablePath = create_abfss_path(
191
193
  lakehouse_id=lakehouse_id,
192
194
  lakehouse_workspace_id=lakehouse_workspace_id,
193
195
  delta_table_name=lakeTName,
194
196
  )
195
- df = spark.read.format("delta").load(fromTablePath)
197
+
198
+ df = _read_delta_table(fromTablePath)
196
199
  tempTableName = f"delta_table_{lakeTName}"
197
200
  df.createOrReplaceTempView(tempTableName)
198
201
  sqlQuery = f"{query} \n FROM {tempTableName} {groupBy}"
@@ -201,7 +204,7 @@ def generate_aggs(
201
204
  print(sqlQuery)
202
205
 
203
206
  # Save query to spark dataframe
204
- spark_df = spark.sql(sqlQuery)
207
+ spark_df = _run_spark_sql_query(sqlQuery)
205
208
  f"\nCreating/updating the '{aggLakeTName}' table in the lakehouse..."
206
209
  # Write spark dataframe to delta table
207
210
  aggFilePath = create_abfss_path(
@@ -419,7 +422,7 @@ def generate_aggs(
419
422
  # dfP = fabric.list_partitions(dataset = dataset, workspace = workspace)
420
423
  # isDirectLake = any(r['Mode'] == 'DirectLake' for i, r in dfP.iterrows())
421
424
 
422
- # spark = SparkSession.builder.getOrCreate()
425
+ # spark = _create_spark_session()
423
426
  # views = spark.sql(f"SHOW VIEWS IN {lakehouse}").collect()
424
427
  # for view in views:
425
428
  # viewName = view['viewName']
@@ -2,10 +2,11 @@ import sempy.fabric as fabric
2
2
  from typing import Optional, List
3
3
  from sempy._utils._log import log
4
4
  import sempy_labs._icons as icons
5
- from sempy.fabric.exceptions import FabricHTTPException
6
5
  from sempy_labs._workspaces import assign_workspace_to_capacity
7
- from sempy_labs.admin._basic_functions import (
6
+ from sempy_labs.admin import (
8
7
  assign_workspaces_to_capacity,
8
+ )
9
+ from sempy_labs.admin._capacities import (
9
10
  _list_capacities_meta,
10
11
  list_capacities,
11
12
  )
@@ -19,6 +19,8 @@ def delete_connection(connection: str | UUID):
19
19
 
20
20
  This is a wrapper function for the following API: `Connections - Delete Connection <https://learn.microsoft.com/rest/api/fabric/core/connections/delete-connection>`_.
21
21
 
22
+ Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
23
+
22
24
  Parameters
23
25
  ----------
24
26
  connection : str | uuid.UUID
@@ -26,7 +28,9 @@ def delete_connection(connection: str | UUID):
26
28
  """
27
29
 
28
30
  connection_id = _resolve_connection_id(connection)
29
- _base_api(request=f"/v1/connections/{connection_id}", method="delete")
31
+ _base_api(
32
+ request=f"/v1/connections/{connection_id}", client="fabric_sp", method="delete"
33
+ )
30
34
  print(f"{icons.green_dot} The '{connection}' connection has been deleted.")
31
35
 
32
36
 
@@ -36,6 +40,8 @@ def delete_connection_role_assignment(connection: str | UUID, role_assignment_id
36
40
 
37
41
  This is a wrapper function for the following API: `Connections - Delete Connection Role Assignment <https://learn.microsoft.com/rest/api/fabric/core/connections/delete-connection-role-assignment>`_.
38
42
 
43
+ Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
44
+
39
45
  Parameters
40
46
  ----------
41
47
  connection : str | uuid.UUID
@@ -47,6 +53,7 @@ def delete_connection_role_assignment(connection: str | UUID, role_assignment_id
47
53
  connection_id = _resolve_connection_id(connection)
48
54
  _base_api(
49
55
  request=f"/v1/connections/{connection_id}/roleAssignments/{role_assignment_id}",
56
+ client="fabric_sp",
50
57
  method="delete",
51
58
  )
52
59
 
@@ -77,6 +84,8 @@ def list_connection_role_assignments(connection: str | UUID) -> pd.DataFrame:
77
84
 
78
85
  This is a wrapper function for the following API: `Connections - List Connection Role Assignments <https://learn.microsoft.com/rest/api/fabric/core/connections/list-connection-role-assignments>`_.
79
86
 
87
+ Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
88
+
80
89
  Parameters
81
90
  ----------
82
91
  connection : str | uuid.UUID
@@ -100,7 +109,9 @@ def list_connection_role_assignments(connection: str | UUID) -> pd.DataFrame:
100
109
  df = _create_dataframe(columns=columns)
101
110
 
102
111
  responses = _base_api(
103
- request=f"/v1/connections/{connection_id}/roleAssignments", uses_pagination=True
112
+ request=f"/v1/connections/{connection_id}/roleAssignments",
113
+ client="fabric_sp",
114
+ uses_pagination=True,
104
115
  )
105
116
 
106
117
  for r in responses:
@@ -121,6 +132,8 @@ def list_connections() -> pd.DataFrame:
121
132
  """
122
133
  Lists all available connections.
123
134
 
135
+ Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
136
+
124
137
  Returns
125
138
  -------
126
139
  pandas.DataFrame
@@ -136,13 +149,15 @@ def list_connections() -> pd.DataFrame:
136
149
  "Connection Type": "string",
137
150
  "Privacy Level": "string",
138
151
  "Credential Type": "string",
139
- "Single Sign on Type": "string",
140
- "Connection Encyrption": "string",
152
+ "Single Sign On Type": "string",
153
+ "Connection Encryption": "string",
141
154
  "Skip Test Connection": "bool",
142
155
  }
143
156
  df = _create_dataframe(columns=columns)
144
157
 
145
- responses = _base_api(request="/v1/connections", uses_pagination=True)
158
+ responses = _base_api(
159
+ request="/v1/connections", client="fabric_sp", uses_pagination=True
160
+ )
146
161
 
147
162
  for r in responses:
148
163
  for i in r.get("value", []):
@@ -194,6 +209,8 @@ def list_item_connections(
194
209
 
195
210
  This is a wrapper function for the following API: `Items - List Item Connections <https://learn.microsoft.com/rest/api/fabric/core/items/list-item-connections>`_.
196
211
 
212
+ Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
213
+
197
214
  Parameters
198
215
  ----------
199
216
  item_name : str
@@ -229,6 +246,7 @@ def list_item_connections(
229
246
 
230
247
  responses = _base_api(
231
248
  request=f"/v1/workspaces/{workspace_id}/items/{item_id}/connections",
249
+ client="fabric_sp",
232
250
  uses_pagination=True,
233
251
  )
234
252
 
@@ -267,7 +285,7 @@ def _list_supported_connection_types(
267
285
  df = _create_dataframe(columns=columns)
268
286
 
269
287
  url = url.rstrip("&")
270
- responses = _base_api(request=url, uses_pagination=True)
288
+ responses = _base_api(request=url, client="fabric_sp", uses_pagination=True)
271
289
 
272
290
  records = []
273
291
  for r in responses:
@@ -309,6 +327,8 @@ def create_cloud_connection(
309
327
 
310
328
  This is a wrapper function for the following API: `Connections - Create Connection <https://learn.microsoft.com/rest/api/fabric/core/connections/create-connection>`_.
311
329
 
330
+ Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
331
+
312
332
  Parameters
313
333
  ----------
314
334
  name : str
@@ -362,7 +382,11 @@ def create_cloud_connection(
362
382
  }
363
383
 
364
384
  _base_api(
365
- request="/v1/connections", method="post", payload=payload, status_codes=201
385
+ request="/v1/connections",
386
+ client="fabric_sp",
387
+ method="post",
388
+ payload=payload,
389
+ status_codes=201,
366
390
  )
367
391
 
368
392
  print(f"{icons.green_dot} The '{name}' cloud connection has been created.")
@@ -383,6 +407,8 @@ def create_on_prem_connection(
383
407
 
384
408
  This is a wrapper function for the following API: `Connections - Create Connection <https://learn.microsoft.com/rest/api/fabric/core/connections/create-connection>`_.
385
409
 
410
+ Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
411
+
386
412
  Parameters
387
413
  ----------
388
414
  name : str
@@ -440,7 +466,11 @@ def create_on_prem_connection(
440
466
  }
441
467
 
442
468
  _base_api(
443
- request="/v1/connections", method="post", payload=payload, status_codes=201
469
+ request="/v1/connections",
470
+ client="fabric_sp",
471
+ method="post",
472
+ payload=payload,
473
+ status_codes=201,
444
474
  )
445
475
 
446
476
  print(f"{icons.green_dot} The '{name}' on-prem connection has been created.")
@@ -462,6 +492,8 @@ def create_vnet_connection(
462
492
 
463
493
  This is a wrapper function for the following API: `Connections - Create Connection <https://learn.microsoft.com/rest/api/fabric/core/connections/create-connection>`_.
464
494
 
495
+ Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
496
+
465
497
  Parameters
466
498
  ----------
467
499
  name : str
@@ -520,7 +552,11 @@ def create_vnet_connection(
520
552
  }
521
553
 
522
554
  _base_api(
523
- request="/v1/connections", method="post", payload=payload, status_codes=201
555
+ request="/v1/connections",
556
+ client="fabric_sp",
557
+ method="post",
558
+ payload=payload,
559
+ status_codes=201,
524
560
  )
525
561
 
526
562
  print(
@@ -62,9 +62,23 @@ def evaluate_dax_impersonation(
62
62
  payload=payload,
63
63
  )
64
64
  data = response.json()["results"][0]["tables"]
65
- column_names = data[0]["rows"][0].keys()
66
- data_rows = [row.values() for item in data for row in item["rows"]]
67
- df = pd.DataFrame(data_rows, columns=column_names)
65
+
66
+ # Get all possible column names from all rows because null columns aren't returned
67
+ all_columns = set()
68
+ for item in data:
69
+ for row in item["rows"]:
70
+ all_columns.update(row.keys())
71
+
72
+ # Create rows with all columns, filling missing values with None
73
+ rows = []
74
+ for item in data:
75
+ for row in item["rows"]:
76
+ # Create a new row with all columns, defaulting to None
77
+ new_row = {col: row.get(col) for col in all_columns}
78
+ rows.append(new_row)
79
+
80
+ # Create DataFrame from the processed rows
81
+ df = pd.DataFrame(rows)
68
82
 
69
83
  return df
70
84