semantic-link-labs 0.9.0__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.0 → semantic_link_labs-0.9.2}/PKG-INFO +68 -7
  2. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/README.md +67 -6
  3. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/docs/source/conf.py +1 -1
  4. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/notebooks/Capacity Migration.ipynb +3 -3
  5. semantic_link_labs-0.9.2/notebooks/Delta Analyzer.ipynb +155 -0
  6. semantic_link_labs-0.9.2/notebooks/SQL.ipynb +226 -0
  7. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/notebooks/Service Principal.ipynb +35 -6
  8. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/notebooks/Tabular Object Model.ipynb +3 -3
  9. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/pyproject.toml +1 -1
  10. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/semantic_link_labs.egg-info/PKG-INFO +68 -7
  11. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/semantic_link_labs.egg-info/SOURCES.txt +8 -0
  12. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/__init__.py +14 -12
  13. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_authentication.py +0 -2
  14. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_capacities.py +120 -142
  15. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_capacity_migration.py +61 -94
  16. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_clear_cache.py +9 -8
  17. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_connections.py +72 -105
  18. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_data_pipelines.py +47 -49
  19. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_dataflows.py +45 -51
  20. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_dax.py +228 -6
  21. semantic_link_labs-0.9.2/src/sempy_labs/_delta_analyzer.py +303 -0
  22. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_deployment_pipelines.py +72 -66
  23. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_environments.py +39 -36
  24. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_eventhouses.py +35 -35
  25. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_eventstreams.py +38 -39
  26. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_external_data_shares.py +29 -42
  27. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_gateways.py +57 -101
  28. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_generate_semantic_model.py +22 -30
  29. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_git.py +46 -66
  30. semantic_link_labs-0.9.2/src/sempy_labs/_graphQL.py +95 -0
  31. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_helper_functions.py +175 -30
  32. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_job_scheduler.py +47 -59
  33. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_kql_databases.py +27 -34
  34. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_kql_querysets.py +23 -30
  35. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_list_functions.py +262 -164
  36. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_managed_private_endpoints.py +52 -47
  37. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_mirrored_databases.py +110 -134
  38. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_mirrored_warehouses.py +13 -13
  39. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_ml_experiments.py +36 -36
  40. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_ml_models.py +37 -38
  41. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_model_dependencies.py +2 -0
  42. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_notebooks.py +28 -29
  43. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_one_lake_integration.py +2 -0
  44. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_query_scale_out.py +63 -81
  45. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_refresh_semantic_model.py +12 -14
  46. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_spark.py +54 -79
  47. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_sql.py +7 -11
  48. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_vertipaq.py +8 -3
  49. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_warehouses.py +30 -33
  50. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_workloads.py +15 -20
  51. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_workspace_identity.py +13 -17
  52. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_workspaces.py +49 -48
  53. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/__init__.py +2 -0
  54. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_basic_functions.py +244 -281
  55. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_domains.py +188 -103
  56. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_external_data_share.py +26 -31
  57. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_git.py +17 -22
  58. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_items.py +34 -48
  59. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_scanner.py +20 -13
  60. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_directlake_schema_compare.py +2 -0
  61. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_dl_helper.py +10 -11
  62. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_generate_shared_expression.py +4 -5
  63. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_get_directlake_lakehouse.py +1 -0
  64. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_list_directlake_model_calc_tables.py +1 -0
  65. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_show_unsupported_directlake_objects.py +2 -0
  66. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_warm_cache.py +2 -0
  67. semantic_link_labs-0.9.2/src/sempy_labs/graph/__init__.py +33 -0
  68. semantic_link_labs-0.9.2/src/sempy_labs/graph/_groups.py +402 -0
  69. semantic_link_labs-0.9.2/src/sempy_labs/graph/_teams.py +113 -0
  70. semantic_link_labs-0.9.2/src/sempy_labs/graph/_users.py +191 -0
  71. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/lakehouse/__init__.py +4 -0
  72. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/lakehouse/_get_lakehouse_columns.py +10 -10
  73. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/lakehouse/_get_lakehouse_tables.py +14 -20
  74. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/lakehouse/_lakehouse.py +101 -4
  75. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/lakehouse/_shortcuts.py +42 -20
  76. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/__init__.py +4 -0
  77. semantic_link_labs-0.9.2/src/sempy_labs/migration/_direct_lake_to_import.py +66 -0
  78. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_migrate_calctables_to_lakehouse.py +1 -0
  79. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_migrate_calctables_to_semantic_model.py +1 -0
  80. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_migrate_model_objects_to_semantic_model.py +1 -0
  81. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py +2 -0
  82. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_download_report.py +8 -13
  83. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_generate_report.py +49 -46
  84. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_paginated.py +20 -26
  85. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_functions.py +50 -45
  86. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_list_functions.py +2 -0
  87. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_rebind.py +6 -10
  88. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_reportwrapper.py +187 -220
  89. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/tom/_model.py +8 -5
  90. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/tests/test_tom.py +1 -0
  91. semantic_link_labs-0.9.0/notebooks/SQL.ipynb +0 -1
  92. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  93. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  94. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/.github/ISSUE_TEMPLATE/issue--question---advice-needed.md +0 -0
  95. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/.github/workflows/build.yaml +0 -0
  96. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/.github/workflows/codeql.yaml +0 -0
  97. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/.gitignore +0 -0
  98. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/.readthedocs.yaml +0 -0
  99. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/.vscode/settings.json +0 -0
  100. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/CODE_OF_CONDUCT.md +0 -0
  101. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/LICENSE +0 -0
  102. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/SECURITY.md +0 -0
  103. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/SUPPORT.md +0 -0
  104. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/docs/Makefile +0 -0
  105. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/docs/make.bat +0 -0
  106. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/docs/requirements.txt +0 -0
  107. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/docs/source/index.rst +0 -0
  108. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/docs/source/modules.rst +0 -0
  109. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/environment.yml +0 -0
  110. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/notebooks/Best Practice Analyzer Report.ipynb +0 -0
  111. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/notebooks/Migration to Direct Lake.ipynb +0 -0
  112. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/notebooks/Model Optimization.ipynb +0 -0
  113. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/notebooks/Query Scale Out.ipynb +0 -0
  114. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/notebooks/Report Analysis.ipynb +0 -0
  115. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/notebooks/Semantic Model Management.ipynb +0 -0
  116. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/notebooks/Semantic Model Refresh.ipynb +0 -0
  117. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/setup.cfg +0 -0
  118. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/semantic_link_labs.egg-info/dependency_links.txt +0 -0
  119. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/semantic_link_labs.egg-info/requires.txt +0 -0
  120. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/semantic_link_labs.egg-info/top_level.txt +0 -0
  121. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_ai.py +0 -0
  122. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_am-ET.po +0 -0
  123. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ar-AE.po +0 -0
  124. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_bg-BG.po +0 -0
  125. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ca-ES.po +0 -0
  126. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_cs-CZ.po +0 -0
  127. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_da-DK.po +0 -0
  128. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_de-DE.po +0 -0
  129. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_el-GR.po +0 -0
  130. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_es-ES.po +0 -0
  131. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_fa-IR.po +0 -0
  132. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_fi-FI.po +0 -0
  133. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_fr-FR.po +0 -0
  134. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ga-IE.po +0 -0
  135. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_he-IL.po +0 -0
  136. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_hi-IN.po +0 -0
  137. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_hu-HU.po +0 -0
  138. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_id-ID.po +0 -0
  139. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_is-IS.po +0 -0
  140. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_it-IT.po +0 -0
  141. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ja-JP.po +0 -0
  142. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ko-KR.po +0 -0
  143. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_mt-MT.po +0 -0
  144. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_nl-NL.po +0 -0
  145. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_pl-PL.po +0 -0
  146. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_pt-BR.po +0 -0
  147. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_pt-PT.po +0 -0
  148. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ro-RO.po +0 -0
  149. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ru-RU.po +0 -0
  150. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_sk-SK.po +0 -0
  151. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_sl-SL.po +0 -0
  152. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_sv-SE.po +0 -0
  153. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ta-IN.po +0 -0
  154. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_te-IN.po +0 -0
  155. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_th-TH.po +0 -0
  156. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_tr-TR.po +0 -0
  157. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_uk-UA.po +0 -0
  158. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_zh-CN.po +0 -0
  159. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po +0 -0
  160. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_documentation.py +0 -0
  161. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_icons.py +0 -0
  162. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_model_auto_build.py +0 -0
  163. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_model_bpa.py +0 -0
  164. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_model_bpa_bulk.py +0 -0
  165. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_model_bpa_rules.py +0 -0
  166. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_translations.py +0 -0
  167. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/__init__.py +0 -0
  168. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_directlake_schema_sync.py +0 -0
  169. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_get_shared_expression.py +0 -0
  170. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_guardrails.py +0 -0
  171. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py +0 -0
  172. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_update_directlake_partition_entity.py +0 -0
  173. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_create_pqt_file.py +0 -0
  174. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_migration_validation.py +0 -0
  175. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_refresh_calc_tables.py +0 -0
  176. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_BPAReportTemplate.json +0 -0
  177. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/__init__.py +0 -0
  178. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/.pbi/localSettings.json +0 -0
  179. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/.platform +0 -0
  180. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/StaticResources/SharedResources/BaseThemes/CY24SU06.json +0 -0
  181. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/page.json +0 -0
  182. {semantic_link_labs-0.9.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/page.json +0 -0
  191. {semantic_link_labs-0.9.0 → 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.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/page.json +0 -0
  193. {semantic_link_labs-0.9.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json +0 -0
  202. {semantic_link_labs-0.9.0 → 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.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/pages.json +0 -0
  204. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/report.json +0 -0
  205. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/version.json +0 -0
  206. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition.pbir +0 -0
  207. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_bpa.py +0 -0
  208. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_bpa_rules.py +0 -0
  209. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_helper.py +0 -0
  210. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/tom/__init__.py +0 -0
  211. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/tests/__init__.py +0 -0
  212. {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/tests/test_friendly_case.py +0 -0
  213. {semantic_link_labs-0.9.0 → 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.0
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.0&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,13 @@ 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 (Fabric Capacity)](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
90
+ * Service Principal Authentication
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.
87
92
 
88
93
  ## Helper Notebooks
89
94
 
@@ -111,13 +116,11 @@ for file_name, file_url in notebook_files.items():
111
116
  ## Once installed, run this code to import the library into your notebook
112
117
  ```python
113
118
  import sempy_labs as labs
114
- from sempy_labs import migration, directlake, admin
119
+ from sempy_labs import migration, directlake, admin, graph
115
120
  from sempy_labs import lakehouse as lake
116
121
  from sempy_labs import report as rep
117
122
  from sempy_labs.tom import connect_semantic_model
118
123
  from sempy_labs.report import ReportWrapper
119
- from sempy_labs import ConnectWarehouse
120
- from sempy_labs import ConnectLakehouse
121
124
  ```
122
125
 
123
126
  ## Load Semantic Link Labs into a custom [Fabric environment](https://learn.microsoft.com/fabric/data-engineering/create-and-use-environment)
@@ -141,7 +144,9 @@ An even better way to ensure the semantic-link-labs library is available in your
141
144
  2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
142
145
 
143
146
  ## Version History
144
- * [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)
145
150
  * [0.8.11](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.11) (December 19, 2024)
146
151
  * [0.8.10](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.10) (December 16, 2024)
147
152
  * [0.8.9](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.9) (December 4, 2024)
@@ -235,6 +240,62 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope
235
240
  For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
236
241
  contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
237
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
+
238
299
  ## Trademarks
239
300
 
240
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.0&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,13 @@ 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 (Fabric Capacity)](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
65
+ * Service Principal Authentication
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.
62
67
 
63
68
  ## Helper Notebooks
64
69
 
@@ -86,13 +91,11 @@ for file_name, file_url in notebook_files.items():
86
91
  ## Once installed, run this code to import the library into your notebook
87
92
  ```python
88
93
  import sempy_labs as labs
89
- from sempy_labs import migration, directlake, admin
94
+ from sempy_labs import migration, directlake, admin, graph
90
95
  from sempy_labs import lakehouse as lake
91
96
  from sempy_labs import report as rep
92
97
  from sempy_labs.tom import connect_semantic_model
93
98
  from sempy_labs.report import ReportWrapper
94
- from sempy_labs import ConnectWarehouse
95
- from sempy_labs import ConnectLakehouse
96
99
  ```
97
100
 
98
101
  ## Load Semantic Link Labs into a custom [Fabric environment](https://learn.microsoft.com/fabric/data-engineering/create-and-use-environment)
@@ -116,7 +119,9 @@ An even better way to ensure the semantic-link-labs library is available in your
116
119
  2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
117
120
 
118
121
  ## Version History
119
- * [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)
120
125
  * [0.8.11](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.11) (December 19, 2024)
121
126
  * [0.8.10](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.10) (December 16, 2024)
122
127
  * [0.8.9](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.9) (December 4, 2024)
@@ -210,6 +215,62 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope
210
215
  For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
211
216
  contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
212
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
+
213
274
  ## Trademarks
214
275
 
215
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.0'
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
@@ -83,9 +83,9 @@
83
83
  "resource_group = '' # Enter the name of the resource group (to be used to create the new F skus)\n",
84
84
  "\n",
85
85
  "key_vault_uri = '', # Enter your key vault URI\n",
86
- "key_vault_tenant_id = '', # Enter the key vault secret storig your Tenant ID\n",
87
- "key_vault_client_id = '', # Enter the key vault secret storig your Client ID (Applciation ID)\n",
88
- "key_vault_client_secret = '' # Enter the key vault secret storig your Client Secret"
86
+ "key_vault_tenant_id = '', # Enter the key vault key to the secret storing your Tenant ID\n",
87
+ "key_vault_client_id = '', # Enter the key vault key to the secret storing your Client ID (Application ID)\n",
88
+ "key_vault_client_secret = '' # Enter the key vault key to the secret storing your Client Secret"
89
89
  ]
90
90
  },
91
91
  {
@@ -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
+ }