semantic-link-labs 0.8.2__py3-none-any.whl → 0.8.3__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.

Potentially problematic release.


This version of semantic-link-labs might be problematic. Click here for more details.

Files changed (35) hide show
  1. {semantic_link_labs-0.8.2.dist-info → semantic_link_labs-0.8.3.dist-info}/METADATA +7 -3
  2. {semantic_link_labs-0.8.2.dist-info → semantic_link_labs-0.8.3.dist-info}/RECORD +35 -34
  3. sempy_labs/__init__.py +14 -0
  4. sempy_labs/_capacities.py +89 -11
  5. sempy_labs/_capacity_migration.py +167 -60
  6. sempy_labs/_clear_cache.py +3 -3
  7. sempy_labs/_data_pipelines.py +48 -0
  8. sempy_labs/_external_data_shares.py +188 -0
  9. sempy_labs/_generate_semantic_model.py +0 -1
  10. sempy_labs/_git.py +1 -1
  11. sempy_labs/_helper_functions.py +14 -11
  12. sempy_labs/_list_functions.py +6 -3
  13. sempy_labs/_model_bpa.py +5 -5
  14. sempy_labs/_model_bpa_bulk.py +3 -5
  15. sempy_labs/_notebooks.py +4 -3
  16. sempy_labs/_sql.py +2 -2
  17. sempy_labs/_translations.py +14 -14
  18. sempy_labs/_vertipaq.py +121 -101
  19. sempy_labs/_warehouses.py +11 -1
  20. sempy_labs/admin/__init__.py +2 -0
  21. sempy_labs/admin/_basic_functions.py +124 -21
  22. sempy_labs/directlake/_directlake_schema_sync.py +0 -5
  23. sempy_labs/directlake/_generate_shared_expression.py +1 -1
  24. sempy_labs/directlake/_guardrails.py +1 -1
  25. sempy_labs/directlake/_show_unsupported_directlake_objects.py +1 -1
  26. sempy_labs/migration/_create_pqt_file.py +2 -2
  27. sempy_labs/report/_generate_report.py +10 -14
  28. sempy_labs/report/_report_bpa.py +8 -10
  29. sempy_labs/report/_report_functions.py +13 -19
  30. sempy_labs/report/_report_rebind.py +4 -1
  31. sempy_labs/report/_reportwrapper.py +3 -3
  32. sempy_labs/tom/_model.py +109 -34
  33. {semantic_link_labs-0.8.2.dist-info → semantic_link_labs-0.8.3.dist-info}/LICENSE +0 -0
  34. {semantic_link_labs-0.8.2.dist-info → semantic_link_labs-0.8.3.dist-info}/WHEEL +0 -0
  35. {semantic_link_labs-0.8.2.dist-info → semantic_link_labs-0.8.3.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: semantic-link-labs
3
- Version: 0.8.2
3
+ Version: 0.8.3
4
4
  Summary: Semantic Link Labs for Microsoft Fabric
5
5
  Author: Microsoft Corporation
6
6
  License: MIT License
@@ -27,7 +27,7 @@ Requires-Dist: pytest >=8.2.1 ; extra == 'test'
27
27
  # Semantic Link Labs
28
28
 
29
29
  [![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.8.2&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
30
+ [![Read The Docs](https://readthedocs.org/projects/semantic-link-labs/badge/?version=0.8.3&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
31
31
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
32
32
  [![Downloads](https://static.pepy.tech/badge/semantic-link-labs)](https://pepy.tech/project/semantic-link-labs)
33
33
 
@@ -47,6 +47,8 @@ Semantic Link Labs is a Python library designed for use in [Microsoft Fabric not
47
47
  * [Check Direct Lake Guardrails](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.get_lakehouse_tables)
48
48
  * [Refresh](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Semantic%20Model%20Refresh.ipynb), [clear cache](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.clear_cache), [backup](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.backup_semantic_model), [restore](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.restore_semantic_model), [copy backup files](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.copy_semantic_model_backup_file), [move/deploy across workspaces](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.deploy_semantic_model)
49
49
  * [Run DAX queries which impersonate a user](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.evaluate_dax_impersonation)
50
+ * [Manage Query Scale Out](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Query%20Scale%20Out.ipynb).
51
+ * [Auto-generate descriptions for any/all measures in bulk](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.TOMWrapper.generate_measure_descriptions)
50
52
  * Reports
51
53
  * [Report Best Practice Analyzer (BPA)](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.report.html#sempy_labs.report.run_report_bpa)
52
54
  * [View report metadata](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Report%20Analysis.ipynb)
@@ -55,8 +57,9 @@ Semantic Link Labs is a Python library designed for use in [Microsoft Fabric not
55
57
  * [Rebind reports](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.report.html#sempy_labs.report.report_rebind)
56
58
  * Capacities
57
59
  * [Migrating a Power BI Premium capacity (P sku) to a Fabric capacity (F sku)](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Capacity%20Migration.ipynb)
60
+ * [Create](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.create_fabric_capacity)/[update](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.update_fabric_capacity)/[suspend](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.suspend_fabric_capacity)/[resume](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.resume_fabric_capacity) Fabric capacities.
58
61
  * APIs
59
- * 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/azure/?view=rest-power-bi-embedded-2021-01-01) APIs
62
+ * Wrapper functions for [Power BI](https://learn.microsoft.com/rest/api/power-bi/), [Fabric](https://learn.microsoft.com/rest/api/fabric/articles/using-fabric-apis), and [Azure (Fabric Capacity)](https://learn.microsoft.com/rest/api/microsoftfabric/fabric-capacities?view=rest-microsoftfabric-2023-11-01) APIs
60
63
 
61
64
 
62
65
  ### Check out the [helper notebooks](https://github.com/microsoft/semantic-link-labs/tree/main/notebooks) for getting started!
@@ -103,6 +106,7 @@ An even better way to ensure the semantic-link-labs library is available in your
103
106
  2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
104
107
 
105
108
  ## Version History
109
+ * [0.8.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.3) (October 14, 2024)
106
110
  * [0.8.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.2) (October 2, 2024)
107
111
  * [0.8.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.1) (October 2, 2024)
108
112
  * [0.8.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.0) (September 25, 2024)
@@ -1,10 +1,10 @@
1
- sempy_labs/__init__.py,sha256=rX6aU2I1Y30fOXJs2xNTvep8Hni5s3J67TT9MCDLpcw,9957
1
+ sempy_labs/__init__.py,sha256=5RIFJdqOD_vdHolbUn2XgkkBK-bU5L9-19XV5vIm85E,10416
2
2
  sempy_labs/_ai.py,sha256=CzsNw6Wpd2B5Rd0RcY250-_p0L-0gFoMNLEc_KmrobU,16177
3
- sempy_labs/_capacities.py,sha256=X39LHYde3rgwW8vTbNUMt2S9dekTfy6sqQGXg-MCybY,20132
4
- sempy_labs/_capacity_migration.py,sha256=tVrIT4sSWKQg-6AqjrvGQPIBGHTcMtPqdymUnEJKVbs,23612
5
- sempy_labs/_clear_cache.py,sha256=JgY4Nio7Zy9YHOPxQseiZ5lJLWEi5s3Qn5SLSvuyBwo,12490
3
+ sempy_labs/_capacities.py,sha256=rlzK4wGuhWhvFO5jPPCDbpj0oMC7PmleEDXwhNCMxJo,23047
4
+ sempy_labs/_capacity_migration.py,sha256=bEPJ6rh_-XTFJsvmUtvILYZyYiH1Ss55u_0EoyotWW0,28158
5
+ sempy_labs/_clear_cache.py,sha256=ttHsXXR6SRRw4eC0cS8I5h38UbWU9YJii1y-uR9R3KM,12493
6
6
  sempy_labs/_connections.py,sha256=w1NeC9auc07ko2pY3m5vM_9-sgW_chw1OxPzDviVC5k,12179
7
- sempy_labs/_data_pipelines.py,sha256=gSmlkBpse0bodNfcfmS45_LKLtiv98nIqxbH70nSo-I,3590
7
+ sempy_labs/_data_pipelines.py,sha256=DfgRL67aEtP6GBFR5AJwvyNdWgw8q0DG3oWIZfnQLgM,5124
8
8
  sempy_labs/_dataflows.py,sha256=ApGMklXMQZQssYa7egxlBtsYz5mcR3JS69ZgeORXVBM,4051
9
9
  sempy_labs/_dax.py,sha256=dt1GgHceyM7f6phRBPxRKnmQy_KYKpcgFQHuOjGbpLo,2029
10
10
  sempy_labs/_deployment_pipelines.py,sha256=-wjqQieR25BR-0r2QfTzg4QuFzOgcayZLnS-fNYIPPU,5347
@@ -12,30 +12,31 @@ sempy_labs/_documentation.py,sha256=yVA8VPEzx_fmljtcvSxtB7-BeupYsfdMXXjp6Fpnyo8,
12
12
  sempy_labs/_environments.py,sha256=oyfEeOLX5XPevumj4Il5t1z2gmsR8xm6pg1wfGoutMc,4821
13
13
  sempy_labs/_eventhouses.py,sha256=tVUYJkAcwoBZooXawJpCKzx2YypawKECrfKouRTkMJU,3537
14
14
  sempy_labs/_eventstreams.py,sha256=NV0YAC6V3nBxJIVKWH7ceAtooZoH9rA4zv45xTcb-t0,3556
15
- sempy_labs/_generate_semantic_model.py,sha256=mvM1DDWEkyfU8Ee4NT9Zu52qZyCnmq0971esIjp_LpQ,13253
16
- sempy_labs/_git.py,sha256=vXWv6e45H0OGIyzBvB-anSJYrBFjA2MVUYIjaUPd54I,12731
17
- sempy_labs/_helper_functions.py,sha256=7mTpsTZpW0M3lGIReSuGIgntnb_wcQr2Jm6FolxRClI,32310
15
+ sempy_labs/_external_data_shares.py,sha256=w-tgTT2a4To1flF9SK0OPHuJ5_RQQcOBtFC14mjISlE,6410
16
+ sempy_labs/_generate_semantic_model.py,sha256=314HKcCgp8A-2B5J91PFDzqJhzqYmcVmLXoTpdOgJLM,13220
17
+ sempy_labs/_git.py,sha256=D2P5S4Kw1H62l8W6dr58xyJm7h6DZlOnrvScAUIJhnw,12756
18
+ sempy_labs/_helper_functions.py,sha256=YK1ADvgIX0eyJmuJwwSPl-lsOXFjTH9W9YQsifbVuu0,32371
18
19
  sempy_labs/_icons.py,sha256=pwei9IrwbNAxmxCNgX_8cACwjhvmM6cYYZcS3sLR9jc,2696
19
20
  sempy_labs/_kql_databases.py,sha256=DE_5un0QO5ayYiqKiMDinis0ZysmIWWaEoYQ9ach_8o,4110
20
21
  sempy_labs/_kql_querysets.py,sha256=kH8diN3DxuCINlKhAvzyXKXtj0uJ0uhcxrWI9j097vU,3646
21
- sempy_labs/_list_functions.py,sha256=jBdLo_8gnNk1nQdTlGvRbC_PMdyctxGnLQXwkDFNMcE,55255
22
+ sempy_labs/_list_functions.py,sha256=s3DtE6j28Xmsbqj8zxZB7U2a2O_1zH8OuKBVQ7g0iJk,55448
22
23
  sempy_labs/_mirrored_warehouses.py,sha256=xcVnrNwi46snQiS5iFKcZe-GGoFLqva7qW4iOPUD7Y8,1577
23
24
  sempy_labs/_ml_experiments.py,sha256=fTqFB0qn0T1k4vGmaghvKUolb5Kvg_qfTOYl3ABknt8,3676
24
25
  sempy_labs/_ml_models.py,sha256=nAISwah2fQI0OOJfBAEuI7d4uKu4DUIHi4BqUye6FQE,3572
25
26
  sempy_labs/_model_auto_build.py,sha256=-qDwmFx3KMuIaaUU8CzmCX7CF7ZUVWWu-_GH2UhAU_8,5045
26
- sempy_labs/_model_bpa.py,sha256=ow2UiiTGF_9nAldQxLdR4wmVrExXMYurhOVxu9pOFBQ,20377
27
- sempy_labs/_model_bpa_bulk.py,sha256=35M6FnHP6T-3rkwUHOeL6BRj-aKL7lRxpPvJKnj8wwU,14944
27
+ sempy_labs/_model_bpa.py,sha256=khvBVCMooVi_bHbaeQIAiWTBbUeTOYIqgIaJqsgZ9PU,20391
28
+ sempy_labs/_model_bpa_bulk.py,sha256=iqJ_GbC5nec5jiLsOGDfbvi_M_WOrQAkwIZU35v-u6E,14893
28
29
  sempy_labs/_model_bpa_rules.py,sha256=B8hg3_ktS5ql859nL3e9kdV8fNDBgMNO5j2hGrXp6po,44855
29
30
  sempy_labs/_model_dependencies.py,sha256=rFPVDA6gLKxy2rDPtHHIvVJF9SmJz4xRe4n922bzWtA,13452
30
- sempy_labs/_notebooks.py,sha256=K1ZZ9y-lOzDLeJ2UlCmJlN7kml5FRPmE0Bj5SvNDwq8,4339
31
+ sempy_labs/_notebooks.py,sha256=51TsNxCQWAvwJ9UIuFsYjYqRwFnRkPevUNX4ZytFc14,4341
31
32
  sempy_labs/_one_lake_integration.py,sha256=eIuLxlw8eXfUH2avKhsyLmXZbTllSwGsz2j_HMAikpQ,6234
32
33
  sempy_labs/_query_scale_out.py,sha256=Wk6vxyI6x1xFV30UpEwvzlD0TnentpKOO-8mEVLc7zE,15253
33
34
  sempy_labs/_refresh_semantic_model.py,sha256=Kb3sZf9ihBcbh2la6c7wuAhUvGnqrlNR2obAdNJNz98,6920
34
35
  sempy_labs/_spark.py,sha256=_gkmitnGIf0Q_wKDHcnkmGSyE6GtPgsi2QnudLcBWKU,19477
35
- sempy_labs/_sql.py,sha256=p0CvDD3fF0IQdoFI6308-DDUFQR9V_qWpXfQvyX3znw,5356
36
- sempy_labs/_translations.py,sha256=ocRtdgymcPYOT3jiYcVv9ze5i2gDjgLcTJBEl66pKtg,19771
37
- sempy_labs/_vertipaq.py,sha256=txae-LoCE8K8Z7lVmlC7FgIS6vVxwLtKhGcnU28ZuBk,35738
38
- sempy_labs/_warehouses.py,sha256=qIDteSE5dFm0rkzF3Ouryb467VKxrHywNSSvtf_TcXM,3920
36
+ sempy_labs/_sql.py,sha256=KttKi95iGxTT8UA1QOpT9ygAdwCfHHlcQSQ5d9gml0E,5358
37
+ sempy_labs/_translations.py,sha256=JSNDULYoHmRFUeu8CT14NY8gCbSxbeSgaxDgXG-vMfA,19785
38
+ sempy_labs/_vertipaq.py,sha256=RB_AkuiIVGZ10XFFfLxoBOkxpXJR46CIfxngtcWwkg0,36577
39
+ sempy_labs/_warehouses.py,sha256=cQH66395Enw2rFK0-K2X09ElnmBLeIWYlF73vqQGV8k,4314
39
40
  sempy_labs/_workspace_identity.py,sha256=2uum6Ojv1x3Zzp8JEAQ2ER9J5yafb_v_TgZwY5vdBwA,2120
40
41
  sempy_labs/_workspaces.py,sha256=KZfQ1hAKhfIsq52ZF-RBptueWUh6-P-OA8YDfmSQbpM,10080
41
42
  sempy_labs/_bpa_translation/_model/_translations_am-ET.po,sha256=ve23guQ48HXXn2_yGicUtr_Orhi9nth_lna8-x93GjA,37928
@@ -76,19 +77,19 @@ sempy_labs/_bpa_translation/_model/_translations_tr-TR.po,sha256=YfcgHAiP0RK2hit
76
77
  sempy_labs/_bpa_translation/_model/_translations_uk-UA.po,sha256=t7kpMB65cOKNIg8rD8KJPqi9uxmqgY3c66sM19ec-Kg,41959
77
78
  sempy_labs/_bpa_translation/_model/_translations_zh-CN.po,sha256=QhmS3HSnILLN-OgMUGmNFvGr4TEhoH1FKL0F1SgU2nk,26035
78
79
  sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po,sha256=0ZivJJa-ggc7PJqLAgDmi8OGGUGzEcleGPmlLL9YYb4,30495
79
- sempy_labs/admin/__init__.py,sha256=whrBFHvjWav0ni_LOYJ4Q63WtiJEPOQ1etudl2wiWKA,1445
80
- sempy_labs/admin/_basic_functions.py,sha256=2gFJ9XSU3Bm-IpBYk9vUDqnCCkWicRcNGjF6qP4ds6w,29229
80
+ sempy_labs/admin/__init__.py,sha256=m0INXWa0DcVq1tTGWbQAOYeFOaFg435eWmo_uHk59b0,1499
81
+ sempy_labs/admin/_basic_functions.py,sha256=ufx11IhljHRuhhSpX24l_uompxJPuNDqq6p9ZPGiwH8,32736
81
82
  sempy_labs/admin/_domains.py,sha256=ByDqLsm1eDPnTr93yuVsPnhEQLGerWWwWk4_rAlRD1M,11691
82
83
  sempy_labs/directlake/__init__.py,sha256=ZlpQQDdA5-C10zSf9YICH0waMIFM-55aacsEzvpuHEM,2047
83
84
  sempy_labs/directlake/_directlake_schema_compare.py,sha256=ocHFU6E6HSKgcNLywGM0dx0ie9AXYwk-E7o7EYcqiN4,4422
84
- sempy_labs/directlake/_directlake_schema_sync.py,sha256=I2SohqatMPDY8WXinAYP5QrVZ2wIaE4xsP-fVbTyAHE,4319
85
+ sempy_labs/directlake/_directlake_schema_sync.py,sha256=dGit9iahUgw-H5Pb9iozrtEQWbtPoND5R8HCJnT7UiQ,4100
85
86
  sempy_labs/directlake/_dl_helper.py,sha256=K4IN37gA_aRaFjpUT6hN1ExBMOR04_be2RSOtHh7k0Y,9260
86
- sempy_labs/directlake/_generate_shared_expression.py,sha256=ayMkgmlmFzDTYrqbXGm5C3w05YDkI4SYnyi1eaIo9Vs,3087
87
+ sempy_labs/directlake/_generate_shared_expression.py,sha256=EauK1M4fabCZjsHYAWxEYaVJKqxJ99nZQaN2pKdd1lg,3077
87
88
  sempy_labs/directlake/_get_directlake_lakehouse.py,sha256=sovI4ds2SEgkp4Fi465jtJ4seRvQxdYgcixRDvsUwNM,2321
88
89
  sempy_labs/directlake/_get_shared_expression.py,sha256=Xl2_GYqRll95cN7JjwLlULbcRXM71Ij9JkrYAp7cNJM,1943
89
- sempy_labs/directlake/_guardrails.py,sha256=20l2f2jeIJ2-z2H64Vi2n1e8cjMuideXSbBT9OYQ3kE,2500
90
+ sempy_labs/directlake/_guardrails.py,sha256=A-Bxdx3qytvVlard9oDEpR3KTMp3n3n-cHGV8Nq5Igc,2501
90
91
  sempy_labs/directlake/_list_directlake_model_calc_tables.py,sha256=_rpnbgsFAz2W16PpgIOB0Rj_Fs1ZKrDbz3DUaaR_bfU,2143
91
- sempy_labs/directlake/_show_unsupported_directlake_objects.py,sha256=-8werbzIi_xknMkymIsq-JwNTAvt0W18xA4HagXhT8U,3332
92
+ sempy_labs/directlake/_show_unsupported_directlake_objects.py,sha256=iSiMW4tBDEEsznDKx_7p7uDV6neI5PnsakvU2pytRy4,3331
92
93
  sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py,sha256=LpxYPxF_rkLD2okyKejLIV-qA8UeJ9xRWyv32kNdR_c,2822
93
94
  sempy_labs/directlake/_update_directlake_partition_entity.py,sha256=DCPNZfhqVG_yXnQbrMuattGGo1tuXt54RdAaiN84MSQ,8570
94
95
  sempy_labs/directlake/_warm_cache.py,sha256=X4R2_i4jFnFXYmwhDIxPb9h1CdPVLzFKHItsz0QpeRg,8248
@@ -98,7 +99,7 @@ sempy_labs/lakehouse/_get_lakehouse_tables.py,sha256=W5ZNC52v79FBXBhHwmhnyQHBuy-
98
99
  sempy_labs/lakehouse/_lakehouse.py,sha256=_yn0ySUrJQD9nySa3gFpEGr6AvF-vOKIMNJruotfxHQ,5224
99
100
  sempy_labs/lakehouse/_shortcuts.py,sha256=MT_Cqog5cTMz9fN3M_ZjAaQSjXXiyCyPWGY8LbaXZsI,6977
100
101
  sempy_labs/migration/__init__.py,sha256=w4vvGk6wTWXVfofJDmio2yIFvSSJsxOpjv6mvNGmrOI,1043
101
- sempy_labs/migration/_create_pqt_file.py,sha256=oYoKD78K9Ox1fqtkh-BfU_G5nUIoK_-5ChvCKDsYsWU,9257
102
+ sempy_labs/migration/_create_pqt_file.py,sha256=4u5cod8Q0IDMoNicUAzNBfAVlE9OSd3mHJcSSRCIdgQ,9246
102
103
  sempy_labs/migration/_migrate_calctables_to_lakehouse.py,sha256=y5fDjqgl-rpXgZWMGagLQS_aUqJ2ksWLR-cnriWJO7Q,17986
103
104
  sempy_labs/migration/_migrate_calctables_to_semantic_model.py,sha256=GC3zthtCsESLl_Mao-3C01_CzbfGBDTaEdq6k0DT2yQ,6203
104
105
  sempy_labs/migration/_migrate_model_objects_to_semantic_model.py,sha256=DAXz5TwPlrDxxciBp3NrTOlnkjeKaOYfntWMgyCXI10,23318
@@ -107,14 +108,14 @@ sempy_labs/migration/_migration_validation.py,sha256=ZsUdVlBmo03ycaZE6fFRRGU6qpE
107
108
  sempy_labs/migration/_refresh_calc_tables.py,sha256=eDj0OJQ07Tum4umZH0NsUW5Rx_YXEpGnAu8OVVoQ4yk,5190
108
109
  sempy_labs/report/_BPAReportTemplate.json,sha256=9Uh-7E6d2ooxQ7j5JRayv_ayEULc7Gzg42kZGKdOqH8,63920
109
110
  sempy_labs/report/__init__.py,sha256=LqbIi1SnB532l79ldsFbeIkk-6dEnWkJYgNCaF2IR08,1056
110
- sempy_labs/report/_generate_report.py,sha256=d7GVgLP77TApY4EKgvsvMwEYFo1Yl2_al8i8FCB6FPM,12179
111
- sempy_labs/report/_report_bpa.py,sha256=vPUCgGXgMbKBlFj3wFVOko2hWiuxrdTf9G-eSOfq3tQ,13667
111
+ sempy_labs/report/_generate_report.py,sha256=b5yJ8tvOuSE6suE27iQyklMC18TinY4Iz57Kih0GOnM,12060
112
+ sempy_labs/report/_report_bpa.py,sha256=pvj6BdSALuMTB-nl9L-TOKaTXqBpIr3CqkJhdXd0YSQ,13570
112
113
  sempy_labs/report/_report_bpa_rules.py,sha256=tPVGA0hmE6QMLlWtig7Va7Ksr2yXWl_Lndq--tWWd6w,4959
113
- sempy_labs/report/_report_functions.py,sha256=qY2lE9tyf-xQo8Fdu2yl2nneiMMM6LFkwlqnyAOJjgg,29318
114
+ sempy_labs/report/_report_functions.py,sha256=ITf1meTcq9PvESB6pennU2sRPCt2doyCbA23tRak_3w,29304
114
115
  sempy_labs/report/_report_helper.py,sha256=fkSo5m3_KlAlo-fu8FTnxINigWbZI66ex-r44WalKsw,8711
115
116
  sempy_labs/report/_report_list_functions.py,sha256=4k-bPEi4uW_ozHTZNc_67idP1LQZPT-gO9ToRCv06fk,3127
116
- sempy_labs/report/_report_rebind.py,sha256=F1gXE-VM_812EFOfqbMDnAdynVfVKKx9Cvs31Hnuras,5004
117
- sempy_labs/report/_reportwrapper.py,sha256=NczgthYYI7oAgrm2yXp5Z1aocxqoXAdhnXI06wRd3s0,75719
117
+ sempy_labs/report/_report_rebind.py,sha256=I0LVxMmPzchZLuHsz2wsH4uSzvhJNTgIFwOIVZ-Dm2c,5017
118
+ sempy_labs/report/_reportwrapper.py,sha256=Ud88HmUmWLfG5CgHXSXBraOOea_DVvP3z_cl_hqDOTE,75724
118
119
  sempy_labs/report/_bpareporttemplate/.platform,sha256=kWRa6B_KwSYLsvVFDx372mQriQO8v7dJ_YzQV_cfD-Q,303
119
120
  sempy_labs/report/_bpareporttemplate/definition.pbir,sha256=bttyHZYKqjA8OBb_cezGlX4H82cDvGZVCl1QB3fij4E,343
120
121
  sempy_labs/report/_bpareporttemplate/.pbi/localSettings.json,sha256=kzjBlNdjbsSBBSHBwbQc298AJCr9Vp6Ex0D5PemUuT0,1578
@@ -145,9 +146,9 @@ sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visua
145
146
  sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json,sha256=wBVuNc8S2NaUA0FC708w6stmR2djNZp8nAsHMqesgsc,293
146
147
  sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/visuals/ce8532a7e25020271077/visual.json,sha256=mlY6t9OlSe-Y6_QmXJpS1vggU6Y3FjISUKECL8FVSg8,931
147
148
  sempy_labs/tom/__init__.py,sha256=Qbs8leW0fjzvWwOjyWK3Hjeehu7IvpB1beASGsi28bk,121
148
- sempy_labs/tom/_model.py,sha256=tfC241UprOx8ZLGqnSnaAzi20qlghESc0uK95i2HaAs,165380
149
- semantic_link_labs-0.8.2.dist-info/LICENSE,sha256=ws_MuBL-SCEBqPBFl9_FqZkaaydIJmxHrJG2parhU4M,1141
150
- semantic_link_labs-0.8.2.dist-info/METADATA,sha256=1hsvBRmEpNCyw0quXQ3UDVsVS98cv0RYb8R3z0AMU4c,15783
151
- semantic_link_labs-0.8.2.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
152
- semantic_link_labs-0.8.2.dist-info/top_level.txt,sha256=kiQX1y42Dbein1l3Q8jMUYyRulDjdlc2tMepvtrvixQ,11
153
- semantic_link_labs-0.8.2.dist-info/RECORD,,
149
+ sempy_labs/tom/_model.py,sha256=t1IUh9Mqe1swzHlOZ1r7dcz5wWBFPq7MyeBLIbstrHk,168731
150
+ semantic_link_labs-0.8.3.dist-info/LICENSE,sha256=ws_MuBL-SCEBqPBFl9_FqZkaaydIJmxHrJG2parhU4M,1141
151
+ semantic_link_labs-0.8.3.dist-info/METADATA,sha256=uVZzCOFYEBbKVOesWFT3xJroaca3lI7qxolC7U9yDX8,16718
152
+ semantic_link_labs-0.8.3.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
153
+ semantic_link_labs-0.8.3.dist-info/top_level.txt,sha256=kiQX1y42Dbein1l3Q8jMUYyRulDjdlc2tMepvtrvixQ,11
154
+ semantic_link_labs-0.8.3.dist-info/RECORD,,
sempy_labs/__init__.py CHANGED
@@ -1,3 +1,8 @@
1
+ from sempy_labs._external_data_shares import (
2
+ list_external_data_shares_in_item,
3
+ create_external_data_share,
4
+ revoke_external_data_share,
5
+ )
1
6
  from sempy_labs._ml_models import (
2
7
  list_ml_models,
3
8
  create_ml_model,
@@ -17,6 +22,7 @@ from sempy_labs._data_pipelines import (
17
22
  list_data_pipelines,
18
23
  create_data_pipeline,
19
24
  delete_data_pipeline,
25
+ get_data_pipeline_definition,
20
26
  )
21
27
  from sempy_labs._eventhouses import (
22
28
  create_eventhouse,
@@ -61,6 +67,7 @@ from sempy_labs._capacity_migration import (
61
67
  migrate_delegated_tenant_settings,
62
68
  migrate_capacity_settings,
63
69
  migrate_disaster_recovery_settings,
70
+ migrate_fabric_trial_capacity,
64
71
  )
65
72
  from sempy_labs._capacities import (
66
73
  create_fabric_capacity,
@@ -71,6 +78,7 @@ from sempy_labs._capacities import (
71
78
  check_fabric_capacity_name_availablility,
72
79
  delete_embedded_capacity,
73
80
  delete_premium_capacity,
81
+ create_resource_group,
74
82
  )
75
83
  from sempy_labs._spark import (
76
84
  get_spark_settings,
@@ -359,4 +367,10 @@ __all__ = [
359
367
  "delete_ml_experiment",
360
368
  "list_sql_endpoints",
361
369
  "list_datamarts",
370
+ "get_data_pipeline_definition",
371
+ "list_external_data_shares_in_item",
372
+ "create_external_data_share",
373
+ "revoke_external_data_share",
374
+ "migrate_fabric_trial_capacity",
375
+ "create_resource_group",
362
376
  ]
sempy_labs/_capacities.py CHANGED
@@ -4,7 +4,7 @@ from sempy._utils._log import log
4
4
  import sempy_labs._icons as icons
5
5
  from sempy.fabric.exceptions import FabricHTTPException
6
6
  import requests
7
- from sempy_labs._helper_functions import get_azure_token_credentials
7
+ from sempy_labs._helper_functions import _get_azure_token_credentials
8
8
  import pandas as pd
9
9
 
10
10
 
@@ -65,8 +65,6 @@ def create_fabric_capacity(
65
65
 
66
66
  from azure.mgmt.resource import ResourceManagementClient
67
67
 
68
- capacity_suffix = "fsku"
69
-
70
68
  if isinstance(admin_members, str):
71
69
  admin_members = [admin_members]
72
70
 
@@ -143,7 +141,7 @@ def create_fabric_capacity(
143
141
  f"{icons.red_dot} Invalid region. Valid options: {valid_regions}."
144
142
  )
145
143
 
146
- azure_token, credential, headers = get_azure_token_credentials(
144
+ azure_token, credential, headers = _get_azure_token_credentials(
147
145
  key_vault_uri=key_vault_uri,
148
146
  key_vault_tenant_id=key_vault_tenant_id,
149
147
  key_vault_client_id=key_vault_client_id,
@@ -274,7 +272,7 @@ def suspend_fabric_capacity(
274
272
  """
275
273
  # https://learn.microsoft.com/en-us/rest/api/microsoftfabric/fabric-capacities/suspend?view=rest-microsoftfabric-2023-11-01&tabs=HTTP
276
274
 
277
- azure_token, credential, headers = get_azure_token_credentials(
275
+ azure_token, credential, headers = _get_azure_token_credentials(
278
276
  key_vault_uri=key_vault_uri,
279
277
  key_vault_tenant_id=key_vault_tenant_id,
280
278
  key_vault_client_id=key_vault_client_id,
@@ -323,7 +321,7 @@ def resume_fabric_capacity(
323
321
 
324
322
  # https://learn.microsoft.com/en-us/rest/api/microsoftfabric/fabric-capacities/resume?view=rest-microsoftfabric-2023-11-01&tabs=HTTP
325
323
 
326
- azure_token, credential, headers = get_azure_token_credentials(
324
+ azure_token, credential, headers = _get_azure_token_credentials(
327
325
  key_vault_uri=key_vault_uri,
328
326
  key_vault_tenant_id=key_vault_tenant_id,
329
327
  key_vault_client_id=key_vault_client_id,
@@ -372,7 +370,7 @@ def delete_embedded_capacity(
372
370
 
373
371
  # https://learn.microsoft.com/en-us/rest/api/power-bi-embedded/capacities/delete?view=rest-power-bi-embedded-2021-01-01&tabs=HTTP
374
372
 
375
- azure_token, credential, headers = get_azure_token_credentials(
373
+ azure_token, credential, headers = _get_azure_token_credentials(
376
374
  key_vault_uri=key_vault_uri,
377
375
  key_vault_tenant_id=key_vault_tenant_id,
378
376
  key_vault_client_id=key_vault_client_id,
@@ -449,7 +447,7 @@ def delete_fabric_capacity(
449
447
 
450
448
  # https://learn.microsoft.com/en-us/rest/api/microsoftfabric/fabric-capacities/delete?view=rest-microsoftfabric-2023-11-01&tabs=HTTP
451
449
 
452
- azure_token, credential, headers = get_azure_token_credentials(
450
+ azure_token, credential, headers = _get_azure_token_credentials(
453
451
  key_vault_uri=key_vault_uri,
454
452
  key_vault_tenant_id=key_vault_tenant_id,
455
453
  key_vault_client_id=key_vault_client_id,
@@ -503,7 +501,6 @@ def update_fabric_capacity(
503
501
  The email address(es) of the admin(s) of the Fabric capacity.
504
502
  tags : dict, default=None
505
503
  Tag(s) to add to the capacity. Example: {'tagName': 'tagValue'}.
506
-
507
504
  """
508
505
 
509
506
  # https://learn.microsoft.com/en-us/rest/api/microsoftfabric/fabric-capacities/update?view=rest-microsoftfabric-2023-11-01&tabs=HTTP
@@ -515,7 +512,7 @@ def update_fabric_capacity(
515
512
  f"{icons.red_dot} If specified, the 'tags' parameter must be a dictionary."
516
513
  )
517
514
 
518
- azure_token, credential, headers = get_azure_token_credentials(
515
+ azure_token, credential, headers = _get_azure_token_credentials(
519
516
  key_vault_uri=key_vault_uri,
520
517
  key_vault_tenant_id=key_vault_tenant_id,
521
518
  key_vault_client_id=key_vault_client_id,
@@ -556,9 +553,34 @@ def check_fabric_capacity_name_availablility(
556
553
  key_vault_client_id: str,
557
554
  key_vault_client_secret: str,
558
555
  ) -> bool:
556
+ """
557
+ This function updates a Fabric capacity's properties.
558
+
559
+ Parameters
560
+ ----------
561
+ capacity_name : str
562
+ Name of the Fabric capacity.
563
+ azure_subscription_id : str
564
+ The Azure subscription ID.
565
+ region : str
566
+ The region name.
567
+ key_vault_uri : str
568
+ The name of the `Azure key vault <https://azure.microsoft.com/products/key-vault>`_ URI. Example: "https://<Key Vault Name>.vault.azure.net/"
569
+ key_vault_tenant_id : str
570
+ The name of the Azure key vault secret storing the Tenant ID.
571
+ key_vault_client_id : str
572
+ The name of the Azure key vault secret storing the Client ID.
573
+ key_vault_client_secret : str
574
+ The name of the Azure key vault secret storing the Client Secret.
575
+
576
+ Returns
577
+ -------
578
+ bool
579
+ An indication as to whether the Fabric capacity name is available or not.
580
+ """
559
581
  # https://learn.microsoft.com/en-us/rest/api/microsoftfabric/fabric-capacities/check-name-availability?view=rest-microsoftfabric-2023-11-01&tabs=HTTP
560
582
 
561
- azure_token, credential, headers = get_azure_token_credentials(
583
+ azure_token, credential, headers = _get_azure_token_credentials(
562
584
  key_vault_uri=key_vault_uri,
563
585
  key_vault_tenant_id=key_vault_tenant_id,
564
586
  key_vault_client_id=key_vault_client_id,
@@ -575,3 +597,59 @@ def check_fabric_capacity_name_availablility(
575
597
  raise FabricHTTPException(response)
576
598
 
577
599
  return bool(response.json().get("nameAvailable"))
600
+
601
+
602
+ def create_resource_group(
603
+ azure_subscription_id: str,
604
+ key_vault_uri: str,
605
+ key_vault_tenant_id: str,
606
+ key_vault_client_id: str,
607
+ key_vault_client_secret: str,
608
+ resource_group: str,
609
+ region: str,
610
+ ):
611
+ """
612
+ This function creates a resource group in a region within an Azure subscription.
613
+
614
+ Parameters
615
+ ----------
616
+ azure_subscription_id : str
617
+ The Azure subscription ID.
618
+ key_vault_uri : str
619
+ The name of the `Azure key vault <https://azure.microsoft.com/products/key-vault>`_ URI. Example: "https://<Key Vault Name>.vault.azure.net/"
620
+ key_vault_tenant_id : str
621
+ The name of the Azure key vault secret storing the Tenant ID.
622
+ key_vault_client_id : str
623
+ The name of the Azure key vault secret storing the Client ID.
624
+ key_vault_client_secret : str
625
+ The name of the Azure key vault secret storing the Client Secret.
626
+ resource_group : str
627
+ The name of the Azure resource group to be created.
628
+ region : str
629
+ The name of the region in which the resource group will be created.
630
+ """
631
+
632
+ from azure.mgmt.resource import ResourceManagementClient
633
+
634
+ azure_token, credential, headers = get_azure_token_credentials(
635
+ key_vault_uri=key_vault_uri,
636
+ key_vault_tenant_id=key_vault_tenant_id,
637
+ key_vault_client_id=key_vault_client_id,
638
+ key_vault_client_secret=key_vault_client_secret,
639
+ )
640
+
641
+ resource_client = ResourceManagementClient(credential, azure_subscription_id)
642
+
643
+ if resource_client.resource_groups.check_existence(resource_group):
644
+ print(
645
+ f"{icons.info} The '{resource_group}' resource group already exists in the '{region}' region within the '{azure_subscription_id}' Azure subscription."
646
+ )
647
+ return
648
+
649
+ resource_client.resource_groups.create_or_update(
650
+ resource_group, {"location": region}
651
+ )
652
+
653
+ print(
654
+ f"{icons.green_dot} The '{resource_group}' resource group has been created within the '{region}' region within the '{azure_subscription_id}' Azure subscription."
655
+ )