semantic-link-labs 0.8.1__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.
- {semantic_link_labs-0.8.1.dist-info → semantic_link_labs-0.8.3.dist-info}/METADATA +8 -4
- {semantic_link_labs-0.8.1.dist-info → semantic_link_labs-0.8.3.dist-info}/RECORD +35 -34
- sempy_labs/__init__.py +14 -0
- sempy_labs/_capacities.py +89 -11
- sempy_labs/_capacity_migration.py +167 -60
- sempy_labs/_clear_cache.py +3 -3
- sempy_labs/_data_pipelines.py +48 -0
- sempy_labs/_external_data_shares.py +188 -0
- sempy_labs/_generate_semantic_model.py +0 -1
- sempy_labs/_git.py +1 -1
- sempy_labs/_helper_functions.py +20 -16
- sempy_labs/_list_functions.py +6 -3
- sempy_labs/_model_bpa.py +7 -5
- sempy_labs/_model_bpa_bulk.py +3 -5
- sempy_labs/_notebooks.py +4 -3
- sempy_labs/_sql.py +2 -2
- sempy_labs/_translations.py +14 -14
- sempy_labs/_vertipaq.py +121 -101
- sempy_labs/_warehouses.py +11 -1
- sempy_labs/admin/__init__.py +2 -0
- sempy_labs/admin/_basic_functions.py +124 -21
- sempy_labs/directlake/_directlake_schema_sync.py +0 -5
- sempy_labs/directlake/_generate_shared_expression.py +1 -1
- sempy_labs/directlake/_guardrails.py +1 -1
- sempy_labs/directlake/_show_unsupported_directlake_objects.py +1 -1
- sempy_labs/migration/_create_pqt_file.py +2 -2
- sempy_labs/report/_generate_report.py +10 -14
- sempy_labs/report/_report_bpa.py +8 -10
- sempy_labs/report/_report_functions.py +13 -19
- sempy_labs/report/_report_rebind.py +4 -1
- sempy_labs/report/_reportwrapper.py +3 -3
- sempy_labs/tom/_model.py +109 -34
- {semantic_link_labs-0.8.1.dist-info → semantic_link_labs-0.8.3.dist-info}/LICENSE +0 -0
- {semantic_link_labs-0.8.1.dist-info → semantic_link_labs-0.8.3.dist-info}/WHEEL +0 -0
- {semantic_link_labs-0.8.1.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.
|
|
3
|
+
Version: 0.8.3
|
|
4
4
|
Summary: Semantic Link Labs for Microsoft Fabric
|
|
5
5
|
Author: Microsoft Corporation
|
|
6
6
|
License: MIT License
|
|
@@ -21,14 +21,13 @@ Requires-Dist: powerbiclient
|
|
|
21
21
|
Requires-Dist: polib
|
|
22
22
|
Requires-Dist: azure.mgmt.resource
|
|
23
23
|
Requires-Dist: jsonpath-ng
|
|
24
|
-
Requires-Dist: deltalake
|
|
25
24
|
Provides-Extra: test
|
|
26
25
|
Requires-Dist: pytest >=8.2.1 ; extra == 'test'
|
|
27
26
|
|
|
28
27
|
# Semantic Link Labs
|
|
29
28
|
|
|
30
29
|
[](https://badge.fury.io/py/semantic-link-labs)
|
|
31
|
-
[](https://readthedocs.org/projects/semantic-link-labs/)
|
|
32
31
|
[](https://github.com/psf/black)
|
|
33
32
|
[](https://pepy.tech/project/semantic-link-labs)
|
|
34
33
|
|
|
@@ -48,6 +47,8 @@ Semantic Link Labs is a Python library designed for use in [Microsoft Fabric not
|
|
|
48
47
|
* [Check Direct Lake Guardrails](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.get_lakehouse_tables)
|
|
49
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)
|
|
50
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)
|
|
51
52
|
* Reports
|
|
52
53
|
* [Report Best Practice Analyzer (BPA)](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.report.html#sempy_labs.report.run_report_bpa)
|
|
53
54
|
* [View report metadata](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Report%20Analysis.ipynb)
|
|
@@ -56,8 +57,9 @@ Semantic Link Labs is a Python library designed for use in [Microsoft Fabric not
|
|
|
56
57
|
* [Rebind reports](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.report.html#sempy_labs.report.report_rebind)
|
|
57
58
|
* Capacities
|
|
58
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.
|
|
59
61
|
* APIs
|
|
60
|
-
* 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/
|
|
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
|
|
61
63
|
|
|
62
64
|
|
|
63
65
|
### Check out the [helper notebooks](https://github.com/microsoft/semantic-link-labs/tree/main/notebooks) for getting started!
|
|
@@ -104,6 +106,8 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
104
106
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
105
107
|
|
|
106
108
|
## Version History
|
|
109
|
+
* [0.8.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.3) (October 14, 2024)
|
|
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)
|
|
109
113
|
* [0.7.4](https://github.com/microsoft/semantic-link-labs/releases/tag/0.7.4) (September 16, 2024)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
sempy_labs/__init__.py,sha256=
|
|
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=
|
|
4
|
-
sempy_labs/_capacity_migration.py,sha256=
|
|
5
|
-
sempy_labs/_clear_cache.py,sha256=
|
|
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=
|
|
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/
|
|
16
|
-
sempy_labs/
|
|
17
|
-
sempy_labs/
|
|
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=
|
|
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=
|
|
27
|
-
sempy_labs/_model_bpa_bulk.py,sha256=
|
|
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=
|
|
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=
|
|
36
|
-
sempy_labs/_translations.py,sha256=
|
|
37
|
-
sempy_labs/_vertipaq.py,sha256=
|
|
38
|
-
sempy_labs/_warehouses.py,sha256=
|
|
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=
|
|
80
|
-
sempy_labs/admin/_basic_functions.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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
|
|
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=
|
|
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=
|
|
111
|
-
sempy_labs/report/_report_bpa.py,sha256=
|
|
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=
|
|
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=
|
|
117
|
-
sempy_labs/report/_reportwrapper.py,sha256=
|
|
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=
|
|
149
|
-
semantic_link_labs-0.8.
|
|
150
|
-
semantic_link_labs-0.8.
|
|
151
|
-
semantic_link_labs-0.8.
|
|
152
|
-
semantic_link_labs-0.8.
|
|
153
|
-
semantic_link_labs-0.8.
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
+
)
|