semantic-link-labs 0.11.2__tar.gz → 0.11.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 (221) hide show
  1. {semantic_link_labs-0.11.2/src/semantic_link_labs.egg-info → semantic_link_labs-0.11.3}/PKG-INFO +4 -4
  2. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/README.md +3 -2
  3. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/pyproject.toml +1 -2
  4. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3/src/semantic_link_labs.egg-info}/PKG-INFO +4 -4
  5. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/semantic_link_labs.egg-info/SOURCES.txt +5 -3
  6. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/semantic_link_labs.egg-info/requires.txt +0 -1
  7. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/__init__.py +12 -18
  8. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_a_lib_info.py +1 -1
  9. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_external_data_shares.py +55 -1
  10. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_helper_functions.py +169 -5
  11. semantic_link_labs-0.11.3/src/sempy_labs/_labels.py +126 -0
  12. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_list_functions.py +1 -1
  13. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_notebooks.py +152 -3
  14. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/directlake/_dl_helper.py +4 -1
  15. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/graph/_users.py +3 -5
  16. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/lakehouse/_helper.py +18 -9
  17. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/lakehouse/_lakehouse.py +18 -9
  18. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/migration/_migrate_calctables_to_lakehouse.py +38 -47
  19. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/migration/_migrate_calctables_to_semantic_model.py +12 -22
  20. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/migration/_migrate_model_objects_to_semantic_model.py +7 -11
  21. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py +14 -23
  22. semantic_link_labs-0.11.3/src/sempy_labs/ml_model/__init__.py +23 -0
  23. semantic_link_labs-0.11.3/src/sempy_labs/ml_model/_functions.py +427 -0
  24. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_reportwrapper.py +1 -1
  25. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/tom/_model.py +8 -3
  26. semantic_link_labs-0.11.3/src/sempy_labs/variable_library/__init__.py +19 -0
  27. semantic_link_labs-0.11.3/src/sempy_labs/variable_library/_functions.py +403 -0
  28. semantic_link_labs-0.11.2/src/sempy_labs/_dax_query_view.py +0 -57
  29. semantic_link_labs-0.11.2/src/sempy_labs/_ml_models.py +0 -111
  30. semantic_link_labs-0.11.2/src/sempy_labs/_variable_libraries.py +0 -92
  31. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/LICENSE +0 -0
  32. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/setup.cfg +0 -0
  33. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/semantic_link_labs.egg-info/dependency_links.txt +0 -0
  34. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/semantic_link_labs.egg-info/top_level.txt +0 -0
  35. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_ai.py +0 -0
  36. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_authentication.py +0 -0
  37. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_am-ET.po +0 -0
  38. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_ar-AE.po +0 -0
  39. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_bg-BG.po +0 -0
  40. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_ca-ES.po +0 -0
  41. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_cs-CZ.po +0 -0
  42. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_da-DK.po +0 -0
  43. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_de-DE.po +0 -0
  44. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_el-GR.po +0 -0
  45. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_es-ES.po +0 -0
  46. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_fa-IR.po +0 -0
  47. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_fi-FI.po +0 -0
  48. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_fr-FR.po +0 -0
  49. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_ga-IE.po +0 -0
  50. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_he-IL.po +0 -0
  51. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_hi-IN.po +0 -0
  52. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_hu-HU.po +0 -0
  53. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_id-ID.po +0 -0
  54. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_is-IS.po +0 -0
  55. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_it-IT.po +0 -0
  56. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_ja-JP.po +0 -0
  57. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_ko-KR.po +0 -0
  58. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_mt-MT.po +0 -0
  59. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_nl-NL.po +0 -0
  60. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_pl-PL.po +0 -0
  61. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_pt-BR.po +0 -0
  62. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_pt-PT.po +0 -0
  63. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_ro-RO.po +0 -0
  64. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_ru-RU.po +0 -0
  65. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_sk-SK.po +0 -0
  66. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_sl-SL.po +0 -0
  67. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_sv-SE.po +0 -0
  68. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_ta-IN.po +0 -0
  69. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_te-IN.po +0 -0
  70. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_th-TH.po +0 -0
  71. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_tr-TR.po +0 -0
  72. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_uk-UA.po +0 -0
  73. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_zh-CN.po +0 -0
  74. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po +0 -0
  75. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_capacities.py +0 -0
  76. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_capacity_migration.py +0 -0
  77. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_clear_cache.py +0 -0
  78. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_connections.py +0 -0
  79. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_dashboards.py +0 -0
  80. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_data_pipelines.py +0 -0
  81. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_dataflows.py +0 -0
  82. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_dax.py +0 -0
  83. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_daxformatter.py +0 -0
  84. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_delta_analyzer.py +0 -0
  85. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_delta_analyzer_history.py +0 -0
  86. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_deployment_pipelines.py +0 -0
  87. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_dictionary_diffs.py +0 -0
  88. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_documentation.py +0 -0
  89. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_environments.py +0 -0
  90. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_eventhouses.py +0 -0
  91. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_eventstreams.py +0 -0
  92. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_gateways.py +0 -0
  93. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_generate_semantic_model.py +0 -0
  94. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_git.py +0 -0
  95. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_graphQL.py +0 -0
  96. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_icons.py +0 -0
  97. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_job_scheduler.py +0 -0
  98. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_kql_databases.py +0 -0
  99. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_kql_querysets.py +0 -0
  100. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_kusto.py +0 -0
  101. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_managed_private_endpoints.py +0 -0
  102. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_mirrored_databases.py +0 -0
  103. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_mirrored_warehouses.py +0 -0
  104. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_ml_experiments.py +0 -0
  105. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_model_auto_build.py +0 -0
  106. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_model_bpa.py +0 -0
  107. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_model_bpa_bulk.py +0 -0
  108. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_model_bpa_rules.py +0 -0
  109. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_model_dependencies.py +0 -0
  110. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_mounted_data_factories.py +0 -0
  111. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_one_lake_integration.py +0 -0
  112. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_query_scale_out.py +0 -0
  113. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_refresh_semantic_model.py +0 -0
  114. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_semantic_models.py +0 -0
  115. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_spark.py +0 -0
  116. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_sql.py +0 -0
  117. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_sql_endpoints.py +0 -0
  118. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_sqldatabase.py +0 -0
  119. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_tags.py +0 -0
  120. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_translations.py +0 -0
  121. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_user_delegation_key.py +0 -0
  122. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_utils.py +0 -0
  123. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_vertipaq.py +0 -0
  124. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_vpax.py +0 -0
  125. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_warehouses.py +0 -0
  126. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_workloads.py +0 -0
  127. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_workspace_identity.py +0 -0
  128. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/_workspaces.py +0 -0
  129. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/admin/__init__.py +0 -0
  130. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/admin/_activities.py +0 -0
  131. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/admin/_apps.py +0 -0
  132. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/admin/_artifacts.py +0 -0
  133. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/admin/_basic_functions.py +0 -0
  134. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/admin/_capacities.py +0 -0
  135. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/admin/_dataflows.py +0 -0
  136. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/admin/_datasets.py +0 -0
  137. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/admin/_domains.py +0 -0
  138. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/admin/_external_data_share.py +0 -0
  139. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/admin/_git.py +0 -0
  140. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/admin/_items.py +0 -0
  141. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/admin/_reports.py +0 -0
  142. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/admin/_scanner.py +0 -0
  143. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/admin/_shared.py +0 -0
  144. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/admin/_tags.py +0 -0
  145. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/admin/_tenant.py +0 -0
  146. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/admin/_users.py +0 -0
  147. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/admin/_workspaces.py +0 -0
  148. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/directlake/__init__.py +0 -0
  149. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/directlake/_directlake_schema_compare.py +0 -0
  150. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/directlake/_directlake_schema_sync.py +0 -0
  151. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/directlake/_generate_shared_expression.py +0 -0
  152. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/directlake/_get_directlake_lakehouse.py +0 -0
  153. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/directlake/_get_shared_expression.py +0 -0
  154. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/directlake/_guardrails.py +0 -0
  155. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/directlake/_list_directlake_model_calc_tables.py +0 -0
  156. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/directlake/_show_unsupported_directlake_objects.py +0 -0
  157. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py +0 -0
  158. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/directlake/_update_directlake_partition_entity.py +0 -0
  159. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/directlake/_warm_cache.py +0 -0
  160. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/dotnet_lib/dotnet.runtime.config.json +0 -0
  161. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/graph/__init__.py +0 -0
  162. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/graph/_groups.py +0 -0
  163. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/graph/_teams.py +0 -0
  164. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/lakehouse/__init__.py +0 -0
  165. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/lakehouse/_blobs.py +0 -0
  166. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/lakehouse/_get_lakehouse_columns.py +0 -0
  167. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/lakehouse/_get_lakehouse_tables.py +0 -0
  168. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/lakehouse/_livy_sessions.py +0 -0
  169. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/lakehouse/_shortcuts.py +0 -0
  170. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/migration/__init__.py +0 -0
  171. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/migration/_create_pqt_file.py +0 -0
  172. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/migration/_direct_lake_to_import.py +0 -0
  173. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/migration/_migration_validation.py +0 -0
  174. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/migration/_refresh_calc_tables.py +0 -0
  175. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/mirrored_azure_databricks_catalog/__init__.py +0 -0
  176. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/mirrored_azure_databricks_catalog/_discover.py +0 -0
  177. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/mirrored_azure_databricks_catalog/_refresh_catalog_metadata.py +0 -0
  178. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_BPAReportTemplate.json +0 -0
  179. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/__init__.py +0 -0
  180. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/StaticResources/SharedResources/BaseThemes/CY24SU06.json +0 -0
  181. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/page.json +0 -0
  182. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/1b08bce3bebabb0a27a8/visual.json +0 -0
  183. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/2f22ddb70c301693c165/visual.json +0 -0
  184. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/3b1182230aa6c600b43a/visual.json +0 -0
  185. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/58577ba6380c69891500/visual.json +0 -0
  186. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/a2a8fa5028b3b776c96c/visual.json +0 -0
  187. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/adfd47ef30652707b987/visual.json +0 -0
  188. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/b6a80ee459e716e170b1/visual.json +0 -0
  189. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/ce3130a721c020cc3d81/visual.json +0 -0
  190. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/page.json +0 -0
  191. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/visuals/66e60dfb526437cd78d1/visual.json +0 -0
  192. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/page.json +0 -0
  193. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/07deb8bce824e1be37d7/visual.json +0 -0
  194. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0b1c68838818b32ad03b/visual.json +0 -0
  195. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0c171de9d2683d10b930/visual.json +0 -0
  196. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0efa01be0510e40a645e/visual.json +0 -0
  197. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/6bf2f0eb830ab53cc668/visual.json +0 -0
  198. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/88d8141cb8500b60030c/visual.json +0 -0
  199. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/a753273590beed656a03/visual.json +0 -0
  200. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/b8fdc82cddd61ac447bc/visual.json +0 -0
  201. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json +0 -0
  202. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/visuals/ce8532a7e25020271077/visual.json +0 -0
  203. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/pages.json +0 -0
  204. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/report.json +0 -0
  205. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition/version.json +0 -0
  206. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_bpareporttemplate/definition.pbir +0 -0
  207. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_download_report.py +0 -0
  208. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_export_report.py +0 -0
  209. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_generate_report.py +0 -0
  210. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_paginated.py +0 -0
  211. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_report_bpa.py +0 -0
  212. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_report_bpa_rules.py +0 -0
  213. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_report_functions.py +0 -0
  214. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_report_helper.py +0 -0
  215. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_report_list_functions.py +0 -0
  216. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_report_rebind.py +0 -0
  217. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/report/_save_report.py +0 -0
  218. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/theme/__init__.py +0 -0
  219. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/theme/_org_themes.py +0 -0
  220. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/src/sempy_labs/tom/__init__.py +0 -0
  221. {semantic_link_labs-0.11.2 → semantic_link_labs-0.11.3}/tests/test_friendly_case.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: semantic-link-labs
3
- Version: 0.11.2
3
+ Version: 0.11.3
4
4
  Summary: Semantic Link Labs for Microsoft Fabric
5
5
  Author: Microsoft Corporation
6
6
  License: MIT License
@@ -17,7 +17,6 @@ Description-Content-Type: text/markdown
17
17
  License-File: LICENSE
18
18
  Requires-Dist: semantic-link-sempy>=0.11.1
19
19
  Requires-Dist: anytree
20
- Requires-Dist: powerbiclient
21
20
  Requires-Dist: polib
22
21
  Requires-Dist: jsonpath_ng
23
22
  Provides-Extra: test
@@ -27,7 +26,7 @@ Dynamic: license-file
27
26
  # Semantic Link Labs
28
27
 
29
28
  [![PyPI version](https://badge.fury.io/py/semantic-link-labs.svg)](https://badge.fury.io/py/semantic-link-labs)
30
- [![Read The Docs](https://readthedocs.org/projects/semantic-link-labs/badge/?version=0.11.2&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
29
+ [![Read The Docs](https://readthedocs.org/projects/semantic-link-labs/badge/?version=0.11.3&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
31
30
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
32
31
  [![Downloads](https://static.pepy.tech/badge/semantic-link-labs)](https://pepy.tech/project/semantic-link-labs)
33
32
 
@@ -129,7 +128,7 @@ for file_name, file_url in notebook_files.items():
129
128
  import sempy_labs as labs
130
129
  import sempy_labs.lakehouse as lake
131
130
  import sempy_labs.report as rep
132
- from sempy_labs import migration, directlake, admin, graph, theme, mirrored_azure_databricks_catalog
131
+ from sempy_labs import migration, directlake, admin, graph, theme, mirrored_azure_databricks_catalog, ml_model, variable_library
133
132
  from sempy_labs.tom import connect_semantic_model
134
133
  from sempy_labs.report import connect_report
135
134
  ```
@@ -155,6 +154,7 @@ An even better way to ensure the semantic-link-labs library is available in your
155
154
  2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
156
155
 
157
156
  ## Version History
157
+ * [0.11.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.3) (August 6, 2025)
158
158
  * [0.11.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.2) (July 8, 2025)
159
159
  * [0.11.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.1) (June 24, 2025)
160
160
  * [0.11.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.0) (June 23, 2025)
@@ -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.11.2&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
4
+ [![Read The Docs](https://readthedocs.org/projects/semantic-link-labs/badge/?version=0.11.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
 
@@ -103,7 +103,7 @@ for file_name, file_url in notebook_files.items():
103
103
  import sempy_labs as labs
104
104
  import sempy_labs.lakehouse as lake
105
105
  import sempy_labs.report as rep
106
- from sempy_labs import migration, directlake, admin, graph, theme, mirrored_azure_databricks_catalog
106
+ from sempy_labs import migration, directlake, admin, graph, theme, mirrored_azure_databricks_catalog, ml_model, variable_library
107
107
  from sempy_labs.tom import connect_semantic_model
108
108
  from sempy_labs.report import connect_report
109
109
  ```
@@ -129,6 +129,7 @@ An even better way to ensure the semantic-link-labs library is available in your
129
129
  2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
130
130
 
131
131
  ## Version History
132
+ * [0.11.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.3) (August 6, 2025)
132
133
  * [0.11.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.2) (July 8, 2025)
133
134
  * [0.11.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.1) (June 24, 2025)
134
135
  * [0.11.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.0) (June 23, 2025)
@@ -7,7 +7,7 @@ name="semantic-link-labs"
7
7
  authors = [
8
8
  { name = "Microsoft Corporation" },
9
9
  ]
10
- version="0.11.2"
10
+ version="0.11.3"
11
11
  description="Semantic Link Labs for Microsoft Fabric"
12
12
  readme="README.md"
13
13
  requires-python=">=3.10,<3.12"
@@ -25,7 +25,6 @@ license= { text = "MIT License" }
25
25
  dependencies = [
26
26
  "semantic-link-sempy>=0.11.1",
27
27
  "anytree",
28
- "powerbiclient",
29
28
  "polib",
30
29
  "jsonpath_ng",
31
30
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: semantic-link-labs
3
- Version: 0.11.2
3
+ Version: 0.11.3
4
4
  Summary: Semantic Link Labs for Microsoft Fabric
5
5
  Author: Microsoft Corporation
6
6
  License: MIT License
@@ -17,7 +17,6 @@ Description-Content-Type: text/markdown
17
17
  License-File: LICENSE
18
18
  Requires-Dist: semantic-link-sempy>=0.11.1
19
19
  Requires-Dist: anytree
20
- Requires-Dist: powerbiclient
21
20
  Requires-Dist: polib
22
21
  Requires-Dist: jsonpath_ng
23
22
  Provides-Extra: test
@@ -27,7 +26,7 @@ Dynamic: license-file
27
26
  # Semantic Link Labs
28
27
 
29
28
  [![PyPI version](https://badge.fury.io/py/semantic-link-labs.svg)](https://badge.fury.io/py/semantic-link-labs)
30
- [![Read The Docs](https://readthedocs.org/projects/semantic-link-labs/badge/?version=0.11.2&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
29
+ [![Read The Docs](https://readthedocs.org/projects/semantic-link-labs/badge/?version=0.11.3&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
31
30
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
32
31
  [![Downloads](https://static.pepy.tech/badge/semantic-link-labs)](https://pepy.tech/project/semantic-link-labs)
33
32
 
@@ -129,7 +128,7 @@ for file_name, file_url in notebook_files.items():
129
128
  import sempy_labs as labs
130
129
  import sempy_labs.lakehouse as lake
131
130
  import sempy_labs.report as rep
132
- from sempy_labs import migration, directlake, admin, graph, theme, mirrored_azure_databricks_catalog
131
+ from sempy_labs import migration, directlake, admin, graph, theme, mirrored_azure_databricks_catalog, ml_model, variable_library
133
132
  from sempy_labs.tom import connect_semantic_model
134
133
  from sempy_labs.report import connect_report
135
134
  ```
@@ -155,6 +154,7 @@ An even better way to ensure the semantic-link-labs library is available in your
155
154
  2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
156
155
 
157
156
  ## Version History
157
+ * [0.11.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.3) (August 6, 2025)
158
158
  * [0.11.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.2) (July 8, 2025)
159
159
  * [0.11.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.1) (June 24, 2025)
160
160
  * [0.11.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.0) (June 23, 2025)
@@ -18,7 +18,6 @@ src/sempy_labs/_dashboards.py
18
18
  src/sempy_labs/_data_pipelines.py
19
19
  src/sempy_labs/_dataflows.py
20
20
  src/sempy_labs/_dax.py
21
- src/sempy_labs/_dax_query_view.py
22
21
  src/sempy_labs/_daxformatter.py
23
22
  src/sempy_labs/_delta_analyzer.py
24
23
  src/sempy_labs/_delta_analyzer_history.py
@@ -39,12 +38,12 @@ src/sempy_labs/_job_scheduler.py
39
38
  src/sempy_labs/_kql_databases.py
40
39
  src/sempy_labs/_kql_querysets.py
41
40
  src/sempy_labs/_kusto.py
41
+ src/sempy_labs/_labels.py
42
42
  src/sempy_labs/_list_functions.py
43
43
  src/sempy_labs/_managed_private_endpoints.py
44
44
  src/sempy_labs/_mirrored_databases.py
45
45
  src/sempy_labs/_mirrored_warehouses.py
46
46
  src/sempy_labs/_ml_experiments.py
47
- src/sempy_labs/_ml_models.py
48
47
  src/sempy_labs/_model_auto_build.py
49
48
  src/sempy_labs/_model_bpa.py
50
49
  src/sempy_labs/_model_bpa_bulk.py
@@ -64,7 +63,6 @@ src/sempy_labs/_tags.py
64
63
  src/sempy_labs/_translations.py
65
64
  src/sempy_labs/_user_delegation_key.py
66
65
  src/sempy_labs/_utils.py
67
- src/sempy_labs/_variable_libraries.py
68
66
  src/sempy_labs/_vertipaq.py
69
67
  src/sempy_labs/_vpax.py
70
68
  src/sempy_labs/_warehouses.py
@@ -166,6 +164,8 @@ src/sempy_labs/migration/_refresh_calc_tables.py
166
164
  src/sempy_labs/mirrored_azure_databricks_catalog/__init__.py
167
165
  src/sempy_labs/mirrored_azure_databricks_catalog/_discover.py
168
166
  src/sempy_labs/mirrored_azure_databricks_catalog/_refresh_catalog_metadata.py
167
+ src/sempy_labs/ml_model/__init__.py
168
+ src/sempy_labs/ml_model/_functions.py
169
169
  src/sempy_labs/report/_BPAReportTemplate.json
170
170
  src/sempy_labs/report/__init__.py
171
171
  src/sempy_labs/report/_download_report.py
@@ -211,4 +211,6 @@ src/sempy_labs/theme/__init__.py
211
211
  src/sempy_labs/theme/_org_themes.py
212
212
  src/sempy_labs/tom/__init__.py
213
213
  src/sempy_labs/tom/_model.py
214
+ src/sempy_labs/variable_library/__init__.py
215
+ src/sempy_labs/variable_library/_functions.py
214
216
  tests/test_friendly_case.py
@@ -1,6 +1,5 @@
1
1
  semantic-link-sempy>=0.11.1
2
2
  anytree
3
- powerbiclient
4
3
  polib
5
4
  jsonpath_ng
6
5
 
@@ -1,11 +1,10 @@
1
+ from ._labels import (
2
+ list_item_labels,
3
+ )
1
4
  from ._sql_endpoints import (
2
5
  list_sql_endpoints,
3
6
  refresh_sql_endpoint_metadata,
4
7
  )
5
- from ._variable_libraries import (
6
- list_variable_libraries,
7
- delete_variable_library,
8
- )
9
8
  from ._kusto import (
10
9
  query_kusto,
11
10
  query_workspace_monitoring,
@@ -16,9 +15,6 @@ from ._vpax import (
16
15
  from ._delta_analyzer_history import (
17
16
  delta_analyzer_history,
18
17
  )
19
- from ._dax_query_view import (
20
- generate_dax_query_view_url,
21
- )
22
18
  from ._mounted_data_factories import (
23
19
  list_mounted_data_factories,
24
20
  get_mounted_data_factory_definition,
@@ -91,11 +87,7 @@ from ._external_data_shares import (
91
87
  list_external_data_shares_in_item,
92
88
  create_external_data_share,
93
89
  revoke_external_data_share,
94
- )
95
- from ._ml_models import (
96
- list_ml_models,
97
- create_ml_model,
98
- delete_ml_model,
90
+ delete_external_data_share,
99
91
  )
100
92
  from ._ml_experiments import (
101
93
  list_ml_experiments,
@@ -202,6 +194,8 @@ from ._notebooks import (
202
194
  import_notebook_from_web,
203
195
  update_notebook_definition,
204
196
  create_notebook,
197
+ search_notebooks,
198
+ list_notebooks,
205
199
  )
206
200
  from ._sql import (
207
201
  ConnectWarehouse,
@@ -288,6 +282,7 @@ from ._list_functions import (
288
282
  list_synonyms,
289
283
  )
290
284
  from ._helper_functions import (
285
+ copy_item,
291
286
  convert_to_friendly_case,
292
287
  resolve_environment_id,
293
288
  resolve_capacity_id,
@@ -486,9 +481,6 @@ __all__ = [
486
481
  "list_kql_querysets",
487
482
  "create_kql_queryset",
488
483
  "delete_kql_queryset",
489
- "list_ml_models",
490
- "create_ml_model",
491
- "delete_ml_model",
492
484
  "list_ml_experiments",
493
485
  "create_ml_experiment",
494
486
  "delete_ml_experiment",
@@ -498,6 +490,7 @@ __all__ = [
498
490
  "list_external_data_shares_in_item",
499
491
  "create_external_data_share",
500
492
  "revoke_external_data_share",
493
+ "delete_external_data_share",
501
494
  "migrate_fabric_trial_capacity",
502
495
  "create_resource_group",
503
496
  "list_workloads",
@@ -577,7 +570,6 @@ __all__ = [
577
570
  "list_mounted_data_factories",
578
571
  "get_mounted_data_factory_definition",
579
572
  "delete_mounted_data_factory",
580
- "generate_dax_query_view_url",
581
573
  "delete_semantic_model",
582
574
  "delete_workspace",
583
575
  "create_sql_database",
@@ -588,8 +580,6 @@ __all__ = [
588
580
  "query_workspace_monitoring",
589
581
  "list_environments",
590
582
  "list_tags",
591
- "list_variable_libraries",
592
- "delete_variable_library",
593
583
  "create_vpax",
594
584
  "update_semantic_model_refresh_schedule",
595
585
  "apply_tags",
@@ -599,4 +589,8 @@ __all__ = [
599
589
  "list_semantic_model_datasources",
600
590
  "upgrade_dataflow",
601
591
  "get_dataflow_definition",
592
+ "list_item_labels",
593
+ "copy_item",
594
+ "search_notebooks",
595
+ "list_notebooks",
602
596
  ]
@@ -1,2 +1,2 @@
1
1
  lib_name = "semanticlinklabs"
2
- lib_version = "0.11.2"
2
+ lib_version = "0.11.3"
@@ -7,6 +7,8 @@ from ._helper_functions import (
7
7
  _base_api,
8
8
  _create_dataframe,
9
9
  resolve_item_id,
10
+ resolve_item_name_and_id,
11
+ resolve_workspace_id,
10
12
  )
11
13
  from sempy._utils._log import log
12
14
 
@@ -24,6 +26,8 @@ def create_external_data_share(
24
26
 
25
27
  This is a wrapper function for the following API: `External Data Shares - Create External Data Share <https://learn.microsoft.com/rest/api/fabric/core/external-data-shares/create-external-data-share>`_.
26
28
 
29
+ Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
30
+
27
31
  Parameters
28
32
  ----------
29
33
  item_name : str
@@ -53,6 +57,7 @@ def create_external_data_share(
53
57
  method="post",
54
58
  status_codes=201,
55
59
  payload=payload,
60
+ client="fabric_sp",
56
61
  )
57
62
  print(
58
63
  f"{icons.green_dot} An external data share was created for the '{item_name}' {item_type} within the '{workspace_name}' workspace for the {paths} paths."
@@ -71,6 +76,8 @@ def revoke_external_data_share(
71
76
 
72
77
  This is a wrapper function for the following API: `External Data Shares - Revoke External Data Share <https://learn.microsoft.com/rest/api/fabric/core/external-data-shares/revoke-external-data-share`_.
73
78
 
79
+ Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
80
+
74
81
  Parameters
75
82
  ----------
76
83
  external_data_share_id : uuid.UUID
@@ -91,6 +98,7 @@ def revoke_external_data_share(
91
98
  _base_api(
92
99
  request=f"/v1/workspaces/{workspace_id}/items/{item_id}/externalDataShares/{external_data_share_id}/revoke",
93
100
  method="post",
101
+ client="fabric_sp",
94
102
  )
95
103
  print(
96
104
  f"{icons.green_dot} The '{external_data_share_id}' external data share for the '{item_name}' {item_type} within the '{workspace_name}' workspace has been revoked."
@@ -106,6 +114,8 @@ def list_external_data_shares_in_item(
106
114
 
107
115
  This is a wrapper function for the following API: `External Data Shares - List External Data Shares In Item <https://learn.microsoft.com/rest/api/fabric/core/external-data-shares/list-external-data-shares-in-item`_.
108
116
 
117
+ Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
118
+
109
119
  Parameters
110
120
  ----------
111
121
  item_name : str
@@ -123,7 +133,7 @@ def list_external_data_shares_in_item(
123
133
  A pandas dataframe showing a list of the external data shares that exist for the specified item.
124
134
  """
125
135
 
126
- (workspace_name, workspace_id) = resolve_workspace_name_and_id(workspace)
136
+ workspace_id = resolve_workspace_id(workspace)
127
137
  item_id = resolve_item_id(item=item_name, type=item_type, workspace=workspace_id)
128
138
 
129
139
  columns = {
@@ -145,6 +155,7 @@ def list_external_data_shares_in_item(
145
155
  responses = _base_api(
146
156
  request=f"/v1/workspaces/{workspace_id}/items/{item_id}/externalDataShares",
147
157
  uses_pagination=True,
158
+ client="fabric_sp",
148
159
  )
149
160
 
150
161
  rows = []
@@ -174,3 +185,46 @@ def list_external_data_shares_in_item(
174
185
  df = pd.DataFrame(rows, columns=list(columns.keys()))
175
186
 
176
187
  return df
188
+
189
+
190
+ @log
191
+ def delete_external_data_share(
192
+ external_data_share_id: UUID,
193
+ item: str | UUID,
194
+ item_type: str,
195
+ workspace: Optional[str | UUID] = None,
196
+ ):
197
+ """
198
+ Deletes the specified external data share.
199
+
200
+ This is a wrapper function for the following API: `External Data Shares Provider - Delete External Data Share <https://learn.microsoft.com/rest/api/fabric/core/external-data-shares-provider/delete-external-data-share`_.
201
+
202
+ Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
203
+
204
+ Parameters
205
+ ----------
206
+ external_data_share_id : uuid.UUID
207
+ The external data share ID.
208
+ item : str | uuid.UUID
209
+ The item name or ID.
210
+ item_type : str
211
+ The `item type <https://learn.microsoft.com/rest/api/fabric/core/items/list-items?tabs=HTTP#itemtype>`_.
212
+ workspace : str | uuid.UUID, default=None
213
+ The Fabric workspace name or ID.
214
+ Defaults to None which resolves to the workspace of the attached lakehouse
215
+ or if no lakehouse attached, resolves to the workspace of the notebook.
216
+ """
217
+
218
+ (workspace_name, workspace_id) = resolve_workspace_name_and_id(workspace)
219
+ (item_name, item_id) = resolve_item_name_and_id(
220
+ item=item, type=item_type, workspace=workspace_id
221
+ )
222
+
223
+ _base_api(
224
+ request=f"/v1/workspaces/{workspace_id}/items/{item_id}/externalDataShares/{external_data_share_id}",
225
+ method="delete",
226
+ client="fabric_sp",
227
+ )
228
+ print(
229
+ f"{icons.green_dot} The '{external_data_share_id}' external data share for the '{item_name}' {item_type} within the '{workspace_name}' workspace has been revoked."
230
+ )
@@ -20,6 +20,7 @@ import sempy_labs._authentication as auth
20
20
  from jsonpath_ng.ext import parse
21
21
  from jsonpath_ng.jsonpath import Fields, Index
22
22
  from sempy._utils._log import log
23
+ from os import PathLike
23
24
 
24
25
 
25
26
  def _build_url(url: str, params: dict) -> str:
@@ -238,6 +239,18 @@ def delete_item(
238
239
  )
239
240
 
240
241
 
242
+ @log
243
+ def create_folder_if_not_exists(
244
+ folder: str | PathLike, workspace: Optional[str | UUID] = None
245
+ ) -> UUID:
246
+ try:
247
+ x = fabric.resolve_folder_id(folder=folder, workspace=workspace)
248
+ except:
249
+ x = fabric.create_folder(folder=folder, workspace=workspace)
250
+
251
+ return x
252
+
253
+
241
254
  @log
242
255
  def create_item(
243
256
  name: str,
@@ -245,6 +258,7 @@ def create_item(
245
258
  description: Optional[str] = None,
246
259
  definition: Optional[dict] = None,
247
260
  workspace: Optional[str | UUID] = None,
261
+ folder: Optional[str | PathLike] = None,
248
262
  ):
249
263
  """
250
264
  Creates an item in a Fabric workspace.
@@ -263,6 +277,9 @@ def create_item(
263
277
  The Fabric workspace name or ID.
264
278
  Defaults to None which resolves to the workspace of the attached lakehouse
265
279
  or if no lakehouse attached, resolves to the workspace of the notebook.
280
+ folder : str | os.PathLike, default=None
281
+ The folder within the workspace where the item will be created.
282
+ Defaults to None which places the item in the root of the workspace.
266
283
  """
267
284
  from sempy_labs._utils import item_types
268
285
 
@@ -277,6 +294,10 @@ def create_item(
277
294
  payload["description"] = description
278
295
  if definition:
279
296
  payload["definition"] = definition
297
+ if folder:
298
+ payload["folderId"] = create_folder_if_not_exists(
299
+ folder=folder, workspace=workspace_id
300
+ )
280
301
 
281
302
  _base_api(
282
303
  request=f"/v1/workspaces/{workspace_id}/{item_type_url}",
@@ -290,6 +311,146 @@ def create_item(
290
311
  )
291
312
 
292
313
 
314
+ @log
315
+ def copy_item(
316
+ item: str | UUID,
317
+ type: str,
318
+ target_name: Optional[str] = None,
319
+ source_workspace: Optional[str | UUID] = None,
320
+ target_workspace: Optional[str | UUID] = None,
321
+ overwrite: bool = False,
322
+ ):
323
+ """
324
+ Copies an item (with its definition) from one location to another location.
325
+
326
+ Parameters
327
+ ----------
328
+ item : str | uuid.UUID
329
+ The name or ID of the item to be copied.
330
+ type : str
331
+ The type of the item.
332
+ target_name: str, default=None
333
+ The name of the item in the target workspace. Defaults to the same name as the source item.
334
+ source_workspace : str | uuid.UUID, default=None
335
+ The workspace name or ID in which the item exists.
336
+ Defaults to None which resolves to the workspace of the attached lakehouse
337
+ or if no lakehouse attached, resolves to the workspace of the notebook.
338
+ target_workspace : str | uuid.UUID, default=None
339
+ The workspace name or ID to which the item will be copied.
340
+ Defaults to None which resolves to the workspace of the attached lakehouse
341
+ or if no lakehouse attached, resolves to the workspace of the notebook.
342
+ overwrite: bool, default=False
343
+ If True, overwrites the item in the target workspace if it already exists.
344
+ """
345
+
346
+ items = {
347
+ "CopyJob": "copyJobs",
348
+ "Dataflow": "dataflows",
349
+ "Eventhouse": "eventhouses",
350
+ "GraphQLApi": "GraphQLApis",
351
+ "Report": "reports",
352
+ "SemanticModel": "semanticModels",
353
+ # "Environment": "environments",
354
+ "KQLDatabase": "kqlDatabases",
355
+ "KQLDashboard": "kqlDashboards",
356
+ "KQLQueryset": "kqlQuerysets",
357
+ "DataPipeline": "dataPipelines",
358
+ "Notebook": "notebooks",
359
+ "SparkJobDefinition": "sparkJobDefinitions",
360
+ "Eventstream": "eventstreams",
361
+ "MirroredWarehouse": "mirroredWarehouses",
362
+ "MirroredDatabase": "mirroredDatabases",
363
+ "MountedDataFactory": "mountedDataFactories",
364
+ "VariableLibrary": "variableLibraries",
365
+ "ApacheAirFlowJob": "ApacheAirflowJobs",
366
+ "WarehouseSnapshot": "warehousesnapshots",
367
+ "DigitalTwinBuilder": "digitaltwinbuilders",
368
+ "DigitalTwinBuilderFlow": "DigitalTwinBuilderFlows",
369
+ "MirroredAzureDatabricksCatalog": "mirroredAzureDatabricksCatalogs",
370
+ }
371
+ if type not in items:
372
+ raise ValueError(
373
+ f"{icons.red_dot} The '{type}' item type does not have a definition and cannot be copied."
374
+ )
375
+ type_url = items.get(type)
376
+
377
+ (item_name, item_id) = resolve_item_name_and_id(
378
+ item=item, type=type, workspace=source_workspace
379
+ )
380
+ (source_workspace_name, source_workspace_id) = resolve_workspace_name_and_id(
381
+ source_workspace
382
+ )
383
+ (target_workspace_name, target_workspace_id) = resolve_workspace_name_and_id(
384
+ target_workspace
385
+ )
386
+
387
+ if target_name is None:
388
+ target_name = item_name
389
+
390
+ if source_workspace_id == target_workspace_id and target_name == item_name:
391
+ raise ValueError(
392
+ f"{icons.red_dot} The source and target workspaces are the same and the target name is the same as the source name. No action taken."
393
+ )
394
+
395
+ result = _base_api(
396
+ request=f"v1/workspaces/{source_workspace_id}/{type_url}/{item_id}",
397
+ client="fabric_sp",
398
+ )
399
+ description = result.json().get("description")
400
+
401
+ payload = _base_api(
402
+ request=f"v1/workspaces/{source_workspace_id}/{type_url}/{item_id}/getDefinition",
403
+ method="post",
404
+ client="fabric_sp",
405
+ status_codes=None,
406
+ lro_return_json=True,
407
+ )
408
+ payload["displayName"] = target_name
409
+ if description:
410
+ payload["description"] = description
411
+
412
+ # Check if item exists in target workspace
413
+ exists = False
414
+ try:
415
+ target_item_id = resolve_item_id(
416
+ item=target_name, type=type, workspace=target_workspace_id
417
+ )
418
+ exists = True
419
+ except Exception:
420
+ exists = False
421
+
422
+ if exists and not overwrite:
423
+ raise ValueError(
424
+ f"{icons.warning} The item '{target_name}' of type '{type}' already exists in the target workspace '{target_workspace_name}' and overwrite is set to False."
425
+ )
426
+ elif exists and overwrite:
427
+ # Update item definition
428
+ print(
429
+ f"{icons.in_progress} Updating existing item '{target_name}' of type '{type}' in the target workspace '{target_workspace_name}'..."
430
+ )
431
+ _base_api(
432
+ request=f"/v1/workspaces/{target_workspace_id}/{type_url}/{target_item_id}/updateDefinition",
433
+ method="post",
434
+ client="fabric_sp",
435
+ payload=payload,
436
+ lro_return_status_code=True,
437
+ status_codes=None,
438
+ )
439
+ print(
440
+ f"{icons.green_dot} The item '{target_name}' of type '{type}' has been successfully updated in the target workspace '{target_workspace_name}'."
441
+ )
442
+ else:
443
+ print(
444
+ f"{icons.in_progress} Creating new item '{target_name}' of type '{type}' in the target workspace '{target_workspace_name}'..."
445
+ )
446
+ create_item(
447
+ name=target_name,
448
+ type=type,
449
+ definition=payload["definition"],
450
+ workspace=target_workspace_id,
451
+ )
452
+
453
+
293
454
  @log
294
455
  def get_item_definition(
295
456
  item: str | UUID,
@@ -997,15 +1158,15 @@ def _decode_b64(file, format: Optional[str] = "utf-8"):
997
1158
 
998
1159
  @log
999
1160
  def is_default_semantic_model(
1000
- dataset: str, workspace: Optional[str | UUID] = None
1161
+ dataset: str | UUID, workspace: Optional[str | UUID] = None
1001
1162
  ) -> bool:
1002
1163
  """
1003
1164
  Identifies whether a semantic model is a default semantic model.
1004
1165
 
1005
1166
  Parameters
1006
1167
  ----------
1007
- dataset : str
1008
- The name of the semantic model.
1168
+ dataset : str | uuid.UUID
1169
+ The name or ID of the semantic model.
1009
1170
  workspace : str | uuid.UUID, default=None
1010
1171
  The Fabric workspace name or ID.
1011
1172
  Defaults to None which resolves to the workspace of the attached lakehouse
@@ -1017,7 +1178,10 @@ def is_default_semantic_model(
1017
1178
  A True/False value indicating whether the semantic model is a default semantic model.
1018
1179
  """
1019
1180
 
1020
- (workspace_name, workspace_id) = resolve_workspace_name_and_id(workspace)
1181
+ workspace_id = resolve_workspace_id(workspace)
1182
+ (dataset_name, dataset_id) = resolve_item_name_and_id(
1183
+ item=dataset, type="SemanticModel", workspace=workspace_id
1184
+ )
1021
1185
 
1022
1186
  dfI = fabric.list_items(workspace=workspace_id)
1023
1187
  filtered_df = dfI.groupby("Display Name").filter(
@@ -1026,7 +1190,7 @@ def is_default_semantic_model(
1026
1190
  )
1027
1191
  default_semantic_models = filtered_df["Display Name"].unique().tolist()
1028
1192
 
1029
- return dataset in default_semantic_models
1193
+ return dataset_name in default_semantic_models
1030
1194
 
1031
1195
 
1032
1196
  @log