msfabricpysdkcore 0.2.8__py3-none-any.whl → 0.2.9__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.
@@ -118,6 +118,8 @@ class FabricClient():
118
118
  if wait_for_completion:
119
119
  operation_result = self.long_running_operation(response.headers)
120
120
  if "operation_result" in return_format:
121
+ if ("value_json" in return_format and isinstance(operation_result, dict) and "value" in operation_result):
122
+ return operation_result["value"]
121
123
  return operation_result
122
124
  return response
123
125
  elif response.status_code not in response_codes:
@@ -1128,11 +1128,13 @@ class FabricClientCore(FabricClient):
1128
1128
 
1129
1129
  return response.status_code
1130
1130
 
1131
- def git_connect(self, workspace_id, git_provider_details):
1131
+
1132
+ def git_connect(self, workspace_id, git_provider_details, my_git_credentials = None):
1132
1133
  """Connect git
1133
1134
  Args:
1134
1135
  workspace_id (str): The ID of the workspace
1135
1136
  git_provider_details (dict): The git provider details
1137
+ my_git_credentials (dict): The git credentials
1136
1138
  Returns:
1137
1139
  int: The status code of the response
1138
1140
  """
@@ -1140,8 +1142,11 @@ class FabricClientCore(FabricClient):
1140
1142
  url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/git/connect"
1141
1143
 
1142
1144
  payload = {
1143
- 'gitProviderDetails': git_provider_details
1145
+ 'gitProviderDetails': git_provider_details,
1146
+
1144
1147
  }
1148
+ if my_git_credentials:
1149
+ payload['myGitCredentials'] = my_git_credentials
1145
1150
 
1146
1151
  response = self.calling_routine(url=url, operation="POST", body=payload,
1147
1152
  response_codes=[200, 202, 429],
@@ -2005,7 +2010,46 @@ class FabricClientCore(FabricClient):
2005
2010
  shortcut_dict['itemId'] = item_id
2006
2011
  return OneLakeShortcut.from_dict(shortcut_dict,
2007
2012
  core_client = self)
2008
-
2013
+
2014
+
2015
+ def create_shortcuts_bulk(self, workspace_id, item_id, create_shortcut_requests):
2016
+ """
2017
+ Bulk create OneLake shortcuts.
2018
+
2019
+ Args:
2020
+ workspace_id (str)
2021
+ item_id (str)
2022
+ create_shortcut_requests (list[dict]): Each dict must have:
2023
+ path, name, target (target has 'oneLake' OR 'adlsGen2' child object)
2024
+
2025
+ Returns:
2026
+ dict: The results of the operation
2027
+ """
2028
+ if not isinstance(create_shortcut_requests, list) or len(create_shortcut_requests) == 0:
2029
+ raise Exception("create_shortcut_requests must be a non-empty list.")
2030
+
2031
+ required_keys = {"path", "name", "target"}
2032
+ for idx, req in enumerate(create_shortcut_requests):
2033
+ if not isinstance(req, dict):
2034
+ raise Exception(f"Shortcut request at index {idx} is not a dict.")
2035
+ missing = required_keys - set(req.keys())
2036
+ if missing:
2037
+ raise Exception(f"Shortcut request at index {idx} missing keys: {missing}")
2038
+
2039
+ url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspace_id}/items/{item_id}/shortcuts/bulkCreate"
2040
+ body = {
2041
+ "createShortcutRequests": create_shortcut_requests
2042
+ }
2043
+
2044
+ return self.calling_routine(
2045
+ url=url,
2046
+ operation="POST",
2047
+ body=body,
2048
+ response_codes=[200, 202, 429],
2049
+ error_message="Error creating shortcuts in bulk",
2050
+ return_format="value_json+operation_result",
2051
+ wait_for_completion=True
2052
+ )
2009
2053
 
2010
2054
  def get_shortcut(self, workspace_id, item_id, path, name):
2011
2055
  """Get the shortcut in the item
@@ -2028,7 +2072,8 @@ class FabricClientCore(FabricClient):
2028
2072
  shortcut_dict['itemId'] = id
2029
2073
  return OneLakeShortcut.from_dict(shortcut_dict,
2030
2074
  core_client = self)
2031
-
2075
+
2076
+
2032
2077
  def delete_shortcut(self, workspace_id, item_id, path, name):
2033
2078
  """Delete the shortcut
2034
2079
  Args:
msfabricpysdkcore/item.py CHANGED
@@ -95,6 +95,11 @@ class Item:
95
95
  return self.core_client.create_shortcut(workspace_id=self.workspace_id, item_id=self.id,
96
96
  path=path, name=name, target=target)
97
97
 
98
+ def create_shortcuts_bulk(self, create_shortcut_requests):
99
+ """Create multiple shortcuts in the item"""
100
+ return self.core_client.create_shortcuts_bulk(workspace_id=self.workspace_id, item_id=self.id,
101
+ create_shortcut_requests=create_shortcut_requests)
102
+
98
103
  def delete_shortcut(self, path, name):
99
104
  """Delete the shortcut in the item"""
100
105
  return self.core_client.delete_shortcut(workspace_id=self.workspace_id, item_id=self.id,
@@ -325,6 +325,9 @@ class Workspace:
325
325
  def create_shortcut(self, item_id, path, name, target):
326
326
  return self.core_client.create_shortcut(workspace_id=self.id, item_id=item_id,
327
327
  path=path, name=name, target=target)
328
+
329
+ def create_shortcuts_bulk(self, item_id, create_shortcut_requests):
330
+ return self.core_client.create_shortcuts_bulk(workspace_id=self.id, item_id=item_id, create_shortcut_requests=create_shortcut_requests)
328
331
 
329
332
  def delete_shortcut(self, item_id, path, name):
330
333
  return self.core_client.delete_shortcut(self.id, item_id, path=path, name=name)
@@ -372,9 +375,9 @@ class Workspace:
372
375
  return self.core_client.commit_to_git(workspace_id=self.id, mode=mode, comment=comment,
373
376
  items=items, workspace_head=workspace_head)
374
377
 
375
-
376
- def git_connect(self, git_provider_details):
377
- return self.core_client.git_connect(workspace_id=self.id, git_provider_details=git_provider_details)
378
+ def git_connect(self, git_provider_details, my_git_credentials):
379
+ return self.core_client.git_connect(workspace_id=self.id, git_provider_details=git_provider_details,
380
+ my_git_credentials=my_git_credentials)
378
381
 
379
382
  def git_disconnect(self):
380
383
  return self.core_client.git_disconnect(workspace_id=self.id)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: msfabricpysdkcore
3
- Version: 0.2.8
3
+ Version: 0.2.9
4
4
  Summary: A Python SDK for Microsoft Fabric
5
5
  Author: Andreas Rederer
6
6
  Project-URL: Homepage, https://github.com/DaSenf1860/ms-fabric-sdk-core
@@ -653,9 +653,15 @@ git_provider_details = {'organizationName': 'dasenf1860',
653
653
  'branchName': 'main',
654
654
  'directoryName': '/folder1'}
655
655
 
656
- fc.git_connect(workspace_id="workspaceid", git_provider_details=git_provider_details)
656
+ # Optional:
657
+ my_git_credentials = {
658
+ "source": "ConfiguredConnection",
659
+ "connectionId": "3f2asdfasdf82c3301"
660
+ }
661
+
662
+ fc.git_connect(workspace_id="workspaceid", git_provider_details=git_provider_details, my_git_credentials=my_git_credentials)
657
663
  # or
658
- ws.git_connect(git_provider_details=git_provider_details)
664
+ ws.git_connect(git_provider_details=git_provider_details, my_git_credentials=my_git_credentials)
659
665
 
660
666
 
661
667
  # Initialize a git connection
@@ -731,6 +737,34 @@ item.create_shortcut(path="path",
731
737
  "workspaceId": "workspace_id_target"}})
732
738
 
733
739
 
740
+ # Bulk create shortcuts
741
+ fc.create_shortcuts_bulk(workspace_id="workspace_id",
742
+ item_id="item_id",
743
+ create_shortcut_requests=[
744
+ {
745
+ "path": "Files",
746
+ "name": "sales_2023",
747
+ "target": {
748
+ "oneLake": {
749
+ "workspaceId": "workspace_id_target",
750
+ "itemId": "item_id_target",
751
+ "path": "Tables/Sales2023"
752
+ }
753
+ }
754
+ },
755
+ {
756
+ "path": "Files/landingZone",
757
+ "name": "PartnerProducts",
758
+ "target": {
759
+ "adlsGen2": {
760
+ "location": "https://casdfasdfat.dfs.core.windows.net",
761
+ "subpath": "/mycontainer/data/ContosoProducts",
762
+ "connectionId": "91asdfasdfa1e"
763
+ }
764
+ }
765
+ }
766
+ ])
767
+
734
768
  # Get a shortcut
735
769
  shortcut = fc.get_shortcut(workspace_id="workspace_id",
736
770
  item_id="item_id",
@@ -4,8 +4,8 @@ msfabricpysdkcore/admin_workspace.py,sha256=umNnIF8sf5Y8BDgfQdfG6sOZrQQc7RJINL9j
4
4
  msfabricpysdkcore/adminapi.py,sha256=ldne1ML_t_o42WGwz9UNJM_qEaT9kjtmypexY3ECpZE,39930
5
5
  msfabricpysdkcore/auth.py,sha256=Y9YUDqoArvkD7rLnbQvNBnCXqHJtw6PDRUHMx0CVMT0,4330
6
6
  msfabricpysdkcore/capacity.py,sha256=Q_2-XrZtdf9F67fY0qU3D0ocEOGQq4KtIXAv9dXjQhI,1761
7
- msfabricpysdkcore/client.py,sha256=KpHREbfzQRRighyJzyES3COZP3raK0C1-WhxGd07LHU,7890
8
- msfabricpysdkcore/coreapi.py,sha256=iPeOInGw4XT7TW5ChT5al-dJc3vBhidiBf9MJFclE24,302260
7
+ msfabricpysdkcore/client.py,sha256=GRzKDPjABnGbPbmN3B_aFsIHUVPH2NGG3-bOd82lMgQ,8084
8
+ msfabricpysdkcore/coreapi.py,sha256=7IrMnxDPeg_6ciwYhiEg49_1Z4g4i15RrwXgDl6NZSU,304059
9
9
  msfabricpysdkcore/deployment_pipeline.py,sha256=0yTLwSJZDSLF5LU882GuTs-_KZkMDP_k5l_GAV1nf-Y,10156
10
10
  msfabricpysdkcore/domain.py,sha256=MAv7R64waQgI3OF1f5hmMdH98pJIb-BPTCZSvPZDzgU,7061
11
11
  msfabricpysdkcore/environment.py,sha256=4k2Le1mAQIrfcpNc3n1DbgdCzAldGTSTCbiDQGk0DlA,2784
@@ -13,14 +13,14 @@ msfabricpysdkcore/eventstream.py,sha256=e9u16sVARI0yUktzY5oaj3R-QvJXGpP6lPH-TFzb
13
13
  msfabricpysdkcore/fabric_azure_capacity.py,sha256=7JxMp9weiKG_mDjlRK-88oIXr0kdG0pzv-Ouycf3fus,2808
14
14
  msfabricpysdkcore/fabric_azure_client.py,sha256=I7Z0Y8Xy_esQcPaXgPL7EAkQmoQkAklJO4hxk_90dno,10722
15
15
  msfabricpysdkcore/folder.py,sha256=-nop7KsVr9Nha_tY1nlOwkpjzVd6QfaR2nZG7mgLcvU,2782
16
- msfabricpysdkcore/item.py,sha256=75RphdDpMNMbF0Ajz35wkrpzmuLdoKeZiu671A-mw1E,9405
16
+ msfabricpysdkcore/item.py,sha256=4oRVw4gDG_9tRQocN3k6GSMIiK6sktyywwefzygFgx8,9738
17
17
  msfabricpysdkcore/job_instance.py,sha256=rtZp-OpuzfdMiQyuQLum38lgcfSZJTr3s9sECZglcWg,2389
18
18
  msfabricpysdkcore/lakehouse.py,sha256=iYjj4EUJ9ylVw6f0BAguuFeHRxwSAIasFqbTlRIse7A,2081
19
19
  msfabricpysdkcore/long_running_operation.py,sha256=XTlsueSZKVFICxhx99geEQ6btZFlFb8-lssigmQ9c6Y,2133
20
20
  msfabricpysdkcore/onelakeshortcut.py,sha256=H02wR6Z86qTEJOwVRMKz1Ou3K88Y9pfJa91vizjprvo,1661
21
21
  msfabricpysdkcore/otheritems.py,sha256=CXKobc2lqup3KOlqRp5yxYBM7Wvb0BLDe9F5iwEv1fc,26255
22
22
  msfabricpysdkcore/spark_custom_pool.py,sha256=YsEULaQG-FO507aPIb-4kk93ZWBmDZj6fbOEHYoyxHE,3188
23
- msfabricpysdkcore/workspace.py,sha256=iAIGzDoxjXZBs2YmMCtfP9ditbJiTtUM9liG1QFf9yI,93047
23
+ msfabricpysdkcore/workspace.py,sha256=4r-7Pf7ovT-hnM9Mj-iW4yW-wDR4fAm79sUZ88Baep0,93373
24
24
  msfabricpysdkcore/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
25
  msfabricpysdkcore/tests/test_admin_apis.py,sha256=772WGrjmz5gVGBBWo_qkZD1IT9M7qfOO4J1a8B0udnE,6852
26
26
  msfabricpysdkcore/tests/test_admin_tags.py,sha256=DRfoRJ7TUn6BcJdeV-xcEUifu8-_LGiM_9jmWEqRpqs,1564
@@ -71,8 +71,8 @@ msfabricpysdkcore/tests/test_warehouses.py,sha256=zrgPI_fYajwDDRfEEyEUNH7TpP4rtl
71
71
  msfabricpysdkcore/tests/test_workspaces_capacities.py,sha256=6vU3hpoC4cIrXwEAvh7k1ARA4gwKSIVgoIXxSEUNHls,6739
72
72
  msfabricpysdkcore/util/__init__.py,sha256=p-1dC4AurfKdIUppNVlRCIcmwHBTURqfgIwxcie3fEA,50
73
73
  msfabricpysdkcore/util/logger.py,sha256=XXdeaqI-BhXZgacChKrWP88TPU4FTWvS8L0YWjCT54A,1166
74
- msfabricpysdkcore-0.2.8.dist-info/licenses/LICENSE,sha256=1NrGuF-zOmzbwzk3iI6lsP9koyDeKO1B0-8OD_tTvOQ,1156
75
- msfabricpysdkcore-0.2.8.dist-info/METADATA,sha256=KXCP4ipUoXu122T_nEGuX8AK-zQ5lNGPlxXMS8U4BB0,39852
76
- msfabricpysdkcore-0.2.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
77
- msfabricpysdkcore-0.2.8.dist-info/top_level.txt,sha256=3iRonu6ptDGQN4Yl6G76XGM7xbFNsskiEHW-P2gMQGY,18
78
- msfabricpysdkcore-0.2.8.dist-info/RECORD,,
74
+ msfabricpysdkcore-0.2.9.dist-info/licenses/LICENSE,sha256=1NrGuF-zOmzbwzk3iI6lsP9koyDeKO1B0-8OD_tTvOQ,1156
75
+ msfabricpysdkcore-0.2.9.dist-info/METADATA,sha256=jrDTspwIpRiozjFIjhZbgIz0N6pmZwb7OgQzeOaydwQ,41443
76
+ msfabricpysdkcore-0.2.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
77
+ msfabricpysdkcore-0.2.9.dist-info/top_level.txt,sha256=3iRonu6ptDGQN4Yl6G76XGM7xbFNsskiEHW-P2gMQGY,18
78
+ msfabricpysdkcore-0.2.9.dist-info/RECORD,,