lightning-sdk 2026.1.22__py3-none-any.whl → 2026.1.30__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.
- lightning_sdk/__version__.py +1 -1
- lightning_sdk/api/studio_api.py +38 -39
- lightning_sdk/api/teamspace_api.py +189 -72
- lightning_sdk/api/utils.py +69 -1
- lightning_sdk/cli/cp/__init__.py +14 -11
- lightning_sdk/cli/cp/teamspace_uploads.py +95 -0
- lightning_sdk/cli/legacy/download.py +29 -98
- lightning_sdk/cli/legacy/upload.py +24 -31
- lightning_sdk/cli/studio/cp.py +8 -5
- lightning_sdk/cli/studio/ls.py +1 -1
- lightning_sdk/cli/studio/rm.py +1 -1
- lightning_sdk/cli/utils/{studio_filesystem.py → filesystem.py} +49 -6
- lightning_sdk/exceptions.py +27 -0
- lightning_sdk/lightning_cloud/openapi/__init__.py +17 -12
- lightning_sdk/lightning_cloud/openapi/api/__init__.py +1 -0
- lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +5 -1
- lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +286 -468
- lightning_sdk/lightning_cloud/openapi/api/container_registry_service_api.py +579 -0
- lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +5 -1
- lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +11 -11
- lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +113 -0
- lightning_sdk/lightning_cloud/openapi/api/organizations_service_api.py +113 -0
- lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +5 -1
- lightning_sdk/lightning_cloud/openapi/models/__init__.py +16 -12
- lightning_sdk/lightning_cloud/openapi/models/{cluster_service_refresh_container_registry_credentials_body.py → cluster_service_get_cluster_capacity_reservation_body.py} +6 -6
- lightning_sdk/lightning_cloud/openapi/models/{v1_container_registry_integration.py → container_registry_config_ecr.py} +49 -23
- lightning_sdk/lightning_cloud/openapi/models/{v1_container_registry_status.py → container_registry_provider.py} +14 -10
- lightning_sdk/lightning_cloud/openapi/models/container_registry_service_create_container_registry_body.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_ecr_registry_config_input.py → container_registry_service_refresh_container_registry_credentials_body.py} +21 -21
- lightning_sdk/lightning_cloud/openapi/models/jobs_service_duplicate_deployment_body.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/organizations_service_update_org_role_body.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_provider.py +1 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_container_registry.py +63 -89
- lightning_sdk/lightning_cloud/openapi/models/{cluster_service_add_container_registry_body.py → v1_container_registry_config.py} +16 -16
- lightning_sdk/lightning_cloud/openapi/models/{v1_validate_container_registry_response.py → v1_container_registry_scopes.py} +39 -39
- lightning_sdk/lightning_cloud/openapi/models/{cluster_service_validate_container_registry_body.py → v1_create_container_registry_response.py} +6 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_org_cluster_capacity_reservation_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_describe_org_cluster_capacity_reservation_response.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_generic_job_spec.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/{v1_add_container_registry_response.py → v1_get_cluster_capacity_reservation_response.py} +23 -23
- lightning_sdk/lightning_cloud/openapi/models/v1_job.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +1 -27
- lightning_sdk/lightning_cloud/openapi/models/v1_list_container_registries_response.py +6 -6
- lightning_sdk/lightning_cloud/openapi/models/{v1_ecr_registry_config.py → v1_mithril_direct_v1.py} +51 -51
- lightning_sdk/lightning_cloud/openapi/models/v1_refresh_container_registry_credentials_response.py +1 -27
- lightning_sdk/lightning_cloud/openapi/models/v1_slack_notifier.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_update_container_registry_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +53 -105
- lightning_sdk/lightning_cloud/openapi/rest.py +2 -2
- lightning_sdk/teamspace.py +28 -7
- {lightning_sdk-2026.1.22.dist-info → lightning_sdk-2026.1.30.dist-info}/METADATA +1 -1
- {lightning_sdk-2026.1.22.dist-info → lightning_sdk-2026.1.30.dist-info}/RECORD +59 -53
- lightning_sdk/lightning_cloud/openapi/models/v1_container_registry_info.py +0 -281
- lightning_sdk/lightning_cloud/openapi/models/v1_ecr_registry_details.py +0 -201
- /lightning_sdk/lightning_cloud/openapi/models/{v1_list_filesystem_mmts_response.py → v1_list_filesystem_mm_ts_response.py} +0 -0
- {lightning_sdk-2026.1.22.dist-info → lightning_sdk-2026.1.30.dist-info}/LICENSE +0 -0
- {lightning_sdk-2026.1.22.dist-info → lightning_sdk-2026.1.30.dist-info}/WHEEL +0 -0
- {lightning_sdk-2026.1.22.dist-info → lightning_sdk-2026.1.30.dist-info}/entry_points.txt +0 -0
- {lightning_sdk-2026.1.22.dist-info → lightning_sdk-2026.1.30.dist-info}/top_level.txt +0 -0
|
@@ -74,14 +74,12 @@ class V1UserFeatures(object):
|
|
|
74
74
|
'f254': 'bool',
|
|
75
75
|
'f258': 'bool',
|
|
76
76
|
'f259': 'bool',
|
|
77
|
-
'f265': 'bool',
|
|
78
77
|
'f266': 'bool',
|
|
79
78
|
'f268': 'bool',
|
|
80
79
|
'f270': 'bool',
|
|
81
80
|
'f271': 'bool',
|
|
82
81
|
'f272': 'bool',
|
|
83
82
|
'f273': 'bool',
|
|
84
|
-
'f275': 'bool',
|
|
85
83
|
'f276': 'bool',
|
|
86
84
|
'f279': 'bool',
|
|
87
85
|
'f280': 'bool',
|
|
@@ -91,12 +89,12 @@ class V1UserFeatures(object):
|
|
|
91
89
|
'f287': 'bool',
|
|
92
90
|
'f288': 'bool',
|
|
93
91
|
'f289': 'bool',
|
|
94
|
-
'f290': 'bool',
|
|
95
|
-
'f291': 'bool',
|
|
96
92
|
'f292': 'bool',
|
|
97
93
|
'f293': 'bool',
|
|
98
94
|
'f294': 'bool',
|
|
99
95
|
'f295': 'bool',
|
|
96
|
+
'f296': 'bool',
|
|
97
|
+
'f297': 'bool',
|
|
100
98
|
'fair_share': 'bool',
|
|
101
99
|
'featured_studios_admin': 'bool',
|
|
102
100
|
'job_artifacts_v2': 'bool',
|
|
@@ -169,14 +167,12 @@ class V1UserFeatures(object):
|
|
|
169
167
|
'f254': 'f254',
|
|
170
168
|
'f258': 'f258',
|
|
171
169
|
'f259': 'f259',
|
|
172
|
-
'f265': 'f265',
|
|
173
170
|
'f266': 'f266',
|
|
174
171
|
'f268': 'f268',
|
|
175
172
|
'f270': 'f270',
|
|
176
173
|
'f271': 'f271',
|
|
177
174
|
'f272': 'f272',
|
|
178
175
|
'f273': 'f273',
|
|
179
|
-
'f275': 'f275',
|
|
180
176
|
'f276': 'f276',
|
|
181
177
|
'f279': 'f279',
|
|
182
178
|
'f280': 'f280',
|
|
@@ -186,12 +182,12 @@ class V1UserFeatures(object):
|
|
|
186
182
|
'f287': 'f287',
|
|
187
183
|
'f288': 'f288',
|
|
188
184
|
'f289': 'f289',
|
|
189
|
-
'f290': 'f290',
|
|
190
|
-
'f291': 'f291',
|
|
191
185
|
'f292': 'f292',
|
|
192
186
|
'f293': 'f293',
|
|
193
187
|
'f294': 'f294',
|
|
194
188
|
'f295': 'f295',
|
|
189
|
+
'f296': 'f296',
|
|
190
|
+
'f297': 'f297',
|
|
195
191
|
'fair_share': 'fairShare',
|
|
196
192
|
'featured_studios_admin': 'featuredStudiosAdmin',
|
|
197
193
|
'job_artifacts_v2': 'jobArtifactsV2',
|
|
@@ -230,7 +226,7 @@ class V1UserFeatures(object):
|
|
|
230
226
|
'weka': 'weka'
|
|
231
227
|
}
|
|
232
228
|
|
|
233
|
-
def __init__(self, affiliate_links: 'bool' =None, agents_v2: 'bool' =None, ai_hub_monetization: 'bool' =None, auto_fast_load: 'bool' =None, b2c_experience: 'bool' =None, byo_machine_type: 'bool' =None, cap_add: 'list[str]' =None, cap_drop: 'list[str]' =None, capacity_reservation_byoc: 'bool' =None, capacity_reservation_dry_run: 'bool' =None, chat_models: 'bool' =None, cloudspace_schedules: 'bool' =None, code_tab: 'bool' =None, collab_screen_sharing: 'bool' =None, control_center_monitoring: 'bool' =None, cost_attribution_settings: 'bool' =None, datasets: 'bool' =None, default_one_cluster: 'bool' =None, drive_v2: 'bool' =None, enterprise_compute_admin: 'bool' =None, f234: 'bool' =None, f236: 'bool' =None, f240: 'bool' =None, f241: 'bool' =None, f243: 'bool' =None, f245: 'bool' =None, f247: 'bool' =None, f250: 'bool' =None, f252: 'bool' =None, f253: 'bool' =None, f254: 'bool' =None, f258: 'bool' =None, f259: 'bool' =None,
|
|
229
|
+
def __init__(self, affiliate_links: 'bool' =None, agents_v2: 'bool' =None, ai_hub_monetization: 'bool' =None, auto_fast_load: 'bool' =None, b2c_experience: 'bool' =None, byo_machine_type: 'bool' =None, cap_add: 'list[str]' =None, cap_drop: 'list[str]' =None, capacity_reservation_byoc: 'bool' =None, capacity_reservation_dry_run: 'bool' =None, chat_models: 'bool' =None, cloudspace_schedules: 'bool' =None, code_tab: 'bool' =None, collab_screen_sharing: 'bool' =None, control_center_monitoring: 'bool' =None, cost_attribution_settings: 'bool' =None, datasets: 'bool' =None, default_one_cluster: 'bool' =None, drive_v2: 'bool' =None, enterprise_compute_admin: 'bool' =None, f234: 'bool' =None, f236: 'bool' =None, f240: 'bool' =None, f241: 'bool' =None, f243: 'bool' =None, f245: 'bool' =None, f247: 'bool' =None, f250: 'bool' =None, f252: 'bool' =None, f253: 'bool' =None, f254: 'bool' =None, f258: 'bool' =None, f259: 'bool' =None, f266: 'bool' =None, f268: 'bool' =None, f270: 'bool' =None, f271: 'bool' =None, f272: 'bool' =None, f273: 'bool' =None, f276: 'bool' =None, f279: 'bool' =None, f280: 'bool' =None, f281: 'bool' =None, f283: 'bool' =None, f285: 'bool' =None, f287: 'bool' =None, f288: 'bool' =None, f289: 'bool' =None, f292: 'bool' =None, f293: 'bool' =None, f294: 'bool' =None, f295: 'bool' =None, f296: 'bool' =None, f297: 'bool' =None, fair_share: 'bool' =None, featured_studios_admin: 'bool' =None, job_artifacts_v2: 'bool' =None, kubernetes_cluster_ui: 'bool' =None, kubernetes_clusters: 'bool' =None, landing_studios: 'bool' =None, marketplace: 'bool' =None, mmt_fault_tolerance: 'bool' =None, mmt_strategy_selector: 'bool' =None, multiple_studio_versions: 'bool' =None, nerf_fs_nonpaying: 'bool' =None, org_level_member_permissions: 'bool' =None, org_usage_limits: 'bool' =None, persistent_disk: 'bool' =None, plugin_distributed: 'bool' =None, plugin_inference: 'bool' =None, plugin_label_studio: 'bool' =None, plugin_langflow: 'bool' =None, plugin_python_profiler: 'bool' =None, plugin_sweeps: 'bool' =None, product_generator: 'bool' =None, product_license: 'bool' =None, project_selector: 'bool' =None, publish_pipelines: 'bool' =None, reserved_machines_tab: 'bool' =None, restartable_jobs: 'bool' =None, runnable_public_studio_page: 'bool' =None, security_docs: 'bool' =None, show_dev_admin: 'bool' =None, slurm: 'bool' =None, specialised_studios: 'bool' =None, storage_overuse_deletion: 'bool' =None, studio_config: 'bool' =None, studio_version_visibility: 'bool' =None, vultr: 'bool' =None, weka: 'bool' =None): # noqa: E501
|
|
234
230
|
"""V1UserFeatures - a model defined in Swagger""" # noqa: E501
|
|
235
231
|
self._affiliate_links = None
|
|
236
232
|
self._agents_v2 = None
|
|
@@ -265,14 +261,12 @@ class V1UserFeatures(object):
|
|
|
265
261
|
self._f254 = None
|
|
266
262
|
self._f258 = None
|
|
267
263
|
self._f259 = None
|
|
268
|
-
self._f265 = None
|
|
269
264
|
self._f266 = None
|
|
270
265
|
self._f268 = None
|
|
271
266
|
self._f270 = None
|
|
272
267
|
self._f271 = None
|
|
273
268
|
self._f272 = None
|
|
274
269
|
self._f273 = None
|
|
275
|
-
self._f275 = None
|
|
276
270
|
self._f276 = None
|
|
277
271
|
self._f279 = None
|
|
278
272
|
self._f280 = None
|
|
@@ -282,12 +276,12 @@ class V1UserFeatures(object):
|
|
|
282
276
|
self._f287 = None
|
|
283
277
|
self._f288 = None
|
|
284
278
|
self._f289 = None
|
|
285
|
-
self._f290 = None
|
|
286
|
-
self._f291 = None
|
|
287
279
|
self._f292 = None
|
|
288
280
|
self._f293 = None
|
|
289
281
|
self._f294 = None
|
|
290
282
|
self._f295 = None
|
|
283
|
+
self._f296 = None
|
|
284
|
+
self._f297 = None
|
|
291
285
|
self._fair_share = None
|
|
292
286
|
self._featured_studios_admin = None
|
|
293
287
|
self._job_artifacts_v2 = None
|
|
@@ -391,8 +385,6 @@ class V1UserFeatures(object):
|
|
|
391
385
|
self.f258 = f258
|
|
392
386
|
if f259 is not None:
|
|
393
387
|
self.f259 = f259
|
|
394
|
-
if f265 is not None:
|
|
395
|
-
self.f265 = f265
|
|
396
388
|
if f266 is not None:
|
|
397
389
|
self.f266 = f266
|
|
398
390
|
if f268 is not None:
|
|
@@ -405,8 +397,6 @@ class V1UserFeatures(object):
|
|
|
405
397
|
self.f272 = f272
|
|
406
398
|
if f273 is not None:
|
|
407
399
|
self.f273 = f273
|
|
408
|
-
if f275 is not None:
|
|
409
|
-
self.f275 = f275
|
|
410
400
|
if f276 is not None:
|
|
411
401
|
self.f276 = f276
|
|
412
402
|
if f279 is not None:
|
|
@@ -425,10 +415,6 @@ class V1UserFeatures(object):
|
|
|
425
415
|
self.f288 = f288
|
|
426
416
|
if f289 is not None:
|
|
427
417
|
self.f289 = f289
|
|
428
|
-
if f290 is not None:
|
|
429
|
-
self.f290 = f290
|
|
430
|
-
if f291 is not None:
|
|
431
|
-
self.f291 = f291
|
|
432
418
|
if f292 is not None:
|
|
433
419
|
self.f292 = f292
|
|
434
420
|
if f293 is not None:
|
|
@@ -437,6 +423,10 @@ class V1UserFeatures(object):
|
|
|
437
423
|
self.f294 = f294
|
|
438
424
|
if f295 is not None:
|
|
439
425
|
self.f295 = f295
|
|
426
|
+
if f296 is not None:
|
|
427
|
+
self.f296 = f296
|
|
428
|
+
if f297 is not None:
|
|
429
|
+
self.f297 = f297
|
|
440
430
|
if fair_share is not None:
|
|
441
431
|
self.fair_share = fair_share
|
|
442
432
|
if featured_studios_admin is not None:
|
|
@@ -1203,27 +1193,6 @@ class V1UserFeatures(object):
|
|
|
1203
1193
|
|
|
1204
1194
|
self._f259 = f259
|
|
1205
1195
|
|
|
1206
|
-
@property
|
|
1207
|
-
def f265(self) -> 'bool':
|
|
1208
|
-
"""Gets the f265 of this V1UserFeatures. # noqa: E501
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
:return: The f265 of this V1UserFeatures. # noqa: E501
|
|
1212
|
-
:rtype: bool
|
|
1213
|
-
"""
|
|
1214
|
-
return self._f265
|
|
1215
|
-
|
|
1216
|
-
@f265.setter
|
|
1217
|
-
def f265(self, f265: 'bool'):
|
|
1218
|
-
"""Sets the f265 of this V1UserFeatures.
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
:param f265: The f265 of this V1UserFeatures. # noqa: E501
|
|
1222
|
-
:type: bool
|
|
1223
|
-
"""
|
|
1224
|
-
|
|
1225
|
-
self._f265 = f265
|
|
1226
|
-
|
|
1227
1196
|
@property
|
|
1228
1197
|
def f266(self) -> 'bool':
|
|
1229
1198
|
"""Gets the f266 of this V1UserFeatures. # noqa: E501
|
|
@@ -1350,27 +1319,6 @@ class V1UserFeatures(object):
|
|
|
1350
1319
|
|
|
1351
1320
|
self._f273 = f273
|
|
1352
1321
|
|
|
1353
|
-
@property
|
|
1354
|
-
def f275(self) -> 'bool':
|
|
1355
|
-
"""Gets the f275 of this V1UserFeatures. # noqa: E501
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
:return: The f275 of this V1UserFeatures. # noqa: E501
|
|
1359
|
-
:rtype: bool
|
|
1360
|
-
"""
|
|
1361
|
-
return self._f275
|
|
1362
|
-
|
|
1363
|
-
@f275.setter
|
|
1364
|
-
def f275(self, f275: 'bool'):
|
|
1365
|
-
"""Sets the f275 of this V1UserFeatures.
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
:param f275: The f275 of this V1UserFeatures. # noqa: E501
|
|
1369
|
-
:type: bool
|
|
1370
|
-
"""
|
|
1371
|
-
|
|
1372
|
-
self._f275 = f275
|
|
1373
|
-
|
|
1374
1322
|
@property
|
|
1375
1323
|
def f276(self) -> 'bool':
|
|
1376
1324
|
"""Gets the f276 of this V1UserFeatures. # noqa: E501
|
|
@@ -1560,48 +1508,6 @@ class V1UserFeatures(object):
|
|
|
1560
1508
|
|
|
1561
1509
|
self._f289 = f289
|
|
1562
1510
|
|
|
1563
|
-
@property
|
|
1564
|
-
def f290(self) -> 'bool':
|
|
1565
|
-
"""Gets the f290 of this V1UserFeatures. # noqa: E501
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
:return: The f290 of this V1UserFeatures. # noqa: E501
|
|
1569
|
-
:rtype: bool
|
|
1570
|
-
"""
|
|
1571
|
-
return self._f290
|
|
1572
|
-
|
|
1573
|
-
@f290.setter
|
|
1574
|
-
def f290(self, f290: 'bool'):
|
|
1575
|
-
"""Sets the f290 of this V1UserFeatures.
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
:param f290: The f290 of this V1UserFeatures. # noqa: E501
|
|
1579
|
-
:type: bool
|
|
1580
|
-
"""
|
|
1581
|
-
|
|
1582
|
-
self._f290 = f290
|
|
1583
|
-
|
|
1584
|
-
@property
|
|
1585
|
-
def f291(self) -> 'bool':
|
|
1586
|
-
"""Gets the f291 of this V1UserFeatures. # noqa: E501
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
:return: The f291 of this V1UserFeatures. # noqa: E501
|
|
1590
|
-
:rtype: bool
|
|
1591
|
-
"""
|
|
1592
|
-
return self._f291
|
|
1593
|
-
|
|
1594
|
-
@f291.setter
|
|
1595
|
-
def f291(self, f291: 'bool'):
|
|
1596
|
-
"""Sets the f291 of this V1UserFeatures.
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
:param f291: The f291 of this V1UserFeatures. # noqa: E501
|
|
1600
|
-
:type: bool
|
|
1601
|
-
"""
|
|
1602
|
-
|
|
1603
|
-
self._f291 = f291
|
|
1604
|
-
|
|
1605
1511
|
@property
|
|
1606
1512
|
def f292(self) -> 'bool':
|
|
1607
1513
|
"""Gets the f292 of this V1UserFeatures. # noqa: E501
|
|
@@ -1686,6 +1592,48 @@ class V1UserFeatures(object):
|
|
|
1686
1592
|
|
|
1687
1593
|
self._f295 = f295
|
|
1688
1594
|
|
|
1595
|
+
@property
|
|
1596
|
+
def f296(self) -> 'bool':
|
|
1597
|
+
"""Gets the f296 of this V1UserFeatures. # noqa: E501
|
|
1598
|
+
|
|
1599
|
+
|
|
1600
|
+
:return: The f296 of this V1UserFeatures. # noqa: E501
|
|
1601
|
+
:rtype: bool
|
|
1602
|
+
"""
|
|
1603
|
+
return self._f296
|
|
1604
|
+
|
|
1605
|
+
@f296.setter
|
|
1606
|
+
def f296(self, f296: 'bool'):
|
|
1607
|
+
"""Sets the f296 of this V1UserFeatures.
|
|
1608
|
+
|
|
1609
|
+
|
|
1610
|
+
:param f296: The f296 of this V1UserFeatures. # noqa: E501
|
|
1611
|
+
:type: bool
|
|
1612
|
+
"""
|
|
1613
|
+
|
|
1614
|
+
self._f296 = f296
|
|
1615
|
+
|
|
1616
|
+
@property
|
|
1617
|
+
def f297(self) -> 'bool':
|
|
1618
|
+
"""Gets the f297 of this V1UserFeatures. # noqa: E501
|
|
1619
|
+
|
|
1620
|
+
|
|
1621
|
+
:return: The f297 of this V1UserFeatures. # noqa: E501
|
|
1622
|
+
:rtype: bool
|
|
1623
|
+
"""
|
|
1624
|
+
return self._f297
|
|
1625
|
+
|
|
1626
|
+
@f297.setter
|
|
1627
|
+
def f297(self, f297: 'bool'):
|
|
1628
|
+
"""Sets the f297 of this V1UserFeatures.
|
|
1629
|
+
|
|
1630
|
+
|
|
1631
|
+
:param f297: The f297 of this V1UserFeatures. # noqa: E501
|
|
1632
|
+
:type: bool
|
|
1633
|
+
"""
|
|
1634
|
+
|
|
1635
|
+
self._f297 = f297
|
|
1636
|
+
|
|
1689
1637
|
@property
|
|
1690
1638
|
def fair_share(self) -> 'bool':
|
|
1691
1639
|
"""Gets the fair_share of this V1UserFeatures. # noqa: E501
|
|
@@ -49,11 +49,11 @@ class RESTResponse(io.IOBase):
|
|
|
49
49
|
|
|
50
50
|
def getheaders(self):
|
|
51
51
|
"""Returns a dictionary of the response headers."""
|
|
52
|
-
return self.urllib3_response.
|
|
52
|
+
return self.urllib3_response.getheaders()
|
|
53
53
|
|
|
54
54
|
def getheader(self, name, default=None):
|
|
55
55
|
"""Returns a given response header."""
|
|
56
|
-
return self.urllib3_response.
|
|
56
|
+
return self.urllib3_response.getheader(name, default)
|
|
57
57
|
|
|
58
58
|
|
|
59
59
|
class RESTClientObject(object):
|
lightning_sdk/teamspace.py
CHANGED
|
@@ -539,21 +539,37 @@ class Teamspace(metaclass=TrackCallsMeta):
|
|
|
539
539
|
return self._teamspace_api.list_model_versions(teamspace_id=self.id, model_name=name)
|
|
540
540
|
|
|
541
541
|
def upload_file(
|
|
542
|
-
self,
|
|
542
|
+
self,
|
|
543
|
+
file_path: Union[Path, str],
|
|
544
|
+
remote_path: Optional[str] = None,
|
|
545
|
+
progress_bar: bool = True,
|
|
546
|
+
cloud_account: Optional[str] = None,
|
|
543
547
|
) -> None:
|
|
544
548
|
"""Uploads file to given remote path in the Teamspace drive."""
|
|
545
549
|
if remote_path is None:
|
|
546
550
|
remote_path = os.path.split(file_path)[1]
|
|
547
551
|
|
|
552
|
+
if cloud_account is None:
|
|
553
|
+
warnings.warn(
|
|
554
|
+
f"No cloud account specified. Using teamspace default cloud account: {self.default_cloud_account}."
|
|
555
|
+
)
|
|
556
|
+
cloud_account = self.default_cloud_account
|
|
557
|
+
|
|
548
558
|
self._teamspace_api.upload_file(
|
|
549
559
|
teamspace_id=self._teamspace.id,
|
|
550
|
-
cloud_account=
|
|
560
|
+
cloud_account=cloud_account,
|
|
551
561
|
file_path=file_path,
|
|
552
562
|
remote_path=os.path.normpath(remote_path),
|
|
553
563
|
progress_bar=progress_bar,
|
|
554
564
|
)
|
|
555
565
|
|
|
556
|
-
def upload_folder(
|
|
566
|
+
def upload_folder(
|
|
567
|
+
self,
|
|
568
|
+
folder_path: str,
|
|
569
|
+
remote_path: Optional[str] = None,
|
|
570
|
+
progress_bar: bool = True,
|
|
571
|
+
cloud_account: Optional[str] = None,
|
|
572
|
+
) -> None:
|
|
557
573
|
"""Uploads a given folder to a remote path in the Teamspace drive."""
|
|
558
574
|
if folder_path is None:
|
|
559
575
|
raise ValueError("Cannot upload a folder that is None.")
|
|
@@ -575,13 +591,15 @@ class Teamspace(metaclass=TrackCallsMeta):
|
|
|
575
591
|
for local_file, remote_path in sorted(all_files, key=lambda p: p[1]):
|
|
576
592
|
if progress_bar:
|
|
577
593
|
progress_bar.set_description(f"Uploading {local_file}")
|
|
578
|
-
self.upload_file(local_file, remote_path=remote_path, progress_bar=False)
|
|
594
|
+
self.upload_file(local_file, remote_path=remote_path, progress_bar=False, cloud_account=cloud_account)
|
|
579
595
|
if progress_bar:
|
|
580
596
|
progress_bar.update(1)
|
|
581
597
|
if progress_bar:
|
|
582
598
|
progress_bar.close()
|
|
583
599
|
|
|
584
|
-
def download_file(
|
|
600
|
+
def download_file(
|
|
601
|
+
self, remote_path: str, file_path: Optional[str] = None, cloud_account: Optional[str] = None
|
|
602
|
+
) -> None:
|
|
585
603
|
"""Downloads a given file in Teamspace drive to a target location."""
|
|
586
604
|
if file_path is None:
|
|
587
605
|
file_path = remote_path
|
|
@@ -590,9 +608,12 @@ class Teamspace(metaclass=TrackCallsMeta):
|
|
|
590
608
|
path=remote_path,
|
|
591
609
|
target_path=file_path,
|
|
592
610
|
teamspace_id=self._teamspace.id,
|
|
611
|
+
cloud_account=cloud_account,
|
|
593
612
|
)
|
|
594
613
|
|
|
595
|
-
def download_folder(
|
|
614
|
+
def download_folder(
|
|
615
|
+
self, remote_path: str, target_path: Optional[str] = None, cloud_account: Optional[str] = None
|
|
616
|
+
) -> None:
|
|
596
617
|
"""Downloads a folder in the Teamspace drive to a given target path."""
|
|
597
618
|
if target_path is None:
|
|
598
619
|
target_path = remote_path
|
|
@@ -601,7 +622,7 @@ class Teamspace(metaclass=TrackCallsMeta):
|
|
|
601
622
|
path=remote_path,
|
|
602
623
|
target_path=target_path,
|
|
603
624
|
teamspace_id=self._teamspace.id,
|
|
604
|
-
cloud_account=
|
|
625
|
+
cloud_account=cloud_account,
|
|
605
626
|
)
|
|
606
627
|
|
|
607
628
|
def new_folder(
|