lightning-sdk 2025.12.5__py3-none-any.whl → 2025.12.16__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/agents_api.py +4 -4
- lightning_sdk/api/ai_hub_api.py +2 -2
- lightning_sdk/api/base_studio_api.py +3 -1
- lightning_sdk/api/deployment_api.py +2 -2
- lightning_sdk/api/job_api.py +25 -7
- lightning_sdk/api/license_api.py +2 -2
- lightning_sdk/api/mmt_api.py +5 -5
- lightning_sdk/api/pipeline_api.py +4 -4
- lightning_sdk/api/studio_api.py +33 -33
- lightning_sdk/api/teamspace_api.py +80 -31
- lightning_sdk/api/user_api.py +2 -2
- lightning_sdk/api/utils.py +17 -24
- lightning_sdk/cli/entrypoint.py +16 -12
- lightning_sdk/job/base.py +3 -0
- lightning_sdk/job/job.py +4 -0
- lightning_sdk/job/v1.py +2 -0
- lightning_sdk/job/v2.py +32 -0
- lightning_sdk/lightning_cloud/login.py +1 -1
- lightning_sdk/lightning_cloud/openapi/__init__.py +204 -195
- lightning_sdk/lightning_cloud/openapi/api/agent_service_api.py +28 -28
- lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +108 -108
- lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +69 -57
- lightning_sdk/lightning_cloud/openapi/api/blog_posts_service_api.py +4 -4
- lightning_sdk/lightning_cloud/openapi/api/cloud_space_environment_template_service_api.py +14 -14
- lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +331 -168
- lightning_sdk/lightning_cloud/openapi/api/cloudy_service_api.py +4 -4
- lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +58 -58
- lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +24 -24
- lightning_sdk/lightning_cloud/openapi/api/dataset_service_api.py +8 -8
- lightning_sdk/lightning_cloud/openapi/api/deployment_templates_service_api.py +8 -8
- lightning_sdk/lightning_cloud/openapi/api/endpoint_service_api.py +8 -8
- lightning_sdk/lightning_cloud/openapi/api/experiments_service_api.py +8 -8
- lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +16 -16
- lightning_sdk/lightning_cloud/openapi/api/incidents_service_api.py +18 -18
- lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +514 -254
- lightning_sdk/lightning_cloud/openapi/api/k8_s_cluster_service_api.py +67 -59
- lightning_sdk/lightning_cloud/openapi/api/lightningapp_instance_service_api.py +16 -16
- lightning_sdk/lightning_cloud/openapi/api/lightningapp_v2_service_api.py +6 -6
- lightning_sdk/lightning_cloud/openapi/api/lightningwork_service_api.py +16 -16
- lightning_sdk/lightning_cloud/openapi/api/lit_dataset_service_api.py +42 -42
- lightning_sdk/lightning_cloud/openapi/api/lit_logger_service_api.py +28 -28
- lightning_sdk/lightning_cloud/openapi/api/lit_page_service_api.py +4 -4
- lightning_sdk/lightning_cloud/openapi/api/lit_registry_service_api.py +8 -8
- lightning_sdk/lightning_cloud/openapi/api/models_store_api.py +42 -42
- lightning_sdk/lightning_cloud/openapi/api/organizations_service_api.py +34 -34
- lightning_sdk/lightning_cloud/openapi/api/pipeline_templates_service_api.py +4 -4
- lightning_sdk/lightning_cloud/openapi/api/pipelines_service_api.py +38 -38
- lightning_sdk/lightning_cloud/openapi/api/product_license_service_api.py +4 -4
- lightning_sdk/lightning_cloud/openapi/api/profiler_service_api.py +12 -12
- lightning_sdk/lightning_cloud/openapi/api/projects_service_api.py +32 -32
- lightning_sdk/lightning_cloud/openapi/api/quest_service_api.py +8 -8
- lightning_sdk/lightning_cloud/openapi/api/schedules_service_api.py +48 -48
- lightning_sdk/lightning_cloud/openapi/api/secret_service_api.py +12 -12
- lightning_sdk/lightning_cloud/openapi/api/slurm_jobs_user_service_api.py +16 -16
- lightning_sdk/lightning_cloud/openapi/api/snowflake_service_api.py +16 -16
- lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +40 -40
- lightning_sdk/lightning_cloud/openapi/api/studio_jobs_service_api.py +8 -8
- lightning_sdk/lightning_cloud/openapi/api/user_service_api.py +20 -20
- lightning_sdk/lightning_cloud/openapi/api/volume_service_api.py +4 -4
- lightning_sdk/lightning_cloud/openapi/models/__init__.py +204 -181
- lightning_sdk/lightning_cloud/openapi/models/agent_service_agent_complete_part_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{multipartuploads_upload_id_body.py → agent_service_agent_upload_part_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{id_multipartuploads_body.py → agent_service_create_agent_multipart_upload_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{jobs_id_body.py → agent_service_update_agent_job_body.py} +30 -30
- lightning_sdk/lightning_cloud/openapi/models/{id_artifacts_body.py → agent_service_upload_agent_job_artifact_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{id_output_body.py → agent_service_upload_agent_job_output_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{id_contactowner_body.py → assistants_service_contact_assistant_owner_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{project_id_agents_body.py → assistants_service_create_assistant_body.py} +74 -74
- lightning_sdk/lightning_cloud/openapi/models/{project_id_agentmanagedendpoints_body.py → assistants_service_create_assistant_managed_endpoint_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{message_id_actions_body.py → assistants_service_create_conversation_message_action_body.py} +28 -26
- lightning_sdk/lightning_cloud/openapi/models/{models_model_id_body.py → assistants_service_create_model_metrics_body.py} +26 -26
- lightning_sdk/lightning_cloud/openapi/models/{assistant_id_conversations_body.py → assistants_service_start_conversation_body.py} +74 -74
- lightning_sdk/lightning_cloud/openapi/models/{agents_id_body.py → assistants_service_update_assistant_body.py} +102 -102
- lightning_sdk/lightning_cloud/openapi/models/{agentmanagedendpoints_id_body.py → assistants_service_update_assistant_managed_endpoint_body.py} +42 -42
- lightning_sdk/lightning_cloud/openapi/models/{models_id_body.py → assistants_service_update_assistant_managed_endpoint_model_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/assistants_service_update_conversation_body.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/{conversations_id_body1.py → assistants_service_update_conversation_like_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{id_content_body.py → assistants_service_update_conversation_message_content_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{messages_id_body.py → assistants_service_update_conversation_message_like_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/assistants_service_validate_assistant_status_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/assistants_service_validate_managed_model_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{user_id_upgradetrigger_body.py → billing_service_create_billing_upgrade_trigger_record_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{billing_checkout_body.py → billing_service_create_org_checkout_session_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{billing_transfer_body.py → billing_service_transfer_org_balance_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{billing_transfer_body1.py → billing_service_transfer_project_balance_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{blogposts_id_body.py → blog_posts_service_update_blog_post_body.py} +38 -38
- lightning_sdk/lightning_cloud/openapi/models/{update.py → cloud_space_environment_template_service_update_cloud_space_environment_template_body.py} +58 -58
- lightning_sdk/lightning_cloud/openapi/models/{apps_id_body1.py → cloud_space_service_create_cloud_space_app_instance_body.py} +34 -34
- lightning_sdk/lightning_cloud/openapi/models/{project_id_cloudspaces_body.py → cloud_space_service_create_cloud_space_body.py} +78 -78
- lightning_sdk/lightning_cloud/openapi/models/{cloudspace_id_metric_body.py → cloud_space_service_create_cloud_space_instance_metric_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{cloud_space_id_versions_body.py → cloud_space_service_create_cloud_space_version_body.py} +54 -54
- lightning_sdk/lightning_cloud/openapi/models/{cloud_space_id_versionpublications_body.py → cloud_space_service_create_cloud_space_version_publication_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{cloudspace_id_runs_body.py → cloud_space_service_create_lightning_run_body.py} +86 -86
- lightning_sdk/lightning_cloud/openapi/models/{id_get_body.py → cloud_space_service_create_lightning_run_instance_body.py} +58 -58
- lightning_sdk/lightning_cloud/openapi/models/{id_engage_body1.py → cloud_space_service_engage_cloud_space_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{id_execute_body1.py → cloud_space_service_execute_command_in_cloud_space_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{id_execute_body.py → cloud_space_service_execute_in_cloud_space_session_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{id_fork_body.py → cloud_space_service_fork_cloud_space_app_instance_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{id_fork_body1.py → cloud_space_service_fork_cloud_space_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/cloud_space_service_keep_alive_cloud_space_instance_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{cluster_id_proxies_body.py → cloud_space_service_publish_cloud_space_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{id_index_body1.py → cloud_space_service_refresh_cloud_space_index_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{cloudspace_id_systemmetrics_body.py → cloud_space_service_report_cloud_space_instance_system_metrics_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/cloud_space_service_request_cloud_space_access_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{id_start_body.py → cloud_space_service_start_cloud_space_instance_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{id_transfer_body.py → cloud_space_service_transfer_cloud_space_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{apps_id_body.py → cloud_space_service_update_cloud_space_app_body.py} +86 -86
- lightning_sdk/lightning_cloud/openapi/models/{cloudspaces_id_body.py → cloud_space_service_update_cloud_space_body.py} +114 -114
- lightning_sdk/lightning_cloud/openapi/models/{id_collaborate_body.py → cloud_space_service_update_cloud_space_collab_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{conversations_id_body.py → cloud_space_service_update_cloud_space_ide_body.py} +21 -21
- lightning_sdk/lightning_cloud/openapi/models/{id_index_body.py → cloud_space_service_update_cloud_space_index_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{id_codeconfig_body.py → cloud_space_service_update_cloud_space_instance_config_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{id_publications_body.py → cloud_space_service_update_cloud_space_publication_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{id_sleepconfig_body.py → cloud_space_service_update_cloud_space_sleep_config_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{versions_id_body.py → cloud_space_service_update_cloud_space_version_body.py} +46 -46
- lightning_sdk/lightning_cloud/openapi/models/{cloud_space_id_versionpublications_body1.py → cloud_space_service_update_cloud_space_version_publication_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{dataset_id_visibility_body.py → cloud_space_service_update_cloud_space_visibility_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{user_user_id_body.py → cloudy_service_update_user_cloudy_settings_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{cluster_id_capacityreservations_body.py → cluster_service_create_cluster_capacity_reservation_body.py} +42 -42
- lightning_sdk/lightning_cloud/openapi/models/{id_publications_body1.py → cluster_service_create_cluster_proxy_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{cluster_id_usagerestrictions_body.py → cluster_service_create_cluster_usage_restriction_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{create_machine_request_represents_the_request_to_create_a_machine.py → cluster_service_create_machine_body.py} +62 -62
- lightning_sdk/lightning_cloud/openapi/models/{project_id_clusters_body.py → cluster_service_create_project_cluster_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{server_id_alerts_body.py → cluster_service_create_server_alert_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/cluster_service_interrupt_server_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{cluster_id_capacityblock_body.py → cluster_service_purchase_capacity_block_body.py} +30 -30
- lightning_sdk/lightning_cloud/openapi/models/{servers_server_id_body.py → cluster_service_server_check_in_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/cluster_service_sleep_server_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{clusters_id_body.py → cluster_service_update_cluster_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{usagerestrictions_id_body.py → cluster_service_update_cluster_usage_restriction_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{clusters_id_body1.py → cluster_service_update_project_cluster_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{create.py → data_connection_service_create_data_connection_body.py} +82 -82
- lightning_sdk/lightning_cloud/openapi/models/{id_index_body2.py → data_connection_service_refresh_data_connection_index_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{setup.py → data_connection_service_setup_data_connection_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{update1.py → data_connection_service_update_data_connection_body.py} +50 -50
- lightning_sdk/lightning_cloud/openapi/models/{validate.py → data_connection_service_validate_data_connection_body.py} +42 -42
- lightning_sdk/lightning_cloud/openapi/models/{project_id_datasets_body.py → dataset_service_create_dataset_body.py} +70 -70
- lightning_sdk/lightning_cloud/openapi/models/{datasets_id_body.py → dataset_service_update_dataset_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{id_engage_body.py → deployment_templates_service_engage_deployment_template_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{deploymenttemplates_id_body.py → deployment_templates_service_update_deployment_template_body.py} +70 -70
- lightning_sdk/lightning_cloud/openapi/models/{project_id_endpoints_body.py → endpoint_service_create_endpoint_body.py} +30 -30
- lightning_sdk/lightning_cloud/openapi/models/{endpoints_id_body.py → endpoint_service_update_endpoint_body.py} +62 -62
- lightning_sdk/lightning_cloud/openapi/models/{experiment_name_variant_name_body.py → experiments_service_assign_variant_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{incident_id_messages_body.py → incidents_service_create_incident_message_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{incidents_id_body.py → incidents_service_update_incident_body.py} +34 -34
- lightning_sdk/lightning_cloud/openapi/models/{messages_message_id_body.py → incidents_service_update_incident_message_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{deployment_id_alertingpolicies_body1.py → jobs_service_create_deployment_alerting_policy_body.py} +42 -42
- lightning_sdk/lightning_cloud/openapi/models/{create_deployment_request_defines_a_spec_for_the_job_that_allows_for_autoscaling_jobs.py → jobs_service_create_deployment_body.py} +70 -70
- lightning_sdk/lightning_cloud/openapi/models/{project_id_jobs_body.py → jobs_service_create_job_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{project_id_multimachinejobs_body.py → jobs_service_create_multi_machine_job_body.py} +26 -26
- lightning_sdk/lightning_cloud/openapi/models/{job_id_reportroutingtelemetry_body.py → jobs_service_report_deployment_routing_telemetry_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{job_id_systemmetrics_body.py → jobs_service_report_job_system_metrics_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{id_reportlogsactivity_body.py → jobs_service_report_logs_activity_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{id_reportrestarttimings_body.py → jobs_service_report_restart_timings_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/jobs_service_restore_deployment_release_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{alertingevents_id_body.py → jobs_service_update_deployment_alerting_event_body.py} +54 -54
- lightning_sdk/lightning_cloud/openapi/models/jobs_service_update_deployment_alerting_events_bulk_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/{deployment_id_alertingpolicies_body.py → jobs_service_update_deployment_alerting_policy_body.py} +46 -46
- lightning_sdk/lightning_cloud/openapi/models/{deployments_id_body.py → jobs_service_update_deployment_body.py} +128 -126
- lightning_sdk/lightning_cloud/openapi/models/{id_visibility_body1.py → jobs_service_update_deployment_visibility_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{jobs_id_body1.py → jobs_service_update_job_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{id_index_body3.py → jobs_service_update_job_index_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{id_visibility_body.py → jobs_service_update_job_visibility_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{multimachinejobs_id_body.py → jobs_service_update_multi_machine_job_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{deployments_deployment_id_body.py → jobs_service_update_org_deployment_visibility_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{kubernetestemplates_id_body.py → k8_s_cluster_service_create_kubernetes_template_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{id_render_body.py → k8_s_cluster_service_render_kubernetes_template_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{cluster_id_metrics_body.py → k8_s_cluster_service_report_k8_s_cluster_metrics_body.py} +42 -42
- lightning_sdk/lightning_cloud/openapi/models/{cluster_id_kubernetestemplates_body.py → k8_s_cluster_service_update_kubernetes_template_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{appinstances_id_body.py → lightningapp_instance_service_update_lightningapp_instance_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{id_release_body.py → lightningapp_instance_service_update_lightningapp_instance_release_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{id_uploads_body.py → lightningapp_instance_service_upload_lightningapp_instance_artifact_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{project_id_getapp_body.py → lightningapp_v2_service_create_lightningapp_from_gallery_body.py} +30 -30
- lightning_sdk/lightning_cloud/openapi/models/{app_id_works_body.py → lightningwork_service_batch_update_lightningworks_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{spec_lightningapp_instance_id_works_body.py → lightningwork_service_create_lightningwork_body.py} +24 -24
- lightning_sdk/lightning_cloud/openapi/models/lightningwork_service_create_lightningwork_body_spec.py +487 -0
- lightning_sdk/lightning_cloud/openapi/models/{works_id_body.py → lightningwork_service_update_lightningwork_body.py} +16 -16
- lightning_sdk/lightning_cloud/openapi/models/{upload_id_complete_body1.py → lit_dataset_service_complete_lit_dataset_multi_part_upload_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/lit_dataset_service_complete_lit_dataset_upload_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{project_id_models_body.py → lit_dataset_service_create_lit_dataset_body.py} +26 -26
- lightning_sdk/lightning_cloud/openapi/models/{version_uploads_body1.py → lit_dataset_service_create_lit_dataset_multi_part_upload_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{dataset_id_versions_body.py → lit_dataset_service_create_lit_dataset_version_body.py} +16 -14
- lightning_sdk/lightning_cloud/openapi/models/{upload_id_parts_body.py → lit_dataset_service_get_lit_dataset_file_upload_urls_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{version_default_body.py → lit_dataset_service_set_lit_dataset_default_version_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{litdatasets_dataset_id_body.py → lit_dataset_service_update_lit_dataset_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{versions_version_body.py → lit_dataset_service_update_lit_dataset_version_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{id_visibility_body2.py → lit_dataset_service_update_lit_dataset_visibility_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{loggermetrics_id_body.py → lit_logger_service_append_logger_metrics_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{metrics_stream_id_loggerartifacts_body.py → lit_logger_service_create_logger_artifact_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{metricsstream_create_body.py → lit_logger_service_create_metrics_stream_body.py} +62 -62
- lightning_sdk/lightning_cloud/openapi/models/{metricsstream_delete_body.py → lit_logger_service_delete_metrics_stream_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{metricsstream_id_body.py → lit_logger_service_update_metrics_stream_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{model_id_visibility_body.py → lit_logger_service_update_metrics_stream_visibility_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{litloggermetrics_id_body.py → lit_logger_service_update_shared_metrics_stream_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{litpages_id_body.py → lit_page_service_update_lit_page_body.py} +42 -42
- lightning_sdk/lightning_cloud/openapi/models/{project_id_litregistry_body.py → lit_registry_service_create_lit_project_registry_body.py} +12 -12
- lightning_sdk/lightning_cloud/openapi/models/{litregistry_lit_repo_name_body.py → lit_registry_service_update_lit_repository_metadata_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/models_store_complete_model_upload_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{upload_id_complete_body.py → models_store_complete_multi_part_upload_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{project_id_litdatasets_body.py → models_store_create_model_body.py} +26 -26
- lightning_sdk/lightning_cloud/openapi/models/{model_id_versions_body.py → models_store_create_model_version_body.py} +20 -18
- lightning_sdk/lightning_cloud/openapi/models/{version_uploads_body.py → models_store_create_multi_part_upload_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{upload_id_parts_body1.py → models_store_get_model_file_upload_urls_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{version_default_body1.py → models_store_set_model_default_version_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{models_model_id_body1.py → models_store_update_model_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{versions_version_body1.py → models_store_update_model_version_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{cloudspace_id_visibility_body.py → models_store_update_model_visibility_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{approveautojoindomain_domain_body.py → organizations_service_approve_auto_join_domain_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/organizations_service_auto_join_org_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{org_id_memberships_body.py → organizations_service_create_org_membership_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{user_id_membershiprolebindings_body1.py → organizations_service_create_org_membership_role_binding_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{org_id_roles_body.py → organizations_service_create_org_role_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{orgs_id_body.py → organizations_service_update_organization_body.py} +162 -162
- lightning_sdk/lightning_cloud/openapi/models/{credits_autoreplenish_body.py → organizations_service_update_organization_credits_auto_replenish_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{validateautojoindomain_domain_body.py → organizations_service_validate_auto_join_domain_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{pipelinetemplates_id_body.py → pipeline_templates_service_update_pipeline_template_body.py} +42 -42
- lightning_sdk/lightning_cloud/openapi/models/{pipelines_id_body1.py → pipelines_service_create_child_pipeline_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{project_id_pipelines_body.py → pipelines_service_create_pipeline_body.py} +30 -30
- lightning_sdk/lightning_cloud/openapi/models/{pipelines_id_body.py → pipelines_service_update_pipeline_body.py} +74 -74
- lightning_sdk/lightning_cloud/openapi/models/{license_key_validate_body.py → product_license_service_validate_license_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{profiler_captures_body.py → profiler_service_create_profiler_capture_body.py} +34 -34
- lightning_sdk/lightning_cloud/openapi/models/{captures_id_body.py → profiler_service_update_profiler_capture_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{profiler_enabled_body.py → profiler_service_update_profiler_enabled_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{project_id_projectclustersbindings_body.py → projects_service_create_project_cluster_binding_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{project_id_memberships_body.py → projects_service_create_project_membership_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{user_id_membershiprolebindings_body.py → projects_service_create_project_membership_role_binding_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{projects_project_id_body.py → projects_service_create_project_role_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{project_id_invite_body.py → projects_service_invite_project_membership_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{projects_id_body.py → projects_service_update_project_body.py} +110 -110
- lightning_sdk/lightning_cloud/openapi/models/{project_tab_management_messages.py → projects_service_update_project_tab_order_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/protobuf_any.py +7 -58
- lightning_sdk/lightning_cloud/openapi/models/quest_service_complete_quest_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/quest_service_start_quest_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{project_id_schedules_body.py → schedules_service_create_schedule_body.py} +42 -42
- lightning_sdk/lightning_cloud/openapi/models/schedules_service_create_schedule_run_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{schedules_id_body.py → schedules_service_update_schedule_body.py} +70 -70
- lightning_sdk/lightning_cloud/openapi/models/{project_id_secrets_body.py → secret_service_create_secret_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{secrets_id_body1.py → secret_service_update_secret_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{secrets_id_body.py → secret_service_update_user_secret_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{cluster_id_slurmusers_body.py → slurm_jobs_user_service_create_slurm_cluster_user_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{slurm_jobs_body.py → slurm_jobs_user_service_create_user_slurm_job_body.py} +54 -54
- lightning_sdk/lightning_cloud/openapi/models/{jobs_id_body2.py → slurm_jobs_user_service_update_user_slurm_job_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{id_action_body.py → slurm_jobs_user_service_user_slurm_job_action_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{project_id_snowflake_body.py → snowflake_service_create_snowflake_connection_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{query_query_id_body.py → snowflake_service_execute_snowflake_query_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/{snowflake_export_body.py → snowflake_service_export_snowflake_query_body.py} +38 -38
- lightning_sdk/lightning_cloud/openapi/models/{snowflake_query_body.py → snowflake_service_update_snowflake_query_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/storage_service_abort_storage_transfer_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{storage_complete_body.py → storage_service_complete_upload_project_artifact_body.py} +30 -30
- lightning_sdk/lightning_cloud/openapi/models/{project_id_storagetransfers_body.py → storage_service_create_storage_transfer_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/storage_service_pause_storage_transfer_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/storage_service_resume_storage_transfer_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{project_id_storage_body.py → storage_service_upload_project_artifact_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{uploads_upload_id_body1.py → storage_service_upload_project_artifact_parts_body.py} +22 -22
- lightning_sdk/lightning_cloud/openapi/models/{uploads_upload_id_body.py → storage_service_upload_temporary_artifact_parts_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{storagetransfers_validate_body.py → storage_service_validate_storage_transfer_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{studioapp_jobs_body.py → studio_jobs_service_create_studio_job_body.py} +34 -34
- lightning_sdk/lightning_cloud/openapi/models/{jobs_id_body3.py → studio_jobs_service_update_studio_job_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{user_id_affiliatelinks_body.py → user_service_create_affiliate_link_body.py} +30 -30
- lightning_sdk/lightning_cloud/openapi/models/{affiliatelinks_id_body.py → user_service_update_affiliate_link_body.py} +14 -14
- lightning_sdk/lightning_cloud/openapi/models/{credits_autoreplenish_body1.py → user_service_update_user_credits_auto_replenish_body.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/user_service_upload_settings_body.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_autoscaling_target_metric.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_aws_data_connection.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_billing_subscription.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_conversation.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_conversation_response_chunk.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_checkout_session_request.py +4 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_data_connection.py +6 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_alerting_policy_type.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_event.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_experiment.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_external_cluster_spec.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_generic_job.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_generic_job_spec.py +253 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_group_pod_metrics.py +6 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_health_check_http_get.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_incident.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_job.py +6 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_job_health_check_config.py +55 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +59 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_direct_v1.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_lit_dataset_version_archive.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_machine.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_machine_direct_v1.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_message_action.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_model_version_archive.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_event.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_pipeline_step_status.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_server_alert_severity.py +1 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_slurm_v1.py +4 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_slurm_v1_status.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_deployment_alerting_events_bulk_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_user_request.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_usage_report.py +6 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +183 -79
- lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_compute_config.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_flow_compute_config.py +2 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_volume.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/{volumes_id_body.py → volume_service_update_volume_body.py} +10 -10
- lightning_sdk/lightning_cloud/utils/data_connection.py +14 -8
- lightning_sdk/lightning_cloud/utils/dataset.py +3 -5
- lightning_sdk/machine.py +1 -0
- lightning_sdk/pipeline/steps.py +3 -0
- lightning_sdk/plugin.py +2 -2
- lightning_sdk/teamspace.py +44 -5
- {lightning_sdk-2025.12.5.dist-info → lightning_sdk-2025.12.16.dist-info}/METADATA +1 -1
- {lightning_sdk-2025.12.5.dist-info → lightning_sdk-2025.12.16.dist-info}/RECORD +315 -292
- {lightning_sdk-2025.12.5.dist-info → lightning_sdk-2025.12.16.dist-info}/LICENSE +0 -0
- {lightning_sdk-2025.12.5.dist-info → lightning_sdk-2025.12.16.dist-info}/WHEEL +0 -0
- {lightning_sdk-2025.12.5.dist-info → lightning_sdk-2025.12.16.dist-info}/entry_points.txt +0 -0
- {lightning_sdk-2025.12.5.dist-info → lightning_sdk-2025.12.16.dist-info}/top_level.txt +0 -0
lightning_sdk/api/utils.py
CHANGED
|
@@ -17,13 +17,16 @@ from tqdm.auto import tqdm
|
|
|
17
17
|
from lightning_sdk.constants import __GLOBAL_LIGHTNING_UNIQUE_IDS_STORE__, _LIGHTNING_DEBUG
|
|
18
18
|
from lightning_sdk.lightning_cloud.openapi import (
|
|
19
19
|
CloudSpaceServiceApi,
|
|
20
|
+
CloudSpaceServiceCreateCloudSpaceAppInstanceBody,
|
|
20
21
|
Externalv1LightningappInstance,
|
|
21
22
|
ModelsStoreApi,
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
ModelsStoreCompleteMultiPartUploadBody,
|
|
24
|
+
ModelsStoreCreateMultiPartUploadBody,
|
|
25
|
+
ModelsStoreGetModelFileUploadUrlsBody,
|
|
24
26
|
StorageServiceApi,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
StorageServiceCompleteUploadProjectArtifactBody,
|
|
28
|
+
StorageServiceUploadProjectArtifactBody,
|
|
29
|
+
StorageServiceUploadProjectArtifactPartsBody,
|
|
27
30
|
V1CompletedPart,
|
|
28
31
|
V1CompleteUpload,
|
|
29
32
|
V1PathMapping,
|
|
@@ -31,20 +34,8 @@ from lightning_sdk.lightning_cloud.openapi import (
|
|
|
31
34
|
V1SignedUrl,
|
|
32
35
|
V1UploadProjectArtifactPartsResponse,
|
|
33
36
|
V1UploadProjectArtifactResponse,
|
|
34
|
-
VersionUploadsBody,
|
|
35
37
|
)
|
|
36
38
|
from lightning_sdk.lightning_cloud.openapi.models.v1_model_version_archive import V1ModelVersionArchive
|
|
37
|
-
|
|
38
|
-
try:
|
|
39
|
-
from lightning_sdk.lightning_cloud.openapi import AppsIdBody1 as AppsIdBody
|
|
40
|
-
except ImportError:
|
|
41
|
-
from lightning_sdk.lightning_cloud.openapi import AppsIdBody
|
|
42
|
-
|
|
43
|
-
try:
|
|
44
|
-
from lightning_sdk.lightning_cloud.openapi import UploadsUploadIdBody1 as UploadsUploadIdBody
|
|
45
|
-
except ImportError:
|
|
46
|
-
from lightning_sdk.lightning_cloud.openapi import UploadsUploadIdBody
|
|
47
|
-
|
|
48
39
|
from lightning_sdk.lightning_cloud.openapi.rest import ApiException
|
|
49
40
|
from lightning_sdk.lightning_cloud.rest_client import LightningClient
|
|
50
41
|
from lightning_sdk.machine import Machine
|
|
@@ -120,7 +111,7 @@ class _FileUploader:
|
|
|
120
111
|
|
|
121
112
|
def _multipart_upload(self, count: int) -> None:
|
|
122
113
|
"""Does a parallel multipart upload."""
|
|
123
|
-
body =
|
|
114
|
+
body = StorageServiceUploadProjectArtifactBody(cluster_id=self.cloud_account, filename=self.remote_path)
|
|
124
115
|
resp: V1UploadProjectArtifactResponse = self.client.storage_service_upload_project_artifact(
|
|
125
116
|
body=body, project_id=self.teamspace_id
|
|
126
117
|
)
|
|
@@ -135,7 +126,7 @@ class _FileUploader:
|
|
|
135
126
|
for batch in batched_indices:
|
|
136
127
|
completed.extend(self._process_upload_batch(executor=p, batch=batch, upload_id=resp.upload_id))
|
|
137
128
|
|
|
138
|
-
completed_body =
|
|
129
|
+
completed_body = StorageServiceCompleteUploadProjectArtifactBody(
|
|
139
130
|
cluster_id=self.cloud_account, filename=self.remote_path, parts=completed, upload_id=resp.upload_id
|
|
140
131
|
)
|
|
141
132
|
self.client.storage_service_complete_upload_project_artifact(body=completed_body, project_id=self.teamspace_id)
|
|
@@ -148,7 +139,9 @@ class _FileUploader:
|
|
|
148
139
|
|
|
149
140
|
def _request_urls(self, parts: List[int], upload_id: str) -> List[V1PresignedUrl]:
|
|
150
141
|
"""Requests urls for a batch of parts."""
|
|
151
|
-
body =
|
|
142
|
+
body = StorageServiceUploadProjectArtifactPartsBody(
|
|
143
|
+
filename=self.remote_path, parts=parts, cluster_id=self.cloud_account
|
|
144
|
+
)
|
|
152
145
|
resp: V1UploadProjectArtifactPartsResponse = self.client.storage_service_upload_project_artifact_parts(
|
|
153
146
|
body, self.teamspace_id, upload_id
|
|
154
147
|
)
|
|
@@ -244,7 +237,7 @@ class _ModelFileUploader:
|
|
|
244
237
|
|
|
245
238
|
def _multipart_upload(self, count: int) -> None:
|
|
246
239
|
"""Does a parallel multipart upload."""
|
|
247
|
-
body =
|
|
240
|
+
body = ModelsStoreCreateMultiPartUploadBody(filepath=self.remote_path)
|
|
248
241
|
resp = self.api.models_store_create_multi_part_upload(
|
|
249
242
|
body,
|
|
250
243
|
project_id=self.teamspace_id,
|
|
@@ -262,7 +255,7 @@ class _ModelFileUploader:
|
|
|
262
255
|
for batch in batched_indices:
|
|
263
256
|
completed.extend(self._process_upload_batch(executor=p, batch=batch, upload_id=resp.upload_id))
|
|
264
257
|
|
|
265
|
-
completed_body =
|
|
258
|
+
completed_body = ModelsStoreCompleteMultiPartUploadBody(filepath=self.remote_path, parts=completed)
|
|
266
259
|
self.api.models_store_complete_multi_part_upload(
|
|
267
260
|
completed_body,
|
|
268
261
|
project_id=self.teamspace_id,
|
|
@@ -279,7 +272,7 @@ class _ModelFileUploader:
|
|
|
279
272
|
|
|
280
273
|
def _request_urls(self, parts: List[int], upload_id: str) -> List[V1SignedUrl]:
|
|
281
274
|
"""Requests urls for a batch of parts."""
|
|
282
|
-
body =
|
|
275
|
+
body = ModelsStoreGetModelFileUploadUrlsBody(filepath=self.remote_path, parts=parts)
|
|
283
276
|
resp = self.api.models_store_get_model_file_upload_urls(
|
|
284
277
|
body,
|
|
285
278
|
project_id=self.teamspace_id,
|
|
@@ -363,7 +356,7 @@ def _sanitize_studio_remote_path(path: str, studio_id: str) -> str:
|
|
|
363
356
|
|
|
364
357
|
|
|
365
358
|
def _resolve_teamspace_remote_path(path: str) -> str:
|
|
366
|
-
return f"/Uploads/{path.replace('/teamspace/
|
|
359
|
+
return f"/Uploads/{path.replace('/teamspace/uploads/', '')}"
|
|
367
360
|
|
|
368
361
|
|
|
369
362
|
_DOWNLOAD_REQUEST_CHUNK_SIZE = 10 * _BYTES_PER_MB
|
|
@@ -676,7 +669,7 @@ def _create_app(
|
|
|
676
669
|
other_arguments["spot"] = str(other_arguments["interruptible"]).lower()
|
|
677
670
|
del other_arguments["interruptible"]
|
|
678
671
|
|
|
679
|
-
body =
|
|
672
|
+
body = CloudSpaceServiceCreateCloudSpaceAppInstanceBody(
|
|
680
673
|
cluster_id=cloud_account,
|
|
681
674
|
plugin_arguments=other_arguments,
|
|
682
675
|
service_id=os.getenv(_LIGHTNING_SERVICE_EXECUTION_ID_KEY),
|
lightning_sdk/cli/entrypoint.py
CHANGED
|
@@ -40,22 +40,26 @@ main_cli.context_class.formatter_class = CustomHelpFormatter
|
|
|
40
40
|
@main_cli.command
|
|
41
41
|
def login() -> None:
|
|
42
42
|
"""Login to Lightning AI Studios."""
|
|
43
|
-
if
|
|
44
|
-
|
|
43
|
+
# try to fetch credentials, if successful (e.g. in a Studio or already logged in), no need to relogin
|
|
44
|
+
auth = Auth()
|
|
45
|
+
if (auth.user_id and auth.api_key) or auth.load():
|
|
45
46
|
try:
|
|
46
47
|
auth_user = _get_authed_user()
|
|
48
|
+
click.echo(f'You are currently logged in as "{auth_user.name}"')
|
|
47
49
|
except Exception:
|
|
48
|
-
|
|
50
|
+
click.echo("You are already logged in")
|
|
51
|
+
click.echo('"lightning login" is not required within a Studio or when already logged in')
|
|
52
|
+
return
|
|
49
53
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
if in_studio():
|
|
55
|
+
# this is unexpected, as we automatically auth within a Studio
|
|
56
|
+
raise RuntimeError("Unable to login within a Studio. Did you change your shell setup?") from None
|
|
57
|
+
|
|
58
|
+
auth.clear()
|
|
59
|
+
try:
|
|
60
|
+
auth.authenticate()
|
|
61
|
+
except ConnectionError:
|
|
62
|
+
raise RuntimeError(f"Unable to connect to {_cloud_url()}. Please check your internet connection.") from None
|
|
59
63
|
|
|
60
64
|
|
|
61
65
|
@main_cli.command
|
lightning_sdk/job/base.py
CHANGED
|
@@ -92,6 +92,7 @@ class _BaseJob(ABC, metaclass=TrackCallsABCMeta):
|
|
|
92
92
|
max_runtime: Optional[int] = None,
|
|
93
93
|
cluster: Optional[str] = None, # deprecated in favor of cloud_account
|
|
94
94
|
reuse_snapshot: bool = True,
|
|
95
|
+
scratch_disks: Optional[Dict[str, int]] = None,
|
|
95
96
|
) -> "_BaseJob":
|
|
96
97
|
"""Run async workloads using a docker image or a compute environment from your studio.
|
|
97
98
|
|
|
@@ -236,6 +237,7 @@ class _BaseJob(ABC, metaclass=TrackCallsABCMeta):
|
|
|
236
237
|
path_mappings=path_mappings,
|
|
237
238
|
max_runtime=max_runtime,
|
|
238
239
|
reuse_snapshot=reuse_snapshot,
|
|
240
|
+
scratch_disks=scratch_disks,
|
|
239
241
|
)
|
|
240
242
|
|
|
241
243
|
@abstractmethod
|
|
@@ -257,6 +259,7 @@ class _BaseJob(ABC, metaclass=TrackCallsABCMeta):
|
|
|
257
259
|
path_mappings: Optional[Dict[str, str]] = None,
|
|
258
260
|
max_runtime: Optional[int] = None,
|
|
259
261
|
reuse_snapshot: bool = True,
|
|
262
|
+
scratch_disks: Optional[Dict[str, int]] = None,
|
|
260
263
|
) -> "_BaseJob":
|
|
261
264
|
"""Submit a new job to the Lightning AI platform.
|
|
262
265
|
|
lightning_sdk/job/job.py
CHANGED
|
@@ -104,6 +104,7 @@ class Job(_BaseJob):
|
|
|
104
104
|
artifacts_remote: Optional[str] = None, # deprecated in terms of path_mappings
|
|
105
105
|
cluster: Optional[str] = None, # deprecated in favor of cloud_account
|
|
106
106
|
reuse_snapshot: bool = True,
|
|
107
|
+
scratch_disks: Optional[Dict[str, int]] = None,
|
|
107
108
|
) -> "Job":
|
|
108
109
|
"""Run async workloads using a docker image or a compute environment from your studio.
|
|
109
110
|
|
|
@@ -172,6 +173,7 @@ class Job(_BaseJob):
|
|
|
172
173
|
max_runtime=max_runtime,
|
|
173
174
|
cluster=cluster,
|
|
174
175
|
reuse_snapshot=reuse_snapshot,
|
|
176
|
+
scratch_disks=scratch_disks,
|
|
175
177
|
)
|
|
176
178
|
# required for typing with "Job"
|
|
177
179
|
assert isinstance(ret_val, cls)
|
|
@@ -197,6 +199,7 @@ class Job(_BaseJob):
|
|
|
197
199
|
artifacts_remote: Optional[str] = None, # deprecated in terms of path_mappings
|
|
198
200
|
max_runtime: Optional[int] = None,
|
|
199
201
|
reuse_snapshot: bool = True,
|
|
202
|
+
scratch_disks: Optional[Dict[str, int]] = None,
|
|
200
203
|
) -> "Job":
|
|
201
204
|
"""Submit a new job to the Lightning AI platform.
|
|
202
205
|
|
|
@@ -255,6 +258,7 @@ class Job(_BaseJob):
|
|
|
255
258
|
artifacts_remote=artifacts_remote,
|
|
256
259
|
max_runtime=max_runtime,
|
|
257
260
|
reuse_snapshot=reuse_snapshot,
|
|
261
|
+
scratch_disks=scratch_disks,
|
|
258
262
|
)
|
|
259
263
|
return self
|
|
260
264
|
|
lightning_sdk/job/v1.py
CHANGED
|
@@ -55,6 +55,7 @@ class _JobV1(_BaseJob):
|
|
|
55
55
|
interruptible: bool = False,
|
|
56
56
|
cluster: Optional[str] = None, # deprecated in favor of cloud_account
|
|
57
57
|
reuse_snapshot: bool = True,
|
|
58
|
+
scratch_disks: Optional[Dict[str, int]] = None,
|
|
58
59
|
) -> "_BaseJob":
|
|
59
60
|
"""Start a new async workload from your studio.
|
|
60
61
|
|
|
@@ -111,6 +112,7 @@ class _JobV1(_BaseJob):
|
|
|
111
112
|
path_mappings: Optional[Dict[str, str]] = None,
|
|
112
113
|
max_runtime: Optional[int] = None,
|
|
113
114
|
reuse_snapshot: bool = True,
|
|
115
|
+
scratch_disks: Optional[Dict[str, int]] = None,
|
|
114
116
|
) -> "_JobV1":
|
|
115
117
|
"""Submit a job to run on a machine.
|
|
116
118
|
|
lightning_sdk/job/v2.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from pathlib import PurePath
|
|
1
2
|
from typing import TYPE_CHECKING, Dict, Optional, Union
|
|
2
3
|
|
|
3
4
|
from lightning_sdk.api.job_api import JobApiV2
|
|
@@ -54,6 +55,7 @@ class _JobV2(_BaseJob):
|
|
|
54
55
|
artifacts_local: Optional[str] = None, # deprecated in favor of path_mappings
|
|
55
56
|
artifacts_remote: Optional[str] = None, # deprecated in favor of path_mappings
|
|
56
57
|
reuse_snapshot: bool = True,
|
|
58
|
+
scratch_disks: Optional[Dict[str, int]] = None,
|
|
57
59
|
) -> "_JobV2":
|
|
58
60
|
"""Submit a new job to the Lightning AI platform.
|
|
59
61
|
|
|
@@ -90,6 +92,11 @@ class _JobV2(_BaseJob):
|
|
|
90
92
|
Defaults to 3h
|
|
91
93
|
reuse_snapshot: Whether the job should reuse a Studio snapshot when multiple jobs for the same Studio are
|
|
92
94
|
submitted. Turning this off may result in longer job startup times. Defaults to True.
|
|
95
|
+
scratch_disks: Dictionary of scratch disks to add to the job. The keys are the path that the disk
|
|
96
|
+
will be mounted to, relative to the /teamspace/scratch directory. The values are the size of
|
|
97
|
+
the volume in GiB. For example, { "data": 100 } will add a 100GiB volume available under
|
|
98
|
+
/teamspace/scratch/data.
|
|
99
|
+
|
|
93
100
|
"""
|
|
94
101
|
# Command is required if Studio is provided to know what to run
|
|
95
102
|
# Image is mutually exclusive with Studio
|
|
@@ -115,6 +122,30 @@ class _JobV2(_BaseJob):
|
|
|
115
122
|
default_cloud_account=self._teamspace.default_cloud_account,
|
|
116
123
|
)
|
|
117
124
|
|
|
125
|
+
if scratch_disks is not None and len(scratch_disks) > 0:
|
|
126
|
+
if studio is None:
|
|
127
|
+
raise ValueError("scratch_disks are only supported within a studio job")
|
|
128
|
+
|
|
129
|
+
if len(scratch_disks) > 5:
|
|
130
|
+
raise ValueError("scratch_disk may only contain up to 5 elements")
|
|
131
|
+
|
|
132
|
+
for path, size in scratch_disks.items():
|
|
133
|
+
if size > 50000:
|
|
134
|
+
raise ValueError("scratch_disk size cannot exceed 50TiB")
|
|
135
|
+
|
|
136
|
+
path = PurePath(path)
|
|
137
|
+
|
|
138
|
+
if path.is_absolute():
|
|
139
|
+
# For compatibility with Python 3.8, which doesn't provide
|
|
140
|
+
# pathlib.PurePath.is_relative_to.
|
|
141
|
+
try:
|
|
142
|
+
path.relative_to("/teamspace/scratch")
|
|
143
|
+
except ValueError:
|
|
144
|
+
raise ValueError("scratch_disk paths must be relative to /teamspace/scratch") from None
|
|
145
|
+
|
|
146
|
+
if ".." in path.parts:
|
|
147
|
+
raise ValueError("scratch_disk path cannot contain '..'")
|
|
148
|
+
|
|
118
149
|
submitted = self._job_api.submit_job(
|
|
119
150
|
name=self.name,
|
|
120
151
|
command=command,
|
|
@@ -133,6 +164,7 @@ class _JobV2(_BaseJob):
|
|
|
133
164
|
path_mappings=path_mappings,
|
|
134
165
|
max_runtime=max_runtime,
|
|
135
166
|
reuse_snapshot=reuse_snapshot,
|
|
167
|
+
scratch_disks=scratch_disks,
|
|
136
168
|
)
|
|
137
169
|
self._job = submitted
|
|
138
170
|
self._name = submitted.name
|
|
@@ -268,7 +268,7 @@ class Auth:
|
|
|
268
268
|
self.save(user_id=user_id, api_key=api_key)
|
|
269
269
|
logger.info("Successfully authenticated as a guest user.")
|
|
270
270
|
|
|
271
|
-
return self.
|
|
271
|
+
return self.authenticate()
|
|
272
272
|
|
|
273
273
|
def token_login(self, token_key: str, save_token: bool = True) -> Optional[str]:
|
|
274
274
|
"""Performs token-based authentication.
|