semantic-link-labs 0.12.8__py3-none-any.whl

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.
Files changed (243) hide show
  1. semantic_link_labs-0.12.8.dist-info/METADATA +354 -0
  2. semantic_link_labs-0.12.8.dist-info/RECORD +243 -0
  3. semantic_link_labs-0.12.8.dist-info/WHEEL +5 -0
  4. semantic_link_labs-0.12.8.dist-info/licenses/LICENSE +21 -0
  5. semantic_link_labs-0.12.8.dist-info/top_level.txt +1 -0
  6. sempy_labs/__init__.py +606 -0
  7. sempy_labs/_a_lib_info.py +2 -0
  8. sempy_labs/_ai.py +437 -0
  9. sempy_labs/_authentication.py +264 -0
  10. sempy_labs/_bpa_translation/_model/_translations_am-ET.po +869 -0
  11. sempy_labs/_bpa_translation/_model/_translations_ar-AE.po +908 -0
  12. sempy_labs/_bpa_translation/_model/_translations_bg-BG.po +968 -0
  13. sempy_labs/_bpa_translation/_model/_translations_ca-ES.po +963 -0
  14. sempy_labs/_bpa_translation/_model/_translations_cs-CZ.po +943 -0
  15. sempy_labs/_bpa_translation/_model/_translations_da-DK.po +945 -0
  16. sempy_labs/_bpa_translation/_model/_translations_de-DE.po +988 -0
  17. sempy_labs/_bpa_translation/_model/_translations_el-GR.po +993 -0
  18. sempy_labs/_bpa_translation/_model/_translations_es-ES.po +971 -0
  19. sempy_labs/_bpa_translation/_model/_translations_fa-IR.po +933 -0
  20. sempy_labs/_bpa_translation/_model/_translations_fi-FI.po +942 -0
  21. sempy_labs/_bpa_translation/_model/_translations_fr-FR.po +994 -0
  22. sempy_labs/_bpa_translation/_model/_translations_ga-IE.po +967 -0
  23. sempy_labs/_bpa_translation/_model/_translations_he-IL.po +902 -0
  24. sempy_labs/_bpa_translation/_model/_translations_hi-IN.po +944 -0
  25. sempy_labs/_bpa_translation/_model/_translations_hu-HU.po +963 -0
  26. sempy_labs/_bpa_translation/_model/_translations_id-ID.po +946 -0
  27. sempy_labs/_bpa_translation/_model/_translations_is-IS.po +939 -0
  28. sempy_labs/_bpa_translation/_model/_translations_it-IT.po +986 -0
  29. sempy_labs/_bpa_translation/_model/_translations_ja-JP.po +846 -0
  30. sempy_labs/_bpa_translation/_model/_translations_ko-KR.po +839 -0
  31. sempy_labs/_bpa_translation/_model/_translations_mt-MT.po +967 -0
  32. sempy_labs/_bpa_translation/_model/_translations_nl-NL.po +978 -0
  33. sempy_labs/_bpa_translation/_model/_translations_pl-PL.po +962 -0
  34. sempy_labs/_bpa_translation/_model/_translations_pt-BR.po +962 -0
  35. sempy_labs/_bpa_translation/_model/_translations_pt-PT.po +957 -0
  36. sempy_labs/_bpa_translation/_model/_translations_ro-RO.po +968 -0
  37. sempy_labs/_bpa_translation/_model/_translations_ru-RU.po +964 -0
  38. sempy_labs/_bpa_translation/_model/_translations_sk-SK.po +952 -0
  39. sempy_labs/_bpa_translation/_model/_translations_sl-SL.po +950 -0
  40. sempy_labs/_bpa_translation/_model/_translations_sv-SE.po +942 -0
  41. sempy_labs/_bpa_translation/_model/_translations_ta-IN.po +976 -0
  42. sempy_labs/_bpa_translation/_model/_translations_te-IN.po +947 -0
  43. sempy_labs/_bpa_translation/_model/_translations_th-TH.po +924 -0
  44. sempy_labs/_bpa_translation/_model/_translations_tr-TR.po +953 -0
  45. sempy_labs/_bpa_translation/_model/_translations_uk-UA.po +961 -0
  46. sempy_labs/_bpa_translation/_model/_translations_zh-CN.po +804 -0
  47. sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po +969 -0
  48. sempy_labs/_capacities.py +1198 -0
  49. sempy_labs/_capacity_migration.py +660 -0
  50. sempy_labs/_clear_cache.py +351 -0
  51. sempy_labs/_connections.py +610 -0
  52. sempy_labs/_dashboards.py +69 -0
  53. sempy_labs/_data_access_security.py +98 -0
  54. sempy_labs/_data_pipelines.py +162 -0
  55. sempy_labs/_dataflows.py +668 -0
  56. sempy_labs/_dax.py +501 -0
  57. sempy_labs/_daxformatter.py +80 -0
  58. sempy_labs/_delta_analyzer.py +467 -0
  59. sempy_labs/_delta_analyzer_history.py +301 -0
  60. sempy_labs/_dictionary_diffs.py +221 -0
  61. sempy_labs/_documentation.py +147 -0
  62. sempy_labs/_domains.py +51 -0
  63. sempy_labs/_eventhouses.py +182 -0
  64. sempy_labs/_external_data_shares.py +230 -0
  65. sempy_labs/_gateways.py +521 -0
  66. sempy_labs/_generate_semantic_model.py +521 -0
  67. sempy_labs/_get_connection_string.py +84 -0
  68. sempy_labs/_git.py +543 -0
  69. sempy_labs/_graphQL.py +90 -0
  70. sempy_labs/_helper_functions.py +2833 -0
  71. sempy_labs/_icons.py +149 -0
  72. sempy_labs/_job_scheduler.py +609 -0
  73. sempy_labs/_kql_databases.py +149 -0
  74. sempy_labs/_kql_querysets.py +124 -0
  75. sempy_labs/_kusto.py +137 -0
  76. sempy_labs/_labels.py +124 -0
  77. sempy_labs/_list_functions.py +1720 -0
  78. sempy_labs/_managed_private_endpoints.py +253 -0
  79. sempy_labs/_mirrored_databases.py +416 -0
  80. sempy_labs/_mirrored_warehouses.py +60 -0
  81. sempy_labs/_ml_experiments.py +113 -0
  82. sempy_labs/_model_auto_build.py +140 -0
  83. sempy_labs/_model_bpa.py +557 -0
  84. sempy_labs/_model_bpa_bulk.py +378 -0
  85. sempy_labs/_model_bpa_rules.py +859 -0
  86. sempy_labs/_model_dependencies.py +343 -0
  87. sempy_labs/_mounted_data_factories.py +123 -0
  88. sempy_labs/_notebooks.py +441 -0
  89. sempy_labs/_one_lake_integration.py +151 -0
  90. sempy_labs/_onelake.py +131 -0
  91. sempy_labs/_query_scale_out.py +433 -0
  92. sempy_labs/_refresh_semantic_model.py +435 -0
  93. sempy_labs/_semantic_models.py +468 -0
  94. sempy_labs/_spark.py +455 -0
  95. sempy_labs/_sql.py +241 -0
  96. sempy_labs/_sql_audit_settings.py +207 -0
  97. sempy_labs/_sql_endpoints.py +214 -0
  98. sempy_labs/_tags.py +201 -0
  99. sempy_labs/_translations.py +43 -0
  100. sempy_labs/_user_delegation_key.py +44 -0
  101. sempy_labs/_utils.py +79 -0
  102. sempy_labs/_vertipaq.py +1021 -0
  103. sempy_labs/_vpax.py +388 -0
  104. sempy_labs/_warehouses.py +234 -0
  105. sempy_labs/_workloads.py +140 -0
  106. sempy_labs/_workspace_identity.py +72 -0
  107. sempy_labs/_workspaces.py +595 -0
  108. sempy_labs/admin/__init__.py +170 -0
  109. sempy_labs/admin/_activities.py +167 -0
  110. sempy_labs/admin/_apps.py +145 -0
  111. sempy_labs/admin/_artifacts.py +65 -0
  112. sempy_labs/admin/_basic_functions.py +463 -0
  113. sempy_labs/admin/_capacities.py +508 -0
  114. sempy_labs/admin/_dataflows.py +45 -0
  115. sempy_labs/admin/_datasets.py +186 -0
  116. sempy_labs/admin/_domains.py +522 -0
  117. sempy_labs/admin/_external_data_share.py +100 -0
  118. sempy_labs/admin/_git.py +72 -0
  119. sempy_labs/admin/_items.py +265 -0
  120. sempy_labs/admin/_labels.py +211 -0
  121. sempy_labs/admin/_reports.py +241 -0
  122. sempy_labs/admin/_scanner.py +118 -0
  123. sempy_labs/admin/_shared.py +82 -0
  124. sempy_labs/admin/_sharing_links.py +110 -0
  125. sempy_labs/admin/_tags.py +131 -0
  126. sempy_labs/admin/_tenant.py +503 -0
  127. sempy_labs/admin/_tenant_keys.py +89 -0
  128. sempy_labs/admin/_users.py +140 -0
  129. sempy_labs/admin/_workspaces.py +236 -0
  130. sempy_labs/deployment_pipeline/__init__.py +23 -0
  131. sempy_labs/deployment_pipeline/_items.py +580 -0
  132. sempy_labs/directlake/__init__.py +57 -0
  133. sempy_labs/directlake/_autosync.py +58 -0
  134. sempy_labs/directlake/_directlake_schema_compare.py +120 -0
  135. sempy_labs/directlake/_directlake_schema_sync.py +161 -0
  136. sempy_labs/directlake/_dl_helper.py +274 -0
  137. sempy_labs/directlake/_generate_shared_expression.py +94 -0
  138. sempy_labs/directlake/_get_directlake_lakehouse.py +62 -0
  139. sempy_labs/directlake/_get_shared_expression.py +34 -0
  140. sempy_labs/directlake/_guardrails.py +96 -0
  141. sempy_labs/directlake/_list_directlake_model_calc_tables.py +70 -0
  142. sempy_labs/directlake/_show_unsupported_directlake_objects.py +90 -0
  143. sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py +239 -0
  144. sempy_labs/directlake/_update_directlake_partition_entity.py +259 -0
  145. sempy_labs/directlake/_warm_cache.py +236 -0
  146. sempy_labs/dotnet_lib/dotnet.runtime.config.json +10 -0
  147. sempy_labs/environment/__init__.py +23 -0
  148. sempy_labs/environment/_items.py +212 -0
  149. sempy_labs/environment/_pubstage.py +223 -0
  150. sempy_labs/eventstream/__init__.py +37 -0
  151. sempy_labs/eventstream/_items.py +263 -0
  152. sempy_labs/eventstream/_topology.py +652 -0
  153. sempy_labs/graph/__init__.py +59 -0
  154. sempy_labs/graph/_groups.py +651 -0
  155. sempy_labs/graph/_sensitivity_labels.py +120 -0
  156. sempy_labs/graph/_teams.py +125 -0
  157. sempy_labs/graph/_user_licenses.py +96 -0
  158. sempy_labs/graph/_users.py +516 -0
  159. sempy_labs/graph_model/__init__.py +15 -0
  160. sempy_labs/graph_model/_background_jobs.py +63 -0
  161. sempy_labs/graph_model/_items.py +149 -0
  162. sempy_labs/lakehouse/__init__.py +67 -0
  163. sempy_labs/lakehouse/_blobs.py +247 -0
  164. sempy_labs/lakehouse/_get_lakehouse_columns.py +102 -0
  165. sempy_labs/lakehouse/_get_lakehouse_tables.py +274 -0
  166. sempy_labs/lakehouse/_helper.py +250 -0
  167. sempy_labs/lakehouse/_lakehouse.py +351 -0
  168. sempy_labs/lakehouse/_livy_sessions.py +143 -0
  169. sempy_labs/lakehouse/_materialized_lake_views.py +157 -0
  170. sempy_labs/lakehouse/_partitioning.py +165 -0
  171. sempy_labs/lakehouse/_schemas.py +217 -0
  172. sempy_labs/lakehouse/_shortcuts.py +440 -0
  173. sempy_labs/migration/__init__.py +35 -0
  174. sempy_labs/migration/_create_pqt_file.py +238 -0
  175. sempy_labs/migration/_direct_lake_to_import.py +105 -0
  176. sempy_labs/migration/_migrate_calctables_to_lakehouse.py +398 -0
  177. sempy_labs/migration/_migrate_calctables_to_semantic_model.py +148 -0
  178. sempy_labs/migration/_migrate_model_objects_to_semantic_model.py +533 -0
  179. sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py +172 -0
  180. sempy_labs/migration/_migration_validation.py +71 -0
  181. sempy_labs/migration/_refresh_calc_tables.py +131 -0
  182. sempy_labs/mirrored_azure_databricks_catalog/__init__.py +15 -0
  183. sempy_labs/mirrored_azure_databricks_catalog/_discover.py +213 -0
  184. sempy_labs/mirrored_azure_databricks_catalog/_refresh_catalog_metadata.py +45 -0
  185. sempy_labs/ml_model/__init__.py +23 -0
  186. sempy_labs/ml_model/_functions.py +427 -0
  187. sempy_labs/report/_BPAReportTemplate.json +232 -0
  188. sempy_labs/report/__init__.py +55 -0
  189. sempy_labs/report/_bpareporttemplate/.pbi/localSettings.json +9 -0
  190. sempy_labs/report/_bpareporttemplate/.platform +11 -0
  191. sempy_labs/report/_bpareporttemplate/StaticResources/SharedResources/BaseThemes/CY24SU06.json +710 -0
  192. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/page.json +11 -0
  193. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/1b08bce3bebabb0a27a8/visual.json +191 -0
  194. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/2f22ddb70c301693c165/visual.json +438 -0
  195. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/3b1182230aa6c600b43a/visual.json +127 -0
  196. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/58577ba6380c69891500/visual.json +576 -0
  197. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/a2a8fa5028b3b776c96c/visual.json +207 -0
  198. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/adfd47ef30652707b987/visual.json +506 -0
  199. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/b6a80ee459e716e170b1/visual.json +127 -0
  200. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/ce3130a721c020cc3d81/visual.json +513 -0
  201. sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/page.json +8 -0
  202. sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/visuals/66e60dfb526437cd78d1/visual.json +112 -0
  203. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/page.json +11 -0
  204. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/07deb8bce824e1be37d7/visual.json +513 -0
  205. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0b1c68838818b32ad03b/visual.json +352 -0
  206. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0c171de9d2683d10b930/visual.json +37 -0
  207. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0efa01be0510e40a645e/visual.json +542 -0
  208. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/6bf2f0eb830ab53cc668/visual.json +221 -0
  209. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/88d8141cb8500b60030c/visual.json +127 -0
  210. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/a753273590beed656a03/visual.json +576 -0
  211. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/b8fdc82cddd61ac447bc/visual.json +127 -0
  212. sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json +9 -0
  213. sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/visuals/ce8532a7e25020271077/visual.json +38 -0
  214. sempy_labs/report/_bpareporttemplate/definition/pages/pages.json +10 -0
  215. sempy_labs/report/_bpareporttemplate/definition/report.json +176 -0
  216. sempy_labs/report/_bpareporttemplate/definition/version.json +4 -0
  217. sempy_labs/report/_bpareporttemplate/definition.pbir +14 -0
  218. sempy_labs/report/_download_report.py +76 -0
  219. sempy_labs/report/_export_report.py +257 -0
  220. sempy_labs/report/_generate_report.py +427 -0
  221. sempy_labs/report/_paginated.py +76 -0
  222. sempy_labs/report/_report_bpa.py +354 -0
  223. sempy_labs/report/_report_bpa_rules.py +115 -0
  224. sempy_labs/report/_report_functions.py +581 -0
  225. sempy_labs/report/_report_helper.py +227 -0
  226. sempy_labs/report/_report_list_functions.py +110 -0
  227. sempy_labs/report/_report_rebind.py +149 -0
  228. sempy_labs/report/_reportwrapper.py +3100 -0
  229. sempy_labs/report/_save_report.py +147 -0
  230. sempy_labs/snowflake_database/__init__.py +10 -0
  231. sempy_labs/snowflake_database/_items.py +105 -0
  232. sempy_labs/sql_database/__init__.py +21 -0
  233. sempy_labs/sql_database/_items.py +201 -0
  234. sempy_labs/sql_database/_mirroring.py +79 -0
  235. sempy_labs/theme/__init__.py +12 -0
  236. sempy_labs/theme/_org_themes.py +129 -0
  237. sempy_labs/tom/__init__.py +3 -0
  238. sempy_labs/tom/_model.py +5977 -0
  239. sempy_labs/variable_library/__init__.py +19 -0
  240. sempy_labs/variable_library/_functions.py +403 -0
  241. sempy_labs/warehouse/__init__.py +28 -0
  242. sempy_labs/warehouse/_items.py +234 -0
  243. sempy_labs/warehouse/_restore_points.py +309 -0
@@ -0,0 +1,60 @@
1
+ import pandas as pd
2
+ from typing import Optional
3
+ from sempy_labs._helper_functions import (
4
+ resolve_workspace_id,
5
+ _base_api,
6
+ _create_dataframe,
7
+ )
8
+ from uuid import UUID
9
+ from sempy._utils._log import log
10
+
11
+
12
+ @log
13
+ def list_mirrored_warehouses(workspace: Optional[str | UUID] = None) -> pd.DataFrame:
14
+ """
15
+ Shows the mirrored warehouses within a workspace.
16
+
17
+ This is a wrapper function for the following API: `Items - List Mirrored Warehouses <https://learn.microsoft.com/rest/api/fabric/mirroredwarehouse/items/list-mirrored-warehouses>`_.
18
+
19
+ Parameters
20
+ ----------
21
+ workspace : str | uuid.UUID, default=None
22
+ The Fabric workspace name or ID.
23
+ Defaults to None which resolves to the workspace of the attached lakehouse
24
+ or if no lakehouse attached, resolves to the workspace of the notebook.
25
+
26
+ Returns
27
+ -------
28
+ pandas.DataFrame
29
+ A pandas dataframe showing the mirrored warehouses within a workspace.
30
+ """
31
+
32
+ columns = {
33
+ "Mirrored Warehouse Name": "string",
34
+ "Mirrored Warehouse Id": "string",
35
+ "Description": "string",
36
+ }
37
+ df = _create_dataframe(columns=columns)
38
+
39
+ workspace_id = resolve_workspace_id(workspace)
40
+ responses = _base_api(
41
+ request=f"/v1/workspaces/{workspace_id}/mirroredWarehouses",
42
+ status_codes=200,
43
+ uses_pagination=True,
44
+ )
45
+
46
+ rows = []
47
+ for r in responses:
48
+ for v in r.get("value", []):
49
+ rows.append(
50
+ {
51
+ "Mirrored Warehouse Name": v.get("displayName"),
52
+ "Mirrored Warehouse Id": v.get("id"),
53
+ "Description": v.get("description"),
54
+ }
55
+ )
56
+
57
+ if rows:
58
+ df = pd.DataFrame(rows, columns=list(columns.keys()))
59
+
60
+ return df
@@ -0,0 +1,113 @@
1
+ import pandas as pd
2
+ from typing import Optional
3
+ from sempy_labs._helper_functions import (
4
+ resolve_workspace_id,
5
+ _base_api,
6
+ delete_item,
7
+ _create_dataframe,
8
+ create_item,
9
+ )
10
+ from uuid import UUID
11
+ from sempy._utils._log import log
12
+
13
+
14
+ @log
15
+ def list_ml_experiments(workspace: Optional[str | UUID] = None) -> pd.DataFrame:
16
+ """
17
+ Shows the ML experiments within a workspace.
18
+
19
+ This is a wrapper function for the following API: `Items - List ML Experiments <https://learn.microsoft.com/rest/api/fabric/mlexperiment/items/list-ml-experiments>`_.
20
+
21
+ Parameters
22
+ ----------
23
+ workspace : str | uuid.UUID, default=None
24
+ The Fabric workspace name or ID.
25
+ Defaults to None which resolves to the workspace of the attached lakehouse
26
+ or if no lakehouse attached, resolves to the workspace of the notebook.
27
+
28
+ Returns
29
+ -------
30
+ pandas.DataFrame
31
+ A pandas dataframe showing the ML models within a workspace.
32
+ """
33
+
34
+ columns = {
35
+ "ML Experiment Name": "string",
36
+ "ML Experiment Id": "string",
37
+ "Description": "string",
38
+ }
39
+ df = _create_dataframe(columns=columns)
40
+
41
+ workspace_id = resolve_workspace_id(workspace)
42
+
43
+ responses = _base_api(
44
+ request=f"/v1/workspaces/{workspace_id}/mlExperiments",
45
+ status_codes=200,
46
+ uses_pagination=True,
47
+ )
48
+
49
+ rows = []
50
+ for r in responses:
51
+ for v in r.get("value", []):
52
+ model_id = v.get("id")
53
+ modelName = v.get("displayName")
54
+ desc = v.get("description")
55
+
56
+ rows.append(
57
+ {
58
+ "ML Experiment Name": modelName,
59
+ "ML Experiment Id": model_id,
60
+ "Description": desc,
61
+ }
62
+ )
63
+
64
+ if rows:
65
+ df = pd.DataFrame(rows, columns=list(columns.keys()))
66
+
67
+ return df
68
+
69
+
70
+ @log
71
+ def create_ml_experiment(
72
+ name: str, description: Optional[str] = None, workspace: Optional[str | UUID] = None
73
+ ):
74
+ """
75
+ Creates a Fabric ML experiment.
76
+
77
+ This is a wrapper function for the following API: `Items - Create ML Experiment <https://learn.microsoft.com/rest/api/fabric/mlexperiment/items/create-ml-experiment>`_.
78
+
79
+ Parameters
80
+ ----------
81
+ name: str
82
+ Name of the ML experiment.
83
+ description : str, default=None
84
+ A description of the ML experiment.
85
+ workspace : str | uuid.UUID, default=None
86
+ The Fabric workspace name or ID.
87
+ Defaults to None which resolves to the workspace of the attached lakehouse
88
+ or if no lakehouse attached, resolves to the workspace of the notebook.
89
+ """
90
+
91
+ create_item(
92
+ name=name, description=description, type="MLExperiment", workspace=workspace
93
+ )
94
+
95
+
96
+ @log
97
+ def delete_ml_experiment(name: str, workspace: Optional[str | UUID] = None):
98
+ """
99
+ Deletes a Fabric ML experiment.
100
+
101
+ This is a wrapper function for the following API: `Items - Delete ML Experiment <https://learn.microsoft.com/rest/api/fabric/mlexperiment/items/delete-ml-experiment>`_.
102
+
103
+ Parameters
104
+ ----------
105
+ name: str
106
+ Name of the ML experiment.
107
+ workspace : str | uuid.UUID, default=None
108
+ The Fabric workspace name or ID.
109
+ Defaults to None which resolves to the workspace of the attached lakehouse
110
+ or if no lakehouse attached, resolves to the workspace of the notebook.
111
+ """
112
+
113
+ delete_item(item=name, type="MLExperiment", workspace=workspace)
@@ -0,0 +1,140 @@
1
+ import sempy.fabric as fabric
2
+ import pandas as pd
3
+ from sempy_labs.tom import connect_semantic_model
4
+ from sempy_labs._generate_semantic_model import create_blank_semantic_model
5
+ from sempy_labs.directlake._generate_shared_expression import generate_shared_expression
6
+ from typing import Optional
7
+ from sempy._utils._log import log
8
+
9
+
10
+ @log
11
+ def model_auto_build(
12
+ dataset: str,
13
+ file_path: str,
14
+ workspace: Optional[str] = None,
15
+ lakehouse: Optional[str] = None,
16
+ lakehouse_workspace: Optional[str] = None,
17
+ ):
18
+ """
19
+ Dynamically generates a semantic model based on an Excel file template.
20
+
21
+ Parameters
22
+ ----------
23
+ dataset : str
24
+ Name of the semantic model.
25
+ file_path : str
26
+ workspace : str, default=None
27
+ The Fabric workspace name.
28
+ Defaults to None which resolves to the workspace of the attached lakehouse
29
+ or if no lakehouse attached, resolves to the workspace of the notebook.
30
+ lakehouse : str, default=None
31
+ The Fabric lakehouse used by the Direct Lake semantic model.
32
+ Defaults to None which resolves to the lakehouse attached to the notebook.
33
+ lakehouse_workspace : str, default=None
34
+ The Fabric workspace used by the lakehouse.
35
+ Defaults to None which resolves to the workspace of the attached lakehouse
36
+ or if no lakehouse attached, resolves to the workspace of the notebook.
37
+ """
38
+
39
+ workspace = fabric.resolve_workspace_name(workspace)
40
+
41
+ if lakehouse_workspace is None:
42
+ lakehouse_workspace = workspace
43
+
44
+ sheets = [
45
+ "Model",
46
+ "Tables",
47
+ "Measures",
48
+ "Columns",
49
+ "Roles",
50
+ "Hierarchies",
51
+ "Relationships",
52
+ ]
53
+
54
+ create_blank_semantic_model(dataset=dataset, workspace=workspace)
55
+
56
+ with connect_semantic_model(
57
+ dataset=dataset, workspace=workspace, readonly=False
58
+ ) as tom:
59
+
60
+ # DL Only
61
+ expr = generate_shared_expression(
62
+ item_name=lakehouse, item_type="Lakehouse", workspace=lakehouse_workspace
63
+ )
64
+ tom.add_expression(name="DatbaseQuery", expression=expr)
65
+
66
+ for sheet in sheets:
67
+ df = pd.read_excel(file_path, sheet_name=sheet)
68
+
69
+ if sheet == "Tables":
70
+ for i, r in df.iterrows():
71
+ tName = r["Table Name"]
72
+ desc = r["Description"]
73
+ dc = r["Data Category"]
74
+ mode = r["Mode"]
75
+ hidden = bool(r["Hidden"])
76
+
77
+ tom.add_table(
78
+ name=tName, description=desc, data_category=dc, hidden=hidden
79
+ )
80
+ if mode == "DirectLake":
81
+ tom.add_entity_partition(table_name=tName, entity_name=tName)
82
+ elif sheet == "Columns":
83
+ for i, r in df.iterrows():
84
+ tName = r["Table Name"]
85
+ cName = r["Column Name"]
86
+ scName = r["Source Column"]
87
+ dataType = r["Data Type"]
88
+ hidden = bool(r["Hidden"])
89
+ key = bool(r["Key"])
90
+ if dataType == "Integer":
91
+ dataType = "Int64"
92
+ desc = r["Description"]
93
+
94
+ tom.add_data_column(
95
+ table_name=tName,
96
+ column_name=cName,
97
+ source_column=scName,
98
+ data_type=dataType,
99
+ description=desc,
100
+ hidden=hidden,
101
+ key=key,
102
+ )
103
+ elif sheet == "Measures":
104
+ for i, r in df.iterrows():
105
+ tName = r["Table Name"]
106
+ mName = r["Measure Name"]
107
+ expr = r["Expression"]
108
+ desc = r["Description"]
109
+ format = r["Format String"]
110
+ hidden = bool(r["Hidden"])
111
+
112
+ tom.add_measure(
113
+ table_name=tName,
114
+ measure_name=mName,
115
+ expression=expr,
116
+ format_string=format,
117
+ description=desc,
118
+ hidden=hidden,
119
+ )
120
+ elif sheet == "Relationships":
121
+ for i, r in df.iterrows():
122
+ fromTable = r["From Table"]
123
+ fromColumn = r["From Column"]
124
+ toTable = r["To Table"]
125
+ toColumn = r["To Column"]
126
+ fromCard = r["From Cardinality"]
127
+ toCard = r["To Cardinality"]
128
+
129
+ tom.add_relationship(
130
+ from_table=fromTable,
131
+ from_column=fromColumn,
132
+ to_table=toTable,
133
+ to_column=toColumn,
134
+ from_cardinality=fromCard,
135
+ to_cardinality=toCard,
136
+ )
137
+ elif sheet == "Roles":
138
+ print("hi")
139
+ elif sheet == "Hierarchies":
140
+ print("hi")