semantic-link-labs 0.12.0__py3-none-any.whl → 0.12.2__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.12.0.dist-info → semantic_link_labs-0.12.2.dist-info}/METADATA +4 -2
- {semantic_link_labs-0.12.0.dist-info → semantic_link_labs-0.12.2.dist-info}/RECORD +28 -26
- sempy_labs/__init__.py +6 -0
- sempy_labs/_a_lib_info.py +1 -1
- sempy_labs/_authentication.py +7 -3
- sempy_labs/_data_access_security.py +98 -0
- sempy_labs/_data_pipelines.py +23 -9
- sempy_labs/_dataflows.py +0 -1
- sempy_labs/_deployment_pipelines.py +49 -27
- sempy_labs/_eventstreams.py +9 -1
- sempy_labs/_helper_functions.py +16 -1
- sempy_labs/_job_scheduler.py +63 -33
- sempy_labs/_labels.py +4 -6
- sempy_labs/_model_dependencies.py +5 -2
- sempy_labs/_warehouses.py +55 -0
- sempy_labs/admin/__init__.py +6 -0
- sempy_labs/admin/_capacities.py +10 -10
- sempy_labs/admin/_sharing_links.py +110 -0
- sempy_labs/graph/__init__.py +12 -0
- sempy_labs/graph/_groups.py +157 -2
- sempy_labs/graph/_users.py +162 -0
- sempy_labs/lakehouse/_shortcuts.py +16 -11
- sempy_labs/report/_report_rebind.py +35 -23
- sempy_labs/report/_reportwrapper.py +53 -6
- sempy_labs/tom/_model.py +22 -9
- {semantic_link_labs-0.12.0.dist-info → semantic_link_labs-0.12.2.dist-info}/WHEEL +0 -0
- {semantic_link_labs-0.12.0.dist-info → semantic_link_labs-0.12.2.dist-info}/licenses/LICENSE +0 -0
- {semantic_link_labs-0.12.0.dist-info → semantic_link_labs-0.12.2.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: semantic-link-labs
|
|
3
|
-
Version: 0.12.
|
|
3
|
+
Version: 0.12.2
|
|
4
4
|
Summary: Semantic Link Labs for Microsoft Fabric
|
|
5
5
|
Author: Microsoft Corporation
|
|
6
6
|
License: MIT License
|
|
@@ -26,7 +26,7 @@ Dynamic: license-file
|
|
|
26
26
|
# Semantic Link Labs
|
|
27
27
|
|
|
28
28
|
[](https://badge.fury.io/py/semantic-link-labs)
|
|
29
|
-
[](https://readthedocs.org/projects/semantic-link-labs/)
|
|
30
30
|
[](https://github.com/psf/black)
|
|
31
31
|
[](https://pepy.tech/project/semantic-link-labs)
|
|
32
32
|
|
|
@@ -154,6 +154,8 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
154
154
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
155
155
|
|
|
156
156
|
## Version History
|
|
157
|
+
* [0.12.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.2) (September 12, 2025)
|
|
158
|
+
* [0.12.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.1) (September 4, 2025)
|
|
157
159
|
* [0.12.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.0) (September 2, 2025)
|
|
158
160
|
* [0.11.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.3) (August 6, 2025)
|
|
159
161
|
* [0.11.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.2) (July 8, 2025)
|
|
@@ -1,37 +1,38 @@
|
|
|
1
|
-
semantic_link_labs-0.12.
|
|
2
|
-
sempy_labs/__init__.py,sha256=
|
|
3
|
-
sempy_labs/_a_lib_info.py,sha256=
|
|
1
|
+
semantic_link_labs-0.12.2.dist-info/licenses/LICENSE,sha256=ws_MuBL-SCEBqPBFl9_FqZkaaydIJmxHrJG2parhU4M,1141
|
|
2
|
+
sempy_labs/__init__.py,sha256=ftNoWwvm0GfuyNRo3ObrtwqBFtoi71QALNLPECyx84c,16361
|
|
3
|
+
sempy_labs/_a_lib_info.py,sha256=i6qs3OhdpTrleupFQc-NjZPBCANJDJeKGl37EJgjlc0,53
|
|
4
4
|
sempy_labs/_ai.py,sha256=fiI3RCadJ2jG15vZIWD9rKVhvmGWoD9uth9-PlSPBNs,16196
|
|
5
|
-
sempy_labs/_authentication.py,sha256
|
|
5
|
+
sempy_labs/_authentication.py,sha256=-mSXB3tlVhutOo2nhmQQOllWWVvuy4G9rTM77v4S8lw,8485
|
|
6
6
|
sempy_labs/_capacities.py,sha256=TQYlbM0LP21G-KsW6QrJ7heBzKL42XxA939VldWiKeg,40436
|
|
7
7
|
sempy_labs/_capacity_migration.py,sha256=g675DY2YgsVA_ffb_8WNdARVMyHh8iu2P94QWLllmDY,24827
|
|
8
8
|
sempy_labs/_clear_cache.py,sha256=UY_pljGeqb168Qe5sP66ecLeREPN4NMpjIEocCmxg0M,13201
|
|
9
9
|
sempy_labs/_connections.py,sha256=deIovVV2JOx4QW-4-A_V9O6l-FJPh3JWTGmIXZ_YH2M,19821
|
|
10
10
|
sempy_labs/_dashboards.py,sha256=1Cpllydezqf8INt31lAVfYcEOZmrqiBPiSzh7GQDWog,2161
|
|
11
|
-
sempy_labs/
|
|
12
|
-
sempy_labs/
|
|
11
|
+
sempy_labs/_data_access_security.py,sha256=F4J6WS54m341zRcGXlnj_Q6gtUPzHMoiuAraplORZBs,3375
|
|
12
|
+
sempy_labs/_data_pipelines.py,sha256=3XGKSyIkvWywtiwi3FX0LB2fxxp2EWMGnU3zQGGleDI,5477
|
|
13
|
+
sempy_labs/_dataflows.py,sha256=syu33ckJeI9w5H9fPnEqq_6pZ-5K1y5t-PuXdVAqBwk,20352
|
|
13
14
|
sempy_labs/_dax.py,sha256=Q_GylKeuHFnRB_sztZS1ON5v5tr6ua6lc9elyJYKbV8,17219
|
|
14
15
|
sempy_labs/_daxformatter.py,sha256=A2jTg9kSAye_LuIsCYmaYq5EbInAMfbDylHrERGB3Cs,3037
|
|
15
16
|
sempy_labs/_delta_analyzer.py,sha256=d6qxZrEhn3Hfg5qMQODt7dDG5mYSY18xeXUkW_NyMgw,17281
|
|
16
17
|
sempy_labs/_delta_analyzer_history.py,sha256=9v627Ubxbz4Dn2IAASUNu_sww9V3scoWgGk3yAWJIr0,10893
|
|
17
|
-
sempy_labs/_deployment_pipelines.py,sha256=
|
|
18
|
+
sempy_labs/_deployment_pipelines.py,sha256=MyCbAWYt9SWdG9v0iFrRN5YqgjiCBDsuroQJba7obx4,7068
|
|
18
19
|
sempy_labs/_dictionary_diffs.py,sha256=DCXuASmt45gshsBO1FgSZDqxm68DnojuDcO-H35EH7Q,9003
|
|
19
20
|
sempy_labs/_documentation.py,sha256=_TzhSYzGBVZYPaHm34T8dtTCbc_t4Mx45EzQKwD048g,5051
|
|
20
21
|
sempy_labs/_environments.py,sha256=uY8CS0FJx1BDTCZmYO7-QDv-ezgfXpSwRrf4OYX2KeI,5984
|
|
21
22
|
sempy_labs/_eventhouses.py,sha256=AJXJ00AOfEaKq0wagZfoLHorztyLHaRx6pkdbunCvFI,5934
|
|
22
|
-
sempy_labs/_eventstreams.py,sha256=
|
|
23
|
+
sempy_labs/_eventstreams.py,sha256=o9DPk1nBS3TDbokPP9AEtM18CmtRhaHI7LGZ2sRmTeA,4118
|
|
23
24
|
sempy_labs/_external_data_shares.py,sha256=qHirKpBGseQOkg3xHOM5450Wpz3vmWfG3xexYjLQT9M,8945
|
|
24
25
|
sempy_labs/_gateways.py,sha256=Nsb2qSXiAVS0CELhjji4FkKVBdnXhP-6spqqTBZc6sU,18100
|
|
25
26
|
sempy_labs/_generate_semantic_model.py,sha256=hK2f61PR55080smJBIrq7BgcoTWal_4i4eQulwHjtos,18236
|
|
26
27
|
sempy_labs/_git.py,sha256=x8BrvkJNWkP6I-_os_wdNjEZVNViqfINmc-q7sGoQ3Q,17903
|
|
27
28
|
sempy_labs/_graphQL.py,sha256=WDallUQBiOqJdz0aJmYH3cUXCOW_AqhFLs0EpV8_5Rw,2749
|
|
28
|
-
sempy_labs/_helper_functions.py,sha256=
|
|
29
|
+
sempy_labs/_helper_functions.py,sha256=dWqifJIgGTjjGTEzNxYsCpsiVv9kvCIrrGBnM8wb3VE,85166
|
|
29
30
|
sempy_labs/_icons.py,sha256=SB9EQeoFCfD4bO6fcYuJOoPRSYenSrW0rI9G5RFsH28,3579
|
|
30
|
-
sempy_labs/_job_scheduler.py,sha256=
|
|
31
|
+
sempy_labs/_job_scheduler.py,sha256=iCrtFD3pWwUCmjPwV4XzMbmJn_Bn2DwDvedxN9qQNFo,18868
|
|
31
32
|
sempy_labs/_kql_databases.py,sha256=Wr338mNf0wzvpBJYHbWHjzUudoeMZMUia_smdkzbPfI,4796
|
|
32
33
|
sempy_labs/_kql_querysets.py,sha256=C7nRv03riGJc7sbeGNz1R6dom6Wb-5dno_wAhFep468,4128
|
|
33
34
|
sempy_labs/_kusto.py,sha256=g3Up4j1KNdIGC2DDbvoduCdX1Pp8fAPGAlBAqOtaBeg,4544
|
|
34
|
-
sempy_labs/_labels.py,sha256=
|
|
35
|
+
sempy_labs/_labels.py,sha256=nPSf2lbXELAnh7-doOIw-i1MJYK-wNLW9asv3QYuxBg,3580
|
|
35
36
|
sempy_labs/_list_functions.py,sha256=VMjUzYdqKhAYpWV_tuIuhDxzV1K2Al_aTCPKw6A2qCU,59824
|
|
36
37
|
sempy_labs/_managed_private_endpoints.py,sha256=dsjaUVq_t9DlcAw5EaQfhi4FVbM71w8RKFkDFb80x5E,7068
|
|
37
38
|
sempy_labs/_mirrored_databases.py,sha256=njjHHqXiTBNA_424MrgaE-O7lvZiyvCEen0aTcrjogs,14832
|
|
@@ -41,7 +42,7 @@ sempy_labs/_model_auto_build.py,sha256=LpeRDY-L3b8LxvxmbUXZGDfzlqcs84rAPePf9XgJ0
|
|
|
41
42
|
sempy_labs/_model_bpa.py,sha256=ZPsBxDaxLRc3xcOCfvzK2GBCCmNTPLMP3jzW5IHcrXY,22041
|
|
42
43
|
sempy_labs/_model_bpa_bulk.py,sha256=hRY3dRBUtecrbscCZsEGv6TpCVqg_zAi8NmRq6dVMiE,15845
|
|
43
44
|
sempy_labs/_model_bpa_rules.py,sha256=SZKUHEsWzvivpNQK28zkmaJ1Z16o6_XdQPcpwxznPTg,46299
|
|
44
|
-
sempy_labs/_model_dependencies.py,sha256=
|
|
45
|
+
sempy_labs/_model_dependencies.py,sha256=iAEbaInRDiKPqx0JFl35Yby6pD1STo3ruZrBK0wsAU8,13213
|
|
45
46
|
sempy_labs/_mounted_data_factories.py,sha256=jNlSxtUs_LNwE7R9HQusBAksk2QbinKyDx3ySe_q9q4,3924
|
|
46
47
|
sempy_labs/_notebooks.py,sha256=_0Ug6SF2bihCEFt6P-6DjoGj3302OlDfXmfOJ-ue5Tg,14395
|
|
47
48
|
sempy_labs/_one_lake_integration.py,sha256=aThg8Fcei9qTFUTzg2Qwsn-3deTk0ICTCXx53Y23oso,6293
|
|
@@ -58,7 +59,7 @@ sempy_labs/_user_delegation_key.py,sha256=dj540zd_IGNt2GQ_a69_8IBoyZdpldx_3z6NxN
|
|
|
58
59
|
sempy_labs/_utils.py,sha256=X7wcjg809ZyEgf6fE0mZIv9qe1n1oQX_hHXEHgR4u0U,2737
|
|
59
60
|
sempy_labs/_vertipaq.py,sha256=1UvB79xOxeGdRFINsUsreXxtZtiatHlACAfbQhv45as,38536
|
|
60
61
|
sempy_labs/_vpax.py,sha256=4rtXXGVoadvdu7uiU9PVsgKszST3XH-K56zmWdMmZEg,15471
|
|
61
|
-
sempy_labs/_warehouses.py,sha256=
|
|
62
|
+
sempy_labs/_warehouses.py,sha256=ep4ZMa_1CNbWuQ3AGbGu8udOZ_SIochFJa4fCLqgkL0,9757
|
|
62
63
|
sempy_labs/_workloads.py,sha256=K2KPY1_e6SDqz_NQDBrrMlRwzEyVV5dqd1shBs8Bu6E,4731
|
|
63
64
|
sempy_labs/_workspace_identity.py,sha256=rLzrNjnWbpjNn4bu7xW0nSjG9t1nbc4xG6BdkZNKP1Q,2605
|
|
64
65
|
sempy_labs/_workspaces.py,sha256=djjY7zLLKqsN0UJqzVpCp3j6_k81RP3VimCv1IM8Eb4,18334
|
|
@@ -100,12 +101,12 @@ sempy_labs/_bpa_translation/_model/_translations_tr-TR.po,sha256=NdW-X4E0QmeLKM0
|
|
|
100
101
|
sempy_labs/_bpa_translation/_model/_translations_uk-UA.po,sha256=3NsFN8hoor_5L6738FjpJ8o4spwp8FNFGbVItHD-_ec,43500
|
|
101
102
|
sempy_labs/_bpa_translation/_model/_translations_zh-CN.po,sha256=ipMbnet7ZI5mZoC8KonYKVwGmFLHFB_9KIDOoBgSNfo,26815
|
|
102
103
|
sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po,sha256=5v6tVKGruqneAeMoa6F3tyg_JBL8qOpqOJofWpq2W3U,31518
|
|
103
|
-
sempy_labs/admin/__init__.py,sha256=
|
|
104
|
+
sempy_labs/admin/__init__.py,sha256=B6cdHZ6wrGXZSr7kDn3D4xSsya8GPkupfsFVXl4nRAc,4062
|
|
104
105
|
sempy_labs/admin/_activities.py,sha256=SN-uAEWvFO5nKuw4Yi483niixzxShDGMXRv0SV4s4Bk,6833
|
|
105
106
|
sempy_labs/admin/_apps.py,sha256=4R-VZqo9SGIrwqcQfnFGXIWueBhr4mSI7H8SUlLVl8s,4131
|
|
106
107
|
sempy_labs/admin/_artifacts.py,sha256=IQ1BOVKMK8Qy_5HpREUso6_NWXbftIodWekByvVvJ5k,2315
|
|
107
108
|
sempy_labs/admin/_basic_functions.py,sha256=HfJhdh8tVskRaaypU3qD_EE6IaDDR3MKJyt9Bl-56LE,16306
|
|
108
|
-
sempy_labs/admin/_capacities.py,sha256=
|
|
109
|
+
sempy_labs/admin/_capacities.py,sha256=nanec6kuyuUNjP1iseOoVmVax5VLKzOW0_91oESzEE4,16693
|
|
109
110
|
sempy_labs/admin/_dataflows.py,sha256=So7kzRdDZ2henr-gmPw-ahEBQTm_xGhZrjkW-gALLQk,1432
|
|
110
111
|
sempy_labs/admin/_datasets.py,sha256=scGbRZpR32u62HDsvKaUYtpX85n4RGx4eYjxClFIT5U,6277
|
|
111
112
|
sempy_labs/admin/_domains.py,sha256=siLhIi5UqVM9kf_Xqq-kzvwZKouyqf-wWpPhJ7D-VMk,15238
|
|
@@ -115,6 +116,7 @@ sempy_labs/admin/_items.py,sha256=LBvUUzqp2wV8YRiXCQGUhv7BoCbalZUojlvCukd1h6Y,90
|
|
|
115
116
|
sempy_labs/admin/_reports.py,sha256=JrmooHhiS4ViZsVinUz5T_9oZ7bdn1fIeW_wI8L1BnY,7908
|
|
116
117
|
sempy_labs/admin/_scanner.py,sha256=0dNfl9W25RTxIQj1rMGhQrH1ioGWpf3-CiZOxHLZ5hQ,4345
|
|
117
118
|
sempy_labs/admin/_shared.py,sha256=axTqVqp1V1tDtq2YTuSD6M0ST4lAjXqcIfRHwkZqyOQ,3115
|
|
119
|
+
sempy_labs/admin/_sharing_links.py,sha256=MGCpAS8F5XfpCytP3UU_AE-kFxurk5A0ctKUiUfTZZA,3830
|
|
118
120
|
sempy_labs/admin/_tags.py,sha256=emIA626JoC9Cp_vesVNFwahUdDLAK48APNsdG5ki1Xo,3788
|
|
119
121
|
sempy_labs/admin/_tenant.py,sha256=8mewLN79Lf3a-HUKG6Cl8Oimb2kv3r7XWAJKzvEHBMc,19581
|
|
120
122
|
sempy_labs/admin/_tenant_keys.py,sha256=9yajAPmsbjT25g1-4YbcRkXK8n3JcTFKVOnR0lt2BmU,2762
|
|
@@ -134,10 +136,10 @@ sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py,sha256=dX
|
|
|
134
136
|
sempy_labs/directlake/_update_directlake_partition_entity.py,sha256=EQpePqgTsetDG5JJrL5pfYjibmsuzrYk6x2mj0PDfEY,8984
|
|
135
137
|
sempy_labs/directlake/_warm_cache.py,sha256=ks_rX2WOUk77rLsvwsCYyQOx-5U-pts27_guLYgMw6w,9236
|
|
136
138
|
sempy_labs/dotnet_lib/dotnet.runtime.config.json,sha256=syhDFQv6cEmZnE1WtFjNe3NwhsIsnd-CFULv-vEWOFI,167
|
|
137
|
-
sempy_labs/graph/__init__.py,sha256=
|
|
138
|
-
sempy_labs/graph/_groups.py,sha256=
|
|
139
|
+
sempy_labs/graph/__init__.py,sha256=OwFxe_JvIETazMCPw0Cx-tHXh5sGOiEPwawCeR6O7jg,794
|
|
140
|
+
sempy_labs/graph/_groups.py,sha256=T3uzMepJC3SYISV4C9y4sVY7r_qH609sScBMljhC5rY,17763
|
|
139
141
|
sempy_labs/graph/_teams.py,sha256=UH5ETsReD0pzmdgqQFkcX_95o1aUAv2lAajRJc0RIZY,3175
|
|
140
|
-
sempy_labs/graph/_users.py,sha256=
|
|
142
|
+
sempy_labs/graph/_users.py,sha256=2QwwUYfaJnPHPY6M2a9QBWYwwkVDjpcbOQd_Bo9GjJ8,15181
|
|
141
143
|
sempy_labs/lakehouse/__init__.py,sha256=jOCjgkIZgwl373pb6lmEwqIkbifwJUKY3K0eZ8LAVws,1245
|
|
142
144
|
sempy_labs/lakehouse/_blobs.py,sha256=peVPDCw97sB1x9a4KMKOqUB2Igu82-gb4CsvGdbubrU,8557
|
|
143
145
|
sempy_labs/lakehouse/_get_lakehouse_columns.py,sha256=QVxejuu4WFGkG-c2i9B_H6dZsb1m_FRSTraS9GahnT4,3681
|
|
@@ -146,7 +148,7 @@ sempy_labs/lakehouse/_helper.py,sha256=q-z6DTO3-Iy5hM9zXpZhXRD1OPp7JAzGhcyJ_VheD
|
|
|
146
148
|
sempy_labs/lakehouse/_lakehouse.py,sha256=tJFeXG1U_GcEW1EVMQKIQpz6kqh_aatAGo208cDCE0Y,10262
|
|
147
149
|
sempy_labs/lakehouse/_livy_sessions.py,sha256=XwEA0QkcFCbCGxSO6MJ5GZ-j9kjNIBiQhIkWG_Znm0E,6034
|
|
148
150
|
sempy_labs/lakehouse/_materialized_lake_views.py,sha256=EOyVxEo_SaEuVELQzhrWIZVbd-HB7iRbyx0JVpWg1xA,2814
|
|
149
|
-
sempy_labs/lakehouse/_shortcuts.py,sha256=
|
|
151
|
+
sempy_labs/lakehouse/_shortcuts.py,sha256=_XzyX1PCxZaDdZgMr9pyQ_sQyZD0S0tA9iViVl8B5WU,17089
|
|
150
152
|
sempy_labs/migration/__init__.py,sha256=aA8r2g2mN_elPG8qptXlRiIcyQ9Z5hjKJo23fSNm1RY,1015
|
|
151
153
|
sempy_labs/migration/_create_pqt_file.py,sha256=IztG7XKAg98zZiWW0oUMtO7WnuqvcmE96gOAwe3UiKg,9659
|
|
152
154
|
sempy_labs/migration/_direct_lake_to_import.py,sha256=XBGQUTHp3uVgOcRk85aPtMlfdaXhrdh9AkaA0AglfSc,3987
|
|
@@ -172,8 +174,8 @@ sempy_labs/report/_report_bpa_rules.py,sha256=kPPE1UZ_78GePULcIRUarRfdqR7s4CQ46M
|
|
|
172
174
|
sempy_labs/report/_report_functions.py,sha256=cBJhjoC6iNYF-I6Ak1a2i2EKQykA5TPVLoofkgsuMkk,20105
|
|
173
175
|
sempy_labs/report/_report_helper.py,sha256=L9wU0N0rvTUMglZHTxcowywrBDuZvZTv3DA4JrX84Os,7207
|
|
174
176
|
sempy_labs/report/_report_list_functions.py,sha256=m_Wf1YeZmNtOfCwIILpKUuVR7V2CnwnfhDjz1DDTxOI,3945
|
|
175
|
-
sempy_labs/report/_report_rebind.py,sha256=
|
|
176
|
-
sempy_labs/report/_reportwrapper.py,sha256=
|
|
177
|
+
sempy_labs/report/_report_rebind.py,sha256=c4-dPCvjqnwdsasjCFlsTo8w6TvhAQ7WPRmAb-mowns,6437
|
|
178
|
+
sempy_labs/report/_reportwrapper.py,sha256=HP-ZOGmva5y1ZsxuA2QTddyVjF2nXOm0YEbe5OfrXm8,112178
|
|
177
179
|
sempy_labs/report/_save_report.py,sha256=0P1WwIBtSgwrhnjWWvf9xf-e7ifka3DWVF0HM5zeXps,5998
|
|
178
180
|
sempy_labs/report/_bpareporttemplate/.platform,sha256=kWRa6B_KwSYLsvVFDx372mQriQO8v7dJ_YzQV_cfD-Q,303
|
|
179
181
|
sempy_labs/report/_bpareporttemplate/definition.pbir,sha256=bttyHZYKqjA8OBb_cezGlX4H82cDvGZVCl1QB3fij4E,343
|
|
@@ -207,10 +209,10 @@ sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/visua
|
|
|
207
209
|
sempy_labs/theme/__init__.py,sha256=JN0z8w_Hc7VUIchRbpY-rjU6879msrFiSTRtMMlr_5g,185
|
|
208
210
|
sempy_labs/theme/_org_themes.py,sha256=ArLqr1KYI6CT1_mxKOsZlVPaTO0KSkkQ1LbFy4A1fqg,3323
|
|
209
211
|
sempy_labs/tom/__init__.py,sha256=ZwSpgYDP5VamZTnYP3a1cYHiaKdktOvlOBSOY1816zY,107
|
|
210
|
-
sempy_labs/tom/_model.py,sha256=
|
|
212
|
+
sempy_labs/tom/_model.py,sha256=Izf1YSh2nE4VZq9K92cefJN8_onmqP7DD_o4oiOUCOQ,223020
|
|
211
213
|
sempy_labs/variable_library/__init__.py,sha256=qyTw5vNldnwYv-TotQSFupwznKIQfcws1UxGjf1RNNo,437
|
|
212
214
|
sempy_labs/variable_library/_functions.py,sha256=eoB3hUKFGdGMSBNDEsEF9bVoELZp5AnyDxp5BsLGeDc,13733
|
|
213
|
-
semantic_link_labs-0.12.
|
|
214
|
-
semantic_link_labs-0.12.
|
|
215
|
-
semantic_link_labs-0.12.
|
|
216
|
-
semantic_link_labs-0.12.
|
|
215
|
+
semantic_link_labs-0.12.2.dist-info/METADATA,sha256=2ft_8tljZ0wn-asR56HeweU56aup-69e2a0WJFytrSY,27646
|
|
216
|
+
semantic_link_labs-0.12.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
217
|
+
semantic_link_labs-0.12.2.dist-info/top_level.txt,sha256=kiQX1y42Dbein1l3Q8jMUYyRulDjdlc2tMepvtrvixQ,11
|
|
218
|
+
semantic_link_labs-0.12.2.dist-info/RECORD,,
|
sempy_labs/__init__.py
CHANGED
|
@@ -100,6 +100,7 @@ from ._warehouses import (
|
|
|
100
100
|
delete_warehouse,
|
|
101
101
|
get_warehouse_columns,
|
|
102
102
|
get_warehouse_tables,
|
|
103
|
+
get_warehouse_connection_string,
|
|
103
104
|
)
|
|
104
105
|
from ._data_pipelines import (
|
|
105
106
|
list_data_pipelines,
|
|
@@ -347,6 +348,9 @@ from ._vertipaq import (
|
|
|
347
348
|
from ._user_delegation_key import (
|
|
348
349
|
get_user_delegation_key,
|
|
349
350
|
)
|
|
351
|
+
from ._data_access_security import (
|
|
352
|
+
list_data_access_roles,
|
|
353
|
+
)
|
|
350
354
|
|
|
351
355
|
__all__ = [
|
|
352
356
|
"resolve_warehouse_id",
|
|
@@ -599,4 +603,6 @@ __all__ = [
|
|
|
599
603
|
"get_item_definition",
|
|
600
604
|
"get_workspace_network_communication_policy",
|
|
601
605
|
"set_workspace_network_communication_policy",
|
|
606
|
+
"get_warehouse_connection_string",
|
|
607
|
+
"list_data_access_roles",
|
|
602
608
|
]
|
sempy_labs/_a_lib_info.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
lib_name = "semanticlinklabs"
|
|
2
|
-
lib_version = "0.12.
|
|
2
|
+
lib_version = "0.12.2"
|
sempy_labs/_authentication.py
CHANGED
|
@@ -19,7 +19,7 @@ class ServicePrincipalTokenProvider(TokenCredential):
|
|
|
19
19
|
"azure": "https://management.azure.com/.default",
|
|
20
20
|
"graph": "https://graph.microsoft.com/.default",
|
|
21
21
|
"asazure": "https://{region}.asazure.windows.net/.default",
|
|
22
|
-
"keyvault": "https://vault.azure.net/.default"
|
|
22
|
+
"keyvault": "https://vault.azure.net/.default",
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
def __init__(self, credential: ClientSecretCredential):
|
|
@@ -152,10 +152,14 @@ class ServicePrincipalTokenProvider(TokenCredential):
|
|
|
152
152
|
scopes = ("pbi",)
|
|
153
153
|
|
|
154
154
|
region = kwargs.pop("region", None)
|
|
155
|
-
scopes = [
|
|
155
|
+
scopes = [
|
|
156
|
+
self._get_fully_qualified_scope(scope, region=region) for scope in scopes
|
|
157
|
+
]
|
|
156
158
|
return self.credential.get_token(*scopes, **kwargs)
|
|
157
159
|
|
|
158
|
-
def _get_fully_qualified_scope(
|
|
160
|
+
def _get_fully_qualified_scope(
|
|
161
|
+
self, scope: str, region: Optional[str] = None
|
|
162
|
+
) -> str:
|
|
159
163
|
"""
|
|
160
164
|
Resolve to fully qualified scope if Fabric short-handed scope is given.
|
|
161
165
|
Otherwise, return the original scope.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
from uuid import UUID
|
|
3
|
+
import pandas as pd
|
|
4
|
+
from sempy_labs._helper_functions import (
|
|
5
|
+
_create_dataframe,
|
|
6
|
+
_base_api,
|
|
7
|
+
resolve_workspace_id,
|
|
8
|
+
resolve_item_id,
|
|
9
|
+
)
|
|
10
|
+
from sempy._utils._log import log
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@log
|
|
14
|
+
def list_data_access_roles(
|
|
15
|
+
item: str | UUID, type: str, workspace: Optional[str | UUID] = None
|
|
16
|
+
) -> pd.DataFrame:
|
|
17
|
+
"""
|
|
18
|
+
Returns a list of OneLake roles.
|
|
19
|
+
|
|
20
|
+
This is a wrapper function for the following API: `OneLake Data Access Security - List Data Access Roles <https://learn.microsoft.com/rest/api/fabric/core/onelake-data-access-security/list-data-access-roles>`_.
|
|
21
|
+
|
|
22
|
+
Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
|
|
23
|
+
|
|
24
|
+
Parameters
|
|
25
|
+
----------
|
|
26
|
+
item : str | uuid.UUID
|
|
27
|
+
The name or ID of the item.
|
|
28
|
+
type : str
|
|
29
|
+
The type of the item.
|
|
30
|
+
workspace : str | uuid.UUID, default=None
|
|
31
|
+
The Fabric workspace name or ID.
|
|
32
|
+
Defaults to None which resolves to the workspace of the attached lakehouse
|
|
33
|
+
or if no lakehouse attached, resolves to the workspace of the notebook.
|
|
34
|
+
|
|
35
|
+
Returns
|
|
36
|
+
-------
|
|
37
|
+
pandas.DataFrame
|
|
38
|
+
A pandas dataframe showing a list of OneLake roles.
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
columns = {
|
|
42
|
+
"Role Name": "string",
|
|
43
|
+
"Effect": "string",
|
|
44
|
+
"Attribute Name": "string",
|
|
45
|
+
"Attribute Values": "string",
|
|
46
|
+
"Item Access": "string",
|
|
47
|
+
"Source Path": "string",
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
df = _create_dataframe(columns=columns)
|
|
51
|
+
|
|
52
|
+
workspace_id = resolve_workspace_id(workspace)
|
|
53
|
+
item_id = resolve_item_id(item=item, type=type, workspace=workspace_id)
|
|
54
|
+
|
|
55
|
+
responses = _base_api(
|
|
56
|
+
request=f"/v1/workspaces/{workspace_id}/items/{item_id}/dataAccessRoles",
|
|
57
|
+
uses_pagination=True,
|
|
58
|
+
client="fabric_sp",
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
rows = []
|
|
62
|
+
for r in responses:
|
|
63
|
+
for role in r.get("value", []):
|
|
64
|
+
name = role.get("name")
|
|
65
|
+
|
|
66
|
+
# Loop through members first (since they are crucial)
|
|
67
|
+
members = role.get("members", {}).get("fabricItemMembers", [])
|
|
68
|
+
if not members:
|
|
69
|
+
members = [{}] # if no members exist, still create at least one row
|
|
70
|
+
|
|
71
|
+
for member in members:
|
|
72
|
+
item_access = member.get("itemAccess", [])
|
|
73
|
+
source_path = member.get("sourcePath")
|
|
74
|
+
|
|
75
|
+
# Loop through decision rules
|
|
76
|
+
for rule in role.get("decisionRules", []):
|
|
77
|
+
effect = rule.get("effect")
|
|
78
|
+
|
|
79
|
+
# Loop through permissions
|
|
80
|
+
for perm in rule.get("permission", []):
|
|
81
|
+
attr_name = perm.get("attributeName")
|
|
82
|
+
attr_values = perm.get("attributeValueIncludedIn", [])
|
|
83
|
+
|
|
84
|
+
rows.append(
|
|
85
|
+
{
|
|
86
|
+
"Role Name": name,
|
|
87
|
+
"Effect": effect,
|
|
88
|
+
"Attribute Name": attr_name,
|
|
89
|
+
"Attribute Values": ", ".join(attr_values),
|
|
90
|
+
"Item Access": ", ".join(item_access),
|
|
91
|
+
"Source Path": source_path,
|
|
92
|
+
}
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
if rows:
|
|
96
|
+
df = pd.DataFrame(rows, columns=list(columns.keys()))
|
|
97
|
+
|
|
98
|
+
return df
|
sempy_labs/_data_pipelines.py
CHANGED
|
@@ -2,6 +2,7 @@ import pandas as pd
|
|
|
2
2
|
from typing import Optional
|
|
3
3
|
from sempy_labs._helper_functions import (
|
|
4
4
|
resolve_workspace_name_and_id,
|
|
5
|
+
resolve_workspace_id,
|
|
5
6
|
_decode_b64,
|
|
6
7
|
_base_api,
|
|
7
8
|
resolve_item_id,
|
|
@@ -20,6 +21,8 @@ def list_data_pipelines(workspace: Optional[str | UUID] = None) -> pd.DataFrame:
|
|
|
20
21
|
|
|
21
22
|
This is a wrapper function for the following API: `Items - List Data Pipelines <https://learn.microsoft.com/rest/api/fabric/datapipeline/items/list-data-pipelines>`_.
|
|
22
23
|
|
|
24
|
+
Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
|
|
25
|
+
|
|
23
26
|
Parameters
|
|
24
27
|
----------
|
|
25
28
|
workspace : str | uuid.UUID, default=None
|
|
@@ -40,20 +43,26 @@ def list_data_pipelines(workspace: Optional[str | UUID] = None) -> pd.DataFrame:
|
|
|
40
43
|
}
|
|
41
44
|
df = _create_dataframe(columns=columns)
|
|
42
45
|
|
|
43
|
-
|
|
46
|
+
workspace_id = resolve_workspace_id(workspace)
|
|
44
47
|
|
|
45
48
|
responses = _base_api(
|
|
46
|
-
request=f"/v1/workspaces/{workspace_id}/dataPipelines",
|
|
49
|
+
request=f"/v1/workspaces/{workspace_id}/dataPipelines",
|
|
50
|
+
uses_pagination=True,
|
|
51
|
+
client="fabric_sp",
|
|
47
52
|
)
|
|
48
53
|
|
|
54
|
+
rows = []
|
|
49
55
|
for r in responses:
|
|
50
56
|
for v in r.get("value", []):
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
rows.append(
|
|
58
|
+
{
|
|
59
|
+
"Data Pipeline Name": v.get("displayName"),
|
|
60
|
+
"Data Pipeline ID": v.get("id"),
|
|
61
|
+
"Description": v.get("description"),
|
|
62
|
+
}
|
|
63
|
+
)
|
|
64
|
+
if rows:
|
|
65
|
+
df = pd.DataFrame(rows, columns=columns.keys())
|
|
57
66
|
|
|
58
67
|
return df
|
|
59
68
|
|
|
@@ -67,6 +76,8 @@ def create_data_pipeline(
|
|
|
67
76
|
|
|
68
77
|
This is a wrapper function for the following API: `Items - Create Data Pipeline <https://learn.microsoft.com/rest/api/fabric/datapipeline/items/create-data-pipeline>`_.
|
|
69
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
|
+
|
|
70
81
|
Parameters
|
|
71
82
|
----------
|
|
72
83
|
name: str
|
|
@@ -91,6 +102,8 @@ def delete_data_pipeline(name: str | UUID, workspace: Optional[str | UUID] = Non
|
|
|
91
102
|
|
|
92
103
|
This is a wrapper function for the following API: `Items - Delete Data Pipeline <https://learn.microsoft.com/rest/api/fabric/datapipeline/items/delete-data-pipeline>`_.
|
|
93
104
|
|
|
105
|
+
Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
|
|
106
|
+
|
|
94
107
|
Parameters
|
|
95
108
|
----------
|
|
96
109
|
name: str | uuid.UUID
|
|
@@ -130,7 +143,7 @@ def get_data_pipeline_definition(
|
|
|
130
143
|
A pandas dataframe showing the data pipelines within a workspace.
|
|
131
144
|
"""
|
|
132
145
|
|
|
133
|
-
|
|
146
|
+
workspace_id = resolve_workspace_id(workspace)
|
|
134
147
|
|
|
135
148
|
item_id = resolve_item_id(item=name, type="DataPipeline", workspace=workspace)
|
|
136
149
|
result = _base_api(
|
|
@@ -138,6 +151,7 @@ def get_data_pipeline_definition(
|
|
|
138
151
|
method="post",
|
|
139
152
|
lro_return_json=True,
|
|
140
153
|
status_codes=None,
|
|
154
|
+
client="fabric_sp",
|
|
141
155
|
)
|
|
142
156
|
df = pd.json_normalize(result["definition"]["parts"])
|
|
143
157
|
|
sempy_labs/_dataflows.py
CHANGED
|
@@ -17,6 +17,8 @@ def list_deployment_pipelines() -> pd.DataFrame:
|
|
|
17
17
|
|
|
18
18
|
This is a wrapper function for the following API: `Deployment Pipelines - List Deployment Pipelines <https://learn.microsoft.com/rest/api/fabric/core/deployment-pipelines/list-deployment-pipelines>`_.
|
|
19
19
|
|
|
20
|
+
Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
|
|
21
|
+
|
|
20
22
|
Returns
|
|
21
23
|
-------
|
|
22
24
|
pandas.DataFrame
|
|
@@ -34,16 +36,22 @@ def list_deployment_pipelines() -> pd.DataFrame:
|
|
|
34
36
|
request="/v1/deploymentPipelines",
|
|
35
37
|
status_codes=200,
|
|
36
38
|
uses_pagination=True,
|
|
39
|
+
client="fabric_sp",
|
|
37
40
|
)
|
|
38
41
|
|
|
42
|
+
rows = []
|
|
39
43
|
for r in responses:
|
|
40
44
|
for v in r.get("value", []):
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
rows.append(
|
|
46
|
+
{
|
|
47
|
+
"Deployment Pipeline Id": v.get("id"),
|
|
48
|
+
"Deployment Pipeline Name": v.get("displayName"),
|
|
49
|
+
"Description": v.get("description"),
|
|
50
|
+
}
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
if rows:
|
|
54
|
+
df = pd.DataFrame(rows, columns=columns.keys())
|
|
47
55
|
|
|
48
56
|
return df
|
|
49
57
|
|
|
@@ -55,6 +63,8 @@ def list_deployment_pipeline_stages(deployment_pipeline: str | UUID) -> pd.DataF
|
|
|
55
63
|
|
|
56
64
|
This is a wrapper function for the following API: `Deployment Pipelines - List Deployment Pipeline Stages <https://learn.microsoft.com/rest/api/fabric/core/deployment-pipelines/list-deployment-pipeline-stages>`_.
|
|
57
65
|
|
|
66
|
+
Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
|
|
67
|
+
|
|
58
68
|
Parameters
|
|
59
69
|
----------
|
|
60
70
|
deployment_pipeline : str | uuid.UUID
|
|
@@ -87,22 +97,26 @@ def list_deployment_pipeline_stages(deployment_pipeline: str | UUID) -> pd.DataF
|
|
|
87
97
|
request=f"/v1/deploymentPipelines/{deployment_pipeline_id}/stages",
|
|
88
98
|
status_codes=200,
|
|
89
99
|
uses_pagination=True,
|
|
100
|
+
client="fabric_sp",
|
|
90
101
|
)
|
|
91
102
|
|
|
103
|
+
rows = []
|
|
92
104
|
for r in responses:
|
|
93
105
|
for v in r.get("value", []):
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
+
rows.append(
|
|
107
|
+
{
|
|
108
|
+
"Deployment Pipeline Stage Id": v.get("id"),
|
|
109
|
+
"Deployment Pipeline Stage Name": v.get("displayName"),
|
|
110
|
+
"Description": v.get("description"),
|
|
111
|
+
"Order": v.get("order"),
|
|
112
|
+
"Workspace Id": v.get("workspaceId"),
|
|
113
|
+
"Workspace Name": v.get("workspaceName"),
|
|
114
|
+
"Public": v.get("isPublic"),
|
|
115
|
+
}
|
|
116
|
+
)
|
|
117
|
+
if rows:
|
|
118
|
+
df = pd.DataFrame(rows, columns=list(columns.keys()))
|
|
119
|
+
_update_dataframe_datatypes(df, columns)
|
|
106
120
|
|
|
107
121
|
return df
|
|
108
122
|
|
|
@@ -117,6 +131,8 @@ def list_deployment_pipeline_stage_items(
|
|
|
117
131
|
|
|
118
132
|
This is a wrapper function for the following API: `Deployment Pipelines - List Deployment Pipeline Stage Items <https://learn.microsoft.com/rest/api/fabric/core/deployment-pipelines/list-deployment-pipeline-stage-items>`_.
|
|
119
133
|
|
|
134
|
+
Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
|
|
135
|
+
|
|
120
136
|
Parameters
|
|
121
137
|
----------
|
|
122
138
|
deployment_pipeline : str | uuid.UUID
|
|
@@ -170,18 +186,24 @@ def list_deployment_pipeline_stage_items(
|
|
|
170
186
|
request=f"/v1/deploymentPipelines/{deployment_pipeline_id}/stages/{stage_id}/items",
|
|
171
187
|
status_codes=200,
|
|
172
188
|
uses_pagination=True,
|
|
189
|
+
client="fabric_sp",
|
|
173
190
|
)
|
|
174
191
|
|
|
192
|
+
rows = []
|
|
175
193
|
for r in responses:
|
|
176
194
|
for v in r.get("value", []):
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
195
|
+
rows.append(
|
|
196
|
+
{
|
|
197
|
+
"Deployment Pipeline Stage Item Id": v.get("itemId"),
|
|
198
|
+
"Deployment Pipeline Stage Item Name": v.get("itemDisplayName"),
|
|
199
|
+
"Item Type": v.get("itemType"),
|
|
200
|
+
"Source Item Id": v.get("sourceItemId"),
|
|
201
|
+
"Target Item Id": v.get("targetItemId"),
|
|
202
|
+
"Last Deployment Time": v.get("lastDeploymentTime"),
|
|
203
|
+
}
|
|
204
|
+
)
|
|
205
|
+
|
|
206
|
+
if rows:
|
|
207
|
+
df = pd.DataFrame(rows, columns=list(columns.keys()))
|
|
186
208
|
|
|
187
209
|
return df
|
sempy_labs/_eventstreams.py
CHANGED
|
@@ -19,6 +19,8 @@ def list_eventstreams(workspace: Optional[str | UUID] = None) -> pd.DataFrame:
|
|
|
19
19
|
|
|
20
20
|
This is a wrapper function for the following API: `Items - List Eventstreams <https://learn.microsoft.com/rest/api/fabric/environment/items/list-eventstreams>`_.
|
|
21
21
|
|
|
22
|
+
Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
|
|
23
|
+
|
|
22
24
|
Parameters
|
|
23
25
|
----------
|
|
24
26
|
workspace : str | uuid.UUID, default=None
|
|
@@ -41,7 +43,9 @@ def list_eventstreams(workspace: Optional[str | UUID] = None) -> pd.DataFrame:
|
|
|
41
43
|
|
|
42
44
|
workspace_id = resolve_workspace_id(workspace)
|
|
43
45
|
responses = _base_api(
|
|
44
|
-
request=f"/v1/workspaces/{workspace_id}/eventstreams",
|
|
46
|
+
request=f"/v1/workspaces/{workspace_id}/eventstreams",
|
|
47
|
+
uses_pagination=True,
|
|
48
|
+
client="fabric_sp",
|
|
45
49
|
)
|
|
46
50
|
|
|
47
51
|
rows = []
|
|
@@ -70,6 +74,8 @@ def create_eventstream(
|
|
|
70
74
|
|
|
71
75
|
This is a wrapper function for the following API: `Items - Create Eventstream <https://learn.microsoft.com/rest/api/fabric/environment/items/create-eventstream>`_.
|
|
72
76
|
|
|
77
|
+
Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
|
|
78
|
+
|
|
73
79
|
Parameters
|
|
74
80
|
----------
|
|
75
81
|
name: str
|
|
@@ -96,6 +102,8 @@ def delete_eventstream(
|
|
|
96
102
|
|
|
97
103
|
This is a wrapper function for the following API: `Items - Delete Eventstream <https://learn.microsoft.com/rest/api/fabric/environment/items/delete-eventstream>`_.
|
|
98
104
|
|
|
105
|
+
Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
|
|
106
|
+
|
|
99
107
|
Parameters
|
|
100
108
|
----------
|
|
101
109
|
eventstream: str | uuid.UUID
|
sempy_labs/_helper_functions.py
CHANGED
|
@@ -303,6 +303,7 @@ def create_item(
|
|
|
303
303
|
payload=payload,
|
|
304
304
|
status_codes=[201, 202],
|
|
305
305
|
lro_return_status_code=True,
|
|
306
|
+
client="fabric_sp",
|
|
306
307
|
)
|
|
307
308
|
print(
|
|
308
309
|
f"{icons.green_dot} The '{name}' {item_type} has been successfully created within the '{workspace_name}' workspace."
|
|
@@ -407,7 +408,8 @@ def copy_item(
|
|
|
407
408
|
# Get the existing source model
|
|
408
409
|
if type == "Report" and keep_existing_bindings:
|
|
409
410
|
result = _base_api(
|
|
410
|
-
request=f"v1.0/myorg/groups/{target_workspace_id}/reports/{target_item_id}"
|
|
411
|
+
request=f"v1.0/myorg/groups/{target_workspace_id}/reports/{target_item_id}",
|
|
412
|
+
client="fabric_sp",
|
|
411
413
|
).json()
|
|
412
414
|
dataset_id = result.get("datasetId")
|
|
413
415
|
dataset_workspace_id = result.get("datasetWorkspaceId")
|
|
@@ -524,6 +526,7 @@ def get_item_definition(
|
|
|
524
526
|
method="post",
|
|
525
527
|
status_codes=None,
|
|
526
528
|
lro_return_json=True,
|
|
529
|
+
client="fabric_sp",
|
|
527
530
|
)
|
|
528
531
|
|
|
529
532
|
if return_dataframe:
|
|
@@ -574,6 +577,7 @@ def _get_item_definition(
|
|
|
574
577
|
method="post",
|
|
575
578
|
status_codes=None,
|
|
576
579
|
lro_return_json=True,
|
|
580
|
+
client="fabric_sp",
|
|
577
581
|
)
|
|
578
582
|
|
|
579
583
|
if return_dataframe:
|
|
@@ -2758,3 +2762,14 @@ def remove_json_value(path: str, payload: dict, json_path: str, verbose: bool =
|
|
|
2758
2762
|
print(f"{icons.green_dot} Removed index [{index}] from '{path}'.")
|
|
2759
2763
|
|
|
2760
2764
|
return payload
|
|
2765
|
+
|
|
2766
|
+
|
|
2767
|
+
def _get_url_prefix() -> str:
|
|
2768
|
+
|
|
2769
|
+
client = fabric.PowerBIRestClient()
|
|
2770
|
+
response = client.get("/v1.0/myorg/capacities")
|
|
2771
|
+
if response.status_code != 200:
|
|
2772
|
+
raise FabricHTTPException("Failed to retrieve URL prefix.")
|
|
2773
|
+
context = response.json().get("@odata.context")
|
|
2774
|
+
|
|
2775
|
+
return context.split("/v1.0")[0]
|