msfabricpysdkcore 0.1.1__py3-none-any.whl → 0.1.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.
Files changed (44) hide show
  1. msfabricpysdkcore/__init__.py +4 -1
  2. msfabricpysdkcore/admin_item.py +1 -1
  3. msfabricpysdkcore/adminapi.py +13 -6
  4. msfabricpysdkcore/auth.py +31 -11
  5. msfabricpysdkcore/client.py +24 -10
  6. msfabricpysdkcore/coreapi.py +37 -19
  7. msfabricpysdkcore/deployment_pipeline.py +5 -3
  8. msfabricpysdkcore/fabric_azure_capacity.py +77 -0
  9. msfabricpysdkcore/fabric_azure_client.py +232 -0
  10. msfabricpysdkcore/long_running_operation.py +14 -5
  11. msfabricpysdkcore/tests/test_admin_apis.py +8 -9
  12. msfabricpysdkcore/tests/test_datapipelines.py +1 -1
  13. msfabricpysdkcore/tests/test_domains.py +2 -2
  14. msfabricpysdkcore/tests/test_environments.py +6 -6
  15. msfabricpysdkcore/tests/test_evenhouses.py +1 -2
  16. msfabricpysdkcore/tests/test_evenstreams.py +20 -20
  17. msfabricpysdkcore/tests/test_external_data_shares.py +3 -3
  18. msfabricpysdkcore/tests/test_fabric_azure_client.py +78 -0
  19. msfabricpysdkcore/tests/test_git.py +8 -9
  20. msfabricpysdkcore/tests/test_items.py +3 -2
  21. msfabricpysdkcore/tests/test_jobs.py +2 -2
  22. msfabricpysdkcore/tests/test_kql_queryset.py +1 -2
  23. msfabricpysdkcore/tests/test_kqldatabases.py +2 -2
  24. msfabricpysdkcore/tests/test_lakehouse.py +5 -7
  25. msfabricpysdkcore/tests/test_ml_experiments.py +1 -2
  26. msfabricpysdkcore/tests/test_ml_models.py +1 -2
  27. msfabricpysdkcore/tests/test_notebooks.py +1 -2
  28. msfabricpysdkcore/tests/test_one_lake_data_access_security.py +2 -4
  29. msfabricpysdkcore/tests/test_other_items.py +6 -7
  30. msfabricpysdkcore/tests/test_reports.py +1 -2
  31. msfabricpysdkcore/tests/test_semantic_model.py +3 -4
  32. msfabricpysdkcore/tests/test_shortcuts.py +4 -4
  33. msfabricpysdkcore/tests/test_spark.py +2 -4
  34. msfabricpysdkcore/tests/test_sparkjobdefinition.py +1 -1
  35. msfabricpysdkcore/tests/test_warehouses.py +1 -2
  36. msfabricpysdkcore/tests/test_workspaces_capacities.py +9 -9
  37. msfabricpysdkcore/util/__init__.py +3 -0
  38. msfabricpysdkcore/util/logger.py +32 -0
  39. {msfabricpysdkcore-0.1.1.dist-info → msfabricpysdkcore-0.1.3.dist-info}/METADATA +80 -3
  40. msfabricpysdkcore-0.1.3.dist-info/RECORD +57 -0
  41. {msfabricpysdkcore-0.1.1.dist-info → msfabricpysdkcore-0.1.3.dist-info}/WHEEL +1 -1
  42. msfabricpysdkcore-0.1.1.dist-info/RECORD +0 -52
  43. {msfabricpysdkcore-0.1.1.dist-info → msfabricpysdkcore-0.1.3.dist-info}/LICENSE +0 -0
  44. {msfabricpysdkcore-0.1.1.dist-info → msfabricpysdkcore-0.1.3.dist-info}/top_level.txt +0 -0
@@ -16,8 +16,8 @@ class TestFabricClientCore(unittest.TestCase):
16
16
  def test_kql_database(self):
17
17
 
18
18
  fc = self.fc
19
- workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
20
- evenhouse_id = "14822d45-5460-4efa-9b30-8628510a9197"
19
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
20
+ evenhouse_id = "f30ba76a-92c3-40d3-ad69-36db059c113d"
21
21
 
22
22
  creation_payload = {"databaseType" : "ReadWrite",
23
23
  "parentEventhouseItemId" : evenhouse_id}
@@ -12,24 +12,23 @@ class TestFabricClientCore(unittest.TestCase):
12
12
  super(TestFabricClientCore, self).__init__(*args, **kwargs)
13
13
  #load_dotenv()
14
14
  self.fc = FabricClientCore()
15
- self.workspace_id = "c3352d34-0b54-40f0-b204-cc964b1beb8d"
16
15
 
17
16
  datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
18
17
  self.item_name = "testitem" + datetime_str
19
18
  self.item_type = "Notebook"
20
19
 
21
20
  def test_lakehouse(self):
21
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
22
22
 
23
- lakehouse = self.fc.get_item(workspace_id=self.workspace_id, item_name="lakehouse1", item_type="Lakehouse")
23
+ lakehouse = self.fc.get_item(workspace_id=workspace_id, item_name="lakelhousewlabels", item_type="Lakehouse")
24
24
  self.assertIsNotNone(lakehouse.properties)
25
25
  lakehouse_id = lakehouse.id
26
- workspace_id = self.workspace_id
27
26
  date_str = datetime.now().strftime("%Y%m%d%H%M%S")
28
27
  table_name = f"table{date_str}"
29
28
 
30
29
 
31
- status_code = self.fc.load_table(workspace_id=self.workspace_id, lakehouse_id=lakehouse_id, table_name=table_name,
32
- path_type="File", relative_path="Files/folder1/titanic.csv")
30
+ status_code = self.fc.load_table(workspace_id=workspace_id, lakehouse_id=lakehouse_id, table_name=table_name,
31
+ path_type="File", relative_path="Files/to_share/titanic2.csv")
33
32
 
34
33
  self.assertEqual(status_code, 202)
35
34
 
@@ -54,13 +53,12 @@ class TestFabricClientCore(unittest.TestCase):
54
53
  job_type = "TableMaintenance", wait_for_completion = False)
55
54
  self.assertIn(response.status_code, [200, 202])
56
55
 
57
- table_list = self.fc.list_tables(workspace_id=self.workspace_id, lakehouse_id=lakehouse_id)
56
+ table_list = self.fc.list_tables(workspace_id=workspace_id, lakehouse_id=lakehouse_id)
58
57
  table_names = [table["name"] for table in table_list]
59
58
 
60
59
  self.assertIn(table_name, table_names)
61
60
 
62
61
  fc = self.fc
63
- workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
64
62
 
65
63
  lakehouse = fc.create_lakehouse(workspace_id=workspace_id, display_name="lakehouse2")
66
64
  self.assertIsNotNone(lakehouse.id)
@@ -12,7 +12,6 @@ class TestFabricClientCore(unittest.TestCase):
12
12
  super(TestFabricClientCore, self).__init__(*args, **kwargs)
13
13
  #load_dotenv()
14
14
  self.fc = FabricClientCore()
15
- self.workspace_id = "c3352d34-0b54-40f0-b204-cc964b1beb8d"
16
15
 
17
16
  datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
18
17
  self.item_name = "testitem" + datetime_str
@@ -22,7 +21,7 @@ class TestFabricClientCore(unittest.TestCase):
22
21
  def test_ml_experiments(self):
23
22
 
24
23
  fc = self.fc
25
- workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
24
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
26
25
  mlexperiment_name = "mlexp" + datetime.now().strftime("%Y%m%d%H%M%S")
27
26
  mlexperiment_name2 = "mlexp2" + datetime.now().strftime("%Y%m%d%H%M%S")
28
27
 
@@ -12,7 +12,6 @@ class TestFabricClientCore(unittest.TestCase):
12
12
  super(TestFabricClientCore, self).__init__(*args, **kwargs)
13
13
  #load_dotenv()
14
14
  self.fc = FabricClientCore()
15
- self.workspace_id = "c3352d34-0b54-40f0-b204-cc964b1beb8d"
16
15
 
17
16
  datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
18
17
  self.item_name = "testitem" + datetime_str
@@ -22,7 +21,7 @@ class TestFabricClientCore(unittest.TestCase):
22
21
  def test_ml_models(self):
23
22
 
24
23
  fc = self.fc
25
- workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
24
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
26
25
  datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
27
26
  model_name = "mlm" + datetime_str
28
27
 
@@ -12,7 +12,6 @@ class TestFabricClientCore(unittest.TestCase):
12
12
  super(TestFabricClientCore, self).__init__(*args, **kwargs)
13
13
  #load_dotenv()
14
14
  self.fc = FabricClientCore()
15
- self.workspace_id = "c3352d34-0b54-40f0-b204-cc964b1beb8d"
16
15
 
17
16
  datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
18
17
  self.item_name = "testitem" + datetime_str
@@ -22,7 +21,7 @@ class TestFabricClientCore(unittest.TestCase):
22
21
  def test_notebooks(self):
23
22
 
24
23
  fc = self.fc
25
- workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
24
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
26
25
 
27
26
  notebook_name = "notebook" + datetime.now().strftime("%Y%m%d%H%M%S")
28
27
 
@@ -14,8 +14,8 @@ class TestFabricClientCore(unittest.TestCase):
14
14
 
15
15
  fc = self.fc
16
16
 
17
- workspace_id = "d8a5abe0-9eed-406d-ab46-343bc57ddbe5"
18
- item_id = "50368cf3-29e7-4a09-aaf0-289fb5748364"
17
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
18
+ item_id = "148ef579-4a5d-4048-8a48-0a703c5e3a1a"
19
19
 
20
20
  resp = fc.list_data_access_roles(workspace_id=workspace_id, item_id=item_id)
21
21
  self.assertEqual(len(resp), 2)
@@ -30,8 +30,6 @@ class TestFabricClientCore(unittest.TestCase):
30
30
  self.assertGreater(len(role1['members']['fabricItemMembers']), 0)
31
31
  self.assertIn('itemAccess', role1['members']['fabricItemMembers'][0])
32
32
 
33
-
34
-
35
33
  item_access = role1["members"]["fabricItemMembers"][0]['itemAccess']
36
34
  item_access_old = list(item_access)
37
35
  if 'ReadAll' in item_access:
@@ -12,7 +12,6 @@ class TestFabricClientCore(unittest.TestCase):
12
12
  super(TestFabricClientCore, self).__init__(*args, **kwargs)
13
13
  #load_dotenv()
14
14
  self.fc = FabricClientCore()
15
- self.workspace_id = "c3352d34-0b54-40f0-b204-cc964b1beb8d"
16
15
 
17
16
  datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
18
17
  self.item_name = "testitem" + datetime_str
@@ -22,22 +21,22 @@ class TestFabricClientCore(unittest.TestCase):
22
21
 
23
22
  fc = self.fc
24
23
 
25
- workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
24
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
26
25
 
27
26
  list_dashboards = fc.list_dashboards(workspace_id)
28
27
  dashboard_names = [dashboard.display_name for dashboard in list_dashboards]
29
28
  self.assertGreater(len(list_dashboards), 0)
30
29
  self.assertIn("dashboard1", dashboard_names)
31
30
 
32
- list_datamarts = fc.list_datamarts(workspace_id)
33
- datamart_names = [datamart.display_name for datamart in list_datamarts]
34
- self.assertGreater(len(list_datamarts), 0)
35
- self.assertIn("datamart1", datamart_names)
31
+ # list_datamarts = fc.list_datamarts(workspace_id)
32
+ # datamart_names = [datamart.display_name for datamart in list_datamarts]
33
+ # self.assertGreater(len(list_datamarts), 0)
34
+ # self.assertIn("datamart1", datamart_names)
36
35
 
37
36
  list_sql_endpoints = fc.list_sql_endpoints(workspace_id)
38
37
  sqlendpoint_names = [sqlendpoint.display_name for sqlendpoint in list_sql_endpoints]
39
38
  self.assertGreater(len(list_sql_endpoints), 0)
40
- self.assertIn("sqlendpointlakehouse", sqlendpoint_names)
39
+ self.assertIn("lakelhousewlabels", sqlendpoint_names)
41
40
 
42
41
  # list_mirrored_warehouses = fc.list_mirrored_warehouses(self.workspace_id)
43
42
  # self.assertGreater(len(list_mirrored_warehouses), 0)
@@ -12,7 +12,6 @@ class TestFabricClientCore(unittest.TestCase):
12
12
  super(TestFabricClientCore, self).__init__(*args, **kwargs)
13
13
  #load_dotenv()
14
14
  self.fc = FabricClientCore()
15
- self.workspace_id = "c3352d34-0b54-40f0-b204-cc964b1beb8d"
16
15
 
17
16
  datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
18
17
  self.item_name = "testitem" + datetime_str
@@ -22,7 +21,7 @@ class TestFabricClientCore(unittest.TestCase):
22
21
  def test_reports(self):
23
22
 
24
23
  fc = self.fc
25
- workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
24
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
26
25
 
27
26
  report_name = "report1234"
28
27
 
@@ -12,7 +12,6 @@ class TestFabricClientCore(unittest.TestCase):
12
12
  super(TestFabricClientCore, self).__init__(*args, **kwargs)
13
13
  #load_dotenv()
14
14
  self.fc = FabricClientCore()
15
- self.workspace_id = "c3352d34-0b54-40f0-b204-cc964b1beb8d"
16
15
 
17
16
  datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
18
17
  self.item_name = "testitem" + datetime_str
@@ -21,9 +20,9 @@ class TestFabricClientCore(unittest.TestCase):
21
20
  def test_semantic_models(self):
22
21
 
23
22
  fc = self.fc
24
- workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
25
-
26
- semantic_model_name = "semanticmodel1234"
23
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
24
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
25
+ semantic_model_name = "semanticmodel" + datetime_str
27
26
 
28
27
  semantic_model_w_content = fc.get_semantic_model(workspace_id, semantic_model_name="Table")
29
28
 
@@ -11,14 +11,14 @@ class TestFabricClientCore(unittest.TestCase):
11
11
  super(TestFabricClientCore, self).__init__(*args, **kwargs)
12
12
  #load_dotenv()
13
13
  self.fc = FabricClientCore()
14
- self.workspace_id = "c3352d34-0b54-40f0-b204-cc964b1beb8d"
14
+ self.workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
15
15
 
16
- self.lakehouse_target = "cb4ca0b5-b53b-4879-b206-a53c35cbff55"
17
- self.lakehouse_shortcut = "e2c09c89-bf97-4f71-bdeb-36338795ec36"
16
+ self.lakehouse_target = "148ef579-4a5d-4048-8a48-0a703c5e3a1a"
17
+ self.lakehouse_shortcut = "9d1e8b07-2fea-4fc5-872c-fb586d085149"
18
18
 
19
19
  datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
20
20
  self.shortcutname = "shortcut" + datetime_str
21
- self.path_target = "Files/folder1"
21
+ self.path_target = "Files/to_share"
22
22
  self.path_shortcut = "Files/shortcutfolder"
23
23
 
24
24
  self.target = {'oneLake': {'itemId': self.lakehouse_target,
@@ -12,13 +12,11 @@ class TestFabricClientCore(unittest.TestCase):
12
12
  super(TestFabricClientCore, self).__init__(*args, **kwargs)
13
13
  #load_dotenv()
14
14
  self.fc = FabricClientCore()
15
- ws = self.fc.get_workspace_by_name(name="testitems")
16
- self.workspace_id = ws.id
17
15
 
18
16
 
19
17
  def test_spark_workspace_custom_pools(self):
20
18
  fc = self.fc
21
- workspace_id = self.workspace_id
19
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
22
20
  pool_name = "pool" + datetime.now().strftime("%Y%m%d%H%M%S")
23
21
  # List
24
22
 
@@ -65,7 +63,7 @@ class TestFabricClientCore(unittest.TestCase):
65
63
 
66
64
  def test_workspace_settings(self):
67
65
  fc = self.fc
68
- workspace_id = self.workspace_id
66
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
69
67
 
70
68
  # Get
71
69
 
@@ -14,7 +14,7 @@ class TestFabricClientCore(unittest.TestCase):
14
14
  def test_spark_job_definitions(self):
15
15
 
16
16
  fc = self.fc
17
- workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
17
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
18
18
 
19
19
  datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
20
20
  spark_job_definition_name = f"sjd{datetime_str}"
@@ -12,7 +12,6 @@ class TestFabricClientCore(unittest.TestCase):
12
12
  super(TestFabricClientCore, self).__init__(*args, **kwargs)
13
13
  #load_dotenv()
14
14
  self.fc = FabricClientCore()
15
- self.workspace_id = "c3352d34-0b54-40f0-b204-cc964b1beb8d"
16
15
 
17
16
  datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
18
17
  self.item_name = "testitem" + datetime_str
@@ -22,7 +21,7 @@ class TestFabricClientCore(unittest.TestCase):
22
21
  def test_warehouses(self):
23
22
 
24
23
  fc = self.fc
25
- workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
24
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
26
25
 
27
26
  datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
28
27
  warehouse1 = f"wh{datetime_str}"
@@ -32,7 +32,7 @@ class TestFabricClientCore(unittest.TestCase):
32
32
  # def test_assign_to_capacity(self):
33
33
 
34
34
  result_status_code = fc.assign_to_capacity(workspace_id=ws.id,
35
- capacity_id="41cb829c-c231-4e9f-b4fc-f9042a6f9840")
35
+ capacity_id="840a6c1e-5289-4094-bbc8-716daabaeeba")
36
36
  self.assertEqual(result_status_code, 202)
37
37
 
38
38
 
@@ -44,7 +44,7 @@ class TestFabricClientCore(unittest.TestCase):
44
44
 
45
45
  for ws in result:
46
46
  if ws.display_name == display_name:
47
- self.assertEqual(ws.capacity_id, "41cb829c-c231-4e9f-b4fc-f9042a6f9840")
47
+ self.assertEqual(ws.capacity_id, "840a6c1e-5289-4094-bbc8-716daabaeeba")
48
48
 
49
49
 
50
50
  # def test_get_workspace_by_name(self):
@@ -64,7 +64,7 @@ class TestFabricClientCore(unittest.TestCase):
64
64
 
65
65
  # def test_add_role_assignment(self):
66
66
  result_status = fc.add_workspace_role_assignment(workspace_id = ws.id,
67
- principal = {"id" : "fe9dee5d-d244-4c93-8ea1-d5e6a2225c69",
67
+ principal = {"id" : "755f273c-98f8-408c-a886-691794938bd8",
68
68
  "type" : "ServicePrincipal"},
69
69
  role = 'Member')
70
70
 
@@ -80,7 +80,7 @@ class TestFabricClientCore(unittest.TestCase):
80
80
  # Get get_workspace_role_assignment
81
81
 
82
82
  result = fc.get_workspace_role_assignment(workspace_id = ws.id,
83
- workspace_role_assignment_id = "fe9dee5d-d244-4c93-8ea1-d5e6a2225c69")
83
+ workspace_role_assignment_id = "755f273c-98f8-408c-a886-691794938bd8")
84
84
 
85
85
  self.assertEqual(result["role"], "Member")
86
86
 
@@ -88,7 +88,7 @@ class TestFabricClientCore(unittest.TestCase):
88
88
 
89
89
  result_status_code = fc.update_workspace_role_assignment(workspace_id = ws.id,
90
90
  role = "Contributor",
91
- workspace_role_assignment_id= "fe9dee5d-d244-4c93-8ea1-d5e6a2225c69")
91
+ workspace_role_assignment_id= "755f273c-98f8-408c-a886-691794938bd8")
92
92
 
93
93
  self.assertEqual(result_status_code, 200)
94
94
 
@@ -100,7 +100,7 @@ class TestFabricClientCore(unittest.TestCase):
100
100
 
101
101
  # def test_delete_role_assignment(self):
102
102
  result_status_code = fc.delete_workspace_role_assignment(workspace_id = ws.id,
103
- workspace_role_assignment_id = "fe9dee5d-d244-4c93-8ea1-d5e6a2225c69")
103
+ workspace_role_assignment_id = "755f273c-98f8-408c-a886-691794938bd8")
104
104
  self.assertEqual(result_status_code, 200)
105
105
 
106
106
  # def test_get_workspace_role_assignments(self):
@@ -141,11 +141,11 @@ class TestFabricClientCore(unittest.TestCase):
141
141
  result = self.fc.list_capacities()
142
142
  self.assertTrue(len(result) > 0)
143
143
  cap_ids = [cap.id for cap in result]
144
- self.assertIn("41cb829c-c231-4e9f-b4fc-f9042a6f9840", cap_ids)
144
+ self.assertIn("c861242b-c4ac-4e3a-9a21-13f65d9b17b2", cap_ids)
145
145
 
146
146
  def test_get_capacity(self):
147
- capacity = self.fc.get_capacity(capacity_id = "41cb829c-c231-4e9f-b4fc-f9042a6f9840")
148
- self.assertEqual(capacity.id, "41cb829c-c231-4e9f-b4fc-f9042a6f9840")
147
+ capacity = self.fc.get_capacity(capacity_id = "c861242b-c4ac-4e3a-9a21-13f65d9b17b2")
148
+ self.assertEqual(capacity.id, "c861242b-c4ac-4e3a-9a21-13f65d9b17b2")
149
149
 
150
150
  cap = self.fc.get_capacity(capacity_name= capacity.display_name)
151
151
 
@@ -0,0 +1,3 @@
1
+ from .logger import logger
2
+
3
+ __all__ = ["logger"]
@@ -0,0 +1,32 @@
1
+ import logging
2
+ import os
3
+ from warnings import simplefilter
4
+
5
+ # Initialize logger for msfabricpysdkcore
6
+ logger: logging.Logger = logging.getLogger()
7
+
8
+ _logger = logger.getChild(__name__)
9
+
10
+ # Ensure warnings are always shown
11
+ simplefilter('always', DeprecationWarning)
12
+ simplefilter('always', FutureWarning)
13
+
14
+ # Add a NullHandler by default (https://docs.python.org/3/howto/logging.html#configuring-logging-for-a-library)
15
+ logger.addHandler(logging.NullHandler())
16
+
17
+ # Add a handler to log to console if desired (based on FABRIC_SDK_DEBUG environment variable)
18
+ if os.environ.get('FABRIC_SDK_DEBUG'):
19
+ logging.captureWarnings(True)
20
+ logging.getLogger("urllib3").setLevel(logging.INFO)
21
+ logger.setLevel(logging.DEBUG)
22
+ console_handler: logging.StreamHandler = logging.StreamHandler()
23
+ console_formatter: logging.Formatter = logging.Formatter(
24
+ '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
25
+ )
26
+ console_handler.setFormatter(console_formatter)
27
+ logger.addHandler(console_handler)
28
+ _logger.debug("Fabric SDK Debug mode. Logging to console enabled.")
29
+
30
+ _logger.debug("Logger initialized")
31
+
32
+ __all__ = ["logger"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: msfabricpysdkcore
3
- Version: 0.1.1
3
+ Version: 0.1.3
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
@@ -15,11 +15,12 @@ Requires-Dist: azure-identity >=1.15.0
15
15
 
16
16
  # Python SDK for Microsoft Fabric
17
17
 
18
- This is a Python SDK for Microsoft Fabric. It is a wrapper around the REST APIs (v1) of Fabric*.
18
+ This is a Python SDK for Microsoft Fabric. It is a wrapper around the REST APIs (v1) of Fabric*. It supports all Fabric REST APIs as well as Azure Resource Management APIs for Fabric (as of July 23, 2024).
19
19
 
20
20
  ![Python hugging a F](assets/fabricpythontransparent.png)
21
21
 
22
22
  The Microsoft Fabric REST APIs are documented [here](https://docs.microsoft.com/en-us/rest/api/fabric/).
23
+ The Azure Resoure Management APIs for Fabric are documented [here](https://learn.microsoft.com/en-us/rest/api/microsoftfabric/fabric-capacities?view=rest-microsoftfabric-2023-11-01).
23
24
  They are designed to automate your Fabric processes.
24
25
 
25
26
  This SDK helps to interact with the Fabric APIs in a more Pythonic way.
@@ -34,7 +35,7 @@ Additionally it brings some extra features like:
34
35
 
35
36
  See the latest release notes [here](releasenotes/release_notes.md).
36
37
 
37
- Currently it supports all Core APIs, Admin APIs, Lakehouse APIs and all other item specific CRUD APIs, i.e.:
38
+ Currently it supports all Core APIs, Admin APIs, all item specific CRUD APIs and Azure Resource Management APIs for Fabric capacities, i.e.:
38
39
  - Core APIs
39
40
  - [Capacities](#working-with-capacities)
40
41
  - [Deployment Pipelines](#deployment-pipelines)
@@ -58,6 +59,8 @@ Currently it supports all Core APIs, Admin APIs, Lakehouse APIs and all other it
58
59
  - List, create, update, delete warehouses, notebooks, semantic models, kql databases,.....
59
60
  - Lakehouse operations (Load table, list tables, run table maintenance)
60
61
  - Spark Pool operations
62
+ - [Azure Resource Management APIs for Fabric capacities](#azure-resource-management-apis-for-fabric-capacities)
63
+ - [Logging](#logging)
61
64
 
62
65
  It is planned to support also new APIs which are not released yet.
63
66
  Also we have plans to support APIs to interact with Fabric capacities on the Azure Side.
@@ -100,7 +103,12 @@ fc = FabricClientCore(tenant_id = "tenant_id",
100
103
 
101
104
 
102
105
  ```
106
+ ### Getting a token
107
+ ```python
108
+ # Getting a token
103
109
 
110
+ token = fc.get_token()
111
+ ```
104
112
  ### Working with workspaces
105
113
 
106
114
  ```python
@@ -716,3 +724,72 @@ fca.revoke_external_data_share(external_data_share_id = data_shares[0]['id'],
716
724
 
717
725
  Note: This SDK is not an official SDK from Microsoft. It is a community project and not supported by Microsoft. Use it at your own risk.
718
726
  Also the API is still in preview and might change. This SDK is not yet feature complete and might not cover all APIs yet. Feel free to contribute to this project to make it better.
727
+
728
+
729
+ ### Azure Resource Management APIs for Fabric capacities
730
+
731
+ ```python
732
+ from msfabricpysdkcore import FabricAzureClient
733
+
734
+ fac = FabricAzureClient()
735
+
736
+ subscription_id = "fsdgdfgds"
737
+ resource_group_name = "fabricdemo"
738
+ capacity_name = "rgsdfgsdfgsd"
739
+ capacity_name_new = "dsfgsdfgsdfg" + datetime.now().strftime("%Y%m%d%H%M%S")
740
+
741
+ # Check name availability
742
+
743
+ resp = fac.check_name_availability(subscription_id, "westeurope", capacity_name_new)
744
+
745
+ # Create or update capacity
746
+ resp = fac.create_or_update_capacity(subscription_id, resource_group_name, capacity_name_new,
747
+ location="westeurope",
748
+ properties_administration={"members": ['hfds@afasf.com']},
749
+ sku = "F2")
750
+
751
+ # Get capacity
752
+ resp = fac.get_capacity(subscription_id, resource_group_name, capacity_name_new)
753
+ sku = resp.sku['name']
754
+
755
+ # Delete capacity
756
+ resp = fac.delete_capacity(subscription_id, resource_group_name, capacity_name_new)
757
+
758
+ # List capacities by resource group
759
+ resp = fac.list_by_resource_group(subscription_id, resource_group_name)
760
+ cap_names = [cap["name"] for cap in resp]
761
+
762
+ # List capacities by subscription
763
+ resp = fac.list_by_subscription(subscription_id)
764
+ cap_names = [cap["name"] for cap in resp]
765
+
766
+ # List SKUs
767
+ resp = fac.list_skus(subscription_id)
768
+
769
+ # List SKUs for capacity
770
+ resp = fac.list_skus_for_capacity(subscription_id, resource_group_name, capacity_name)
771
+
772
+ # Resume capacity
773
+ resp = fac.resume_capacity(subscription_id, resource_group_name, capacity_name)
774
+
775
+ # Suspend capacity
776
+ resp = fac.suspend_capacity(subscription_id, resource_group_name, capacity_name)
777
+
778
+ # Update capacity
779
+ resp = fac.update_capacity(subscription_id, resource_group_name, capacity_name, sku="F4")
780
+ ```
781
+
782
+ ### Logging
783
+
784
+ The SDK uses the Python logging module, following the logging settings of your application. You can set up logging in
785
+ your project like this:
786
+
787
+ ```python
788
+ import logging
789
+ from msfabricpysdkcore import FabricClientCore
790
+
791
+ logging.basicConfig(level=logging.DEBUG)
792
+ fc = FabricClientCore() # The client will now log
793
+ ```
794
+
795
+ You can also set the environment variable `FABRIC_SDK_DEBUG` to `1` to enable debug logging.
@@ -0,0 +1,57 @@
1
+ msfabricpysdkcore/__init__.py,sha256=ObRW5Q8IMqrvA6VH6zXSv3n01AzRCGjn5RojJXAR6VE,208
2
+ msfabricpysdkcore/admin_item.py,sha256=9L09Kb7kn7JW0bqVu1qPOMT6oHLduX4Q5_qhVJZTLxQ,3290
3
+ msfabricpysdkcore/admin_workspace.py,sha256=umNnIF8sf5Y8BDgfQdfG6sOZrQQc7RJINL9j8DPnm3c,3180
4
+ msfabricpysdkcore/adminapi.py,sha256=3G-NADppTDN3Tba7kp-bQ82DAHV0h4DPdRIEuiX82S0,26072
5
+ msfabricpysdkcore/auth.py,sha256=64HoKyK-iZtBpX4R6U6leg5NiDj9rYpNgDJpTXbPig4,3310
6
+ msfabricpysdkcore/capacity.py,sha256=Q_2-XrZtdf9F67fY0qU3D0ocEOGQq4KtIXAv9dXjQhI,1761
7
+ msfabricpysdkcore/client.py,sha256=CTnqkqMq5b37ZIxP4o6t37xjxTWdscV50el1XjaqOCo,7014
8
+ msfabricpysdkcore/coreapi.py,sha256=We-m09M8MiQ4vC9uKdEgwe4slmafH9E4i0YGZze5FuM,132119
9
+ msfabricpysdkcore/deployment_pipeline.py,sha256=2d7BqRPgfBiAlQOP4UfYLmFMM8xonSjPkJKhevIKGEY,5756
10
+ msfabricpysdkcore/domain.py,sha256=92IVvZ3jXHIT1a0zlTPD7uoQX6TcBBE_Y_b4dScxHSU,6949
11
+ msfabricpysdkcore/environment.py,sha256=4k2Le1mAQIrfcpNc3n1DbgdCzAldGTSTCbiDQGk0DlA,2784
12
+ msfabricpysdkcore/fabric_azure_capacity.py,sha256=7JxMp9weiKG_mDjlRK-88oIXr0kdG0pzv-Ouycf3fus,2808
13
+ msfabricpysdkcore/fabric_azure_client.py,sha256=xZntbXtORmHtTyBi9ur8HlEohJBa-MP3Fi5GF3qANTA,10568
14
+ msfabricpysdkcore/item.py,sha256=3ixgRDTmrKXw82xl1MkaaOQ2986s2_DFEJQeUkKPcEU,6376
15
+ msfabricpysdkcore/job_instance.py,sha256=HXSUVoE4XaG2Ic5RYZ1Mx3ymiIarHDAnyjaXXY4Aj74,2381
16
+ msfabricpysdkcore/lakehouse.py,sha256=yIrzatWM9emPn-Y54Cg_ZdAydIWjxrpK65jIQ4SClgE,1703
17
+ msfabricpysdkcore/long_running_operation.py,sha256=XTlsueSZKVFICxhx99geEQ6btZFlFb8-lssigmQ9c6Y,2133
18
+ msfabricpysdkcore/onelakeshortcut.py,sha256=H02wR6Z86qTEJOwVRMKz1Ou3K88Y9pfJa91vizjprvo,1661
19
+ msfabricpysdkcore/otheritems.py,sha256=rkIbF-LxUUZh0ZDqFiWeutMeIsBXw_R8UUCglIifWBQ,12024
20
+ msfabricpysdkcore/spark_custom_pool.py,sha256=YsEULaQG-FO507aPIb-4kk93ZWBmDZj6fbOEHYoyxHE,3188
21
+ msfabricpysdkcore/workspace.py,sha256=7ZOt8ovlUOfusQ-avl4OOgMueN1XAp7AXdfpzAhXh3s,40428
22
+ msfabricpysdkcore/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ msfabricpysdkcore/tests/test_admin_apis.py,sha256=SVabeu0z_935R9oSwgK8omnqdd9qKxFF05-myGr1Sk8,3346
24
+ msfabricpysdkcore/tests/test_datapipelines.py,sha256=OcqudrkR9XD0ce8by2EMoAILplH5OG2P7l-u6Fpmllw,1774
25
+ msfabricpysdkcore/tests/test_deployment_pipeline.py,sha256=J7szEWrw26U91O6hSooUAJ2eNorDo-x55lPgr00J-gU,2072
26
+ msfabricpysdkcore/tests/test_domains.py,sha256=KQIzziiQcnNjrgUlV8Ei_HT41LwaJCI5AnWsIHmEQxI,4711
27
+ msfabricpysdkcore/tests/test_environments.py,sha256=eayofNpH_RtWjPleD9le_DqWTuCEC0BjB3f4On6Qnlo,5116
28
+ msfabricpysdkcore/tests/test_evenhouses.py,sha256=AHhQmv-jelC7TIsvdLue_lsjMoVp4ZQSD2ttmWHeBDw,1820
29
+ msfabricpysdkcore/tests/test_evenstreams.py,sha256=5oXk7bByd3Xu367nCiNGVdR2bVUKef7diiwi1AF-WG0,1566
30
+ msfabricpysdkcore/tests/test_external_data_shares.py,sha256=YqFiVFSWhVW7pLc0DC6Em4GFOGkok2Gezk8llPOtsv0,1550
31
+ msfabricpysdkcore/tests/test_fabric_azure_client.py,sha256=1y5NYznM4I5kfvuWckjafKESTG9fbU_9PdXz1bJGegE,3078
32
+ msfabricpysdkcore/tests/test_git.py,sha256=NFQLsxDmEtVqf88Umz1ECoXPVWnOOkaTfsXFRSBk9oQ,2400
33
+ msfabricpysdkcore/tests/test_items.py,sha256=ziJ1oqo3z2ZMo63L0JuCz-uVS-ZnMt38DeU5QYHb4l8,3498
34
+ msfabricpysdkcore/tests/test_items_incl_lakehouse.py,sha256=zWNmOI_Ysh96d8P-Sm4IOCzMqXTCEBg63lxCDZZ_9b8,17987
35
+ msfabricpysdkcore/tests/test_jobs.py,sha256=WfFEtzvP2sLKlRUyNCIjn5zKozWaIZcNbbudk21pLhM,1632
36
+ msfabricpysdkcore/tests/test_kql_queryset.py,sha256=10_KIdaHhCP7eNo0fS2gmjwx49wPSgxSPM2OHyyX0fI,1906
37
+ msfabricpysdkcore/tests/test_kqldatabases.py,sha256=aU3xx0FkyZvMUEacNw5zrnDNDvn-IDnbzdDM_5KoPj4,1939
38
+ msfabricpysdkcore/tests/test_lakehouse.py,sha256=SQ-xsqtwdjgZ8I2Nwi0HCoVQfIw-4MLEA4Tsa5a8tcM,3366
39
+ msfabricpysdkcore/tests/test_ml_experiments.py,sha256=UJIQitJdUDRlmAmF2jdXuFPYvp8BsrpDyI2opyIBt8I,1897
40
+ msfabricpysdkcore/tests/test_ml_models.py,sha256=AilbnYXb9rTUZW5sPJ0HqFZxB5fkTb0t_qnRW1NhO_E,1723
41
+ msfabricpysdkcore/tests/test_notebooks.py,sha256=usk99tftcJb-3m8rjmpiFOD5Dqp3dd4e7RFEeUMkX7c,2280
42
+ msfabricpysdkcore/tests/test_one_lake_data_access_security.py,sha256=eto_F6oBRqggGgWVHQ52mB6D2G-Qr-y74Sx308aJDqc,2297
43
+ msfabricpysdkcore/tests/test_other_items.py,sha256=rGyL7QCn9Y_k_NIyctIIxwujtM5_MeMKJ3g6gU1CWM4,1772
44
+ msfabricpysdkcore/tests/test_reports.py,sha256=zlmtrNdF7qI14kn8xlxnnOmrejfTGPjcCAiUgpXXk9w,1889
45
+ msfabricpysdkcore/tests/test_semantic_model.py,sha256=gGbh4WxItoLr-EiGryveRfe5pa75kWkb4Ye4iLH4Jtc,2204
46
+ msfabricpysdkcore/tests/test_shortcuts.py,sha256=NYlwkEqab_Wn_kTJdKoeJDUQunc1c74FQopAMjwmrsA,2408
47
+ msfabricpysdkcore/tests/test_spark.py,sha256=faoVF3AuUCyfk2PvVccPngafyAkhq2SAj87KmESUwx0,3546
48
+ msfabricpysdkcore/tests/test_sparkjobdefinition.py,sha256=SANfiOLgwKRGnQN9ArEwv0fyXM12glEn9BG4jIL4W-c,2838
49
+ msfabricpysdkcore/tests/test_warehouses.py,sha256=CKF2kJMe-JSOWWok3dR_hn5HNwz9GtKoYT4fP59mTPk,1813
50
+ msfabricpysdkcore/tests/test_workspaces_capacities.py,sha256=V5ePndbtLVyYNa8Kug1Ul0oOF-Jd6DXEl8PclgfLhuw,6822
51
+ msfabricpysdkcore/util/__init__.py,sha256=p-1dC4AurfKdIUppNVlRCIcmwHBTURqfgIwxcie3fEA,50
52
+ msfabricpysdkcore/util/logger.py,sha256=XXdeaqI-BhXZgacChKrWP88TPU4FTWvS8L0YWjCT54A,1166
53
+ msfabricpysdkcore-0.1.3.dist-info/LICENSE,sha256=1NrGuF-zOmzbwzk3iI6lsP9koyDeKO1B0-8OD_tTvOQ,1156
54
+ msfabricpysdkcore-0.1.3.dist-info/METADATA,sha256=ZaLwABHnPX5WEwMqjgcD63bw8taLRsWtxGYV7wEJbGw,23286
55
+ msfabricpysdkcore-0.1.3.dist-info/WHEEL,sha256=Wyh-_nZ0DJYolHNn1_hMa4lM7uDedD_RGVwbmTjyItk,91
56
+ msfabricpysdkcore-0.1.3.dist-info/top_level.txt,sha256=3iRonu6ptDGQN4Yl6G76XGM7xbFNsskiEHW-P2gMQGY,18
57
+ msfabricpysdkcore-0.1.3.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.3.0)
2
+ Generator: setuptools (71.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,52 +0,0 @@
1
- msfabricpysdkcore/__init__.py,sha256=nh8-lxdMBWYSbQpbRxWkn3ZRpGipmQplTudjskN2l88,78
2
- msfabricpysdkcore/admin_item.py,sha256=sYeE_wrkaqM00bCqDVYvf5efbwICL5fDZc0PzW-hsj4,3280
3
- msfabricpysdkcore/admin_workspace.py,sha256=umNnIF8sf5Y8BDgfQdfG6sOZrQQc7RJINL9j8DPnm3c,3180
4
- msfabricpysdkcore/adminapi.py,sha256=c-Ld0rMBNXgzJUBhpTFCPzoDjF-9xIW_QFs66tR-Rdk,25841
5
- msfabricpysdkcore/auth.py,sha256=v5YkI4jA6T7lv5rjqTK-GEPx2ATDPKQ1LVcaCg98oLM,2562
6
- msfabricpysdkcore/capacity.py,sha256=Q_2-XrZtdf9F67fY0qU3D0ocEOGQq4KtIXAv9dXjQhI,1761
7
- msfabricpysdkcore/client.py,sha256=gT0vsaMzTCajrze9X8Q3iIC6ItFVpXV7v5Pf_BDf8Sc,6533
8
- msfabricpysdkcore/coreapi.py,sha256=P1pk-d-mj8cHjPJNzE15Z8w2D1a-tPUJQxIedqwW8sI,131220
9
- msfabricpysdkcore/deployment_pipeline.py,sha256=65veAiaeu51t2iRZD3ZXU3LDRqEMn5VElup1WBojX08,5579
10
- msfabricpysdkcore/domain.py,sha256=92IVvZ3jXHIT1a0zlTPD7uoQX6TcBBE_Y_b4dScxHSU,6949
11
- msfabricpysdkcore/environment.py,sha256=4k2Le1mAQIrfcpNc3n1DbgdCzAldGTSTCbiDQGk0DlA,2784
12
- msfabricpysdkcore/item.py,sha256=3ixgRDTmrKXw82xl1MkaaOQ2986s2_DFEJQeUkKPcEU,6376
13
- msfabricpysdkcore/job_instance.py,sha256=HXSUVoE4XaG2Ic5RYZ1Mx3ymiIarHDAnyjaXXY4Aj74,2381
14
- msfabricpysdkcore/lakehouse.py,sha256=yIrzatWM9emPn-Y54Cg_ZdAydIWjxrpK65jIQ4SClgE,1703
15
- msfabricpysdkcore/long_running_operation.py,sha256=RJeExL1R8gqJ1b6TTUMn7CqLr_YH0vhEc3QJ8RsxZrI,1868
16
- msfabricpysdkcore/onelakeshortcut.py,sha256=H02wR6Z86qTEJOwVRMKz1Ou3K88Y9pfJa91vizjprvo,1661
17
- msfabricpysdkcore/otheritems.py,sha256=rkIbF-LxUUZh0ZDqFiWeutMeIsBXw_R8UUCglIifWBQ,12024
18
- msfabricpysdkcore/spark_custom_pool.py,sha256=YsEULaQG-FO507aPIb-4kk93ZWBmDZj6fbOEHYoyxHE,3188
19
- msfabricpysdkcore/workspace.py,sha256=7ZOt8ovlUOfusQ-avl4OOgMueN1XAp7AXdfpzAhXh3s,40428
20
- msfabricpysdkcore/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- msfabricpysdkcore/tests/test_admin_apis.py,sha256=vKNc3juSt3vVZfKQyiX3T30fO_MmzmlVsM1pWP2npAY,3416
22
- msfabricpysdkcore/tests/test_datapipelines.py,sha256=-lMOLPTOx7ZA2IxAwbj0WbpIAdI9itsTrg9nQJ3HQbU,1774
23
- msfabricpysdkcore/tests/test_deployment_pipeline.py,sha256=J7szEWrw26U91O6hSooUAJ2eNorDo-x55lPgr00J-gU,2072
24
- msfabricpysdkcore/tests/test_domains.py,sha256=5RQbfBykx_aRG9lFoM7caS0DKsxe7XY84uejtthhlkc,4711
25
- msfabricpysdkcore/tests/test_environments.py,sha256=J1zPJ3yf9pWOyjaKdxewNyYI-du3vvtuDN9qJpYHWos,5117
26
- msfabricpysdkcore/tests/test_evenhouses.py,sha256=JoO92qQ6qbidaoVKhMubHW32qbC7Sy-71OBw8ya7E28,1888
27
- msfabricpysdkcore/tests/test_evenstreams.py,sha256=n7u0_evnHJc91-SvRw1Er77eHnSKxVueZVIAmUZYE7I,1646
28
- msfabricpysdkcore/tests/test_external_data_shares.py,sha256=M3nbjNCZU5BDxXGt5649HQtIgaiK_U4hLvm770yVcSw,1550
29
- msfabricpysdkcore/tests/test_git.py,sha256=pmhVYZGDMEFtgy51hKrDWqtea-MryyeyvPKVCaTsIEA,2415
30
- msfabricpysdkcore/tests/test_items.py,sha256=cpKcfIEo6lYOsa4-Lxg9cHtsZcVUXgDJM1rFt4GfywQ,3491
31
- msfabricpysdkcore/tests/test_items_incl_lakehouse.py,sha256=zWNmOI_Ysh96d8P-Sm4IOCzMqXTCEBg63lxCDZZ_9b8,17987
32
- msfabricpysdkcore/tests/test_jobs.py,sha256=DC1nQTav_Re7uunRA07wD_56giLqe9KOsgm56Il8Zr4,1632
33
- msfabricpysdkcore/tests/test_kql_queryset.py,sha256=IOzZw4V_UfBJxAZfDIiZnOMW1lb60Fa0nHVGK9VbRCc,1974
34
- msfabricpysdkcore/tests/test_kqldatabases.py,sha256=fiaBReJJ3anW7wfpHVm5sm-Ps-oifKqVpaqcVP6drqo,1939
35
- msfabricpysdkcore/tests/test_lakehouse.py,sha256=Ifokq6twHQhMT1wzGwZZptYzzkfOFPqvuWPeEWrZOeI,3482
36
- msfabricpysdkcore/tests/test_ml_experiments.py,sha256=09VcjPhvUVhfd7gdzZgz_GvyI2HBT5GIzPiHQySXnlA,1965
37
- msfabricpysdkcore/tests/test_ml_models.py,sha256=q_XmL1Fef_uwB5s7W8UzurBJLxisNTWrj1pQfnIJhyc,1791
38
- msfabricpysdkcore/tests/test_notebooks.py,sha256=FpHcjNxXLdAQjEC3Arw1tuT93AS3YnjlhEp3_DoCnds,2348
39
- msfabricpysdkcore/tests/test_one_lake_data_access_security.py,sha256=GY5jm3Rz8WgPbUP7L8Y3V8sE4iV3LyyhGhLik__TX0w,2301
40
- msfabricpysdkcore/tests/test_other_items.py,sha256=LsJA7zRkTaD9C20oClw-orPtWokUqZMumPlV7QjIwpg,1835
41
- msfabricpysdkcore/tests/test_reports.py,sha256=O-VLKeqC2yfTCHDz4nFbRIHHAu9ZmaFnysNfBfpuw9k,1957
42
- msfabricpysdkcore/tests/test_semantic_model.py,sha256=K1W56KX3PohDGl6Gzqr4PISkKQ9PAobRrgCuSLunNhI,2199
43
- msfabricpysdkcore/tests/test_shortcuts.py,sha256=TqGLzEWsDyiQ0Gf6JpT_qBHUCgcvYXfVwpXxOay7Qz4,2407
44
- msfabricpysdkcore/tests/test_spark.py,sha256=voJOci0BdhX5HVCjupwg4muP3vAd4Yf7l7WsP6FJapg,3601
45
- msfabricpysdkcore/tests/test_sparkjobdefinition.py,sha256=SlnCLTpFO03fjtqjp7PqGJCxGkWC3q6O-s4Z4rnYWIo,2838
46
- msfabricpysdkcore/tests/test_warehouses.py,sha256=ID7hDpl0Ih3A_JPj6J-ynzKMqKoZrdnISyrIQlsFsj8,1881
47
- msfabricpysdkcore/tests/test_workspaces_capacities.py,sha256=QQuKuXL8Af4rBGe_fYPyevqqnEFiWUsnpr5rEVoe-Ws,6822
48
- msfabricpysdkcore-0.1.1.dist-info/LICENSE,sha256=1NrGuF-zOmzbwzk3iI6lsP9koyDeKO1B0-8OD_tTvOQ,1156
49
- msfabricpysdkcore-0.1.1.dist-info/METADATA,sha256=jW7Mz59FpgshhjH_SUjy4YzG-BfdMbBffe9r8msCC2Q,20521
50
- msfabricpysdkcore-0.1.1.dist-info/WHEEL,sha256=Z4pYXqR_rTB7OWNDYFOm1qRk0RX6GFP2o8LgvP453Hk,91
51
- msfabricpysdkcore-0.1.1.dist-info/top_level.txt,sha256=3iRonu6ptDGQN4Yl6G76XGM7xbFNsskiEHW-P2gMQGY,18
52
- msfabricpysdkcore-0.1.1.dist-info/RECORD,,