lightning-sdk 2025.10.23__py3-none-any.whl → 2025.10.31__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/__init__.py +1 -1
- lightning_sdk/api/deployment_api.py +16 -0
- lightning_sdk/api/mmt_api.py +4 -1
- lightning_sdk/api/teamspace_api.py +1 -1
- lightning_sdk/cli/legacy/deploy/_auth.py +1 -2
- lightning_sdk/cli/utils/teamspace_selection.py +4 -5
- lightning_sdk/deployment/deployment.py +2 -1
- lightning_sdk/lightning_cloud/openapi/__init__.py +8 -0
- lightning_sdk/lightning_cloud/openapi/api/__init__.py +1 -0
- lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +234 -0
- lightning_sdk/lightning_cloud/openapi/api/markets_service_api.py +145 -0
- lightning_sdk/lightning_cloud/openapi/models/__init__.py +7 -0
- lightning_sdk/lightning_cloud/openapi/models/message_id_actions_body.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/project_id_storagetransfers_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/projects_id_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_environment_template_config.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_specialized_view.py +1 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_create_project_request.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_get_market_pricing_response.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_incident_type.py +1 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_aws_config.py +279 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_settings_v1.py +253 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_list_conversation_message_actions_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_market_price.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_membership.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_message_action.py +279 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_project_membership.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_project_settings.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +79 -183
- lightning_sdk/mmt/base.py +7 -0
- lightning_sdk/mmt/mmt.py +8 -0
- lightning_sdk/mmt/v1.py +3 -1
- lightning_sdk/mmt/v2.py +4 -0
- lightning_sdk/pipeline/steps.py +6 -1
- lightning_sdk/plugin.py +4 -0
- lightning_sdk/studio.py +7 -2
- lightning_sdk/utils/logging.py +72 -0
- {lightning_sdk-2025.10.23.dist-info → lightning_sdk-2025.10.31.dist-info}/METADATA +1 -1
- {lightning_sdk-2025.10.23.dist-info → lightning_sdk-2025.10.31.dist-info}/RECORD +46 -37
- {lightning_sdk-2025.10.23.dist-info → lightning_sdk-2025.10.31.dist-info}/LICENSE +0 -0
- {lightning_sdk-2025.10.23.dist-info → lightning_sdk-2025.10.31.dist-info}/WHEEL +0 -0
- {lightning_sdk-2025.10.23.dist-info → lightning_sdk-2025.10.31.dist-info}/entry_points.txt +0 -0
- {lightning_sdk-2025.10.23.dist-info → lightning_sdk-2025.10.31.dist-info}/top_level.txt +0 -0
|
@@ -57,10 +57,8 @@ class V1UserFeatures(object):
|
|
|
57
57
|
'collab_screen_sharing': 'bool',
|
|
58
58
|
'control_center_monitoring': 'bool',
|
|
59
59
|
'cost_attribution_settings': 'bool',
|
|
60
|
-
'custom_app_domain': 'bool',
|
|
61
60
|
'datasets': 'bool',
|
|
62
61
|
'default_one_cluster': 'bool',
|
|
63
|
-
'deployment_persistent_disk': 'bool',
|
|
64
62
|
'drive_v2': 'bool',
|
|
65
63
|
'enterprise_compute_admin': 'bool',
|
|
66
64
|
'f234': 'bool',
|
|
@@ -78,16 +76,16 @@ class V1UserFeatures(object):
|
|
|
78
76
|
'f255': 'bool',
|
|
79
77
|
'f258': 'bool',
|
|
80
78
|
'f259': 'bool',
|
|
81
|
-
'f260': 'bool',
|
|
82
79
|
'f261': 'bool',
|
|
83
80
|
'f262': 'bool',
|
|
84
|
-
'f263': 'bool',
|
|
85
81
|
'f265': 'bool',
|
|
86
82
|
'f266': 'bool',
|
|
87
|
-
'f267': 'bool',
|
|
88
83
|
'f268': 'bool',
|
|
89
84
|
'f269': 'bool',
|
|
90
85
|
'f270': 'bool',
|
|
86
|
+
'f271': 'bool',
|
|
87
|
+
'f272': 'bool',
|
|
88
|
+
'f273': 'bool',
|
|
91
89
|
'fair_share': 'bool',
|
|
92
90
|
'featured_studios_admin': 'bool',
|
|
93
91
|
'job_artifacts_v2': 'bool',
|
|
@@ -98,7 +96,6 @@ class V1UserFeatures(object):
|
|
|
98
96
|
'marketplace': 'bool',
|
|
99
97
|
'mmt_fault_tolerance': 'bool',
|
|
100
98
|
'mmt_strategy_selector': 'bool',
|
|
101
|
-
'model_api_dashboard': 'bool',
|
|
102
99
|
'multiple_studio_versions': 'bool',
|
|
103
100
|
'nerf_fs_nonpaying': 'bool',
|
|
104
101
|
'org_level_member_permissions': 'bool',
|
|
@@ -124,7 +121,6 @@ class V1UserFeatures(object):
|
|
|
124
121
|
'specialised_studios': 'bool',
|
|
125
122
|
'storage_overuse_deletion': 'bool',
|
|
126
123
|
'studio_config': 'bool',
|
|
127
|
-
'studio_sharing_v2': 'bool',
|
|
128
124
|
'studio_version_visibility': 'bool',
|
|
129
125
|
'vultr': 'bool',
|
|
130
126
|
'weka': 'bool',
|
|
@@ -148,10 +144,8 @@ class V1UserFeatures(object):
|
|
|
148
144
|
'collab_screen_sharing': 'collabScreenSharing',
|
|
149
145
|
'control_center_monitoring': 'controlCenterMonitoring',
|
|
150
146
|
'cost_attribution_settings': 'costAttributionSettings',
|
|
151
|
-
'custom_app_domain': 'customAppDomain',
|
|
152
147
|
'datasets': 'datasets',
|
|
153
148
|
'default_one_cluster': 'defaultOneCluster',
|
|
154
|
-
'deployment_persistent_disk': 'deploymentPersistentDisk',
|
|
155
149
|
'drive_v2': 'driveV2',
|
|
156
150
|
'enterprise_compute_admin': 'enterpriseComputeAdmin',
|
|
157
151
|
'f234': 'f234',
|
|
@@ -169,16 +163,16 @@ class V1UserFeatures(object):
|
|
|
169
163
|
'f255': 'f255',
|
|
170
164
|
'f258': 'f258',
|
|
171
165
|
'f259': 'f259',
|
|
172
|
-
'f260': 'f260',
|
|
173
166
|
'f261': 'f261',
|
|
174
167
|
'f262': 'f262',
|
|
175
|
-
'f263': 'f263',
|
|
176
168
|
'f265': 'f265',
|
|
177
169
|
'f266': 'f266',
|
|
178
|
-
'f267': 'f267',
|
|
179
170
|
'f268': 'f268',
|
|
180
171
|
'f269': 'f269',
|
|
181
172
|
'f270': 'f270',
|
|
173
|
+
'f271': 'f271',
|
|
174
|
+
'f272': 'f272',
|
|
175
|
+
'f273': 'f273',
|
|
182
176
|
'fair_share': 'fairShare',
|
|
183
177
|
'featured_studios_admin': 'featuredStudiosAdmin',
|
|
184
178
|
'job_artifacts_v2': 'jobArtifactsV2',
|
|
@@ -189,7 +183,6 @@ class V1UserFeatures(object):
|
|
|
189
183
|
'marketplace': 'marketplace',
|
|
190
184
|
'mmt_fault_tolerance': 'mmtFaultTolerance',
|
|
191
185
|
'mmt_strategy_selector': 'mmtStrategySelector',
|
|
192
|
-
'model_api_dashboard': 'modelApiDashboard',
|
|
193
186
|
'multiple_studio_versions': 'multipleStudioVersions',
|
|
194
187
|
'nerf_fs_nonpaying': 'nerfFsNonpaying',
|
|
195
188
|
'org_level_member_permissions': 'orgLevelMemberPermissions',
|
|
@@ -215,14 +208,13 @@ class V1UserFeatures(object):
|
|
|
215
208
|
'specialised_studios': 'specialisedStudios',
|
|
216
209
|
'storage_overuse_deletion': 'storageOveruseDeletion',
|
|
217
210
|
'studio_config': 'studioConfig',
|
|
218
|
-
'studio_sharing_v2': 'studioSharingV2',
|
|
219
211
|
'studio_version_visibility': 'studioVersionVisibility',
|
|
220
212
|
'vultr': 'vultr',
|
|
221
213
|
'weka': 'weka',
|
|
222
214
|
'writable_s3_connections': 'writableS3Connections'
|
|
223
215
|
}
|
|
224
216
|
|
|
225
|
-
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,
|
|
217
|
+
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, f239: '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, f255: 'bool' =None, f258: 'bool' =None, f259: 'bool' =None, f261: 'bool' =None, f262: 'bool' =None, f265: 'bool' =None, f266: 'bool' =None, f268: 'bool' =None, f269: 'bool' =None, f270: 'bool' =None, f271: 'bool' =None, f272: 'bool' =None, f273: '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, lit_logger: '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, pricing_updates: '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, writable_s3_connections: 'bool' =None): # noqa: E501
|
|
226
218
|
"""V1UserFeatures - a model defined in Swagger""" # noqa: E501
|
|
227
219
|
self._affiliate_links = None
|
|
228
220
|
self._agents_v2 = None
|
|
@@ -240,10 +232,8 @@ class V1UserFeatures(object):
|
|
|
240
232
|
self._collab_screen_sharing = None
|
|
241
233
|
self._control_center_monitoring = None
|
|
242
234
|
self._cost_attribution_settings = None
|
|
243
|
-
self._custom_app_domain = None
|
|
244
235
|
self._datasets = None
|
|
245
236
|
self._default_one_cluster = None
|
|
246
|
-
self._deployment_persistent_disk = None
|
|
247
237
|
self._drive_v2 = None
|
|
248
238
|
self._enterprise_compute_admin = None
|
|
249
239
|
self._f234 = None
|
|
@@ -261,16 +251,16 @@ class V1UserFeatures(object):
|
|
|
261
251
|
self._f255 = None
|
|
262
252
|
self._f258 = None
|
|
263
253
|
self._f259 = None
|
|
264
|
-
self._f260 = None
|
|
265
254
|
self._f261 = None
|
|
266
255
|
self._f262 = None
|
|
267
|
-
self._f263 = None
|
|
268
256
|
self._f265 = None
|
|
269
257
|
self._f266 = None
|
|
270
|
-
self._f267 = None
|
|
271
258
|
self._f268 = None
|
|
272
259
|
self._f269 = None
|
|
273
260
|
self._f270 = None
|
|
261
|
+
self._f271 = None
|
|
262
|
+
self._f272 = None
|
|
263
|
+
self._f273 = None
|
|
274
264
|
self._fair_share = None
|
|
275
265
|
self._featured_studios_admin = None
|
|
276
266
|
self._job_artifacts_v2 = None
|
|
@@ -281,7 +271,6 @@ class V1UserFeatures(object):
|
|
|
281
271
|
self._marketplace = None
|
|
282
272
|
self._mmt_fault_tolerance = None
|
|
283
273
|
self._mmt_strategy_selector = None
|
|
284
|
-
self._model_api_dashboard = None
|
|
285
274
|
self._multiple_studio_versions = None
|
|
286
275
|
self._nerf_fs_nonpaying = None
|
|
287
276
|
self._org_level_member_permissions = None
|
|
@@ -307,7 +296,6 @@ class V1UserFeatures(object):
|
|
|
307
296
|
self._specialised_studios = None
|
|
308
297
|
self._storage_overuse_deletion = None
|
|
309
298
|
self._studio_config = None
|
|
310
|
-
self._studio_sharing_v2 = None
|
|
311
299
|
self._studio_version_visibility = None
|
|
312
300
|
self._vultr = None
|
|
313
301
|
self._weka = None
|
|
@@ -345,14 +333,10 @@ class V1UserFeatures(object):
|
|
|
345
333
|
self.control_center_monitoring = control_center_monitoring
|
|
346
334
|
if cost_attribution_settings is not None:
|
|
347
335
|
self.cost_attribution_settings = cost_attribution_settings
|
|
348
|
-
if custom_app_domain is not None:
|
|
349
|
-
self.custom_app_domain = custom_app_domain
|
|
350
336
|
if datasets is not None:
|
|
351
337
|
self.datasets = datasets
|
|
352
338
|
if default_one_cluster is not None:
|
|
353
339
|
self.default_one_cluster = default_one_cluster
|
|
354
|
-
if deployment_persistent_disk is not None:
|
|
355
|
-
self.deployment_persistent_disk = deployment_persistent_disk
|
|
356
340
|
if drive_v2 is not None:
|
|
357
341
|
self.drive_v2 = drive_v2
|
|
358
342
|
if enterprise_compute_admin is not None:
|
|
@@ -387,26 +371,26 @@ class V1UserFeatures(object):
|
|
|
387
371
|
self.f258 = f258
|
|
388
372
|
if f259 is not None:
|
|
389
373
|
self.f259 = f259
|
|
390
|
-
if f260 is not None:
|
|
391
|
-
self.f260 = f260
|
|
392
374
|
if f261 is not None:
|
|
393
375
|
self.f261 = f261
|
|
394
376
|
if f262 is not None:
|
|
395
377
|
self.f262 = f262
|
|
396
|
-
if f263 is not None:
|
|
397
|
-
self.f263 = f263
|
|
398
378
|
if f265 is not None:
|
|
399
379
|
self.f265 = f265
|
|
400
380
|
if f266 is not None:
|
|
401
381
|
self.f266 = f266
|
|
402
|
-
if f267 is not None:
|
|
403
|
-
self.f267 = f267
|
|
404
382
|
if f268 is not None:
|
|
405
383
|
self.f268 = f268
|
|
406
384
|
if f269 is not None:
|
|
407
385
|
self.f269 = f269
|
|
408
386
|
if f270 is not None:
|
|
409
387
|
self.f270 = f270
|
|
388
|
+
if f271 is not None:
|
|
389
|
+
self.f271 = f271
|
|
390
|
+
if f272 is not None:
|
|
391
|
+
self.f272 = f272
|
|
392
|
+
if f273 is not None:
|
|
393
|
+
self.f273 = f273
|
|
410
394
|
if fair_share is not None:
|
|
411
395
|
self.fair_share = fair_share
|
|
412
396
|
if featured_studios_admin is not None:
|
|
@@ -427,8 +411,6 @@ class V1UserFeatures(object):
|
|
|
427
411
|
self.mmt_fault_tolerance = mmt_fault_tolerance
|
|
428
412
|
if mmt_strategy_selector is not None:
|
|
429
413
|
self.mmt_strategy_selector = mmt_strategy_selector
|
|
430
|
-
if model_api_dashboard is not None:
|
|
431
|
-
self.model_api_dashboard = model_api_dashboard
|
|
432
414
|
if multiple_studio_versions is not None:
|
|
433
415
|
self.multiple_studio_versions = multiple_studio_versions
|
|
434
416
|
if nerf_fs_nonpaying is not None:
|
|
@@ -479,8 +461,6 @@ class V1UserFeatures(object):
|
|
|
479
461
|
self.storage_overuse_deletion = storage_overuse_deletion
|
|
480
462
|
if studio_config is not None:
|
|
481
463
|
self.studio_config = studio_config
|
|
482
|
-
if studio_sharing_v2 is not None:
|
|
483
|
-
self.studio_sharing_v2 = studio_sharing_v2
|
|
484
464
|
if studio_version_visibility is not None:
|
|
485
465
|
self.studio_version_visibility = studio_version_visibility
|
|
486
466
|
if vultr is not None:
|
|
@@ -826,27 +806,6 @@ class V1UserFeatures(object):
|
|
|
826
806
|
|
|
827
807
|
self._cost_attribution_settings = cost_attribution_settings
|
|
828
808
|
|
|
829
|
-
@property
|
|
830
|
-
def custom_app_domain(self) -> 'bool':
|
|
831
|
-
"""Gets the custom_app_domain of this V1UserFeatures. # noqa: E501
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
:return: The custom_app_domain of this V1UserFeatures. # noqa: E501
|
|
835
|
-
:rtype: bool
|
|
836
|
-
"""
|
|
837
|
-
return self._custom_app_domain
|
|
838
|
-
|
|
839
|
-
@custom_app_domain.setter
|
|
840
|
-
def custom_app_domain(self, custom_app_domain: 'bool'):
|
|
841
|
-
"""Sets the custom_app_domain of this V1UserFeatures.
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
:param custom_app_domain: The custom_app_domain of this V1UserFeatures. # noqa: E501
|
|
845
|
-
:type: bool
|
|
846
|
-
"""
|
|
847
|
-
|
|
848
|
-
self._custom_app_domain = custom_app_domain
|
|
849
|
-
|
|
850
809
|
@property
|
|
851
810
|
def datasets(self) -> 'bool':
|
|
852
811
|
"""Gets the datasets of this V1UserFeatures. # noqa: E501
|
|
@@ -889,27 +848,6 @@ class V1UserFeatures(object):
|
|
|
889
848
|
|
|
890
849
|
self._default_one_cluster = default_one_cluster
|
|
891
850
|
|
|
892
|
-
@property
|
|
893
|
-
def deployment_persistent_disk(self) -> 'bool':
|
|
894
|
-
"""Gets the deployment_persistent_disk of this V1UserFeatures. # noqa: E501
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
:return: The deployment_persistent_disk of this V1UserFeatures. # noqa: E501
|
|
898
|
-
:rtype: bool
|
|
899
|
-
"""
|
|
900
|
-
return self._deployment_persistent_disk
|
|
901
|
-
|
|
902
|
-
@deployment_persistent_disk.setter
|
|
903
|
-
def deployment_persistent_disk(self, deployment_persistent_disk: 'bool'):
|
|
904
|
-
"""Sets the deployment_persistent_disk of this V1UserFeatures.
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
:param deployment_persistent_disk: The deployment_persistent_disk of this V1UserFeatures. # noqa: E501
|
|
908
|
-
:type: bool
|
|
909
|
-
"""
|
|
910
|
-
|
|
911
|
-
self._deployment_persistent_disk = deployment_persistent_disk
|
|
912
|
-
|
|
913
851
|
@property
|
|
914
852
|
def drive_v2(self) -> 'bool':
|
|
915
853
|
"""Gets the drive_v2 of this V1UserFeatures. # noqa: E501
|
|
@@ -1267,27 +1205,6 @@ class V1UserFeatures(object):
|
|
|
1267
1205
|
|
|
1268
1206
|
self._f259 = f259
|
|
1269
1207
|
|
|
1270
|
-
@property
|
|
1271
|
-
def f260(self) -> 'bool':
|
|
1272
|
-
"""Gets the f260 of this V1UserFeatures. # noqa: E501
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
:return: The f260 of this V1UserFeatures. # noqa: E501
|
|
1276
|
-
:rtype: bool
|
|
1277
|
-
"""
|
|
1278
|
-
return self._f260
|
|
1279
|
-
|
|
1280
|
-
@f260.setter
|
|
1281
|
-
def f260(self, f260: 'bool'):
|
|
1282
|
-
"""Sets the f260 of this V1UserFeatures.
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
:param f260: The f260 of this V1UserFeatures. # noqa: E501
|
|
1286
|
-
:type: bool
|
|
1287
|
-
"""
|
|
1288
|
-
|
|
1289
|
-
self._f260 = f260
|
|
1290
|
-
|
|
1291
1208
|
@property
|
|
1292
1209
|
def f261(self) -> 'bool':
|
|
1293
1210
|
"""Gets the f261 of this V1UserFeatures. # noqa: E501
|
|
@@ -1330,27 +1247,6 @@ class V1UserFeatures(object):
|
|
|
1330
1247
|
|
|
1331
1248
|
self._f262 = f262
|
|
1332
1249
|
|
|
1333
|
-
@property
|
|
1334
|
-
def f263(self) -> 'bool':
|
|
1335
|
-
"""Gets the f263 of this V1UserFeatures. # noqa: E501
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
:return: The f263 of this V1UserFeatures. # noqa: E501
|
|
1339
|
-
:rtype: bool
|
|
1340
|
-
"""
|
|
1341
|
-
return self._f263
|
|
1342
|
-
|
|
1343
|
-
@f263.setter
|
|
1344
|
-
def f263(self, f263: 'bool'):
|
|
1345
|
-
"""Sets the f263 of this V1UserFeatures.
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
:param f263: The f263 of this V1UserFeatures. # noqa: E501
|
|
1349
|
-
:type: bool
|
|
1350
|
-
"""
|
|
1351
|
-
|
|
1352
|
-
self._f263 = f263
|
|
1353
|
-
|
|
1354
1250
|
@property
|
|
1355
1251
|
def f265(self) -> 'bool':
|
|
1356
1252
|
"""Gets the f265 of this V1UserFeatures. # noqa: E501
|
|
@@ -1393,27 +1289,6 @@ class V1UserFeatures(object):
|
|
|
1393
1289
|
|
|
1394
1290
|
self._f266 = f266
|
|
1395
1291
|
|
|
1396
|
-
@property
|
|
1397
|
-
def f267(self) -> 'bool':
|
|
1398
|
-
"""Gets the f267 of this V1UserFeatures. # noqa: E501
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
:return: The f267 of this V1UserFeatures. # noqa: E501
|
|
1402
|
-
:rtype: bool
|
|
1403
|
-
"""
|
|
1404
|
-
return self._f267
|
|
1405
|
-
|
|
1406
|
-
@f267.setter
|
|
1407
|
-
def f267(self, f267: 'bool'):
|
|
1408
|
-
"""Sets the f267 of this V1UserFeatures.
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
:param f267: The f267 of this V1UserFeatures. # noqa: E501
|
|
1412
|
-
:type: bool
|
|
1413
|
-
"""
|
|
1414
|
-
|
|
1415
|
-
self._f267 = f267
|
|
1416
|
-
|
|
1417
1292
|
@property
|
|
1418
1293
|
def f268(self) -> 'bool':
|
|
1419
1294
|
"""Gets the f268 of this V1UserFeatures. # noqa: E501
|
|
@@ -1477,6 +1352,69 @@ class V1UserFeatures(object):
|
|
|
1477
1352
|
|
|
1478
1353
|
self._f270 = f270
|
|
1479
1354
|
|
|
1355
|
+
@property
|
|
1356
|
+
def f271(self) -> 'bool':
|
|
1357
|
+
"""Gets the f271 of this V1UserFeatures. # noqa: E501
|
|
1358
|
+
|
|
1359
|
+
|
|
1360
|
+
:return: The f271 of this V1UserFeatures. # noqa: E501
|
|
1361
|
+
:rtype: bool
|
|
1362
|
+
"""
|
|
1363
|
+
return self._f271
|
|
1364
|
+
|
|
1365
|
+
@f271.setter
|
|
1366
|
+
def f271(self, f271: 'bool'):
|
|
1367
|
+
"""Sets the f271 of this V1UserFeatures.
|
|
1368
|
+
|
|
1369
|
+
|
|
1370
|
+
:param f271: The f271 of this V1UserFeatures. # noqa: E501
|
|
1371
|
+
:type: bool
|
|
1372
|
+
"""
|
|
1373
|
+
|
|
1374
|
+
self._f271 = f271
|
|
1375
|
+
|
|
1376
|
+
@property
|
|
1377
|
+
def f272(self) -> 'bool':
|
|
1378
|
+
"""Gets the f272 of this V1UserFeatures. # noqa: E501
|
|
1379
|
+
|
|
1380
|
+
|
|
1381
|
+
:return: The f272 of this V1UserFeatures. # noqa: E501
|
|
1382
|
+
:rtype: bool
|
|
1383
|
+
"""
|
|
1384
|
+
return self._f272
|
|
1385
|
+
|
|
1386
|
+
@f272.setter
|
|
1387
|
+
def f272(self, f272: 'bool'):
|
|
1388
|
+
"""Sets the f272 of this V1UserFeatures.
|
|
1389
|
+
|
|
1390
|
+
|
|
1391
|
+
:param f272: The f272 of this V1UserFeatures. # noqa: E501
|
|
1392
|
+
:type: bool
|
|
1393
|
+
"""
|
|
1394
|
+
|
|
1395
|
+
self._f272 = f272
|
|
1396
|
+
|
|
1397
|
+
@property
|
|
1398
|
+
def f273(self) -> 'bool':
|
|
1399
|
+
"""Gets the f273 of this V1UserFeatures. # noqa: E501
|
|
1400
|
+
|
|
1401
|
+
|
|
1402
|
+
:return: The f273 of this V1UserFeatures. # noqa: E501
|
|
1403
|
+
:rtype: bool
|
|
1404
|
+
"""
|
|
1405
|
+
return self._f273
|
|
1406
|
+
|
|
1407
|
+
@f273.setter
|
|
1408
|
+
def f273(self, f273: 'bool'):
|
|
1409
|
+
"""Sets the f273 of this V1UserFeatures.
|
|
1410
|
+
|
|
1411
|
+
|
|
1412
|
+
:param f273: The f273 of this V1UserFeatures. # noqa: E501
|
|
1413
|
+
:type: bool
|
|
1414
|
+
"""
|
|
1415
|
+
|
|
1416
|
+
self._f273 = f273
|
|
1417
|
+
|
|
1480
1418
|
@property
|
|
1481
1419
|
def fair_share(self) -> 'bool':
|
|
1482
1420
|
"""Gets the fair_share of this V1UserFeatures. # noqa: E501
|
|
@@ -1687,27 +1625,6 @@ class V1UserFeatures(object):
|
|
|
1687
1625
|
|
|
1688
1626
|
self._mmt_strategy_selector = mmt_strategy_selector
|
|
1689
1627
|
|
|
1690
|
-
@property
|
|
1691
|
-
def model_api_dashboard(self) -> 'bool':
|
|
1692
|
-
"""Gets the model_api_dashboard of this V1UserFeatures. # noqa: E501
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
:return: The model_api_dashboard of this V1UserFeatures. # noqa: E501
|
|
1696
|
-
:rtype: bool
|
|
1697
|
-
"""
|
|
1698
|
-
return self._model_api_dashboard
|
|
1699
|
-
|
|
1700
|
-
@model_api_dashboard.setter
|
|
1701
|
-
def model_api_dashboard(self, model_api_dashboard: 'bool'):
|
|
1702
|
-
"""Sets the model_api_dashboard of this V1UserFeatures.
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
:param model_api_dashboard: The model_api_dashboard of this V1UserFeatures. # noqa: E501
|
|
1706
|
-
:type: bool
|
|
1707
|
-
"""
|
|
1708
|
-
|
|
1709
|
-
self._model_api_dashboard = model_api_dashboard
|
|
1710
|
-
|
|
1711
1628
|
@property
|
|
1712
1629
|
def multiple_studio_versions(self) -> 'bool':
|
|
1713
1630
|
"""Gets the multiple_studio_versions of this V1UserFeatures. # noqa: E501
|
|
@@ -2233,27 +2150,6 @@ class V1UserFeatures(object):
|
|
|
2233
2150
|
|
|
2234
2151
|
self._studio_config = studio_config
|
|
2235
2152
|
|
|
2236
|
-
@property
|
|
2237
|
-
def studio_sharing_v2(self) -> 'bool':
|
|
2238
|
-
"""Gets the studio_sharing_v2 of this V1UserFeatures. # noqa: E501
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
:return: The studio_sharing_v2 of this V1UserFeatures. # noqa: E501
|
|
2242
|
-
:rtype: bool
|
|
2243
|
-
"""
|
|
2244
|
-
return self._studio_sharing_v2
|
|
2245
|
-
|
|
2246
|
-
@studio_sharing_v2.setter
|
|
2247
|
-
def studio_sharing_v2(self, studio_sharing_v2: 'bool'):
|
|
2248
|
-
"""Sets the studio_sharing_v2 of this V1UserFeatures.
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
:param studio_sharing_v2: The studio_sharing_v2 of this V1UserFeatures. # noqa: E501
|
|
2252
|
-
:type: bool
|
|
2253
|
-
"""
|
|
2254
|
-
|
|
2255
|
-
self._studio_sharing_v2 = studio_sharing_v2
|
|
2256
|
-
|
|
2257
2153
|
@property
|
|
2258
2154
|
def studio_version_visibility(self) -> 'bool':
|
|
2259
2155
|
"""Gets the studio_version_visibility of this V1UserFeatures. # noqa: E501
|
lightning_sdk/mmt/base.py
CHANGED
|
@@ -75,6 +75,7 @@ class _BaseMMT(_BaseJob):
|
|
|
75
75
|
artifacts_local: Optional[str] = None, # deprecated in favor of path_mappings
|
|
76
76
|
artifacts_remote: Optional[str] = None, # deprecated in favor of path_mappings
|
|
77
77
|
cluster: Optional[str] = None, # deprecated in favor of cloud_account
|
|
78
|
+
reuse_snapshot: bool = True,
|
|
78
79
|
) -> "_BaseMMT":
|
|
79
80
|
"""Run async workloads using a docker image across multiple machines.
|
|
80
81
|
|
|
@@ -119,6 +120,8 @@ class _BaseMMT(_BaseJob):
|
|
|
119
120
|
Irrelevant for most machines, required for some of the top-end machines on GCP.
|
|
120
121
|
If in doubt, set it. Won't have an effect on machines not requiring it.
|
|
121
122
|
Defaults to 3h
|
|
123
|
+
reuse_snapshot: Whether the job should reuse a Studio snapshot when multiple jobs for the same Studio are
|
|
124
|
+
submitted. Turning this off may result in longer job startup times. Defaults to True.
|
|
122
125
|
"""
|
|
123
126
|
from lightning_sdk.lightning_cloud.openapi.rest import ApiException
|
|
124
127
|
from lightning_sdk.studio import Studio
|
|
@@ -214,6 +217,7 @@ class _BaseMMT(_BaseJob):
|
|
|
214
217
|
artifacts_local=artifacts_local,
|
|
215
218
|
artifacts_remote=artifacts_remote,
|
|
216
219
|
max_runtime=max_runtime,
|
|
220
|
+
reuse_snapshot=reuse_snapshot,
|
|
217
221
|
)
|
|
218
222
|
return inst
|
|
219
223
|
|
|
@@ -236,6 +240,7 @@ class _BaseMMT(_BaseJob):
|
|
|
236
240
|
artifacts_local: Optional[str] = None, # deprecated in favor of path_mappings
|
|
237
241
|
artifacts_remote: Optional[str] = None, # deprecated in favor of path_mappings
|
|
238
242
|
max_runtime: Optional[int] = None,
|
|
243
|
+
reuse_snapshot: bool = True,
|
|
239
244
|
) -> None:
|
|
240
245
|
"""Submit a new multi-machine job to the Lightning AI platform.
|
|
241
246
|
|
|
@@ -271,6 +276,8 @@ class _BaseMMT(_BaseJob):
|
|
|
271
276
|
Irrelevant for most machines, required for some of the top-end machines on GCP.
|
|
272
277
|
If in doubt, set it. Won't have an effect on machines not requiring it.
|
|
273
278
|
Defaults to 3h
|
|
279
|
+
reuse_snapshot: Whether the job should reuse a Studio snapshot when multiple jobs for the same Studio are
|
|
280
|
+
submitted. Turning this off may result in longer job startup times. Defaults to True.
|
|
274
281
|
"""
|
|
275
282
|
|
|
276
283
|
@property
|
lightning_sdk/mmt/mmt.py
CHANGED
|
@@ -102,6 +102,7 @@ class MMT(_BaseMMT):
|
|
|
102
102
|
artifacts_local: Optional[str] = None,
|
|
103
103
|
artifacts_remote: Optional[str] = None,
|
|
104
104
|
cluster: Optional[str] = None, # deprecated in favor of cloud_account
|
|
105
|
+
reuse_snapshot: bool = True,
|
|
105
106
|
) -> "MMT":
|
|
106
107
|
"""Run async workloads using a docker image across multiple machines.
|
|
107
108
|
|
|
@@ -141,6 +142,8 @@ class MMT(_BaseMMT):
|
|
|
141
142
|
}
|
|
142
143
|
If the path inside the connection is omitted it's assumed to be the root path of that connection.
|
|
143
144
|
Only applicable when submitting docker jobs.
|
|
145
|
+
reuse_snapshot: Whether the job should reuse a Studio snapshot when multiple jobs for the same Studio are
|
|
146
|
+
submitted. Turning this off may result in longer job startup times. Defaults to True.
|
|
144
147
|
"""
|
|
145
148
|
ret_val = super().run(
|
|
146
149
|
name=name,
|
|
@@ -164,6 +167,7 @@ class MMT(_BaseMMT):
|
|
|
164
167
|
artifacts_remote=artifacts_remote,
|
|
165
168
|
cluster=cluster, # deprecated in favor of cloud_account
|
|
166
169
|
max_runtime=max_runtime,
|
|
170
|
+
reuse_snapshot=reuse_snapshot,
|
|
167
171
|
)
|
|
168
172
|
# required for typing with "MMT"
|
|
169
173
|
assert isinstance(ret_val, cls)
|
|
@@ -191,6 +195,7 @@ class MMT(_BaseMMT):
|
|
|
191
195
|
max_runtime: Optional[int] = None,
|
|
192
196
|
artifacts_local: Optional[str] = None, # deprecated in favor of path_mappings
|
|
193
197
|
artifacts_remote: Optional[str] = None, # deprecated in favor of path_mappings
|
|
198
|
+
reuse_snapshot: bool = True,
|
|
194
199
|
) -> "MMT":
|
|
195
200
|
"""Submit a new multi-machine job to the Lightning AI platform.
|
|
196
201
|
|
|
@@ -231,6 +236,8 @@ class MMT(_BaseMMT):
|
|
|
231
236
|
Irrelevant for most machines, required for some of the top-end machines on GCP.
|
|
232
237
|
If in doubt, set it. Won't have an effect on machines not requiring it.
|
|
233
238
|
Defaults to 3h
|
|
239
|
+
reuse_snapshot: Whether the job should reuse a Studio snapshot when multiple jobs for the same Studio are
|
|
240
|
+
submitted. Turning this off may result in longer job startup times. Defaults to True.
|
|
234
241
|
"""
|
|
235
242
|
self._job = self._internal_mmt._submit(
|
|
236
243
|
num_machines=num_machines,
|
|
@@ -249,6 +256,7 @@ class MMT(_BaseMMT):
|
|
|
249
256
|
artifacts_local=artifacts_local,
|
|
250
257
|
artifacts_remote=artifacts_remote,
|
|
251
258
|
max_runtime=max_runtime,
|
|
259
|
+
reuse_snapshot=reuse_snapshot,
|
|
252
260
|
)
|
|
253
261
|
return self
|
|
254
262
|
|
lightning_sdk/mmt/v1.py
CHANGED
|
@@ -58,6 +58,7 @@ class _MMTV1(_BaseMMT):
|
|
|
58
58
|
max_runtime: Optional[int] = None,
|
|
59
59
|
artifacts_local: Optional[str] = None,
|
|
60
60
|
artifacts_remote: Optional[str] = None,
|
|
61
|
+
reuse_snapshot: bool = True,
|
|
61
62
|
) -> "_MMTV1":
|
|
62
63
|
"""Submit a new multi-machine job to the Lightning AI platform.
|
|
63
64
|
|
|
@@ -96,7 +97,8 @@ class _MMTV1(_BaseMMT):
|
|
|
96
97
|
Irrelevant for most machines, required for some of the top-end machines on GCP.
|
|
97
98
|
If in doubt, set it. Won't have an effect on machines not requiring it.
|
|
98
99
|
Defaults to 3h
|
|
99
|
-
|
|
100
|
+
reuse_snapshot: Whether the job should reuse a Studio snapshot when multiple jobs for the same Studio are
|
|
101
|
+
submitted. Turning this off may result in longer job startup times. Defaults to True.
|
|
100
102
|
"""
|
|
101
103
|
raise NotImplementedError("Cannot submit new mmts with MMTV1!")
|
|
102
104
|
|
lightning_sdk/mmt/v2.py
CHANGED
|
@@ -58,6 +58,7 @@ class _MMTV2(_BaseMMT):
|
|
|
58
58
|
max_runtime: Optional[int] = None,
|
|
59
59
|
artifacts_local: Optional[str] = None, # deprecated in favor of path_mappings
|
|
60
60
|
artifacts_remote: Optional[str] = None, # deprecated in favor of path_mappings
|
|
61
|
+
reuse_snapshot: bool = True,
|
|
61
62
|
) -> "_MMTV2":
|
|
62
63
|
"""Submit a new multi-machine job to the Lightning AI platform.
|
|
63
64
|
|
|
@@ -98,6 +99,8 @@ class _MMTV2(_BaseMMT):
|
|
|
98
99
|
Irrelevant for most machines, required for some of the top-end machines on GCP.
|
|
99
100
|
If in doubt, set it. Won't have an effect on machines not requiring it.
|
|
100
101
|
Defaults to 3h
|
|
102
|
+
reuse_snapshot: Whether the job should reuse a Studio snapshot when multiple jobs for the same Studio are
|
|
103
|
+
submitted. Turning this off may result in longer job startup times. Defaults to True.
|
|
101
104
|
"""
|
|
102
105
|
# Command is required if Studio is provided to know what to run
|
|
103
106
|
# Image is mutually exclusive with Studio
|
|
@@ -141,6 +144,7 @@ class _MMTV2(_BaseMMT):
|
|
|
141
144
|
artifacts_local=artifacts_local,
|
|
142
145
|
artifacts_remote=artifacts_remote,
|
|
143
146
|
max_runtime=max_runtime,
|
|
147
|
+
reuse_snapshot=reuse_snapshot,
|
|
144
148
|
)
|
|
145
149
|
self._job = submitted
|
|
146
150
|
self._name = submitted.name
|
lightning_sdk/pipeline/steps.py
CHANGED
|
@@ -175,6 +175,7 @@ class JobStep:
|
|
|
175
175
|
path_mappings: Optional[Dict[str, str]] = None,
|
|
176
176
|
max_runtime: Optional[int] = None,
|
|
177
177
|
wait_for: Union[str, List[str], None] = DEFAULT,
|
|
178
|
+
reuse_snapshot: bool = True,
|
|
178
179
|
) -> None:
|
|
179
180
|
self.name = name
|
|
180
181
|
self.machine = machine or Machine.CPU
|
|
@@ -201,6 +202,7 @@ class JobStep:
|
|
|
201
202
|
self.path_mappings = path_mappings
|
|
202
203
|
self.max_runtime = max_runtime
|
|
203
204
|
self.wait_for = wait_for
|
|
205
|
+
self.reuse_snapshot = reuse_snapshot
|
|
204
206
|
|
|
205
207
|
def to_proto(
|
|
206
208
|
self, teamspace: "Teamspace", cloud_account: str, shared_filesystem: Union[bool, V1SharedFilesystem]
|
|
@@ -239,7 +241,7 @@ class JobStep:
|
|
|
239
241
|
artifacts_remote=None,
|
|
240
242
|
max_runtime=self.max_runtime,
|
|
241
243
|
machine_image_version=machine_image_version,
|
|
242
|
-
reuse_snapshot=
|
|
244
|
+
reuse_snapshot=self.reuse_snapshot,
|
|
243
245
|
)
|
|
244
246
|
|
|
245
247
|
return V1PipelineStep(
|
|
@@ -273,6 +275,7 @@ class MMTStep:
|
|
|
273
275
|
path_mappings: Optional[Dict[str, str]] = None,
|
|
274
276
|
max_runtime: Optional[int] = None,
|
|
275
277
|
wait_for: Optional[Union[str, List[str]]] = DEFAULT,
|
|
278
|
+
reuse_snapshot: bool = True,
|
|
276
279
|
) -> None:
|
|
277
280
|
self.machine = machine or Machine.CPU
|
|
278
281
|
self.num_machines = num_machines
|
|
@@ -298,6 +301,7 @@ class MMTStep:
|
|
|
298
301
|
self.path_mappings = path_mappings
|
|
299
302
|
self.max_runtime = max_runtime
|
|
300
303
|
self.wait_for = wait_for
|
|
304
|
+
self.reuse_snapshot = reuse_snapshot
|
|
301
305
|
|
|
302
306
|
def to_proto(
|
|
303
307
|
self, teamspace: "Teamspace", cloud_account: str, shared_filesystem: Union[bool, V1SharedFilesystem]
|
|
@@ -333,6 +337,7 @@ class MMTStep:
|
|
|
333
337
|
artifacts_remote=None, # deprecated in favor of path_mappings
|
|
334
338
|
max_runtime=self.max_runtime,
|
|
335
339
|
machine_image_version=machine_image_version,
|
|
340
|
+
reuse_snapshot=self.reuse_snapshot,
|
|
336
341
|
)
|
|
337
342
|
|
|
338
343
|
return V1PipelineStep(
|