lightning-sdk 0.1.3__py3-none-any.whl → 0.1.47__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 +328 -0
- lightning_sdk/api/lit_registry_api.py +12 -0
- lightning_sdk/api/mmt_api.py +205 -0
- lightning_sdk/api/org_api.py +1 -3
- lightning_sdk/api/studio_api.py +172 -81
- lightning_sdk/api/teamspace_api.py +237 -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 +13 -3
- lightning_sdk/cli/list.py +54 -0
- 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/teamspace_menu.py +94 -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 +359 -0
- lightning_sdk/job/job.py +291 -0
- lightning_sdk/job/v1.py +269 -0
- lightning_sdk/job/v2.py +221 -0
- lightning_sdk/job/work.py +81 -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 +289 -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 +343 -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 +279 -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_container_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 +253 -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/{get_cluster_health_response_health_status.py → v1_deployment_state.py} +11 -9
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_status.py +279 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_deployment_strategy.py +149 -0
- 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 +137 -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 +723 -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/{v1_lightningapp_cluster_driver.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/{appsv2_id_body.py → v1_resource_visibility.py} +37 -37
- 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_secret_type.py +105 -0
- 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 +1032 -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 +144 -7
- lightning_sdk/lit_registry.py +39 -0
- lightning_sdk/machine.py +21 -4
- lightning_sdk/mmt/__init__.py +4 -0
- lightning_sdk/mmt/base.py +326 -0
- lightning_sdk/mmt/mmt.py +306 -0
- lightning_sdk/mmt/v1.py +209 -0
- lightning_sdk/mmt/v2.py +221 -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 +11 -6
- lightning_sdk/studio.py +90 -17
- lightning_sdk/teamspace.py +240 -12
- 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.47.dist-info/LICENSE +21 -0
- {lightning_sdk-0.1.3.dist-info → lightning_sdk-0.1.47.dist-info}/METADATA +30 -4
- {lightning_sdk-0.1.3.dist-info → lightning_sdk-0.1.47.dist-info}/RECORD +487 -204
- {lightning_sdk-0.1.3.dist-info → lightning_sdk-0.1.47.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.47.dist-info}/entry_points.txt +0 -0
- {lightning_sdk-0.1.3.dist-info → lightning_sdk-0.1.47.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
from typing import Dict, List, Optional
|
|
2
|
+
|
|
3
|
+
from simple_term_menu import TerminalMenu
|
|
4
|
+
|
|
5
|
+
from lightning_sdk.api import OrgApi, TeamspaceApi
|
|
6
|
+
from lightning_sdk.user import User
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class _StudiosMenu:
|
|
10
|
+
def _get_studio_from_interactive_menu(self, possible_studios: List[Dict[str, str]]) -> Dict[str, str]:
|
|
11
|
+
terminal_menu = self._prepare_terminal_menu_list_studios(possible_studios)
|
|
12
|
+
terminal_menu.show()
|
|
13
|
+
return possible_studios[terminal_menu.chosen_menu_index]
|
|
14
|
+
|
|
15
|
+
def _get_studio_from_name(self, studio: str, possible_studios: List[Dict[str, str]]) -> Dict[str, str]:
|
|
16
|
+
teamspace, name = studio.split("/", maxsplit=1)
|
|
17
|
+
for st in possible_studios:
|
|
18
|
+
if st["teamspace"] == teamspace and name == st["name"]:
|
|
19
|
+
return st
|
|
20
|
+
|
|
21
|
+
print("Could not find Studio {studio}, please select it from the list:")
|
|
22
|
+
return self._get_studio_from_interactive_menu(possible_studios)
|
|
23
|
+
|
|
24
|
+
@staticmethod
|
|
25
|
+
def _prepare_terminal_menu_list_studios(
|
|
26
|
+
possible_studios: List[Dict[str, str]], title: Optional[str] = None
|
|
27
|
+
) -> TerminalMenu:
|
|
28
|
+
if title is None:
|
|
29
|
+
title = "Please select a Studio of the following studios:"
|
|
30
|
+
|
|
31
|
+
return TerminalMenu(
|
|
32
|
+
[f"{s['teamspace']}/{s['name']}" for s in possible_studios], title=title, clear_menu_on_exit=True
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
@staticmethod
|
|
36
|
+
def _get_possible_studios(user: User, is_owner: bool = True) -> List[Dict[str, str]]:
|
|
37
|
+
teamspace_api = TeamspaceApi()
|
|
38
|
+
org_api = OrgApi()
|
|
39
|
+
user_api = user._user_api
|
|
40
|
+
possible_studios = []
|
|
41
|
+
|
|
42
|
+
user_api._get_organizations_for_authed_user()
|
|
43
|
+
memberships = user_api._get_all_teamspace_memberships(user_id=user.id)
|
|
44
|
+
|
|
45
|
+
teamspaces = {}
|
|
46
|
+
# get all teamspace memberships
|
|
47
|
+
for membership in memberships:
|
|
48
|
+
teamspace_id = membership.project_id
|
|
49
|
+
|
|
50
|
+
if is_owner:
|
|
51
|
+
# get all studios for teamspace when user is owner
|
|
52
|
+
all_studios = user._user_api._get_cloudspaces_for_user(user_id=user.id, project_id=teamspace_id)
|
|
53
|
+
else:
|
|
54
|
+
all_studios = user._user_api._get_cloudspaces_for_user(project_id=teamspace_id)
|
|
55
|
+
|
|
56
|
+
for st in all_studios:
|
|
57
|
+
# populate teamspace info if necessary
|
|
58
|
+
if teamspace_id not in teamspaces:
|
|
59
|
+
ts = teamspace_api._get_teamspace_by_id(teamspace_id)
|
|
60
|
+
ts_name = ts.name
|
|
61
|
+
|
|
62
|
+
# get organization if necessary
|
|
63
|
+
if ts.owner_type == "organization":
|
|
64
|
+
org_name = org_api._get_org_by_id(ts.owner_id).name
|
|
65
|
+
user_name = None
|
|
66
|
+
else:
|
|
67
|
+
org_name = None
|
|
68
|
+
|
|
69
|
+
# don't do a request if not necessary
|
|
70
|
+
if ts.owner_id == user.id:
|
|
71
|
+
user_name = user.name
|
|
72
|
+
else:
|
|
73
|
+
user_name = user_api._get_user_by_id(ts.owner_id).username
|
|
74
|
+
|
|
75
|
+
teamspaces[teamspace_id] = {"user": user_name, "org": org_name, "teamspace": ts_name}
|
|
76
|
+
possible_studios.append({"name": st.name, **teamspaces[teamspace_id]})
|
|
77
|
+
|
|
78
|
+
return possible_studios
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
from typing import Dict, List, Optional
|
|
2
|
+
|
|
3
|
+
from simple_term_menu import TerminalMenu
|
|
4
|
+
|
|
5
|
+
from lightning_sdk.api import OrgApi
|
|
6
|
+
from lightning_sdk.cli.exceptions import StudioCliError
|
|
7
|
+
from lightning_sdk.teamspace import Teamspace
|
|
8
|
+
from lightning_sdk.user import User
|
|
9
|
+
from lightning_sdk.utils.resolve import _get_authed_user
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class _TeamspacesMenu:
|
|
13
|
+
def _get_teamspace_from_interactive_menu(self, possible_teamspaces: Dict[str, Dict[str, str]]) -> Dict[str, str]:
|
|
14
|
+
teamspace_ids = sorted(possible_teamspaces.keys())
|
|
15
|
+
terminal_menu = self._prepare_terminal_menu_teamspaces([possible_teamspaces[k] for k in teamspace_ids])
|
|
16
|
+
terminal_menu.show()
|
|
17
|
+
|
|
18
|
+
selected_id = teamspace_ids[terminal_menu.chosen_menu_index]
|
|
19
|
+
return possible_teamspaces[selected_id]
|
|
20
|
+
|
|
21
|
+
def _get_teamspace_from_name(
|
|
22
|
+
self, teamspace: str, possible_teamspaces: Dict[str, Dict[str, str]]
|
|
23
|
+
) -> Dict[str, str]:
|
|
24
|
+
owner, name = teamspace.split("/", maxsplit=1)
|
|
25
|
+
for _, ts in possible_teamspaces.items():
|
|
26
|
+
if ts["name"] == name and (ts["user"] == owner or ts["org"] == owner):
|
|
27
|
+
return ts
|
|
28
|
+
|
|
29
|
+
print("Could not find Teamspace {teamspace}, please select it from the list:")
|
|
30
|
+
return self._get_teamspace_from_interactive_menu(possible_teamspaces)
|
|
31
|
+
|
|
32
|
+
@staticmethod
|
|
33
|
+
def _prepare_terminal_menu_teamspaces(
|
|
34
|
+
possible_teamspaces: List[Dict[str, str]], title: Optional[str] = None
|
|
35
|
+
) -> TerminalMenu:
|
|
36
|
+
if title is None:
|
|
37
|
+
title = "Please select a Teamspace of the following:"
|
|
38
|
+
|
|
39
|
+
return TerminalMenu(
|
|
40
|
+
[f"{t['user'] or t['org']}/{t['name']}" for t in possible_teamspaces], title=title, clear_menu_on_exit=True
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
@staticmethod
|
|
44
|
+
def _get_possible_teamspaces(user: User, is_owner: bool = True) -> Dict[str, Dict[str, str]]:
|
|
45
|
+
org_api = OrgApi()
|
|
46
|
+
user_api = user._user_api
|
|
47
|
+
|
|
48
|
+
user_api._get_organizations_for_authed_user()
|
|
49
|
+
memberships = user_api._get_all_teamspace_memberships(user_id=user.id)
|
|
50
|
+
|
|
51
|
+
teamspaces = {}
|
|
52
|
+
# get all teamspace memberships
|
|
53
|
+
for membership in memberships:
|
|
54
|
+
teamspace_id = membership.project_id
|
|
55
|
+
teamspace_name = membership.name
|
|
56
|
+
|
|
57
|
+
# get organization if necessary
|
|
58
|
+
if membership.owner_type == "organization":
|
|
59
|
+
org_name = org_api._get_org_by_id(membership.owner_id).name
|
|
60
|
+
user_name = None
|
|
61
|
+
else:
|
|
62
|
+
org_name = None
|
|
63
|
+
|
|
64
|
+
# don't do a request if not necessary
|
|
65
|
+
if membership.owner_id == user.id:
|
|
66
|
+
user_name = user.name
|
|
67
|
+
else:
|
|
68
|
+
user_name = user_api._get_user_by_id(membership.owner_id).username
|
|
69
|
+
|
|
70
|
+
teamspaces[teamspace_id] = {"user": user_name, "org": org_name, "name": teamspace_name}
|
|
71
|
+
|
|
72
|
+
return teamspaces
|
|
73
|
+
|
|
74
|
+
def _resolve_teamspace(self, teamspace: Optional[str]) -> Teamspace:
|
|
75
|
+
try:
|
|
76
|
+
user = _get_authed_user()
|
|
77
|
+
|
|
78
|
+
possible_teamspaces = self._get_possible_teamspaces(user)
|
|
79
|
+
if teamspace is None:
|
|
80
|
+
teamspace_dict = self._get_teamspace_from_interactive_menu(possible_teamspaces=possible_teamspaces)
|
|
81
|
+
else:
|
|
82
|
+
teamspace_dict = self._get_teamspace_from_name(
|
|
83
|
+
teamspace=teamspace, possible_teamspaces=possible_teamspaces
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
return Teamspace(**teamspace_dict)
|
|
87
|
+
except KeyboardInterrupt:
|
|
88
|
+
raise KeyboardInterrupt from None
|
|
89
|
+
|
|
90
|
+
except Exception as e:
|
|
91
|
+
raise StudioCliError(
|
|
92
|
+
f"Could not find the given Teamspace {teamspace}. "
|
|
93
|
+
"Please contact Lightning AI directly to resolve this issue."
|
|
94
|
+
) from e
|
lightning_sdk/cli/upload.py
CHANGED
|
@@ -1,38 +1,37 @@
|
|
|
1
1
|
import concurrent.futures
|
|
2
2
|
import json
|
|
3
3
|
import os
|
|
4
|
+
from pathlib import Path
|
|
4
5
|
from typing import Dict, List, Optional
|
|
5
6
|
|
|
6
7
|
from simple_term_menu import TerminalMenu
|
|
7
8
|
from tqdm import tqdm
|
|
8
9
|
|
|
9
|
-
from lightning_sdk.api import OrgApi, TeamspaceApi
|
|
10
10
|
from lightning_sdk.api.utils import _get_cloud_url
|
|
11
11
|
from lightning_sdk.cli.exceptions import StudioCliError
|
|
12
|
+
from lightning_sdk.cli.studios_menu import _StudiosMenu
|
|
13
|
+
from lightning_sdk.models import upload_model
|
|
12
14
|
from lightning_sdk.studio import Studio
|
|
13
|
-
from lightning_sdk.
|
|
14
|
-
from lightning_sdk.utils import _get_authed_user, skip_studio_init
|
|
15
|
+
from lightning_sdk.utils.resolve import _get_authed_user, skip_studio_init
|
|
15
16
|
|
|
16
17
|
|
|
17
|
-
class _Uploads:
|
|
18
|
+
class _Uploads(_StudiosMenu):
|
|
19
|
+
"""Upload files and folders to Lightning AI."""
|
|
20
|
+
|
|
18
21
|
_studio_upload_status_path = "~/.lightning/studios/uploads"
|
|
19
22
|
|
|
20
|
-
def
|
|
21
|
-
"""Upload a
|
|
23
|
+
def model(self, name: str, path: str = ".", cloud_account: Optional[str] = None) -> None:
|
|
24
|
+
"""Upload a Model.
|
|
22
25
|
|
|
23
26
|
Args:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
Has to be within your Studio's home directory and will be relative to that.
|
|
29
|
-
If not specified, will use the file or directory name of the path you want to upload
|
|
30
|
-
and place it in your home directory.
|
|
31
|
-
|
|
27
|
+
name: The name of the Model you want to upload.
|
|
28
|
+
This should have the format <ORGANIZATION-NAME>/<TEAMSPACE-NAME>/<MODEL-NAME>.
|
|
29
|
+
path: The path to the file or directory you want to upload. Defaults to the current directory.
|
|
30
|
+
cloud_account: The name of the cloud account to store the Model in.
|
|
32
31
|
"""
|
|
33
|
-
|
|
34
|
-
remote_path = os.path.basename(path)
|
|
32
|
+
upload_model(name, path, cloud_account=cloud_account)
|
|
35
33
|
|
|
34
|
+
def _resolve_studio(self, studio: Optional[str]) -> Studio:
|
|
36
35
|
user = _get_authed_user()
|
|
37
36
|
possible_studios = self._get_possible_studios(user)
|
|
38
37
|
|
|
@@ -52,19 +51,38 @@ class _Uploads:
|
|
|
52
51
|
"Please contact Lightning AI directly to resolve this issue."
|
|
53
52
|
) from e
|
|
54
53
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
if os.path.isdir(path):
|
|
58
|
-
for root, _, files in os.walk(path):
|
|
59
|
-
rel_root = os.path.relpath(root, path)
|
|
60
|
-
for f in files:
|
|
61
|
-
pairs[os.path.join(root, f)] = os.path.join(remote_path, rel_root, f)
|
|
54
|
+
with skip_studio_init():
|
|
55
|
+
return Studio(**selected_studio)
|
|
62
56
|
|
|
63
|
-
|
|
64
|
-
|
|
57
|
+
def folder(self, path: str, studio: Optional[str] = None, remote_path: Optional[str] = None) -> None:
|
|
58
|
+
"""Upload a file or folder to a Studio.
|
|
65
59
|
|
|
66
|
-
|
|
67
|
-
|
|
60
|
+
Args:
|
|
61
|
+
path: The path to the file or directory you want to upload
|
|
62
|
+
studio: The name of the studio to upload to. Will show a menu for selection if not specified.
|
|
63
|
+
If provided, should be in the form of <TEAMSPACE-NAME>/<STUDIO-NAME>
|
|
64
|
+
remote_path: The path where the uploaded file should appear on your Studio.
|
|
65
|
+
Has to be within your Studio's home directory and will be relative to that.
|
|
66
|
+
If not specified, will use the file or directory name of the path you want to upload
|
|
67
|
+
and place it in your home directory.
|
|
68
|
+
"""
|
|
69
|
+
if remote_path is None:
|
|
70
|
+
remote_path = os.path.basename(path)
|
|
71
|
+
|
|
72
|
+
if not Path(path).exists():
|
|
73
|
+
raise FileNotFoundError(f"The provided path does not exist: {path}.")
|
|
74
|
+
if not Path(path).is_dir():
|
|
75
|
+
raise StudioCliError(f"The provided path is not a folder: {path}. Use `lightning upload file` instead.")
|
|
76
|
+
|
|
77
|
+
selected_studio = self._resolve_studio(studio)
|
|
78
|
+
|
|
79
|
+
print(f"Uploading to {selected_studio.teamspace.name}/{selected_studio.name}")
|
|
80
|
+
|
|
81
|
+
pairs = {}
|
|
82
|
+
for root, _, files in os.walk(path):
|
|
83
|
+
rel_root = os.path.relpath(root, path)
|
|
84
|
+
for f in files:
|
|
85
|
+
pairs[os.path.join(root, f)] = os.path.join(remote_path, rel_root, f)
|
|
68
86
|
|
|
69
87
|
upload_state = self._resolve_previous_upload_state(selected_studio, remote_path, pairs)
|
|
70
88
|
|
|
@@ -91,19 +109,42 @@ class _Uploads:
|
|
|
91
109
|
)
|
|
92
110
|
print(f"See your files at {studio_url}")
|
|
93
111
|
|
|
94
|
-
def
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
112
|
+
def file(self, path: str, studio: Optional[str] = None, remote_path: Optional[str] = None) -> None:
|
|
113
|
+
"""Upload a file to a Studio.
|
|
114
|
+
|
|
115
|
+
Args:
|
|
116
|
+
path: The path to the file you want to upload
|
|
117
|
+
studio: The name of the studio to upload to. Will show a menu for selection if not specified.
|
|
118
|
+
If provided, should be in the form of <TEAMSPACE-NAME>/<STUDIO-NAME>
|
|
119
|
+
remote_path: The path where the uploaded file should appear on your Studio.
|
|
120
|
+
Has to be within your Studio's home directory and will be relative to that.
|
|
121
|
+
If not specified, will use the name of the file you want to upload
|
|
122
|
+
and place it in your home directory.
|
|
123
|
+
"""
|
|
124
|
+
if remote_path is None:
|
|
125
|
+
remote_path = os.path.basename(path)
|
|
126
|
+
|
|
127
|
+
if Path(path).is_dir():
|
|
128
|
+
raise StudioCliError(f"The provided path is a folder: {path}. Use `lightning upload folder` instead.")
|
|
129
|
+
if not Path(path).exists():
|
|
130
|
+
raise FileNotFoundError(f"The provided path does not exist: {path}.")
|
|
131
|
+
|
|
132
|
+
selected_studio = self._resolve_studio(studio)
|
|
98
133
|
|
|
99
|
-
|
|
100
|
-
teamspace, name = studio.split("/", maxsplit=1)
|
|
101
|
-
for st in possible_studios:
|
|
102
|
-
if st["teamspace"] == teamspace and name == st["name"]:
|
|
103
|
-
return st
|
|
134
|
+
print(f"Uploading to {selected_studio.teamspace.name}/{selected_studio.name}")
|
|
104
135
|
|
|
105
|
-
|
|
106
|
-
|
|
136
|
+
self._single_file_upload(selected_studio, path, remote_path, True)
|
|
137
|
+
|
|
138
|
+
studio_url = (
|
|
139
|
+
_get_cloud_url().replace(":443", "")
|
|
140
|
+
+ "/"
|
|
141
|
+
+ selected_studio.owner.name
|
|
142
|
+
+ "/"
|
|
143
|
+
+ selected_studio.teamspace.name
|
|
144
|
+
+ "/studios/"
|
|
145
|
+
+ selected_studio.name
|
|
146
|
+
)
|
|
147
|
+
print(f"See your file at {studio_url}")
|
|
107
148
|
|
|
108
149
|
def _start_parallel_upload(
|
|
109
150
|
self, executor: concurrent.futures.ThreadPoolExecutor, studio: Studio, upload_state: Dict[str, str]
|
|
@@ -125,57 +166,6 @@ class _Uploads:
|
|
|
125
166
|
studio.upload_file(local_path, remote_path, progress_bar)
|
|
126
167
|
return local_path
|
|
127
168
|
|
|
128
|
-
def _prepare_terminal_menu_all_studios(
|
|
129
|
-
self, possible_studios: List[Dict[str, str]], title: Optional[str] = None
|
|
130
|
-
) -> TerminalMenu:
|
|
131
|
-
if title is None:
|
|
132
|
-
title = "Please select a Studio of the following studios:"
|
|
133
|
-
|
|
134
|
-
return TerminalMenu(
|
|
135
|
-
[f"{s['teamspace']}/{s['name']}" for s in possible_studios], title=title, clear_menu_on_exit=True
|
|
136
|
-
)
|
|
137
|
-
|
|
138
|
-
def _get_possible_studios(self, user: User) -> List[Dict[str, str]]:
|
|
139
|
-
teamspace_api = TeamspaceApi()
|
|
140
|
-
org_api = OrgApi()
|
|
141
|
-
user_api = user._user_api
|
|
142
|
-
possible_studios = []
|
|
143
|
-
|
|
144
|
-
user_api._get_organizations_for_authed_user()
|
|
145
|
-
memberships = user_api._get_all_teamspace_memberships(user_id=user.id)
|
|
146
|
-
|
|
147
|
-
teamspaces = {}
|
|
148
|
-
# get all teamspace memberships
|
|
149
|
-
for membership in memberships:
|
|
150
|
-
teamspace_id = membership.project_id
|
|
151
|
-
|
|
152
|
-
# get all studios for teamspace
|
|
153
|
-
all_studios = user._user_api._get_cloudspaces_for_user(user.id, teamspace_id)
|
|
154
|
-
|
|
155
|
-
for st in all_studios:
|
|
156
|
-
# populate teamspace info if necessary
|
|
157
|
-
if teamspace_id not in teamspaces:
|
|
158
|
-
ts = teamspace_api._get_teamspace_by_id(teamspace_id)
|
|
159
|
-
ts_name = ts.name
|
|
160
|
-
|
|
161
|
-
# get organization if necessary
|
|
162
|
-
if ts.owner_type == "organization":
|
|
163
|
-
org_name = org_api._get_org_by_id(ts.owner_id).name
|
|
164
|
-
user_name = None
|
|
165
|
-
else:
|
|
166
|
-
org_name = None
|
|
167
|
-
|
|
168
|
-
# don't do a request if not necessary
|
|
169
|
-
if ts.owner_id == user.id:
|
|
170
|
-
user_name = user.name
|
|
171
|
-
else:
|
|
172
|
-
user_name = user_api._get_user_by_id(ts.owner_id).username
|
|
173
|
-
|
|
174
|
-
teamspaces[teamspace_id] = {"user": user_name, "org": org_name, "teamspace": ts_name}
|
|
175
|
-
possible_studios.append({"name": st.name, **teamspaces[teamspace_id]})
|
|
176
|
-
|
|
177
|
-
return possible_studios
|
|
178
|
-
|
|
179
169
|
def _dump_current_upload_state(self, studio: Studio, remote_path: str, state_dict: Dict[str, str]) -> None:
|
|
180
170
|
"""Dumps the current upload state so that we can safely resume later."""
|
|
181
171
|
curr_path = os.path.abspath(
|
lightning_sdk/constants.py
CHANGED
|
@@ -1,3 +1,31 @@
|
|
|
1
1
|
import os
|
|
2
|
+
from uuid import uuid4
|
|
2
3
|
|
|
3
|
-
_LIGHTNING_DEBUG =
|
|
4
|
+
_LIGHTNING_DEBUG = {
|
|
5
|
+
"": False,
|
|
6
|
+
"0": False,
|
|
7
|
+
"false": False,
|
|
8
|
+
"no": False,
|
|
9
|
+
"1": True,
|
|
10
|
+
"true": True,
|
|
11
|
+
"yes": True,
|
|
12
|
+
}.get(os.getenv("LIGHTNING_DEBUG", "").lower(), False)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class Store:
|
|
16
|
+
def __init__(self) -> None:
|
|
17
|
+
self._d = {}
|
|
18
|
+
# This is needed to ensure the ids are the same within created threads and processes.
|
|
19
|
+
self._list = [str(uuid4().hex) for _ in range(500)]
|
|
20
|
+
|
|
21
|
+
def __getitem__(self, key: str) -> str:
|
|
22
|
+
"""Get item."""
|
|
23
|
+
if key in self._d:
|
|
24
|
+
return self._d[key]
|
|
25
|
+
|
|
26
|
+
value = self._list.pop(0) if self._list else str(uuid4().hex)
|
|
27
|
+
self._d[key] = value
|
|
28
|
+
return value
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
__GLOBAL_LIGHTNING_UNIQUE_IDS_STORE__ = Store()
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from lightning_sdk.api.deployment_api import (
|
|
2
|
+
AutoScaleConfig,
|
|
3
|
+
BasicAuth,
|
|
4
|
+
Env,
|
|
5
|
+
ExecHealthCheck,
|
|
6
|
+
HttpHealthCheck,
|
|
7
|
+
ReleaseStrategy,
|
|
8
|
+
RollingUpdateReleaseStrategy,
|
|
9
|
+
Secret,
|
|
10
|
+
TokenAuth,
|
|
11
|
+
)
|
|
12
|
+
from lightning_sdk.deployment.deployment import Deployment
|
|
13
|
+
|
|
14
|
+
__all__ = [
|
|
15
|
+
"AutoScaleConfig",
|
|
16
|
+
"BasicAuth",
|
|
17
|
+
"Env",
|
|
18
|
+
"ExecHealthCheck",
|
|
19
|
+
"HttpHealthCheck",
|
|
20
|
+
"ReleaseStrategy",
|
|
21
|
+
"RollingUpdateReleaseStrategy",
|
|
22
|
+
"Secret",
|
|
23
|
+
"TokenAuth",
|
|
24
|
+
"Deployment",
|
|
25
|
+
]
|