semantic-link-labs 0.9.1__tar.gz → 0.9.2__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 (213) hide show
  1. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/PKG-INFO +66 -8
  2. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/README.md +65 -7
  3. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/docs/source/conf.py +1 -1
  4. semantic_link_labs-0.9.2/notebooks/Delta Analyzer.ipynb +155 -0
  5. semantic_link_labs-0.9.2/notebooks/SQL.ipynb +226 -0
  6. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/notebooks/Service Principal.ipynb +26 -1
  7. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/pyproject.toml +1 -1
  8. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/semantic_link_labs.egg-info/PKG-INFO +66 -8
  9. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/semantic_link_labs.egg-info/SOURCES.txt +8 -0
  10. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/__init__.py +14 -12
  11. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_capacities.py +120 -142
  12. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_capacity_migration.py +61 -94
  13. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_clear_cache.py +9 -8
  14. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_connections.py +72 -105
  15. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_data_pipelines.py +47 -49
  16. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_dataflows.py +45 -51
  17. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_dax.py +228 -6
  18. semantic_link_labs-0.9.2/src/sempy_labs/_delta_analyzer.py +303 -0
  19. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_deployment_pipelines.py +72 -66
  20. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_environments.py +39 -36
  21. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_eventhouses.py +35 -35
  22. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_eventstreams.py +38 -39
  23. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_external_data_shares.py +29 -42
  24. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_gateways.py +57 -101
  25. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_generate_semantic_model.py +22 -30
  26. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_git.py +46 -66
  27. semantic_link_labs-0.9.2/src/sempy_labs/_graphQL.py +95 -0
  28. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_helper_functions.py +175 -30
  29. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_job_scheduler.py +47 -59
  30. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_kql_databases.py +27 -34
  31. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_kql_querysets.py +23 -30
  32. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_list_functions.py +262 -164
  33. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_managed_private_endpoints.py +52 -47
  34. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_mirrored_databases.py +110 -134
  35. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_mirrored_warehouses.py +13 -13
  36. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_ml_experiments.py +36 -36
  37. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_ml_models.py +37 -38
  38. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_model_dependencies.py +2 -0
  39. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_notebooks.py +28 -29
  40. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_one_lake_integration.py +2 -0
  41. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_query_scale_out.py +63 -81
  42. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_refresh_semantic_model.py +12 -14
  43. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_spark.py +54 -79
  44. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_sql.py +7 -11
  45. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_vertipaq.py +8 -3
  46. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_warehouses.py +30 -33
  47. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_workloads.py +15 -20
  48. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_workspace_identity.py +13 -17
  49. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_workspaces.py +49 -48
  50. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/__init__.py +2 -0
  51. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_basic_functions.py +244 -281
  52. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_domains.py +188 -103
  53. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_external_data_share.py +26 -31
  54. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_git.py +17 -22
  55. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_items.py +34 -48
  56. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_scanner.py +20 -13
  57. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_directlake_schema_compare.py +2 -0
  58. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_dl_helper.py +10 -11
  59. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_generate_shared_expression.py +4 -5
  60. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_get_directlake_lakehouse.py +1 -0
  61. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_list_directlake_model_calc_tables.py +1 -0
  62. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_show_unsupported_directlake_objects.py +2 -0
  63. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_warm_cache.py +2 -0
  64. semantic_link_labs-0.9.2/src/sempy_labs/graph/__init__.py +33 -0
  65. semantic_link_labs-0.9.2/src/sempy_labs/graph/_groups.py +402 -0
  66. semantic_link_labs-0.9.2/src/sempy_labs/graph/_teams.py +113 -0
  67. semantic_link_labs-0.9.2/src/sempy_labs/graph/_users.py +191 -0
  68. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/lakehouse/__init__.py +4 -0
  69. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/lakehouse/_get_lakehouse_columns.py +10 -10
  70. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/lakehouse/_get_lakehouse_tables.py +14 -20
  71. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/lakehouse/_lakehouse.py +101 -4
  72. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/lakehouse/_shortcuts.py +42 -20
  73. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/__init__.py +4 -0
  74. semantic_link_labs-0.9.2/src/sempy_labs/migration/_direct_lake_to_import.py +66 -0
  75. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_migrate_calctables_to_lakehouse.py +1 -0
  76. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_migrate_calctables_to_semantic_model.py +1 -0
  77. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_migrate_model_objects_to_semantic_model.py +1 -0
  78. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py +2 -0
  79. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_download_report.py +8 -13
  80. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_generate_report.py +49 -46
  81. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_paginated.py +20 -26
  82. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_functions.py +50 -45
  83. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_list_functions.py +2 -0
  84. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_rebind.py +6 -10
  85. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_reportwrapper.py +187 -220
  86. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/tom/_model.py +8 -5
  87. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/tests/test_tom.py +1 -0
  88. semantic_link_labs-0.9.1/notebooks/SQL.ipynb +0 -1
  89. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  90. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  91. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/.github/ISSUE_TEMPLATE/issue--question---advice-needed.md +0 -0
  92. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/.github/workflows/build.yaml +0 -0
  93. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/.github/workflows/codeql.yaml +0 -0
  94. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/.gitignore +0 -0
  95. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/.readthedocs.yaml +0 -0
  96. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/.vscode/settings.json +0 -0
  97. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/CODE_OF_CONDUCT.md +0 -0
  98. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/LICENSE +0 -0
  99. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/SECURITY.md +0 -0
  100. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/SUPPORT.md +0 -0
  101. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/docs/Makefile +0 -0
  102. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/docs/make.bat +0 -0
  103. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/docs/requirements.txt +0 -0
  104. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/docs/source/index.rst +0 -0
  105. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/docs/source/modules.rst +0 -0
  106. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/environment.yml +0 -0
  107. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/notebooks/Best Practice Analyzer Report.ipynb +0 -0
  108. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/notebooks/Capacity Migration.ipynb +0 -0
  109. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/notebooks/Migration to Direct Lake.ipynb +0 -0
  110. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/notebooks/Model Optimization.ipynb +0 -0
  111. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/notebooks/Query Scale Out.ipynb +0 -0
  112. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/notebooks/Report Analysis.ipynb +0 -0
  113. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/notebooks/Semantic Model Management.ipynb +0 -0
  114. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/notebooks/Semantic Model Refresh.ipynb +0 -0
  115. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/notebooks/Tabular Object Model.ipynb +0 -0
  116. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/setup.cfg +0 -0
  117. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/semantic_link_labs.egg-info/dependency_links.txt +0 -0
  118. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/semantic_link_labs.egg-info/requires.txt +0 -0
  119. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/semantic_link_labs.egg-info/top_level.txt +0 -0
  120. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_ai.py +0 -0
  121. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_authentication.py +0 -0
  122. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_am-ET.po +0 -0
  123. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ar-AE.po +0 -0
  124. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_bg-BG.po +0 -0
  125. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ca-ES.po +0 -0
  126. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_cs-CZ.po +0 -0
  127. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_da-DK.po +0 -0
  128. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_de-DE.po +0 -0
  129. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_el-GR.po +0 -0
  130. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_es-ES.po +0 -0
  131. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_fa-IR.po +0 -0
  132. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_fi-FI.po +0 -0
  133. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_fr-FR.po +0 -0
  134. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ga-IE.po +0 -0
  135. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_he-IL.po +0 -0
  136. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_hi-IN.po +0 -0
  137. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_hu-HU.po +0 -0
  138. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_id-ID.po +0 -0
  139. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_is-IS.po +0 -0
  140. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_it-IT.po +0 -0
  141. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ja-JP.po +0 -0
  142. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ko-KR.po +0 -0
  143. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_mt-MT.po +0 -0
  144. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_nl-NL.po +0 -0
  145. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_pl-PL.po +0 -0
  146. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_pt-BR.po +0 -0
  147. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_pt-PT.po +0 -0
  148. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ro-RO.po +0 -0
  149. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ru-RU.po +0 -0
  150. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_sk-SK.po +0 -0
  151. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_sl-SL.po +0 -0
  152. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_sv-SE.po +0 -0
  153. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ta-IN.po +0 -0
  154. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_te-IN.po +0 -0
  155. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_th-TH.po +0 -0
  156. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_tr-TR.po +0 -0
  157. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_uk-UA.po +0 -0
  158. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_zh-CN.po +0 -0
  159. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po +0 -0
  160. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_documentation.py +0 -0
  161. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_icons.py +0 -0
  162. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_model_auto_build.py +0 -0
  163. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_model_bpa.py +0 -0
  164. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_model_bpa_bulk.py +0 -0
  165. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_model_bpa_rules.py +0 -0
  166. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_translations.py +0 -0
  167. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/__init__.py +0 -0
  168. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_directlake_schema_sync.py +0 -0
  169. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_get_shared_expression.py +0 -0
  170. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_guardrails.py +0 -0
  171. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py +0 -0
  172. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_update_directlake_partition_entity.py +0 -0
  173. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_create_pqt_file.py +0 -0
  174. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_migration_validation.py +0 -0
  175. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_refresh_calc_tables.py +0 -0
  176. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_BPAReportTemplate.json +0 -0
  177. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/__init__.py +0 -0
  178. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/.pbi/localSettings.json +0 -0
  179. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/.platform +0 -0
  180. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/StaticResources/SharedResources/BaseThemes/CY24SU06.json +0 -0
  181. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/page.json +0 -0
  182. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/1b08bce3bebabb0a27a8/visual.json +0 -0
  183. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/2f22ddb70c301693c165/visual.json +0 -0
  184. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/3b1182230aa6c600b43a/visual.json +0 -0
  185. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/58577ba6380c69891500/visual.json +0 -0
  186. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/a2a8fa5028b3b776c96c/visual.json +0 -0
  187. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/adfd47ef30652707b987/visual.json +0 -0
  188. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/b6a80ee459e716e170b1/visual.json +0 -0
  189. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/ce3130a721c020cc3d81/visual.json +0 -0
  190. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/page.json +0 -0
  191. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/visuals/66e60dfb526437cd78d1/visual.json +0 -0
  192. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/page.json +0 -0
  193. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/07deb8bce824e1be37d7/visual.json +0 -0
  194. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0b1c68838818b32ad03b/visual.json +0 -0
  195. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0c171de9d2683d10b930/visual.json +0 -0
  196. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0efa01be0510e40a645e/visual.json +0 -0
  197. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/6bf2f0eb830ab53cc668/visual.json +0 -0
  198. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/88d8141cb8500b60030c/visual.json +0 -0
  199. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/a753273590beed656a03/visual.json +0 -0
  200. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/b8fdc82cddd61ac447bc/visual.json +0 -0
  201. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json +0 -0
  202. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/visuals/ce8532a7e25020271077/visual.json +0 -0
  203. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/pages.json +0 -0
  204. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/report.json +0 -0
  205. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/version.json +0 -0
  206. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition.pbir +0 -0
  207. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_bpa.py +0 -0
  208. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_bpa_rules.py +0 -0
  209. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_helper.py +0 -0
  210. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/tom/__init__.py +0 -0
  211. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/tests/__init__.py +0 -0
  212. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/tests/test_friendly_case.py +0 -0
  213. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/tests/test_shortcuts.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: semantic-link-labs
3
- Version: 0.9.1
3
+ Version: 0.9.2
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.1&style=flat)](https://readthedocs.org/projects/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/)
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
 
@@ -64,6 +64,8 @@ Check out the video below for an introduction to Semantic Link, Semantic Link La
64
64
  * [Check why a Direct Lake semantic model would fallback to DirectQuery](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.directlake.html#sempy_labs.directlake.check_fallback_reason)
65
65
  * [View a measure dependency tree](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.measure_dependency_tree)
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
+ * [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
+ * [View synonyms from the linguistic schema](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_synonyms)
67
69
  * Reports
68
70
  * [Report Best Practice Analyzer (BPA)](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.report.html#sempy_labs.report.run_report_bpa)
69
71
  * [View report metadata](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Report%20Analysis.ipynb)
@@ -80,10 +82,11 @@ Check out the video below for an introduction to Semantic Link, Semantic Link La
80
82
  * [Optimize lakehouse tables](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.optimize_lakehouse_tables)
81
83
  * [Vacuum lakehouse tables](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.vacuum_lakehouse_tables)
82
84
  * [Create](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.create_shortcut_onelake), [delete](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.delete_shortcut), and [view shortcuts](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_shortcuts)
85
+ * [Analyze delta tables for Direct Lake semantic models using Delta Analyzer](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Delta%20Analyzer.ipynb)
83
86
  * Notebooks
84
87
  * [Import a notebook from the web](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.import_notebook_from_web)
85
88
  * APIs
86
- * Wrapper functions for [Power BI](https://learn.microsoft.com/rest/api/power-bi/), [Fabric](https://learn.microsoft.com/rest/api/fabric/articles/using-fabric-apis), and [Azure](https://learn.microsoft.com/rest/api/microsoftfabric/fabric-capacities?view=rest-microsoftfabric-2023-11-01) APIs
89
+ * Wrapper functions for [Power BI](https://learn.microsoft.com/rest/api/power-bi/), [Fabric](https://learn.microsoft.com/rest/api/fabric/articles/using-fabric-apis), [Azure](https://learn.microsoft.com/rest/api/microsoftfabric/fabric-capacities?view=rest-microsoftfabric-2023-11-01), and [Microsoft Graph](https://learn.microsoft.com/graph/api/overview?view=graph-rest-1.0) APIs
87
90
  * Service Principal Authentication
88
91
  * Now supported using the [service_principal_authentication](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.service_principal_authentication) context manager for the [admin](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.admin.html) subpackage, Azure API wrapper functions, and [connect_semantic_model](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.connect_semantic_model). See this [helper notebook](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb) for additional instructions.
89
92
 
@@ -113,13 +116,11 @@ for file_name, file_url in notebook_files.items():
113
116
  ## Once installed, run this code to import the library into your notebook
114
117
  ```python
115
118
  import sempy_labs as labs
116
- from sempy_labs import migration, directlake, admin
119
+ from sempy_labs import migration, directlake, admin, graph
117
120
  from sempy_labs import lakehouse as lake
118
121
  from sempy_labs import report as rep
119
122
  from sempy_labs.tom import connect_semantic_model
120
123
  from sempy_labs.report import ReportWrapper
121
- from sempy_labs import ConnectWarehouse
122
- from sempy_labs import ConnectLakehouse
123
124
  ```
124
125
 
125
126
  ## Load Semantic Link Labs into a custom [Fabric environment](https://learn.microsoft.com/fabric/data-engineering/create-and-use-environment)
@@ -143,8 +144,9 @@ An even better way to ensure the semantic-link-labs library is available in your
143
144
  2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
144
145
 
145
146
  ## Version History
146
- * [0.9.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.1) (January 22, 2024)
147
- * [0.9.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.0) (January 22, 2024)
147
+ * [0.9.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.2) (February 5, 2025)
148
+ * [0.9.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.1) (January 22, 2025)
149
+ * [0.9.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.0) (January 22, 2025)
148
150
  * [0.8.11](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.11) (December 19, 2024)
149
151
  * [0.8.10](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.10) (December 16, 2024)
150
152
  * [0.8.9](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.9) (December 4, 2024)
@@ -238,6 +240,62 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope
238
240
  For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
239
241
  contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
240
242
 
243
+ ## How to Contribute
244
+
245
+ #### Initial setup
246
+ 1. Fork the Semantic Link Labs GitHub repository (Fork -> Create a new fork).
247
+ 2. Click on the green icon '<> Code' and copy the 'HTTPS' URL to the clipboard.
248
+ 3. Open Visual Studio Code.
249
+ 4. Select 'Clone Git Repository'.
250
+ 5. Paste the URL copied in step 2.
251
+ 6. Select 'Clone from URL'.
252
+ 7. Select/create a folder to map the cloned repository to your computer.
253
+ 8. When prompted to open the cloned repository, click 'Open'.
254
+ 9. Open the integrated terminal (View -> Terminal).
255
+ 10. Run the following code in the terminal to ensure a virtual environment exists.
256
+ ```python
257
+ python -m venv venv
258
+ ```
259
+ 11. Run the following code in the terminal to activate the virtual environment.
260
+ ```python
261
+ .\venv\Scripts\Activate.ps1
262
+ ```
263
+ 12. Run the following code in the terminal to install the build module.
264
+ ```
265
+ pip install build
266
+ ```
267
+
268
+ #### Branching
269
+ When making changes, always create a new branch.
270
+
271
+ 1. Navigate to the Souce Control tab within Visual Studio Code.
272
+ 2. Click on the Source Control icon at the bottom left corner of the screen.
273
+ 3. Click 'Create new branch...'.
274
+ 4. Enter the branch name (i.e. yourusername/branchname).
275
+ 5. Click 'Enter'.
276
+
277
+ #### Building the .whl file
278
+ Running the following in the terminal in Visual Studio Code will create a .whl file in the 'dist' folder within your locally-cloned repository.
279
+
280
+ ```cli
281
+ python -m build
282
+ ```
283
+
284
+ #### Running and testing the .whl file
285
+ 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.
290
+
291
+ #### Submitting a Pull Request (PR)
292
+ 1. Within the 'Source Control' tab, commit your changes to the branch.
293
+ 2. Navigate to the [GitHub repo](https://github.com/microsoft/semantic-link-labs).
294
+ 3. A 'Create pull request' will appear at the top of the screen in green. Click it.
295
+ 4. Enter details into the description.
296
+ 5. Click 'Create'.
297
+
298
+
241
299
  ## Trademarks
242
300
 
243
301
  This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
@@ -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.1&style=flat)](https://readthedocs.org/projects/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/)
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
 
@@ -39,6 +39,8 @@ Check out the video below for an introduction to Semantic Link, Semantic Link La
39
39
  * [Check why a Direct Lake semantic model would fallback to DirectQuery](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.directlake.html#sempy_labs.directlake.check_fallback_reason)
40
40
  * [View a measure dependency tree](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.measure_dependency_tree)
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
+ * [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
+ * [View synonyms from the linguistic schema](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_synonyms)
42
44
  * Reports
43
45
  * [Report Best Practice Analyzer (BPA)](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.report.html#sempy_labs.report.run_report_bpa)
44
46
  * [View report metadata](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Report%20Analysis.ipynb)
@@ -55,10 +57,11 @@ Check out the video below for an introduction to Semantic Link, Semantic Link La
55
57
  * [Optimize lakehouse tables](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.optimize_lakehouse_tables)
56
58
  * [Vacuum lakehouse tables](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.vacuum_lakehouse_tables)
57
59
  * [Create](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.create_shortcut_onelake), [delete](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.delete_shortcut), and [view shortcuts](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_shortcuts)
60
+ * [Analyze delta tables for Direct Lake semantic models using Delta Analyzer](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Delta%20Analyzer.ipynb)
58
61
  * Notebooks
59
62
  * [Import a notebook from the web](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.import_notebook_from_web)
60
63
  * APIs
61
- * Wrapper functions for [Power BI](https://learn.microsoft.com/rest/api/power-bi/), [Fabric](https://learn.microsoft.com/rest/api/fabric/articles/using-fabric-apis), and [Azure](https://learn.microsoft.com/rest/api/microsoftfabric/fabric-capacities?view=rest-microsoftfabric-2023-11-01) APIs
64
+ * Wrapper functions for [Power BI](https://learn.microsoft.com/rest/api/power-bi/), [Fabric](https://learn.microsoft.com/rest/api/fabric/articles/using-fabric-apis), [Azure](https://learn.microsoft.com/rest/api/microsoftfabric/fabric-capacities?view=rest-microsoftfabric-2023-11-01), and [Microsoft Graph](https://learn.microsoft.com/graph/api/overview?view=graph-rest-1.0) APIs
62
65
  * Service Principal Authentication
63
66
  * Now supported using the [service_principal_authentication](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.service_principal_authentication) context manager for the [admin](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.admin.html) subpackage, Azure API wrapper functions, and [connect_semantic_model](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.connect_semantic_model). See this [helper notebook](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb) for additional instructions.
64
67
 
@@ -88,13 +91,11 @@ for file_name, file_url in notebook_files.items():
88
91
  ## Once installed, run this code to import the library into your notebook
89
92
  ```python
90
93
  import sempy_labs as labs
91
- from sempy_labs import migration, directlake, admin
94
+ from sempy_labs import migration, directlake, admin, graph
92
95
  from sempy_labs import lakehouse as lake
93
96
  from sempy_labs import report as rep
94
97
  from sempy_labs.tom import connect_semantic_model
95
98
  from sempy_labs.report import ReportWrapper
96
- from sempy_labs import ConnectWarehouse
97
- from sempy_labs import ConnectLakehouse
98
99
  ```
99
100
 
100
101
  ## Load Semantic Link Labs into a custom [Fabric environment](https://learn.microsoft.com/fabric/data-engineering/create-and-use-environment)
@@ -118,8 +119,9 @@ An even better way to ensure the semantic-link-labs library is available in your
118
119
  2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
119
120
 
120
121
  ## Version History
121
- * [0.9.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.1) (January 22, 2024)
122
- * [0.9.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.0) (January 22, 2024)
122
+ * [0.9.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.2) (February 5, 2025)
123
+ * [0.9.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.1) (January 22, 2025)
124
+ * [0.9.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.0) (January 22, 2025)
123
125
  * [0.8.11](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.11) (December 19, 2024)
124
126
  * [0.8.10](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.10) (December 16, 2024)
125
127
  * [0.8.9](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.9) (December 4, 2024)
@@ -213,6 +215,62 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope
213
215
  For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
214
216
  contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
215
217
 
218
+ ## How to Contribute
219
+
220
+ #### Initial setup
221
+ 1. Fork the Semantic Link Labs GitHub repository (Fork -> Create a new fork).
222
+ 2. Click on the green icon '<> Code' and copy the 'HTTPS' URL to the clipboard.
223
+ 3. Open Visual Studio Code.
224
+ 4. Select 'Clone Git Repository'.
225
+ 5. Paste the URL copied in step 2.
226
+ 6. Select 'Clone from URL'.
227
+ 7. Select/create a folder to map the cloned repository to your computer.
228
+ 8. When prompted to open the cloned repository, click 'Open'.
229
+ 9. Open the integrated terminal (View -> Terminal).
230
+ 10. Run the following code in the terminal to ensure a virtual environment exists.
231
+ ```python
232
+ python -m venv venv
233
+ ```
234
+ 11. Run the following code in the terminal to activate the virtual environment.
235
+ ```python
236
+ .\venv\Scripts\Activate.ps1
237
+ ```
238
+ 12. Run the following code in the terminal to install the build module.
239
+ ```
240
+ pip install build
241
+ ```
242
+
243
+ #### Branching
244
+ When making changes, always create a new branch.
245
+
246
+ 1. Navigate to the Souce Control tab within Visual Studio Code.
247
+ 2. Click on the Source Control icon at the bottom left corner of the screen.
248
+ 3. Click 'Create new branch...'.
249
+ 4. Enter the branch name (i.e. yourusername/branchname).
250
+ 5. Click 'Enter'.
251
+
252
+ #### Building the .whl file
253
+ Running the following in the terminal in Visual Studio Code will create a .whl file in the 'dist' folder within your locally-cloned repository.
254
+
255
+ ```cli
256
+ python -m build
257
+ ```
258
+
259
+ #### Running and testing the .whl file
260
+ 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.
265
+
266
+ #### Submitting a Pull Request (PR)
267
+ 1. Within the 'Source Control' tab, commit your changes to the branch.
268
+ 2. Navigate to the [GitHub repo](https://github.com/microsoft/semantic-link-labs).
269
+ 3. A 'Create pull request' will appear at the top of the screen in green. Click it.
270
+ 4. Enter details into the description.
271
+ 5. Click 'Create'.
272
+
273
+
216
274
  ## Trademarks
217
275
 
218
276
  This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
@@ -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.1'
16
+ release = '0.9.2'
17
17
 
18
18
  # -- General configuration ---------------------------------------------------
19
19
  # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
@@ -0,0 +1,155 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "5c27dfd1-4fe0-4a97-92e6-ddf78889aa93",
6
+ "metadata": {
7
+ "nteract": {
8
+ "transient": {
9
+ "deleting": false
10
+ }
11
+ }
12
+ },
13
+ "source": [
14
+ "### Install the latest .whl package\n",
15
+ "\n",
16
+ "Check [here](https://pypi.org/project/semantic-link-labs/) to see the latest version."
17
+ ]
18
+ },
19
+ {
20
+ "cell_type": "code",
21
+ "execution_count": null,
22
+ "id": "d5cae9db-cef9-48a8-a351-9c5fcc99645c",
23
+ "metadata": {
24
+ "jupyter": {
25
+ "outputs_hidden": true,
26
+ "source_hidden": false
27
+ },
28
+ "nteract": {
29
+ "transient": {
30
+ "deleting": false
31
+ }
32
+ }
33
+ },
34
+ "outputs": [],
35
+ "source": [
36
+ "%pip install semantic-link-labs"
37
+ ]
38
+ },
39
+ {
40
+ "cell_type": "markdown",
41
+ "id": "b195eae8",
42
+ "metadata": {},
43
+ "source": [
44
+ "### Import the library"
45
+ ]
46
+ },
47
+ {
48
+ "cell_type": "code",
49
+ "execution_count": null,
50
+ "id": "1344e286",
51
+ "metadata": {},
52
+ "outputs": [],
53
+ "source": [
54
+ "import sempy_labs as labs\n",
55
+ "table_name = 'MyTable'"
56
+ ]
57
+ },
58
+ {
59
+ "cell_type": "markdown",
60
+ "id": "baa24264",
61
+ "metadata": {},
62
+ "source": [
63
+ "### Run Delta Analyzer for a given table in the lakehouse attached to your notebook"
64
+ ]
65
+ },
66
+ {
67
+ "cell_type": "code",
68
+ "execution_count": null,
69
+ "id": "0a1903c0",
70
+ "metadata": {},
71
+ "outputs": [],
72
+ "source": [
73
+ "x = labs.delta_analyzer(table_name=table_name)"
74
+ ]
75
+ },
76
+ {
77
+ "cell_type": "code",
78
+ "execution_count": null,
79
+ "id": "285986d1",
80
+ "metadata": {},
81
+ "outputs": [],
82
+ "source": [
83
+ "for name, df in x.items():\n",
84
+ " print(name)\n",
85
+ " display(df)"
86
+ ]
87
+ },
88
+ {
89
+ "cell_type": "markdown",
90
+ "id": "e1d118dd",
91
+ "metadata": {},
92
+ "source": [
93
+ "### Get actual (not approximate) distinct counts"
94
+ ]
95
+ },
96
+ {
97
+ "cell_type": "code",
98
+ "execution_count": null,
99
+ "id": "d1ecf538",
100
+ "metadata": {},
101
+ "outputs": [],
102
+ "source": [
103
+ "x = labs.delta_analyzer(table_name=table_name, approx_distinct_count=False)"
104
+ ]
105
+ },
106
+ {
107
+ "cell_type": "markdown",
108
+ "id": "60aa6592",
109
+ "metadata": {},
110
+ "source": [
111
+ "### Export the results of Delta Analyzer to a set of delta tables in your lakehouse\n",
112
+ "The export always appends results to the delta tables"
113
+ ]
114
+ },
115
+ {
116
+ "cell_type": "code",
117
+ "execution_count": null,
118
+ "id": "1d4235ff",
119
+ "metadata": {},
120
+ "outputs": [],
121
+ "source": [
122
+ "x = labs.delta_analyzer(table_name=table_name, export=True)"
123
+ ]
124
+ }
125
+ ],
126
+ "metadata": {
127
+ "kernel_info": {
128
+ "name": "synapse_pyspark"
129
+ },
130
+ "kernelspec": {
131
+ "display_name": "Synapse PySpark",
132
+ "language": "Python",
133
+ "name": "synapse_pyspark"
134
+ },
135
+ "language_info": {
136
+ "name": "python"
137
+ },
138
+ "microsoft": {
139
+ "language": "python"
140
+ },
141
+ "nteract": {
142
+ "version": "nteract-front-end@1.0.0"
143
+ },
144
+ "spark_compute": {
145
+ "compute_id": "/trident/default"
146
+ },
147
+ "synapse_widget": {
148
+ "state": {},
149
+ "version": "0.1"
150
+ },
151
+ "widgets": {}
152
+ },
153
+ "nbformat": 4,
154
+ "nbformat_minor": 5
155
+ }
@@ -0,0 +1,226 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "5c27dfd1-4fe0-4a97-92e6-ddf78889aa93",
6
+ "metadata": {
7
+ "nteract": {
8
+ "transient": {
9
+ "deleting": false
10
+ }
11
+ }
12
+ },
13
+ "source": [
14
+ "### Install the latest .whl package\n",
15
+ "\n",
16
+ "Check [here](https://pypi.org/project/semantic-link-labs/) to see the latest version."
17
+ ]
18
+ },
19
+ {
20
+ "cell_type": "code",
21
+ "execution_count": null,
22
+ "id": "d5cae9db-cef9-48a8-a351-9c5fcc99645c",
23
+ "metadata": {
24
+ "jupyter": {
25
+ "outputs_hidden": true,
26
+ "source_hidden": false
27
+ },
28
+ "nteract": {
29
+ "transient": {
30
+ "deleting": false
31
+ }
32
+ }
33
+ },
34
+ "outputs": [],
35
+ "source": [
36
+ "%pip install semantic-link-labs"
37
+ ]
38
+ },
39
+ {
40
+ "cell_type": "markdown",
41
+ "id": "b195eae8",
42
+ "metadata": {},
43
+ "source": [
44
+ "### Import the library and necessary packages"
45
+ ]
46
+ },
47
+ {
48
+ "cell_type": "code",
49
+ "execution_count": null,
50
+ "id": "1344e286",
51
+ "metadata": {},
52
+ "outputs": [],
53
+ "source": [
54
+ "import sempy_labs as labs\n",
55
+ "\n",
56
+ "lakehouse_name = ''\n",
57
+ "lakehouse_workspace_name = ''\n",
58
+ "warehouse_name = ''\n",
59
+ "warehouse_workspace_name = ''"
60
+ ]
61
+ },
62
+ {
63
+ "cell_type": "markdown",
64
+ "id": "55e5ca67",
65
+ "metadata": {},
66
+ "source": [
67
+ "### Run a SQL query (or queries) against a Fabric warehouse"
68
+ ]
69
+ },
70
+ {
71
+ "cell_type": "code",
72
+ "execution_count": null,
73
+ "id": "a9f984e9",
74
+ "metadata": {},
75
+ "outputs": [],
76
+ "source": [
77
+ "with labs.ConnectWarehouse(warehouse=warehouse_name, workspace=warehouse_workspace_name) as sql:\n",
78
+ " df = sql.query(\"SELECT * FROM Product\")\n",
79
+ " display(df)"
80
+ ]
81
+ },
82
+ {
83
+ "cell_type": "code",
84
+ "execution_count": null,
85
+ "id": "865ac4a1",
86
+ "metadata": {},
87
+ "outputs": [],
88
+ "source": [
89
+ "with labs.ConnectWarehouse(warehouse=warehouse_name, workspace=warehouse_workspace_name) as sql:\n",
90
+ " dfs = sql.query([\"SELECT * FROM Product\", \"SELECT DISTINCT [Category] FROM Product\"])\n",
91
+ "\n",
92
+ "for df in dfs:\n",
93
+ " display(df)"
94
+ ]
95
+ },
96
+ {
97
+ "cell_type": "markdown",
98
+ "id": "bca53cd8",
99
+ "metadata": {},
100
+ "source": [
101
+ "#### See the tables in a warehouse"
102
+ ]
103
+ },
104
+ {
105
+ "cell_type": "code",
106
+ "execution_count": null,
107
+ "id": "9af2cce7",
108
+ "metadata": {},
109
+ "outputs": [],
110
+ "source": [
111
+ "labs.get_warehouse_tables(warehouse=warehouse_name, workspace=warehouse_workspace_name)"
112
+ ]
113
+ },
114
+ {
115
+ "cell_type": "markdown",
116
+ "id": "765f99ae",
117
+ "metadata": {},
118
+ "source": [
119
+ "#### See the columns in each table in a warehouse"
120
+ ]
121
+ },
122
+ {
123
+ "cell_type": "code",
124
+ "execution_count": null,
125
+ "id": "1fabe168",
126
+ "metadata": {},
127
+ "outputs": [],
128
+ "source": [
129
+ "labs.get_warehouse_columns(warehouse=warehouse_name, workspace=warehouse_workspace_name)"
130
+ ]
131
+ },
132
+ {
133
+ "cell_type": "markdown",
134
+ "id": "634700c3",
135
+ "metadata": {},
136
+ "source": [
137
+ "### Run a T-SQL query (or queries) against a Fabric warehouse"
138
+ ]
139
+ },
140
+ {
141
+ "cell_type": "code",
142
+ "execution_count": null,
143
+ "id": "5dbf34f3",
144
+ "metadata": {},
145
+ "outputs": [],
146
+ "source": [
147
+ "with labs.ConnectWarehouse(warehouse=warehouse_name, workspace=warehouse_workspace_name) as sql:\n",
148
+ " sql.query(\"CREATE SCHEMA [Business]\")"
149
+ ]
150
+ },
151
+ {
152
+ "cell_type": "code",
153
+ "execution_count": null,
154
+ "id": "ec8ddb81",
155
+ "metadata": {},
156
+ "outputs": [],
157
+ "source": [
158
+ "with labs.ConnectWarehouse(warehouse=warehouse_name, workspace=warehouse_workspace_name) as sql:\n",
159
+ " sql.query([\"CREATE SCHEMA [Business]\", \"CREATE SCHEMA [Marketing]\"])"
160
+ ]
161
+ },
162
+ {
163
+ "cell_type": "markdown",
164
+ "id": "d5b090da",
165
+ "metadata": {},
166
+ "source": [
167
+ "### Run a SQL query (or queries) against a Fabric lakehouse"
168
+ ]
169
+ },
170
+ {
171
+ "cell_type": "code",
172
+ "execution_count": null,
173
+ "id": "4dca7f4a",
174
+ "metadata": {},
175
+ "outputs": [],
176
+ "source": [
177
+ "with labs.ConnectLakehouse(lakehouse=lakehouse_name, workspace=lakehouse_workspace_name) as sql:\n",
178
+ " df = sql.query(\"SELECT * FROM Product\")\n",
179
+ " display(df)"
180
+ ]
181
+ },
182
+ {
183
+ "cell_type": "code",
184
+ "execution_count": null,
185
+ "id": "b9606ae8",
186
+ "metadata": {},
187
+ "outputs": [],
188
+ "source": [
189
+ "with labs.ConnectLakehouse(lakehouse=lakehouse_name, workspace=lakehouse_workspace_name) as sql:\n",
190
+ " dfs = sql.query([\"SELECT * FROM Product\", \"SELECT DISTINCT [Category] FROM Product\"])\n",
191
+ "\n",
192
+ "for df in dfs:\n",
193
+ " display(df)"
194
+ ]
195
+ }
196
+ ],
197
+ "metadata": {
198
+ "kernel_info": {
199
+ "name": "synapse_pyspark"
200
+ },
201
+ "kernelspec": {
202
+ "display_name": "Synapse PySpark",
203
+ "language": "Python",
204
+ "name": "synapse_pyspark"
205
+ },
206
+ "language_info": {
207
+ "name": "python"
208
+ },
209
+ "microsoft": {
210
+ "language": "python"
211
+ },
212
+ "nteract": {
213
+ "version": "nteract-front-end@1.0.0"
214
+ },
215
+ "spark_compute": {
216
+ "compute_id": "/trident/default"
217
+ },
218
+ "synapse_widget": {
219
+ "state": {},
220
+ "version": "0.1"
221
+ },
222
+ "widgets": {}
223
+ },
224
+ "nbformat": 4,
225
+ "nbformat_minor": 5
226
+ }
@@ -79,7 +79,7 @@
79
79
  "outputs": [],
80
80
  "source": [
81
81
  "import sempy_labs as labs\n",
82
- "from sempy_labs import admin\n",
82
+ "from sempy_labs import admin, graph\n",
83
83
  "from sempy_labs.tom import connect_semantic_model\n",
84
84
  "\n",
85
85
  "key_vault_uri = '' # Enter your key vault URI\n",
@@ -150,6 +150,31 @@
150
150
  " )"
151
151
  ]
152
152
  },
153
+ {
154
+ "cell_type": "markdown",
155
+ "id": "931a9ee0",
156
+ "metadata": {},
157
+ "source": [
158
+ "### Using wrapper functions for [Microsoft Graph](https://learn.microsoft.com/graph/overview)"
159
+ ]
160
+ },
161
+ {
162
+ "cell_type": "code",
163
+ "execution_count": null,
164
+ "id": "f0cb20d0",
165
+ "metadata": {},
166
+ "outputs": [],
167
+ "source": [
168
+ "with labs.service_principal_authentication(\n",
169
+ " key_vault_uri=key_vault_uri, \n",
170
+ " key_vault_tenant_id=key_vault_tenant_id,\n",
171
+ " key_vault_client_id=key_vault_client_id,\n",
172
+ " key_vault_client_secret=key_vault_client_secret):\n",
173
+ "\n",
174
+ " df = graph.list_users()\n",
175
+ " display(df)"
176
+ ]
177
+ },
153
178
  {
154
179
  "cell_type": "markdown",
155
180
  "id": "fcde09a7",