lightning-sdk 0.1.3__py3-none-any.whl → 0.1.46__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 +12 -2
- lightning_sdk/agents.py +46 -0
- lightning_sdk/ai_hub.py +185 -0
- lightning_sdk/api/__init__.py +4 -0
- lightning_sdk/api/agents_api.py +107 -0
- lightning_sdk/api/ai_hub_api.py +130 -0
- lightning_sdk/api/deployment_api.py +574 -0
- lightning_sdk/api/job_api.py +308 -0
- lightning_sdk/api/mmt_api.py +188 -0
- lightning_sdk/api/org_api.py +1 -3
- lightning_sdk/api/studio_api.py +172 -81
- lightning_sdk/api/teamspace_api.py +219 -20
- lightning_sdk/api/user_api.py +24 -9
- lightning_sdk/api/utils.py +429 -48
- lightning_sdk/cli/ai_hub.py +49 -0
- lightning_sdk/cli/download.py +132 -0
- lightning_sdk/cli/entrypoint.py +11 -3
- lightning_sdk/cli/run.py +206 -0
- lightning_sdk/cli/serve.py +218 -0
- lightning_sdk/cli/studios_menu.py +78 -0
- lightning_sdk/cli/upload.py +79 -89
- lightning_sdk/constants.py +29 -1
- lightning_sdk/deployment/__init__.py +25 -0
- lightning_sdk/deployment/deployment.py +389 -0
- lightning_sdk/helpers.py +49 -0
- lightning_sdk/job/__init__.py +5 -0
- lightning_sdk/job/base.py +295 -0
- lightning_sdk/job/job.py +266 -0
- lightning_sdk/job/v1.py +241 -0
- lightning_sdk/job/v2.py +193 -0
- lightning_sdk/job/work.py +72 -0
- lightning_sdk/lightning_cloud/__version__.py +1 -1
- lightning_sdk/lightning_cloud/cli/__main__.py +15 -13
- lightning_sdk/lightning_cloud/env.py +1 -0
- lightning_sdk/lightning_cloud/login.py +12 -8
- lightning_sdk/lightning_cloud/openapi/__init__.py +288 -42
- lightning_sdk/lightning_cloud/openapi/api/__init__.py +10 -0
- lightning_sdk/lightning_cloud/openapi/api/analytics_service_api.py +141 -0
- lightning_sdk/lightning_cloud/openapi/api/assistants_service_api.py +1075 -227
- lightning_sdk/lightning_cloud/openapi/api/billing_service_api.py +9 -1
- lightning_sdk/lightning_cloud/openapi/api/cloud_space_service_api.py +992 -233
- lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +883 -120
- lightning_sdk/lightning_cloud/openapi/api/data_connection_service_api.py +10 -5
- lightning_sdk/lightning_cloud/openapi/api/deployment_templates_service_api.py +756 -0
- lightning_sdk/lightning_cloud/openapi/api/endpoint_service_api.py +422 -1
- lightning_sdk/lightning_cloud/openapi/api/experiments_service_api.py +242 -0
- lightning_sdk/lightning_cloud/openapi/api/file_system_service_api.py +674 -0
- lightning_sdk/lightning_cloud/openapi/api/jobs_service_api.py +3823 -0
- lightning_sdk/lightning_cloud/openapi/api/lightningapp_instance_service_api.py +158 -594
- lightning_sdk/lightning_cloud/openapi/api/lightningapp_v2_service_api.py +0 -1086
- lightning_sdk/lightning_cloud/openapi/api/lightningwork_service_api.py +113 -0
- lightning_sdk/lightning_cloud/openapi/api/lit_logger_service_api.py +1753 -0
- lightning_sdk/lightning_cloud/openapi/api/lit_registry_service_api.py +242 -0
- lightning_sdk/lightning_cloud/openapi/api/models_store_api.py +1423 -108
- lightning_sdk/lightning_cloud/openapi/api/organizations_service_api.py +421 -1
- lightning_sdk/lightning_cloud/openapi/api/profiler_service_api.py +663 -0
- lightning_sdk/lightning_cloud/openapi/api/projects_service_api.py +5 -1
- lightning_sdk/lightning_cloud/openapi/api/secret_service_api.py +478 -1
- lightning_sdk/lightning_cloud/openapi/api/slurm_jobs_user_service_api.py +9 -5
- lightning_sdk/lightning_cloud/openapi/api/snowflake_service_api.py +686 -0
- lightning_sdk/lightning_cloud/openapi/api/storage_service_api.py +1094 -0
- lightning_sdk/lightning_cloud/openapi/api/studio_jobs_service_api.py +4 -4
- lightning_sdk/lightning_cloud/openapi/api/user_service_api.py +1081 -34
- lightning_sdk/lightning_cloud/openapi/models/__init__.py +278 -40
- lightning_sdk/lightning_cloud/openapi/models/affiliatelinks_id_body.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/agentmanagedendpoints_id_body.py +305 -0
- lightning_sdk/lightning_cloud/openapi/models/{assistants_id_body.py → agents_id_body.py} +201 -71
- lightning_sdk/lightning_cloud/openapi/models/app_id_works_body.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/approveautojoindomain_domain_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/apps_id_body1.py +107 -3
- lightning_sdk/lightning_cloud/openapi/models/assistant_id_conversations_body.py +1 -27
- lightning_sdk/lightning_cloud/openapi/models/{v1_get_cluster_health_response.py → captures_id_body.py} +16 -16
- lightning_sdk/lightning_cloud/openapi/models/cloud_space_id_versionpublications_body1.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/cloudspace_id_runs_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/cloudspaces_id_body.py +58 -6
- lightning_sdk/lightning_cloud/openapi/models/cluster_id_capacityblock_body.py +253 -0
- lightning_sdk/lightning_cloud/openapi/models/cluster_id_capacityreservations_body.py +55 -3
- lightning_sdk/lightning_cloud/openapi/models/cluster_id_proxies_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/create.py +157 -1
- lightning_sdk/lightning_cloud/openapi/models/create_deployment_request_defines_a_spec_for_the_job_that_allows_for_autoscaling_jobs.py +383 -0
- lightning_sdk/lightning_cloud/openapi/models/deployments_id_body.py +565 -0
- lightning_sdk/lightning_cloud/openapi/models/deploymenttemplates_id_body.py +513 -0
- lightning_sdk/lightning_cloud/openapi/models/endpoints_id_body.py +43 -17
- lightning_sdk/lightning_cloud/openapi/models/experiment_name_variant_name_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/externalv1_cloud_space_instance_status.py +107 -1
- lightning_sdk/lightning_cloud/openapi/models/externalv1_lightningapp_instance.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/externalv1_user_status.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/fileendpoints_id_body.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/id_codeconfig_body.py +29 -55
- lightning_sdk/lightning_cloud/openapi/models/id_engage_body.py +3 -29
- lightning_sdk/lightning_cloud/openapi/models/id_engage_body1.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/id_execute_body.py +3 -55
- lightning_sdk/lightning_cloud/openapi/models/id_execute_body1.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/id_get_body.py +133 -3
- lightning_sdk/lightning_cloud/openapi/models/id_index_body.py +67 -15
- lightning_sdk/lightning_cloud/openapi/models/id_index_body2.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/id_index_body3.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/id_reportlogsactivity_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/id_start_body.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/id_storage_body.py +52 -26
- lightning_sdk/lightning_cloud/openapi/models/id_visibility_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/jobs_id_body1.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/jobs_id_body2.py +17 -43
- lightning_sdk/lightning_cloud/openapi/models/jobs_id_body3.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/litloggermetrics_id_body.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/litpages_id_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/loggermetrics_id_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/metrics_stream_id_loggerartifacts_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/metricsstream_create_body.py +383 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_cloud_space_id_list.py → metricsstream_delete_body.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/metricsstream_id_body.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_upload_model_response.py → model_id_versions_body.py} +25 -51
- lightning_sdk/lightning_cloud/openapi/models/model_id_visibility_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/models_model_id_body.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/multimachinejobs_id_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/org_id_memberships_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/orgs_id_body.py +183 -1
- lightning_sdk/lightning_cloud/openapi/models/profiler_captures_body.py +279 -0
- lightning_sdk/lightning_cloud/openapi/models/profiler_enabled_body.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/project_id_agentmanagedendpoints_body.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/{project_id_assistants_body.py → project_id_agents_body.py} +159 -55
- lightning_sdk/lightning_cloud/openapi/models/project_id_cloudspaces_body.py +71 -19
- lightning_sdk/lightning_cloud/openapi/models/project_id_fileendpoints_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/project_id_jobs_body.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/project_id_litregistry_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/project_id_memberships_body.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/{v1_upload_model_request.py → project_id_models_body.py} +70 -70
- lightning_sdk/lightning_cloud/openapi/models/project_id_multimachinejobs_body.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/project_id_secrets_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/project_id_snowflake_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/projects_id_body.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/query_query_id_body.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/secrets_id_body1.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/servers_server_id_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/service_artifact_artifact_kind.py +104 -0
- lightning_sdk/lightning_cloud/openapi/models/serviceexecution_id_body.py +43 -43
- lightning_sdk/lightning_cloud/openapi/models/slurm_jobs_body.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/snowflake_export_body.py +305 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_download_model_response.py → snowflake_query_body.py} +51 -51
- lightning_sdk/lightning_cloud/openapi/models/storage_complete_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/update.py +105 -1
- lightning_sdk/lightning_cloud/openapi/models/upload_id_complete_body.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/upload_id_parts_body.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/user_id_affiliatelinks_body.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_accelerator_quota_info.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_ack_user_storage_violation_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_add_job_timing_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_affiliate_link.py +435 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_agent_job.py +131 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_api_pricing_spec.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_app_type.py +104 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_append_logger_metrics_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_approve_auto_join_domain_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_assign_variant_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_assistant.py +131 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_assistant_knowledge_item_status.py +253 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_assistant_knowledge_status.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_assistant_model_status.py +104 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_auto_join_domain_validation.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_auto_join_org_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_autoscaling_spec.py +305 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_autoscaling_target_metric.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_aws_direct_v1.py +133 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_batch_update_lightningwork_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cancellation_metadata.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_capacity_block_offering.py +383 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_check_snowflake_connection_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_checkbox.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space.py +136 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_code_version.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_instance_config.py +1 -53
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_instance_startup_status.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/{v1_cluster_log_service.py → v1_cloud_space_session.py} +49 -49
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_version.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_accelerator.py +445 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_capacity_reservation.py +55 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_names.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_proxy.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_resource_tag.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_security_options.py +357 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_spec.py +157 -107
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_state.py +1 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_status.py +17 -43
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_tagging_options.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_type.py +0 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_command_argument.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_complete_model_upload_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_complete_multi_part_upload_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_completed_part.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_conversation.py +15 -15
- lightning_sdk/lightning_cloud/openapi/models/v1_conversation_response_chunk.py +26 -26
- lightning_sdk/lightning_cloud/openapi/models/v1_count_metrics_streams_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_checkout_session_request.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_create_cluster_request.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_create_deployment_template_request.py +539 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_multi_part_upload_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_organization_request.py +159 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_create_project_request.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_create_shared_metrics_stream_request.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_shared_metrics_stream_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_snowflake_connection_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_create_user_secret_request.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_data_connection.py +365 -1
- lightning_sdk/lightning_cloud/openapi/models/{v1_cluster_performance_profile.py → v1_data_connection_state.py} +11 -9
- lightning_sdk/lightning_cloud/openapi/models/v1_data_path.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_affiliate_link_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_cloud_space_session_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_cluster_proxy_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_deployment_release_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_azure_cluster_driver_status.py → v1_delete_deployment_response.py} +6 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_index_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_byom_cluster_driver.py → v1_delete_job_response.py} +6 -6
- lightning_sdk/lightning_cloud/openapi/models/{v1_delete_lightningapp_v2_response.py → v1_delete_logger_artifact_response.py} +6 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_managed_endpoint_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_metrics_stream_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_multi_machine_job_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_profiler_capture_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_delete_lightningapp_release_response.py → v1_delete_shared_metrics_stream_response.py} +6 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment.py +617 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_api.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_event.py +357 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_event_type.py +104 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_metrics.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_performance.py +305 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_release.py +331 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_spec.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_state.py +105 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_status.py +279 -0
- lightning_sdk/lightning_cloud/openapi/models/{appsv2_id_body.py → v1_deployment_strategy.py} +39 -39
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template.py +721 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_engagement_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_gallery_response.py +591 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_parameter.py +435 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_parameter_placement.py +106 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_parameter_type.py +106 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_template_summary.py +591 -0
- lightning_sdk/lightning_cloud/openapi/models/{instance_type_availability.py → v1_deployment_template_type.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/{v1_get_lightningapp_source_code_download_url_response.py → v1_download_job_logs_response.py} +10 -10
- lightning_sdk/lightning_cloud/openapi/models/v1_download_service_execution_artifact_response.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_ebs.py +279 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_efs_config.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_endpoint.py +53 -27
- lightning_sdk/lightning_cloud/openapi/models/v1_endpoint_auth.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_endpoint_type.py +104 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_execute_cloud_space_command_response.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_execute_in_cloud_space_session_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_execute_snowflake_query_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_experiment.py +409 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_export_snowflake_query_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_file_endpoint.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/{v1_instance_spec.py → v1_filesystem_app.py} +85 -59
- lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_cloud_space.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_dataset.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_job.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_slurm_job.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_snowflake_connection.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_filesystem_work.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_find_capacity_block_offering_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_gcp_data_connection.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_gcs_folder_data_connection.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_affiliate_link_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_list_cluster_instance_types_response.py → v1_get_deployment_routing_telemetry_aggregated_response.py} +23 -23
- lightning_sdk/lightning_cloud/openapi/models/v1_get_deployment_routing_telemetry_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_folder_index_response.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/{v1_cluster_driver_status.py → v1_get_job_stats_response.py} +39 -39
- lightning_sdk/lightning_cloud/openapi/models/v1_get_job_system_metrics_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_lightningapp_instance_open_ports_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_logger_metrics_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_model_file_upload_urls_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_model_file_url_response.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_model_files_response.py +279 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_model_files_url_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_lightningwork_cluster_driver.py → v1_get_project_artifact_response.py} +33 -14
- lightning_sdk/lightning_cloud/openapi/models/v1_get_project_balance_response.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_get_project_storage_metadata_response.py +383 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_service_execution_status_response.py +67 -15
- lightning_sdk/lightning_cloud/openapi/models/v1_get_snowflake_query_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_user_balance_response.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_get_user_response.py +105 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_get_user_storage_breakdown_response.py +279 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_get_user_storage_response.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_google_cloud_direct_v1.py +163 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_google_cloud_direct_v1_status.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_header.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_external_kubeconfig.py → v1_health_check_exec.py} +21 -21
- lightning_sdk/lightning_cloud/openapi/models/v1_health_check_http_get.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_ids_logger_metrics.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_input.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_interrupt_server_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_job.py +697 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_job_health_check_config.py +253 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_job_log_entry.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_job_logs_page.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_job_logs_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_job_spec.py +669 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_job_timing.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_joinable_organization.py +331 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_knowledge_configuration.py +279 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_lambda_labs_direct_v1.py +125 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_lightning_run.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_lightningapp_instance_spec.py +105 -27
- lightning_sdk/lightning_cloud/openapi/models/v1_lightningapp_instance_status.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_lightningwork_spec.py +27 -27
- lightning_sdk/lightning_cloud/openapi/models/v1_lightningwork_status.py +81 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_list_affiliate_links_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_cloud_space_python_versions_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_cloud_space_sessions_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_cloud_space_tags_response.py +6 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_availabilities_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_cluster_proxies_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_events_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_releases_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_tags_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_deployment_templates_response.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_deployments_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_experiments_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_apps_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_cloud_spaces_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_datasets_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_jobs_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_slurm_jobs_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_filesystem_snowflake_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_list_lightningapps_v2_response.py → v1_list_jobs_response.py} +31 -31
- lightning_sdk/lightning_cloud/openapi/models/v1_list_joinable_organizations_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_logger_artifact_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_metrics_streams_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_multi_machine_job_events_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_multi_machine_jobs_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_new_features_for_user_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_profiler_captures_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_project_locked_resources_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_published_cloud_spaces_response.py +3 -29
- lightning_sdk/lightning_cloud/openapi/models/v1_list_published_deployment_templates_response.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_service_execution_lightningapp_instances_response.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_lit_page.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_lit_registry_project.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_lit_repository.py +279 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_locked_resource.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_logger_artifact.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_machines_selector.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_magic_link_login_request.py +81 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_magic_link_login_response.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_managed_endpoint.py +175 -19
- lightning_sdk/lightning_cloud/openapi/models/v1_managed_model.py +305 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_managed_model_abilities.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_membership.py +79 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_message.py +138 -8
- lightning_sdk/lightning_cloud/openapi/models/v1_message_content.py +6 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_message_content_type.py +103 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_metadata.py +131 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_metric_value.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_metrics.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_metrics_stream.py +799 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_metrics_tags.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_metrics_tracker.py +383 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_model.py +95 -17
- lightning_sdk/lightning_cloud/openapi/models/v1_model_file.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_model_version_archive.py +131 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_mount_target.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job.py +487 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_event.py +331 -0
- lightning_sdk/lightning_cloud/openapi/models/{get_cluster_health_response_health_status.py → v1_multi_machine_job_event_type.py} +9 -9
- lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_fault_tolerance.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_fault_tolerance_strategy.py +105 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_state.py +108 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_multi_machine_job_status.py +305 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_named_get_logger_metrics.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_new_feature.py +383 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_onboarding_event_request.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_onboarding_event_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_organization.py +209 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_parameterization_spec.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_path_telemetry.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_phase_type.py +104 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_profiler_capture.py +357 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_profiler_enabled_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_project.py +131 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_project_membership.py +263 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_project_settings.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_project_storage.py +279 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_published_cloud_space_response.py +188 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_purchase_capacity_block_response.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_query_param.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_query_result.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_query_result_row.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_refresh_path_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_regional_load_balancer.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_report_logs_activity_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_request_cluster_access_request.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_request_cluster_access_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/{v1_cloud_space_tag.py → v1_resource_tag.py} +18 -18
- lightning_sdk/lightning_cloud/openapi/models/v1_resource_visibility.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_resources.py +37 -11
- lightning_sdk/lightning_cloud/openapi/models/v1_restore_deployment_release_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_rolling_update_strategy.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_rule_condition.py +29 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_rule_resource.py +11 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_s3_folder_data_connection.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_search_job_logs_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_secret.py +107 -3
- lightning_sdk/lightning_cloud/openapi/models/{v1_lightningapp_cluster_driver.py → v1_secret_type.py} +10 -9
- lightning_sdk/lightning_cloud/openapi/models/v1_select.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_server_check_in_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_service_artifact.py +201 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_service_execution.py +43 -43
- lightning_sdk/lightning_cloud/openapi/models/v1_should_start_syncing_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_signed_url.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_slurm_job.py +131 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_slurm_node.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_slurm_v1.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_snowflake_data_connection.py +253 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_status_code_telemetry.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_storage_asset.py +253 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_storage_asset_type.py +105 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_studio_job_app.py +1 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_system_info.py +617 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_telemetry.py +331 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_timestamp_code_telemetry.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_transaction.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_transfer_user_balance_request.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_update_billing_subscription_request.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_update_cluster_accelerators_request.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_index_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_metrics_stream_visibility_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_model_visibility_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_shared_metrics_stream_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_snowflake_query_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_user_request.py +53 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_update_user_viewed_new_features_request.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_update_user_viewed_new_features_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_upstream_cloud_space.py +97 -19
- lightning_sdk/lightning_cloud/openapi/models/v1_upstream_job.py +227 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_usage.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/v1_usage_details.py +107 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_user_features.py +1006 -330
- lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_compute_config.py +45 -45
- lightning_sdk/lightning_cloud/openapi/models/v1_user_requested_flow_compute_config.py +29 -29
- lightning_sdk/lightning_cloud/openapi/models/v1_validate_assistant_status_response.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_validate_auto_join_domain_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_validate_data_connection_response.py +107 -3
- lightning_sdk/lightning_cloud/openapi/models/v1_validate_deployment_image_request.py +149 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_validate_deployment_image_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_validate_managed_endpoint_request.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_validate_managed_endpoint_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_validate_managed_model_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_volume.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_vultr_direct_v1.py +125 -0
- lightning_sdk/lightning_cloud/openapi/models/validate.py +97 -19
- lightning_sdk/lightning_cloud/openapi/models/validateautojoindomain_domain_body.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/version_uploads_body.py +123 -0
- lightning_sdk/lightning_cloud/rest_client.py +47 -23
- lightning_sdk/lightning_cloud/source_code/logs_socket_api.py +1 -1
- lightning_sdk/lightning_cloud/source_code/tar.py +1 -3
- lightning_sdk/lightning_cloud/utils/data_connection.py +145 -7
- lightning_sdk/machine.py +17 -4
- lightning_sdk/mmt/__init__.py +4 -0
- lightning_sdk/mmt/base.py +288 -0
- lightning_sdk/mmt/mmt.py +282 -0
- lightning_sdk/mmt/v1.py +185 -0
- lightning_sdk/mmt/v2.py +193 -0
- lightning_sdk/models.py +153 -0
- lightning_sdk/organization.py +1 -1
- lightning_sdk/plugin.py +207 -41
- lightning_sdk/services/__init__.py +2 -1
- lightning_sdk/services/file_endpoint.py +116 -213
- lightning_sdk/services/finetune/__init__.py +13 -15
- lightning_sdk/services/utilities.py +99 -26
- lightning_sdk/status.py +2 -1
- lightning_sdk/studio.py +90 -17
- lightning_sdk/teamspace.py +189 -11
- lightning_sdk/user.py +1 -1
- lightning_sdk/utils/__init__.py +0 -0
- lightning_sdk/utils/dynamic.py +61 -0
- lightning_sdk/utils/enum.py +116 -0
- lightning_sdk/{utils.py → utils/resolve.py} +41 -4
- lightning_sdk-0.1.46.dist-info/LICENSE +21 -0
- {lightning_sdk-0.1.3.dist-info → lightning_sdk-0.1.46.dist-info}/METADATA +30 -4
- {lightning_sdk-0.1.3.dist-info → lightning_sdk-0.1.46.dist-info}/RECORD +482 -204
- {lightning_sdk-0.1.3.dist-info → lightning_sdk-0.1.46.dist-info}/WHEEL +1 -1
- lightning_sdk/lightning_cloud/openapi/models/app_id_releases_body.py +0 -541
- lightning_sdk/lightning_cloud/openapi/models/id_endpoint_body.py +0 -409
- lightning_sdk/lightning_cloud/openapi/models/id_get_body1.py +0 -333
- lightning_sdk/lightning_cloud/openapi/models/project_id_appsv2_body.py +0 -201
- lightning_sdk/lightning_cloud/openapi/models/v1_aws_cluster_driver_spec.py +0 -1039
- lightning_sdk/lightning_cloud/openapi/models/v1_aws_cluster_secondary_region_spec.py +0 -253
- lightning_sdk/lightning_cloud/openapi/models/v1_azure_cluster_driver_spec.py +0 -227
- lightning_sdk/lightning_cloud/openapi/models/v1_cluster_driver.py +0 -175
- lightning_sdk/lightning_cloud/openapi/models/v1_container_resources.py +0 -201
- lightning_sdk/lightning_cloud/openapi/models/v1_eks_custer_driver_status.py +0 -387
- lightning_sdk/lightning_cloud/openapi/models/v1_instance_type.py +0 -305
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_cluster_driver.py +0 -359
- lightning_sdk/lightning_cloud/openapi/models/v1_kubernetes_cluster_status.py +0 -279
- lightning_sdk/lightning_cloud/openapi/models/v1_lightningapp_release.py +0 -697
- lightning_sdk/lightning_cloud/openapi/models/v1_lightningapp_v2.py +0 -331
- lightning_sdk/services/uploader.py +0 -123
- {lightning_sdk-0.1.3.dist-info → lightning_sdk-0.1.46.dist-info}/entry_points.txt +0 -0
- {lightning_sdk-0.1.3.dist-info → lightning_sdk-0.1.46.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
import time
|
|
2
|
+
from typing import TYPE_CHECKING, Dict, List, Optional
|
|
3
|
+
from urllib.request import urlopen
|
|
4
|
+
|
|
5
|
+
from lightning_sdk.api.utils import (
|
|
6
|
+
_COMPUTE_NAME_TO_MACHINE,
|
|
7
|
+
_MACHINE_TO_COMPUTE_NAME,
|
|
8
|
+
_create_app,
|
|
9
|
+
remove_datetime_prefix,
|
|
10
|
+
)
|
|
11
|
+
from lightning_sdk.api.utils import (
|
|
12
|
+
_get_cloud_url as _cloud_url,
|
|
13
|
+
)
|
|
14
|
+
from lightning_sdk.constants import __GLOBAL_LIGHTNING_UNIQUE_IDS_STORE__
|
|
15
|
+
from lightning_sdk.lightning_cloud.openapi import (
|
|
16
|
+
AppinstancesIdBody,
|
|
17
|
+
Externalv1LightningappInstance,
|
|
18
|
+
Externalv1Lightningwork,
|
|
19
|
+
JobsIdBody1,
|
|
20
|
+
ProjectIdJobsBody,
|
|
21
|
+
V1CloudSpace,
|
|
22
|
+
V1ComputeConfig,
|
|
23
|
+
V1DownloadJobLogsResponse,
|
|
24
|
+
V1DownloadLightningappInstanceLogsResponse,
|
|
25
|
+
V1EnvVar,
|
|
26
|
+
V1Job,
|
|
27
|
+
V1JobSpec,
|
|
28
|
+
V1LightningappInstanceSpec,
|
|
29
|
+
V1LightningappInstanceState,
|
|
30
|
+
V1LightningappInstanceStatus,
|
|
31
|
+
V1LightningworkSpec,
|
|
32
|
+
V1LightningworkState,
|
|
33
|
+
V1ListLightningworkResponse,
|
|
34
|
+
V1UserRequestedComputeConfig,
|
|
35
|
+
)
|
|
36
|
+
from lightning_sdk.lightning_cloud.rest_client import LightningClient
|
|
37
|
+
from lightning_sdk.machine import Machine
|
|
38
|
+
|
|
39
|
+
if TYPE_CHECKING:
|
|
40
|
+
from lightning_sdk.status import Status
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class JobApiV1:
|
|
44
|
+
def __init__(self) -> None:
|
|
45
|
+
self._cloud_url = _cloud_url()
|
|
46
|
+
self._client = LightningClient(max_tries=7)
|
|
47
|
+
|
|
48
|
+
def get_job(self, job_name: str, teamspace_id: str) -> Externalv1LightningappInstance:
|
|
49
|
+
try:
|
|
50
|
+
return self._client.lightningapp_instance_service_find_lightningapp_instance(
|
|
51
|
+
project_id=teamspace_id, name=job_name
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
except Exception:
|
|
55
|
+
raise ValueError(f"Job {job_name} does not exist") from None
|
|
56
|
+
|
|
57
|
+
def get_job_status(self, job_id: str, teamspace_id: str) -> V1LightningappInstanceState:
|
|
58
|
+
instance = self._client.lightningapp_instance_service_get_lightningapp_instance(
|
|
59
|
+
project_id=teamspace_id, id=job_id
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
status: V1LightningappInstanceStatus = instance.status
|
|
63
|
+
|
|
64
|
+
if status is not None:
|
|
65
|
+
return status.phase
|
|
66
|
+
return None
|
|
67
|
+
|
|
68
|
+
def stop_job(self, job_id: str, teamspace_id: str) -> None:
|
|
69
|
+
body = AppinstancesIdBody(spec=V1LightningappInstanceSpec(desired_state=V1LightningappInstanceState.STOPPED))
|
|
70
|
+
self._client.lightningapp_instance_service_update_lightningapp_instance(
|
|
71
|
+
project_id=teamspace_id,
|
|
72
|
+
id=job_id,
|
|
73
|
+
body=body,
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
# wait for job to be stopped
|
|
77
|
+
while True:
|
|
78
|
+
status = self.get_job_status(job_id, teamspace_id)
|
|
79
|
+
if status in (
|
|
80
|
+
V1LightningappInstanceState.STOPPED,
|
|
81
|
+
V1LightningappInstanceState.FAILED,
|
|
82
|
+
V1LightningappInstanceState.COMPLETED,
|
|
83
|
+
):
|
|
84
|
+
break
|
|
85
|
+
time.sleep(1)
|
|
86
|
+
|
|
87
|
+
def delete_job(self, job_id: str, teamspace_id: str) -> None:
|
|
88
|
+
self._client.lightningapp_instance_service_delete_lightningapp_instance(project_id=teamspace_id, id=job_id)
|
|
89
|
+
|
|
90
|
+
def list_works(self, job_id: str, teamspace_id: str) -> List[Externalv1Lightningwork]:
|
|
91
|
+
resp: V1ListLightningworkResponse = self._client.lightningwork_service_list_lightningwork(
|
|
92
|
+
project_id=teamspace_id, app_id=job_id
|
|
93
|
+
)
|
|
94
|
+
return resp.lightningworks
|
|
95
|
+
|
|
96
|
+
def get_work(self, job_id: str, teamspace_id: str, work_id: str) -> Externalv1Lightningwork:
|
|
97
|
+
return self._client.lightningwork_service_get_lightningwork(project_id=teamspace_id, app_id=job_id, id=work_id)
|
|
98
|
+
|
|
99
|
+
def get_machine_from_work(self, work: Externalv1Lightningwork) -> Machine:
|
|
100
|
+
spec: V1LightningworkSpec = work.spec
|
|
101
|
+
# prefer user-requested config if specified
|
|
102
|
+
compute_config: V1UserRequestedComputeConfig = spec.user_requested_compute_config
|
|
103
|
+
compute: str = compute_config.name
|
|
104
|
+
if compute:
|
|
105
|
+
return _COMPUTE_NAME_TO_MACHINE[compute]
|
|
106
|
+
compute_config: V1ComputeConfig = spec.compute_config
|
|
107
|
+
compute: str = compute_config.instance_type
|
|
108
|
+
return _COMPUTE_NAME_TO_MACHINE[compute]
|
|
109
|
+
|
|
110
|
+
def get_studio_name(self, job: Externalv1LightningappInstance) -> str:
|
|
111
|
+
cs: V1CloudSpace = self._client.cloud_space_service_get_cloud_space(
|
|
112
|
+
project_id=job.project_id, id=job.spec.cloud_space_id
|
|
113
|
+
)
|
|
114
|
+
return cs.name
|
|
115
|
+
|
|
116
|
+
def submit_job(
|
|
117
|
+
self,
|
|
118
|
+
name: str,
|
|
119
|
+
command: str,
|
|
120
|
+
studio_id: str,
|
|
121
|
+
teamspace_id: str,
|
|
122
|
+
cloud_account: str,
|
|
123
|
+
machine: Machine,
|
|
124
|
+
interruptible: bool,
|
|
125
|
+
) -> Externalv1LightningappInstance:
|
|
126
|
+
"""Creates an arbitrary app."""
|
|
127
|
+
return _create_app(
|
|
128
|
+
self._client,
|
|
129
|
+
studio_id=studio_id,
|
|
130
|
+
teamspace_id=teamspace_id,
|
|
131
|
+
cloud_account=cloud_account,
|
|
132
|
+
plugin_type="job",
|
|
133
|
+
compute=_MACHINE_TO_COMPUTE_NAME[machine],
|
|
134
|
+
name=name,
|
|
135
|
+
entrypoint=command,
|
|
136
|
+
interruptible=interruptible,
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
def get_status_from_work(self, work: Externalv1Lightningwork) -> "Status":
|
|
140
|
+
from lightning_sdk.status import Status
|
|
141
|
+
|
|
142
|
+
internal_status = work.status.phase
|
|
143
|
+
|
|
144
|
+
if internal_status in (
|
|
145
|
+
V1LightningworkState.UNSPECIFIED,
|
|
146
|
+
V1LightningworkState.IMAGE_BUILDING,
|
|
147
|
+
V1LightningworkState.PENDING,
|
|
148
|
+
V1LightningworkState.NOT_STARTED,
|
|
149
|
+
V1LightningworkState.DELETED,
|
|
150
|
+
):
|
|
151
|
+
return Status.Pending
|
|
152
|
+
|
|
153
|
+
if internal_status == V1LightningworkState.RUNNING:
|
|
154
|
+
return Status.Running
|
|
155
|
+
|
|
156
|
+
if internal_status == V1LightningworkState.STOPPED:
|
|
157
|
+
return Status.Stopped
|
|
158
|
+
|
|
159
|
+
if internal_status == V1LightningworkState.FAILED:
|
|
160
|
+
return Status.Failed
|
|
161
|
+
|
|
162
|
+
return Status.Pending
|
|
163
|
+
|
|
164
|
+
def get_logs_finished(self, job_id: str, work_id: str, teamspace_id: str) -> str:
|
|
165
|
+
resp: (
|
|
166
|
+
V1DownloadLightningappInstanceLogsResponse
|
|
167
|
+
) = self._client.lightningapp_instance_service_download_lightningapp_instance_logs(
|
|
168
|
+
project_id=teamspace_id, id=job_id, work_id=work_id
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
data = urlopen(resp.url).read().decode("utf-8")
|
|
172
|
+
return remove_datetime_prefix(str(data))
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
class JobApiV2:
|
|
176
|
+
v2_job_state_pending = "pending"
|
|
177
|
+
v2_job_state_running = "running"
|
|
178
|
+
v2_job_state_stopped = "stopped"
|
|
179
|
+
v2_job_state_completed = "completed"
|
|
180
|
+
v2_job_state_failed = "failed"
|
|
181
|
+
v2_job_state_stopping = "stopping"
|
|
182
|
+
|
|
183
|
+
def __init__(self) -> None:
|
|
184
|
+
self._cloud_url = _cloud_url()
|
|
185
|
+
self._client = LightningClient(max_tries=7)
|
|
186
|
+
|
|
187
|
+
def submit_job(
|
|
188
|
+
self,
|
|
189
|
+
name: str,
|
|
190
|
+
command: Optional[str],
|
|
191
|
+
cloud_account: Optional[str],
|
|
192
|
+
teamspace_id: str,
|
|
193
|
+
studio_id: Optional[str],
|
|
194
|
+
image: Optional[str],
|
|
195
|
+
machine: Machine,
|
|
196
|
+
interruptible: bool,
|
|
197
|
+
env: Optional[Dict[str, str]],
|
|
198
|
+
image_credentials: Optional[str],
|
|
199
|
+
cloud_account_auth: bool,
|
|
200
|
+
artifacts_local: Optional[str],
|
|
201
|
+
artifacts_remote: Optional[str],
|
|
202
|
+
) -> V1Job:
|
|
203
|
+
env_vars = []
|
|
204
|
+
if env is not None:
|
|
205
|
+
for k, v in env.items():
|
|
206
|
+
env_vars.append(V1EnvVar(name=k, value=v))
|
|
207
|
+
|
|
208
|
+
instance_name = _MACHINE_TO_COMPUTE_NAME[machine]
|
|
209
|
+
|
|
210
|
+
run_id = __GLOBAL_LIGHTNING_UNIQUE_IDS_STORE__[studio_id] if studio_id is not None else ""
|
|
211
|
+
|
|
212
|
+
spec = V1JobSpec(
|
|
213
|
+
cloudspace_id=studio_id or "",
|
|
214
|
+
cluster_id=cloud_account or "",
|
|
215
|
+
command=command or "",
|
|
216
|
+
env=env_vars,
|
|
217
|
+
image=image or "",
|
|
218
|
+
instance_name=instance_name,
|
|
219
|
+
run_id=run_id,
|
|
220
|
+
spot=interruptible,
|
|
221
|
+
image_cluster_credentials=cloud_account_auth,
|
|
222
|
+
image_secret_ref=image_credentials or "",
|
|
223
|
+
artifacts_source=artifacts_local or "",
|
|
224
|
+
artifacts_destination=artifacts_remote or "",
|
|
225
|
+
)
|
|
226
|
+
body = ProjectIdJobsBody(name=name, spec=spec)
|
|
227
|
+
|
|
228
|
+
job: V1Job = self._client.jobs_service_create_job(project_id=teamspace_id, body=body)
|
|
229
|
+
return job
|
|
230
|
+
|
|
231
|
+
def get_job_by_name(self, name: str, teamspace_id: str) -> V1Job:
|
|
232
|
+
job: V1Job = self._client.jobs_service_find_job(project_id=teamspace_id, name=name)
|
|
233
|
+
return job
|
|
234
|
+
|
|
235
|
+
def get_job(self, job_id: str, teamspace_id: str) -> V1Job:
|
|
236
|
+
job: V1Job = self._client.jobs_service_get_job(project_id=teamspace_id, id=job_id)
|
|
237
|
+
return job
|
|
238
|
+
|
|
239
|
+
def stop_job(self, job_id: str, teamspace_id: str) -> None:
|
|
240
|
+
from lightning_sdk.status import Status
|
|
241
|
+
|
|
242
|
+
current_job = self.get_job(job_id=job_id, teamspace_id=teamspace_id)
|
|
243
|
+
|
|
244
|
+
current_state = self._job_state_to_external(current_job.state)
|
|
245
|
+
|
|
246
|
+
if current_state in (
|
|
247
|
+
Status.Stopped,
|
|
248
|
+
Status.Completed,
|
|
249
|
+
Status.Failed,
|
|
250
|
+
):
|
|
251
|
+
return
|
|
252
|
+
|
|
253
|
+
if current_state != Status.Stopping:
|
|
254
|
+
update_body = JobsIdBody1(cloudspace_id=current_job.spec.cloudspace_id, state=self.v2_job_state_stopped)
|
|
255
|
+
self._client.jobs_service_update_job(body=update_body, project_id=teamspace_id, id=job_id)
|
|
256
|
+
|
|
257
|
+
while True:
|
|
258
|
+
current_job = self.get_job(job_id=job_id, teamspace_id=teamspace_id)
|
|
259
|
+
if self._job_state_to_external(current_job.state) in (
|
|
260
|
+
Status.Stopped,
|
|
261
|
+
Status.Completed,
|
|
262
|
+
Status.Stopped,
|
|
263
|
+
Status.Failed,
|
|
264
|
+
):
|
|
265
|
+
break
|
|
266
|
+
time.sleep(1)
|
|
267
|
+
|
|
268
|
+
def delete_job(self, job_id: str, teamspace_id: str, cloudspace_id: Optional[str]) -> None:
|
|
269
|
+
self._client.jobs_service_delete_job(project_id=teamspace_id, id=job_id, cloudspace_id=cloudspace_id or "")
|
|
270
|
+
|
|
271
|
+
def get_logs_finished(self, job_id: str, teamspace_id: str) -> str:
|
|
272
|
+
resp: V1DownloadJobLogsResponse = self._client.jobs_service_download_job_logs(
|
|
273
|
+
project_id=teamspace_id, id=job_id
|
|
274
|
+
)
|
|
275
|
+
|
|
276
|
+
data = urlopen(resp.url).read().decode("utf-8")
|
|
277
|
+
return remove_datetime_prefix(str(data))
|
|
278
|
+
|
|
279
|
+
def get_studio_name(self, job: V1Job) -> str:
|
|
280
|
+
cs: V1CloudSpace = self._client.cloud_space_service_get_cloud_space(
|
|
281
|
+
project_id=job.project_id, id=job.spec.cloudspace_id
|
|
282
|
+
)
|
|
283
|
+
return cs.name
|
|
284
|
+
|
|
285
|
+
def _job_state_to_external(self, state: str) -> "Status":
|
|
286
|
+
from lightning_sdk.status import Status
|
|
287
|
+
|
|
288
|
+
if state == self.v2_job_state_pending:
|
|
289
|
+
return Status.Pending
|
|
290
|
+
if state == self.v2_job_state_running:
|
|
291
|
+
return Status.Running
|
|
292
|
+
if state == self.v2_job_state_stopped:
|
|
293
|
+
return Status.Stopped
|
|
294
|
+
if state == self.v2_job_state_completed:
|
|
295
|
+
return Status.Completed
|
|
296
|
+
if state == self.v2_job_state_failed:
|
|
297
|
+
return Status.Failed
|
|
298
|
+
if state == self.v2_job_state_stopping:
|
|
299
|
+
return Status.Stopping
|
|
300
|
+
return Status.Pending
|
|
301
|
+
|
|
302
|
+
def _get_job_machine_from_spec(self, spec: V1JobSpec) -> "Machine":
|
|
303
|
+
instance_name = spec.instance_name
|
|
304
|
+
instance_type = spec.instance_type
|
|
305
|
+
|
|
306
|
+
return _COMPUTE_NAME_TO_MACHINE.get(
|
|
307
|
+
instance_type, _COMPUTE_NAME_TO_MACHINE.get(instance_name, instance_type or instance_name)
|
|
308
|
+
)
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import json
|
|
2
|
+
import time
|
|
3
|
+
from typing import TYPE_CHECKING, Dict, List, Optional
|
|
4
|
+
|
|
5
|
+
from lightning_sdk.api.job_api import JobApiV1
|
|
6
|
+
from lightning_sdk.api.utils import (
|
|
7
|
+
_COMPUTE_NAME_TO_MACHINE,
|
|
8
|
+
_MACHINE_TO_COMPUTE_NAME,
|
|
9
|
+
_create_app,
|
|
10
|
+
)
|
|
11
|
+
from lightning_sdk.api.utils import (
|
|
12
|
+
_get_cloud_url as _cloud_url,
|
|
13
|
+
)
|
|
14
|
+
from lightning_sdk.constants import __GLOBAL_LIGHTNING_UNIQUE_IDS_STORE__
|
|
15
|
+
from lightning_sdk.lightning_cloud.openapi import (
|
|
16
|
+
Externalv1LightningappInstance,
|
|
17
|
+
MultimachinejobsIdBody,
|
|
18
|
+
ProjectIdMultimachinejobsBody,
|
|
19
|
+
V1EnvVar,
|
|
20
|
+
V1Job,
|
|
21
|
+
V1JobSpec,
|
|
22
|
+
V1MultiMachineJob,
|
|
23
|
+
V1MultiMachineJobState,
|
|
24
|
+
)
|
|
25
|
+
from lightning_sdk.lightning_cloud.rest_client import LightningClient
|
|
26
|
+
from lightning_sdk.machine import Machine
|
|
27
|
+
|
|
28
|
+
if TYPE_CHECKING:
|
|
29
|
+
from lightning_sdk.status import Status
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class MMTApiV1(JobApiV1):
|
|
33
|
+
def __init__(self) -> None:
|
|
34
|
+
self._cloud_url = _cloud_url()
|
|
35
|
+
self._client = LightningClient(max_tries=7)
|
|
36
|
+
|
|
37
|
+
def submit_job(
|
|
38
|
+
self,
|
|
39
|
+
name: str,
|
|
40
|
+
num_machines: int,
|
|
41
|
+
command: Optional[str],
|
|
42
|
+
cloud_account: Optional[str],
|
|
43
|
+
teamspace_id: str,
|
|
44
|
+
studio_id: str,
|
|
45
|
+
machine: Machine,
|
|
46
|
+
interruptible: bool,
|
|
47
|
+
strategy: str,
|
|
48
|
+
) -> Externalv1LightningappInstance:
|
|
49
|
+
"""Creates a multi-machine job with given commands."""
|
|
50
|
+
distributed_args = {
|
|
51
|
+
"cloud_compute": _MACHINE_TO_COMPUTE_NAME[machine],
|
|
52
|
+
"num_instances": num_machines,
|
|
53
|
+
"strategy": strategy,
|
|
54
|
+
}
|
|
55
|
+
return _create_app(
|
|
56
|
+
client=self._client,
|
|
57
|
+
studio_id=studio_id,
|
|
58
|
+
teamspace_id=teamspace_id,
|
|
59
|
+
cloud_account=cloud_account or "",
|
|
60
|
+
plugin_type="distributed_plugin",
|
|
61
|
+
entrypoint=command,
|
|
62
|
+
name=name,
|
|
63
|
+
distributedArguments=json.dumps(distributed_args),
|
|
64
|
+
interruptible=interruptible,
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class MMTApiV2:
|
|
69
|
+
def __init__(self) -> None:
|
|
70
|
+
self._cloud_url = _cloud_url()
|
|
71
|
+
self._client = LightningClient(max_tries=7)
|
|
72
|
+
|
|
73
|
+
def submit_job(
|
|
74
|
+
self,
|
|
75
|
+
name: str,
|
|
76
|
+
num_machines: int,
|
|
77
|
+
command: Optional[str],
|
|
78
|
+
cloud_account: Optional[str],
|
|
79
|
+
teamspace_id: str,
|
|
80
|
+
studio_id: Optional[str],
|
|
81
|
+
image: Optional[str],
|
|
82
|
+
machine: Machine,
|
|
83
|
+
interruptible: bool,
|
|
84
|
+
env: Optional[Dict[str, str]],
|
|
85
|
+
image_credentials: Optional[str],
|
|
86
|
+
cloud_account_auth: bool,
|
|
87
|
+
artifacts_local: Optional[str],
|
|
88
|
+
artifacts_remote: Optional[str],
|
|
89
|
+
) -> V1MultiMachineJob:
|
|
90
|
+
env_vars = []
|
|
91
|
+
if env is not None:
|
|
92
|
+
for k, v in env.items():
|
|
93
|
+
env_vars.append(V1EnvVar(name=k, value=v))
|
|
94
|
+
|
|
95
|
+
instance_name = _MACHINE_TO_COMPUTE_NAME[machine]
|
|
96
|
+
|
|
97
|
+
run_id = __GLOBAL_LIGHTNING_UNIQUE_IDS_STORE__[studio_id] if studio_id is not None else ""
|
|
98
|
+
|
|
99
|
+
spec = V1JobSpec(
|
|
100
|
+
cloudspace_id=studio_id or "",
|
|
101
|
+
cluster_id=cloud_account or "",
|
|
102
|
+
command=command or "",
|
|
103
|
+
entrypoint="sh -c",
|
|
104
|
+
env=env_vars,
|
|
105
|
+
image=image or "",
|
|
106
|
+
instance_name=instance_name,
|
|
107
|
+
run_id=run_id,
|
|
108
|
+
spot=interruptible,
|
|
109
|
+
image_cluster_credentials=cloud_account_auth,
|
|
110
|
+
image_secret_ref=image_credentials or "",
|
|
111
|
+
artifacts_source=artifacts_local or "",
|
|
112
|
+
artifacts_destination=artifacts_remote or "",
|
|
113
|
+
)
|
|
114
|
+
body = ProjectIdMultimachinejobsBody(
|
|
115
|
+
name=name, spec=spec, cluster_id=cloud_account or "", machines=num_machines
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
job: V1MultiMachineJob = self._client.jobs_service_create_multi_machine_job(project_id=teamspace_id, body=body)
|
|
119
|
+
return job
|
|
120
|
+
|
|
121
|
+
def get_job_by_name(self, name: str, teamspace_id: str) -> V1MultiMachineJob:
|
|
122
|
+
job: V1MultiMachineJob = self._client.jobs_service_get_multi_machine_job_by_name(
|
|
123
|
+
project_id=teamspace_id, name=name
|
|
124
|
+
)
|
|
125
|
+
return job
|
|
126
|
+
|
|
127
|
+
def get_job(self, job_id: str, teamspace_id: str) -> V1MultiMachineJob:
|
|
128
|
+
job: V1MultiMachineJob = self._client.jobs_service_get_multi_machine_job(project_id=teamspace_id, id=job_id)
|
|
129
|
+
return job
|
|
130
|
+
|
|
131
|
+
def stop_job(self, job_id: str, teamspace_id: str) -> None:
|
|
132
|
+
from lightning_sdk.status import Status
|
|
133
|
+
|
|
134
|
+
current_job = self.get_job(job_id=job_id, teamspace_id=teamspace_id)
|
|
135
|
+
|
|
136
|
+
current_state = self._job_state_to_external(current_job.desired_state)
|
|
137
|
+
|
|
138
|
+
if current_state in (
|
|
139
|
+
Status.Stopped,
|
|
140
|
+
Status.Completed,
|
|
141
|
+
Status.Failed,
|
|
142
|
+
):
|
|
143
|
+
return
|
|
144
|
+
|
|
145
|
+
if current_state != Status.Stopped:
|
|
146
|
+
update_body = MultimachinejobsIdBody(desired_state=V1MultiMachineJobState.STOPPED)
|
|
147
|
+
self._client.jobs_service_update_multi_machine_job(body=update_body, project_id=teamspace_id, id=job_id)
|
|
148
|
+
|
|
149
|
+
while True:
|
|
150
|
+
current_job = self.get_job(job_id=job_id, teamspace_id=teamspace_id)
|
|
151
|
+
if self._job_state_to_external(current_job.desired_state) in (
|
|
152
|
+
Status.Stopped,
|
|
153
|
+
Status.Completed,
|
|
154
|
+
Status.Stopped,
|
|
155
|
+
Status.Failed,
|
|
156
|
+
):
|
|
157
|
+
break
|
|
158
|
+
time.sleep(1)
|
|
159
|
+
|
|
160
|
+
def delete_job(self, job_id: str, teamspace_id: str) -> None:
|
|
161
|
+
self._client.jobs_service_delete_multi_machine_job(project_id=teamspace_id, id=job_id)
|
|
162
|
+
|
|
163
|
+
def list_mmt_subjobs(self, job_id: str, teamspace_id: str) -> List[V1Job]:
|
|
164
|
+
jobs_resp = self._client.jobs_service_list_jobs(project_id=teamspace_id, multi_machine_job_id=job_id)
|
|
165
|
+
return jobs_resp.jobs
|
|
166
|
+
|
|
167
|
+
def _job_state_to_external(self, state: V1MultiMachineJobState) -> "Status":
|
|
168
|
+
from lightning_sdk.status import Status
|
|
169
|
+
|
|
170
|
+
if str(state) == V1MultiMachineJobState.UNSPECIFIED:
|
|
171
|
+
return Status.Pending
|
|
172
|
+
if str(state) == V1MultiMachineJobState.RUNNING:
|
|
173
|
+
return Status.Running
|
|
174
|
+
if str(state) == V1MultiMachineJobState.STOPPED:
|
|
175
|
+
return Status.Stopped
|
|
176
|
+
if str(state) == V1MultiMachineJobState.COMPLETED:
|
|
177
|
+
return Status.Completed
|
|
178
|
+
if str(state) == V1MultiMachineJobState.FAILED:
|
|
179
|
+
return Status.Failed
|
|
180
|
+
return Status.Pending
|
|
181
|
+
|
|
182
|
+
def _get_job_machine_from_spec(self, spec: V1JobSpec) -> "Machine":
|
|
183
|
+
instance_name = spec.instance_name
|
|
184
|
+
instance_type = spec.instance_type
|
|
185
|
+
|
|
186
|
+
return _COMPUTE_NAME_TO_MACHINE.get(
|
|
187
|
+
instance_type, _COMPUTE_NAME_TO_MACHINE.get(instance_name, instance_type or instance_name)
|
|
188
|
+
)
|
lightning_sdk/api/org_api.py
CHANGED
|
@@ -8,9 +8,7 @@ class OrgApi:
|
|
|
8
8
|
"""Internal API client for org requests (mainly http requests)."""
|
|
9
9
|
|
|
10
10
|
def __init__(self) -> None:
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
self._client = LightningClient(max_tries=3)
|
|
11
|
+
self._client = LightningClient(max_tries=7)
|
|
14
12
|
|
|
15
13
|
def get_org(self, name: str) -> V1Organization:
|
|
16
14
|
"""Gets the organization from the given name."""
|