semantic-link-labs 0.9.1__tar.gz → 0.9.3__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.3}/.github/workflows/build.yaml +2 -2
  2. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/PKG-INFO +67 -8
  3. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/README.md +66 -7
  4. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/docs/source/conf.py +1 -1
  5. semantic_link_labs-0.9.3/notebooks/Delta Analyzer.ipynb +155 -0
  6. semantic_link_labs-0.9.3/notebooks/SQL.ipynb +226 -0
  7. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/notebooks/Service Principal.ipynb +26 -1
  8. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/pyproject.toml +1 -1
  9. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/semantic_link_labs.egg-info/PKG-INFO +67 -8
  10. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/semantic_link_labs.egg-info/SOURCES.txt +8 -0
  11. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/__init__.py +14 -12
  12. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_ai.py +8 -5
  13. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_capacities.py +120 -142
  14. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_capacity_migration.py +61 -94
  15. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_clear_cache.py +9 -8
  16. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_connections.py +107 -104
  17. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_data_pipelines.py +47 -49
  18. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_dataflows.py +45 -51
  19. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_dax.py +228 -6
  20. semantic_link_labs-0.9.3/src/sempy_labs/_delta_analyzer.py +321 -0
  21. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_deployment_pipelines.py +72 -66
  22. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_environments.py +39 -36
  23. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_eventhouses.py +35 -35
  24. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_eventstreams.py +38 -39
  25. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_external_data_shares.py +29 -42
  26. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_gateways.py +103 -99
  27. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_generate_semantic_model.py +22 -30
  28. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_git.py +46 -66
  29. semantic_link_labs-0.9.3/src/sempy_labs/_graphQL.py +95 -0
  30. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_helper_functions.py +227 -36
  31. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_job_scheduler.py +47 -59
  32. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_kql_databases.py +27 -34
  33. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_kql_querysets.py +23 -30
  34. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_list_functions.py +264 -167
  35. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_managed_private_endpoints.py +52 -47
  36. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_mirrored_databases.py +110 -134
  37. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_mirrored_warehouses.py +13 -13
  38. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_ml_experiments.py +36 -36
  39. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_ml_models.py +37 -38
  40. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_model_bpa.py +2 -2
  41. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_model_bpa_rules.py +8 -6
  42. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_model_dependencies.py +2 -0
  43. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_notebooks.py +28 -29
  44. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_one_lake_integration.py +2 -0
  45. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_query_scale_out.py +63 -81
  46. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_refresh_semantic_model.py +12 -14
  47. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_spark.py +54 -79
  48. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_sql.py +7 -11
  49. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_translations.py +2 -2
  50. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_vertipaq.py +11 -6
  51. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_warehouses.py +30 -33
  52. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_workloads.py +15 -20
  53. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_workspace_identity.py +13 -17
  54. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_workspaces.py +49 -48
  55. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/admin/__init__.py +2 -0
  56. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/admin/_basic_functions.py +244 -281
  57. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/admin/_domains.py +186 -103
  58. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/admin/_external_data_share.py +26 -31
  59. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/admin/_git.py +17 -22
  60. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/admin/_items.py +34 -48
  61. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/admin/_scanner.py +61 -49
  62. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/directlake/_directlake_schema_compare.py +2 -0
  63. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/directlake/_dl_helper.py +10 -11
  64. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/directlake/_generate_shared_expression.py +4 -5
  65. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/directlake/_get_directlake_lakehouse.py +1 -0
  66. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/directlake/_list_directlake_model_calc_tables.py +1 -0
  67. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/directlake/_show_unsupported_directlake_objects.py +2 -0
  68. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/directlake/_warm_cache.py +2 -0
  69. semantic_link_labs-0.9.3/src/sempy_labs/graph/__init__.py +33 -0
  70. semantic_link_labs-0.9.3/src/sempy_labs/graph/_groups.py +402 -0
  71. semantic_link_labs-0.9.3/src/sempy_labs/graph/_teams.py +113 -0
  72. semantic_link_labs-0.9.3/src/sempy_labs/graph/_users.py +191 -0
  73. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/lakehouse/__init__.py +4 -0
  74. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/lakehouse/_get_lakehouse_columns.py +12 -12
  75. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/lakehouse/_get_lakehouse_tables.py +16 -22
  76. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/lakehouse/_lakehouse.py +104 -7
  77. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/lakehouse/_shortcuts.py +42 -20
  78. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/migration/__init__.py +4 -0
  79. semantic_link_labs-0.9.3/src/sempy_labs/migration/_direct_lake_to_import.py +66 -0
  80. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/migration/_migrate_calctables_to_lakehouse.py +3 -2
  81. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/migration/_migrate_calctables_to_semantic_model.py +1 -0
  82. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/migration/_migrate_model_objects_to_semantic_model.py +1 -0
  83. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py +2 -0
  84. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/migration/_refresh_calc_tables.py +2 -2
  85. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/report/_download_report.py +8 -13
  86. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/report/_generate_report.py +49 -46
  87. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/report/_paginated.py +20 -26
  88. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/report/_report_functions.py +52 -47
  89. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/report/_report_list_functions.py +2 -0
  90. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/report/_report_rebind.py +6 -10
  91. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/report/_reportwrapper.py +187 -220
  92. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/tom/_model.py +12 -6
  93. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/tests/test_tom.py +1 -0
  94. semantic_link_labs-0.9.1/notebooks/SQL.ipynb +0 -1
  95. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  96. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  97. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/.github/ISSUE_TEMPLATE/issue--question---advice-needed.md +0 -0
  98. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/.github/workflows/codeql.yaml +0 -0
  99. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/.gitignore +0 -0
  100. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/.readthedocs.yaml +0 -0
  101. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/.vscode/settings.json +0 -0
  102. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/CODE_OF_CONDUCT.md +0 -0
  103. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/LICENSE +0 -0
  104. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/SECURITY.md +0 -0
  105. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/SUPPORT.md +0 -0
  106. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/docs/Makefile +0 -0
  107. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/docs/make.bat +0 -0
  108. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/docs/requirements.txt +0 -0
  109. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/docs/source/index.rst +0 -0
  110. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/docs/source/modules.rst +0 -0
  111. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/environment.yml +0 -0
  112. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/notebooks/Best Practice Analyzer Report.ipynb +0 -0
  113. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/notebooks/Capacity Migration.ipynb +0 -0
  114. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/notebooks/Migration to Direct Lake.ipynb +0 -0
  115. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/notebooks/Model Optimization.ipynb +0 -0
  116. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/notebooks/Query Scale Out.ipynb +0 -0
  117. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/notebooks/Report Analysis.ipynb +0 -0
  118. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/notebooks/Semantic Model Management.ipynb +0 -0
  119. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/notebooks/Semantic Model Refresh.ipynb +0 -0
  120. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/notebooks/Tabular Object Model.ipynb +0 -0
  121. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/setup.cfg +0 -0
  122. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/semantic_link_labs.egg-info/dependency_links.txt +0 -0
  123. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/semantic_link_labs.egg-info/requires.txt +0 -0
  124. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/semantic_link_labs.egg-info/top_level.txt +0 -0
  125. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_authentication.py +0 -0
  126. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_am-ET.po +0 -0
  127. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_ar-AE.po +0 -0
  128. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_bg-BG.po +0 -0
  129. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_ca-ES.po +0 -0
  130. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_cs-CZ.po +0 -0
  131. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_da-DK.po +0 -0
  132. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_de-DE.po +0 -0
  133. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_el-GR.po +0 -0
  134. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_es-ES.po +0 -0
  135. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_fa-IR.po +0 -0
  136. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_fi-FI.po +0 -0
  137. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_fr-FR.po +0 -0
  138. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_ga-IE.po +0 -0
  139. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_he-IL.po +0 -0
  140. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_hi-IN.po +0 -0
  141. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_hu-HU.po +0 -0
  142. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_id-ID.po +0 -0
  143. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_is-IS.po +0 -0
  144. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_it-IT.po +0 -0
  145. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_ja-JP.po +0 -0
  146. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_ko-KR.po +0 -0
  147. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_mt-MT.po +0 -0
  148. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_nl-NL.po +0 -0
  149. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_pl-PL.po +0 -0
  150. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_pt-BR.po +0 -0
  151. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_pt-PT.po +0 -0
  152. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_ro-RO.po +0 -0
  153. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_ru-RU.po +0 -0
  154. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_sk-SK.po +0 -0
  155. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_sl-SL.po +0 -0
  156. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_sv-SE.po +0 -0
  157. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_ta-IN.po +0 -0
  158. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_te-IN.po +0 -0
  159. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_th-TH.po +0 -0
  160. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_tr-TR.po +0 -0
  161. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_uk-UA.po +0 -0
  162. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_zh-CN.po +0 -0
  163. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po +0 -0
  164. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_documentation.py +0 -0
  165. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_icons.py +0 -0
  166. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_model_auto_build.py +0 -0
  167. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/_model_bpa_bulk.py +0 -0
  168. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/directlake/__init__.py +0 -0
  169. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/directlake/_directlake_schema_sync.py +0 -0
  170. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/directlake/_get_shared_expression.py +0 -0
  171. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/directlake/_guardrails.py +0 -0
  172. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py +0 -0
  173. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/directlake/_update_directlake_partition_entity.py +0 -0
  174. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/migration/_create_pqt_file.py +0 -0
  175. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/migration/_migration_validation.py +0 -0
  176. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/report/_BPAReportTemplate.json +0 -0
  177. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/report/__init__.py +0 -0
  178. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/report/_bpareporttemplate/.pbi/localSettings.json +0 -0
  179. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/report/_bpareporttemplate/.platform +0 -0
  180. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/report/_bpareporttemplate/StaticResources/SharedResources/BaseThemes/CY24SU06.json +0 -0
  181. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/page.json +0 -0
  182. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/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.3}/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.3}/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.3}/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.3}/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.3}/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.3}/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.3}/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.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/page.json +0 -0
  191. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/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.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/page.json +0 -0
  193. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/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.3}/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.3}/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.3}/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.3}/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.3}/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.3}/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.3}/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.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json +0 -0
  202. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/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.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/pages.json +0 -0
  204. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/report/_bpareporttemplate/definition/report.json +0 -0
  205. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/report/_bpareporttemplate/definition/version.json +0 -0
  206. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/report/_bpareporttemplate/definition.pbir +0 -0
  207. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/report/_report_bpa.py +0 -0
  208. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/report/_report_bpa_rules.py +0 -0
  209. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/report/_report_helper.py +0 -0
  210. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/src/sempy_labs/tom/__init__.py +0 -0
  211. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/tests/__init__.py +0 -0
  212. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/tests/test_friendly_case.py +0 -0
  213. {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.3}/tests/test_shortcuts.py +0 -0
@@ -28,7 +28,7 @@ jobs:
28
28
  shell: bash
29
29
 
30
30
  - name: Cache conda
31
- uses: actions/cache@v2
31
+ uses: actions/cache@v3
32
32
  env:
33
33
  # Increase this value to reset cache if environment.yml has not changed
34
34
  CACHE_NUMBER: 0
@@ -37,7 +37,7 @@ jobs:
37
37
  key:
38
38
  ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{ steps.get-date.outputs.today }}-${{ hashFiles('environment.yml') }}
39
39
 
40
- - uses: conda-incubator/setup-miniconda@v2
40
+ - uses: conda-incubator/setup-miniconda@v3
41
41
  with:
42
42
  auto-update-conda: true
43
43
  activate-environment: fabric
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: semantic-link-labs
3
- Version: 0.9.1
3
+ Version: 0.9.3
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.3&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,10 @@ 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.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.3) (February 13, 2025)
148
+ * [0.9.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.2) (February 5, 2025)
149
+ * [0.9.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.1) (January 22, 2025)
150
+ * [0.9.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.0) (January 22, 2025)
148
151
  * [0.8.11](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.11) (December 19, 2024)
149
152
  * [0.8.10](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.10) (December 16, 2024)
150
153
  * [0.8.9](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.9) (December 4, 2024)
@@ -238,6 +241,62 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope
238
241
  For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
239
242
  contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
240
243
 
244
+ ## How to Contribute
245
+
246
+ #### Initial setup
247
+ 1. Fork the Semantic Link Labs GitHub repository (Fork -> Create a new fork).
248
+ 2. Click on the green icon '<> Code' and copy the 'HTTPS' URL to the clipboard.
249
+ 3. Open Visual Studio Code.
250
+ 4. Select 'Clone Git Repository'.
251
+ 5. Paste the URL copied in step 2.
252
+ 6. Select 'Clone from URL'.
253
+ 7. Select/create a folder to map the cloned repository to your computer.
254
+ 8. When prompted to open the cloned repository, click 'Open'.
255
+ 9. Open the integrated terminal (View -> Terminal).
256
+ 10. Run the following code in the terminal to ensure a virtual environment exists.
257
+ ```python
258
+ python -m venv venv
259
+ ```
260
+ 11. Run the following code in the terminal to activate the virtual environment.
261
+ ```python
262
+ .\venv\Scripts\Activate.ps1
263
+ ```
264
+ 12. Run the following code in the terminal to install the build module.
265
+ ```
266
+ pip install build
267
+ ```
268
+
269
+ #### Branching
270
+ When making changes, always create a new branch.
271
+
272
+ 1. Navigate to the Souce Control tab within Visual Studio Code.
273
+ 2. Click on the Source Control icon at the bottom left corner of the screen.
274
+ 3. Click 'Create new branch...'.
275
+ 4. Enter the branch name (i.e. yourusername/branchname).
276
+ 5. Click 'Enter'.
277
+
278
+ #### Building the .whl file
279
+ Running the following in the terminal in Visual Studio Code will create a .whl file in the 'dist' folder within your locally-cloned repository.
280
+
281
+ ```cli
282
+ python -m build
283
+ ```
284
+
285
+ #### Running and testing the .whl file
286
+ 1. Open a notebook in a Fabric workspace.
287
+ 2. Navigate to 'Resources' within the Explorer tab.
288
+ 3. Upload the .whl file here.
289
+ 4. Drag the .whl file into a notebook cell.
290
+ 5. Run the %pip install command generated by step 4.
291
+
292
+ #### Submitting a Pull Request (PR)
293
+ 1. Within the 'Source Control' tab, commit your changes to the branch.
294
+ 2. Navigate to the [GitHub repo](https://github.com/microsoft/semantic-link-labs).
295
+ 3. A 'Create pull request' will appear at the top of the screen in green. Click it.
296
+ 4. Enter details into the description.
297
+ 5. Click 'Create'.
298
+
299
+
241
300
  ## Trademarks
242
301
 
243
302
  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.3&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,10 @@ 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.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.3) (February 13, 2025)
123
+ * [0.9.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.2) (February 5, 2025)
124
+ * [0.9.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.1) (January 22, 2025)
125
+ * [0.9.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.0) (January 22, 2025)
123
126
  * [0.8.11](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.11) (December 19, 2024)
124
127
  * [0.8.10](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.10) (December 16, 2024)
125
128
  * [0.8.9](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.9) (December 4, 2024)
@@ -213,6 +216,62 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope
213
216
  For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
214
217
  contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
215
218
 
219
+ ## How to Contribute
220
+
221
+ #### Initial setup
222
+ 1. Fork the Semantic Link Labs GitHub repository (Fork -> Create a new fork).
223
+ 2. Click on the green icon '<> Code' and copy the 'HTTPS' URL to the clipboard.
224
+ 3. Open Visual Studio Code.
225
+ 4. Select 'Clone Git Repository'.
226
+ 5. Paste the URL copied in step 2.
227
+ 6. Select 'Clone from URL'.
228
+ 7. Select/create a folder to map the cloned repository to your computer.
229
+ 8. When prompted to open the cloned repository, click 'Open'.
230
+ 9. Open the integrated terminal (View -> Terminal).
231
+ 10. Run the following code in the terminal to ensure a virtual environment exists.
232
+ ```python
233
+ python -m venv venv
234
+ ```
235
+ 11. Run the following code in the terminal to activate the virtual environment.
236
+ ```python
237
+ .\venv\Scripts\Activate.ps1
238
+ ```
239
+ 12. Run the following code in the terminal to install the build module.
240
+ ```
241
+ pip install build
242
+ ```
243
+
244
+ #### Branching
245
+ When making changes, always create a new branch.
246
+
247
+ 1. Navigate to the Souce Control tab within Visual Studio Code.
248
+ 2. Click on the Source Control icon at the bottom left corner of the screen.
249
+ 3. Click 'Create new branch...'.
250
+ 4. Enter the branch name (i.e. yourusername/branchname).
251
+ 5. Click 'Enter'.
252
+
253
+ #### Building the .whl file
254
+ Running the following in the terminal in Visual Studio Code will create a .whl file in the 'dist' folder within your locally-cloned repository.
255
+
256
+ ```cli
257
+ python -m build
258
+ ```
259
+
260
+ #### Running and testing the .whl file
261
+ 1. Open a notebook in a Fabric workspace.
262
+ 2. Navigate to 'Resources' within the Explorer tab.
263
+ 3. Upload the .whl file here.
264
+ 4. Drag the .whl file into a notebook cell.
265
+ 5. Run the %pip install command generated by step 4.
266
+
267
+ #### Submitting a Pull Request (PR)
268
+ 1. Within the 'Source Control' tab, commit your changes to the branch.
269
+ 2. Navigate to the [GitHub repo](https://github.com/microsoft/semantic-link-labs).
270
+ 3. A 'Create pull request' will appear at the top of the screen in green. Click it.
271
+ 4. Enter details into the description.
272
+ 5. Click 'Create'.
273
+
274
+
216
275
  ## Trademarks
217
276
 
218
277
  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.3'
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
+ }