lightning-sdk 0.1.2__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 +174 -83
- lightning_sdk/api/teamspace_api.py +219 -20
- lightning_sdk/api/user_api.py +24 -9
- lightning_sdk/api/utils.py +429 -47
- 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 +314 -43
- 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 +3115 -895
- lightning_sdk/lightning_cloud/openapi/api/cluster_service_api.py +908 -141
- 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 +1658 -159
- 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 -590
- 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 +304 -41
- 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/agents_id_body.py +643 -0
- 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_body.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/cloud_space_id_versionpublications_body1.py +175 -0
- lightning_sdk/lightning_cloud/openapi/models/cloud_space_id_versions_body.py +409 -0
- lightning_sdk/lightning_cloud/openapi/models/cloudspace_id_runs_body.py +27 -1
- lightning_sdk/lightning_cloud/openapi/models/cloudspaces_id_body.py +84 -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/clusters_id_body.py +27 -1
- 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 +131 -1
- lightning_sdk/lightning_cloud/openapi/models/id_codeconfig_body.py +29 -55
- lightning_sdk/lightning_cloud/openapi/models/id_complete_body.py +175 -0
- 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_fork_body.py +31 -31
- lightning_sdk/lightning_cloud/openapi/models/id_fork_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 +175 -0
- lightning_sdk/lightning_cloud/openapi/models/id_uploads_body1.py +175 -0
- 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} +181 -51
- lightning_sdk/lightning_cloud/openapi/models/project_id_cloudspaces_body.py +71 -19
- lightning_sdk/lightning_cloud/openapi/models/project_id_fileendpoints_body.py +79 -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_serviceexecution_body.py +175 -0
- 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 +331 -0
- 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 +157 -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 +162 -6
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_code_version.py +383 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_code_version_status.py +105 -0
- 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 +669 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_cloud_space_version_publication.py +201 -0
- 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 +131 -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_complete_upload_service_execution_artifact_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_cloud_space_version_publication_response.py +97 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_delete_cloud_space_version_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_service_execution_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_external_search_user.py +279 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_file_endpoint.py +131 -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 +175 -0
- 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_cloud_space_version_publications_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_list_cloud_space_versions_response.py +123 -0
- 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_list_service_executions_response.py +123 -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_search_users_response.py +6 -6
- 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_update_cluster_response.py → v1_service_artifact.py} +54 -54
- lightning_sdk/lightning_cloud/openapi/models/v1_service_execution.py +383 -0
- 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 +53 -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_upload_service_execution_artifact_parts_response.py +123 -0
- lightning_sdk/lightning_cloud/openapi/models/v1_upload_service_execution_artifact_response.py +149 -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 +1030 -302
- 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/openapi/models/versions_id_body.py +357 -0
- lightning_sdk/lightning_cloud/rest_client.py +49 -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 +5 -0
- lightning_sdk/services/file_endpoint.py +223 -0
- lightning_sdk/services/finetune/__init__.py +35 -0
- lightning_sdk/services/utilities.py +111 -0
- 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.2.dist-info → lightning_sdk-0.1.46.dist-info}/METADATA +30 -4
- lightning_sdk-0.1.46.dist-info/RECORD +858 -0
- {lightning_sdk-0.1.2.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/assistants_id_body.py +0 -487
- 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-0.1.2.dist-info/RECORD +0 -550
- {lightning_sdk-0.1.2.dist-info → lightning_sdk-0.1.46.dist-info}/entry_points.txt +0 -0
- {lightning_sdk-0.1.2.dist-info → lightning_sdk-0.1.46.dist-info}/top_level.txt +0 -0
lightning_sdk/teamspace.py
CHANGED
|
@@ -1,10 +1,20 @@
|
|
|
1
|
+
import warnings
|
|
2
|
+
from pathlib import Path
|
|
1
3
|
from typing import TYPE_CHECKING, List, Optional, Union
|
|
2
4
|
|
|
5
|
+
from lightning_sdk.agents import Agent
|
|
3
6
|
from lightning_sdk.api import TeamspaceApi
|
|
7
|
+
from lightning_sdk.models import UploadedModelInfo
|
|
4
8
|
from lightning_sdk.organization import Organization
|
|
5
9
|
from lightning_sdk.owner import Owner
|
|
6
10
|
from lightning_sdk.user import User
|
|
7
|
-
from lightning_sdk.utils import
|
|
11
|
+
from lightning_sdk.utils.resolve import (
|
|
12
|
+
_get_organizations_for_authed_user,
|
|
13
|
+
_parse_model_and_version,
|
|
14
|
+
_resolve_org,
|
|
15
|
+
_resolve_teamspace_name,
|
|
16
|
+
_resolve_user,
|
|
17
|
+
)
|
|
8
18
|
|
|
9
19
|
if TYPE_CHECKING:
|
|
10
20
|
from lightning_sdk.studio import Studio
|
|
@@ -88,19 +98,33 @@ class Teamspace:
|
|
|
88
98
|
from lightning_sdk.studio import Studio
|
|
89
99
|
|
|
90
100
|
studios = []
|
|
91
|
-
clusters = self._teamspace_api.
|
|
101
|
+
clusters = self._teamspace_api.list_cloud_accounts(teamspace_id=self.id)
|
|
92
102
|
for cl in clusters:
|
|
93
|
-
_studios = self._teamspace_api.list_studios(teamspace_id=self.id,
|
|
103
|
+
_studios = self._teamspace_api.list_studios(teamspace_id=self.id, cloud_account=cl.cluster_id)
|
|
94
104
|
for s in _studios:
|
|
95
105
|
studios.append(Studio(name=s.name, teamspace=self, cluster=cl.cluster_name, create_ok=False))
|
|
96
106
|
|
|
97
107
|
return studios
|
|
98
108
|
|
|
109
|
+
@property
|
|
110
|
+
def default_cloud_account(self) -> str:
|
|
111
|
+
return self._teamspace.project_settings.preferred_cluster
|
|
112
|
+
|
|
113
|
+
@property
|
|
114
|
+
def cloud_accounts(self) -> List[str]:
|
|
115
|
+
"""All cloud accounts associated with that teamspace."""
|
|
116
|
+
clusters = self._teamspace_api.list_cloud_accounts(teamspace_id=self.id)
|
|
117
|
+
return [cl.cluster_name for cl in clusters]
|
|
118
|
+
|
|
99
119
|
@property
|
|
100
120
|
def clusters(self) -> List[str]:
|
|
101
121
|
"""All clusters associated with that teamspace."""
|
|
102
|
-
|
|
103
|
-
|
|
122
|
+
warnings.warn(
|
|
123
|
+
"The 'clusters' attribute is deprecated and will be removed in the future. "
|
|
124
|
+
"Please use the 'cloud_accounts' attribute instead.",
|
|
125
|
+
DeprecationWarning,
|
|
126
|
+
)
|
|
127
|
+
return self.cloud_accounts
|
|
104
128
|
|
|
105
129
|
def __eq__(self, other: "Teamspace") -> bool:
|
|
106
130
|
"""Checks whether the provided other object is equal to this one."""
|
|
@@ -116,6 +140,161 @@ class Teamspace:
|
|
|
116
140
|
"""Returns reader friendly representation."""
|
|
117
141
|
return repr(self)
|
|
118
142
|
|
|
143
|
+
def create_agent(
|
|
144
|
+
self,
|
|
145
|
+
name: str,
|
|
146
|
+
api_key: str,
|
|
147
|
+
base_url: str,
|
|
148
|
+
model: str,
|
|
149
|
+
org_id: Optional[str] = "",
|
|
150
|
+
prompt_template: Optional[str] = "",
|
|
151
|
+
description: Optional[str] = "",
|
|
152
|
+
prompt_suggestions: Optional[List[str]] = None,
|
|
153
|
+
file_uploads_enabled: Optional[bool] = None,
|
|
154
|
+
) -> "Agent":
|
|
155
|
+
agent = self._teamspace_api.create_agent(
|
|
156
|
+
teamspace_id=self.id,
|
|
157
|
+
name=name,
|
|
158
|
+
api_key=api_key,
|
|
159
|
+
base_url=base_url,
|
|
160
|
+
model=model,
|
|
161
|
+
org_id=org_id,
|
|
162
|
+
prompt_template=prompt_template,
|
|
163
|
+
description=description,
|
|
164
|
+
prompt_suggestions=prompt_suggestions,
|
|
165
|
+
file_uploads_enabled=file_uploads_enabled,
|
|
166
|
+
)
|
|
167
|
+
return Agent(agent.id)
|
|
168
|
+
|
|
169
|
+
def upload_model(
|
|
170
|
+
self,
|
|
171
|
+
path: Union[str, Path],
|
|
172
|
+
name: str,
|
|
173
|
+
cloud_account: Optional[str] = None,
|
|
174
|
+
progress_bar: bool = True,
|
|
175
|
+
) -> UploadedModelInfo:
|
|
176
|
+
"""Upload a local checkpoint file to the model store.
|
|
177
|
+
|
|
178
|
+
Args:
|
|
179
|
+
path: Path to the model file or folder to upload.
|
|
180
|
+
name: Name tag of the model to upload.
|
|
181
|
+
cloud_account: The name of the cloud account to store the Model in.
|
|
182
|
+
If not provided, the default cloud account for the Teamspace will be used.
|
|
183
|
+
progress_bar: Whether to show a progress bar for the upload.
|
|
184
|
+
"""
|
|
185
|
+
if not path:
|
|
186
|
+
raise ValueError("No path provided to upload")
|
|
187
|
+
if not name:
|
|
188
|
+
raise ValueError("No name provided for the model")
|
|
189
|
+
path = Path(path).resolve()
|
|
190
|
+
if not path.exists():
|
|
191
|
+
raise FileNotFoundError(str(path))
|
|
192
|
+
|
|
193
|
+
cloud_account = (
|
|
194
|
+
self._teamspace_api._determine_cloud_account(self.id) if cloud_account is None else cloud_account
|
|
195
|
+
)
|
|
196
|
+
filepaths = [path] if path.is_file() else [p for p in path.rglob("*") if p.is_file()]
|
|
197
|
+
|
|
198
|
+
if not filepaths:
|
|
199
|
+
raise FileNotFoundError(
|
|
200
|
+
"The path to upload doesn't contain any files. Make sure it points to a file or"
|
|
201
|
+
f" non-empty folder: {path}"
|
|
202
|
+
)
|
|
203
|
+
|
|
204
|
+
root_path = path
|
|
205
|
+
if len(filepaths) == 1:
|
|
206
|
+
root_path = path.parent
|
|
207
|
+
|
|
208
|
+
filenames = ",".join(str(f.relative_to(root_path)) for f in filepaths)
|
|
209
|
+
|
|
210
|
+
model = self._teamspace_api.create_model(
|
|
211
|
+
name=name,
|
|
212
|
+
metadata={"filenames": filenames},
|
|
213
|
+
private=True,
|
|
214
|
+
teamspace_id=self.id,
|
|
215
|
+
cloud_account=cloud_account,
|
|
216
|
+
)
|
|
217
|
+
self._teamspace_api.upload_model_files(
|
|
218
|
+
model_id=model.model_id,
|
|
219
|
+
version=model.version,
|
|
220
|
+
root_path=root_path,
|
|
221
|
+
filepaths=filepaths,
|
|
222
|
+
cloud_account=cloud_account,
|
|
223
|
+
teamspace_id=self.id,
|
|
224
|
+
progress_bar=progress_bar,
|
|
225
|
+
)
|
|
226
|
+
self._teamspace_api.complete_model_upload(
|
|
227
|
+
model_id=model.model_id,
|
|
228
|
+
version=model.version,
|
|
229
|
+
teamspace_id=self.id,
|
|
230
|
+
)
|
|
231
|
+
return UploadedModelInfo(
|
|
232
|
+
name=name,
|
|
233
|
+
version=model.version,
|
|
234
|
+
teamspace=self.name,
|
|
235
|
+
cloud_account=cloud_account,
|
|
236
|
+
)
|
|
237
|
+
|
|
238
|
+
def download_model(
|
|
239
|
+
self,
|
|
240
|
+
name: str,
|
|
241
|
+
download_dir: Optional[str] = None,
|
|
242
|
+
progress_bar: bool = True,
|
|
243
|
+
) -> str:
|
|
244
|
+
"""Download a checkpoint from the model store.
|
|
245
|
+
|
|
246
|
+
Args:
|
|
247
|
+
name: Name tag of the model to download. Can optionally also contain a version tag separated by a colon,
|
|
248
|
+
e.g. 'modelname:v1'.
|
|
249
|
+
download_dir: A path to directory where the model should be downloaded. Defaults
|
|
250
|
+
to the current working directory.
|
|
251
|
+
progress_bar: Whether to show a progress bar for the download.
|
|
252
|
+
|
|
253
|
+
Returns:
|
|
254
|
+
The absolute path to the downloaded model file or folder.
|
|
255
|
+
|
|
256
|
+
"""
|
|
257
|
+
if not name:
|
|
258
|
+
raise ValueError("No name provided for the model")
|
|
259
|
+
if download_dir is None:
|
|
260
|
+
download_dir = Path.cwd()
|
|
261
|
+
download_dir = Path(download_dir)
|
|
262
|
+
|
|
263
|
+
name, version = _parse_model_and_version(name)
|
|
264
|
+
model_version = self._teamspace_api.get_model_version(name=name, version=version, teamspace_id=self.id)
|
|
265
|
+
if not model_version.upload_complete:
|
|
266
|
+
raise RuntimeError(
|
|
267
|
+
f"Model {name}:{version} is not fully uploaded yet. Please wait until the upload is complete."
|
|
268
|
+
)
|
|
269
|
+
downloaded_files = self._teamspace_api.download_model_files(
|
|
270
|
+
name=name,
|
|
271
|
+
version=version,
|
|
272
|
+
download_dir=download_dir,
|
|
273
|
+
teamspace_name=self.name,
|
|
274
|
+
teamspace_owner_name=self.owner.name,
|
|
275
|
+
progress_bar=progress_bar,
|
|
276
|
+
)
|
|
277
|
+
|
|
278
|
+
if not downloaded_files:
|
|
279
|
+
raise RuntimeError("No files were downloaded. This shouldn't happen, please report a bug.")
|
|
280
|
+
|
|
281
|
+
if len(downloaded_files) == 1:
|
|
282
|
+
downloaded_file = Path(downloaded_files[0])
|
|
283
|
+
downloaded_path = download_dir / downloaded_file.parts[0]
|
|
284
|
+
return str(downloaded_path.resolve())
|
|
285
|
+
return str(Path(download_dir).resolve())
|
|
286
|
+
|
|
287
|
+
def delete_model(self, name: str) -> None:
|
|
288
|
+
"""Delete a model from the model store.
|
|
289
|
+
|
|
290
|
+
Args:
|
|
291
|
+
name: Name tag of the model to delete. Can optionally also contain a version tag separated by a colon,
|
|
292
|
+
e.g. 'entity/modelname:v1'.
|
|
293
|
+
|
|
294
|
+
"""
|
|
295
|
+
name, version = _parse_model_and_version(name)
|
|
296
|
+
self._teamspace_api.delete_model(name=name, version=version, teamspace_id=self.id)
|
|
297
|
+
|
|
119
298
|
|
|
120
299
|
def _resolve_valueerror_message(error: ValueError, owner: Owner, teamspace_name: str) -> ValueError:
|
|
121
300
|
"""Resolves the ValueError Message and replaces it with a nicer message."""
|
|
@@ -127,18 +306,17 @@ def _resolve_valueerror_message(error: ValueError, owner: Owner, teamspace_name:
|
|
|
127
306
|
organizations = _get_organizations_for_authed_user()
|
|
128
307
|
message = (
|
|
129
308
|
f"Teamspace {entire_ts_name} does not exist. "
|
|
130
|
-
"Is
|
|
131
|
-
f"{[o.name for o in organizations]}.
|
|
132
|
-
"of
|
|
309
|
+
f"Is {teamspace_name} an organizational Teamspace? You are a member of the following organizations: "
|
|
310
|
+
f"{[o.name for o in organizations]}. Try specifying the `org` parameter instead "
|
|
311
|
+
"of `user` if the Teamspace belongs to the organization."
|
|
133
312
|
)
|
|
134
313
|
else:
|
|
135
314
|
# organization teamspace owner
|
|
136
315
|
user = User()
|
|
137
316
|
message = (
|
|
138
317
|
f"Teamspace {entire_ts_name} does not exist. "
|
|
139
|
-
f"Is
|
|
140
|
-
"
|
|
141
|
-
f"Consider specifying user={user.name} instead of your org."
|
|
318
|
+
f"Is {teamspace_name} a user Teamspace? "
|
|
319
|
+
f"Consider specifying user={user.name} instead of org={owner.name}."
|
|
142
320
|
)
|
|
143
321
|
|
|
144
322
|
return ValueError(message, *error.args[1:])
|
lightning_sdk/user.py
CHANGED
|
File without changes
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
from abc import ABCMeta
|
|
2
|
+
from typing import Any, Callable, Tuple, Type
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class ConditionBaseMeta(ABCMeta):
|
|
6
|
+
"""Metaclass that allows for conditional inheritance.
|
|
7
|
+
|
|
8
|
+
This metaclass is used to conditionally inherit from two base classes
|
|
9
|
+
based on the result of a given condition function.
|
|
10
|
+
|
|
11
|
+
Example usage:
|
|
12
|
+
```
|
|
13
|
+
def my_condition():
|
|
14
|
+
return some_condition # Define your condition here
|
|
15
|
+
|
|
16
|
+
class A:
|
|
17
|
+
pass
|
|
18
|
+
|
|
19
|
+
class B:
|
|
20
|
+
pass
|
|
21
|
+
|
|
22
|
+
class MyNewClass(metaclass=ConditionBaseMeta, condition_func=my_condition, base_true=A, base_false=B):
|
|
23
|
+
pass
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Args:
|
|
27
|
+
cls: The metaclass itself.
|
|
28
|
+
name: The name of the class being created.
|
|
29
|
+
bases: The base classes of the class being created.
|
|
30
|
+
attrs: The attributes of the class being created.
|
|
31
|
+
condition_func: The function that determines which base class to inherit from.
|
|
32
|
+
base_true: The base class to inherit from if the condition function returns True.
|
|
33
|
+
base_false: The base class to inherit from if the condition function returns False.
|
|
34
|
+
|
|
35
|
+
Returns:
|
|
36
|
+
type: The new class with the appropriate base class.
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
def __new__(
|
|
40
|
+
cls,
|
|
41
|
+
name: str,
|
|
42
|
+
bases: Tuple[type, ...],
|
|
43
|
+
attrs: dict,
|
|
44
|
+
condition_func: Callable[[], bool],
|
|
45
|
+
base_true: Type,
|
|
46
|
+
base_false: Type,
|
|
47
|
+
) -> Type:
|
|
48
|
+
# Helper function to determine the base class
|
|
49
|
+
def get_base() -> type:
|
|
50
|
+
return base_true if condition_func() else base_false
|
|
51
|
+
|
|
52
|
+
base = get_base()
|
|
53
|
+
attrs["_base"] = base
|
|
54
|
+
|
|
55
|
+
# Create the final class, inheriting from both the intermediate base and the original bases
|
|
56
|
+
return super().__new__(cls, name, (base, *bases), attrs)
|
|
57
|
+
|
|
58
|
+
def __getattr__(cls, name: str) -> Any:
|
|
59
|
+
"""Get an attribute from the appropriate base class."""
|
|
60
|
+
# Delegate attribute lookup to the appropriate base class
|
|
61
|
+
return getattr(cls._base, name)
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
from enum import Enum, EnumMeta, unique
|
|
2
|
+
from types import MappingProxyType
|
|
3
|
+
from typing import Any, Dict, Iterator, Union
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# We silence annotation errors as the function signatures are exactly the same in python core enum.py
|
|
7
|
+
# modified from https://stackoverflow.com/a/62309159
|
|
8
|
+
class OnAccess(EnumMeta):
|
|
9
|
+
"""Runs a user-specified function whenever member is accessed."""
|
|
10
|
+
|
|
11
|
+
def __getattribute__(cls, name: str) -> Any: # noqa: N805
|
|
12
|
+
"""Called when an attribute is accessed."""
|
|
13
|
+
obj = super().__getattribute__(name)
|
|
14
|
+
if isinstance(obj, Enum) and obj._on_access:
|
|
15
|
+
obj._on_access()
|
|
16
|
+
return _resolve_deprecated_enum_fields(obj)
|
|
17
|
+
|
|
18
|
+
def __getitem__(cls, name: str) -> Any: # noqa: N805
|
|
19
|
+
"""Called when an item is accessed."""
|
|
20
|
+
member = super().__getitem__(name)
|
|
21
|
+
if isinstance(member, Enum) and member._on_access:
|
|
22
|
+
member._on_access()
|
|
23
|
+
|
|
24
|
+
return _resolve_deprecated_enum_fields(member)
|
|
25
|
+
|
|
26
|
+
def __call__(
|
|
27
|
+
cls, # noqa: N805
|
|
28
|
+
value, # noqa: ANN001
|
|
29
|
+
names=None, # noqa: ANN001
|
|
30
|
+
*,
|
|
31
|
+
module=None, # noqa: ANN001
|
|
32
|
+
qualname=None, # noqa: ANN001
|
|
33
|
+
type=None, # noqa: A002, ANN001
|
|
34
|
+
start=1, # noqa: ANN001
|
|
35
|
+
) -> Any:
|
|
36
|
+
obj = super().__call__(value, names, module=module, qualname=qualname, type=type, start=start)
|
|
37
|
+
if isinstance(obj, Enum) and obj._on_access:
|
|
38
|
+
obj._on_access()
|
|
39
|
+
return _resolve_deprecated_enum_fields(obj)
|
|
40
|
+
|
|
41
|
+
@staticmethod
|
|
42
|
+
def _filter_func(member: "DeprecationEnum") -> bool:
|
|
43
|
+
return not member.deprecated
|
|
44
|
+
|
|
45
|
+
def __iter__(cls) -> Iterator["DeprecationEnum"]: # noqa: N805
|
|
46
|
+
"""Returns members in definition order.
|
|
47
|
+
|
|
48
|
+
Excludes deprecated members
|
|
49
|
+
|
|
50
|
+
"""
|
|
51
|
+
return filter(cls._filter_func, (cls._member_map_[name] for name in cls._member_names_))
|
|
52
|
+
|
|
53
|
+
def __len__(cls) -> int: # noqa: N805
|
|
54
|
+
"""Length of the enum excluding deprecated members."""
|
|
55
|
+
return len(cls.__members__)
|
|
56
|
+
|
|
57
|
+
@property
|
|
58
|
+
def __members__(cls) -> Dict[str, "DeprecationEnum"]: # noqa: N805
|
|
59
|
+
"""Returns a mapping of member name->value.
|
|
60
|
+
|
|
61
|
+
This mapping lists all enum members, including aliases. Note that this is a read-only view of the internal
|
|
62
|
+
mapping.
|
|
63
|
+
|
|
64
|
+
Excludes deprecated members.
|
|
65
|
+
|
|
66
|
+
"""
|
|
67
|
+
return MappingProxyType(
|
|
68
|
+
{name: member for name, member in cls._member_map_.items() if not cls._filter_func(member)}
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
def __reversed__(cls) -> Iterator["DeprecationEnum"]: # noqa: N805
|
|
72
|
+
"""Returns members in reverse definition order.
|
|
73
|
+
|
|
74
|
+
Excludes deprecated members
|
|
75
|
+
|
|
76
|
+
"""
|
|
77
|
+
return filter(cls._filter_func, (cls._member_map_[name] for name in reversed(cls._member_names_)))
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def _resolve_deprecated_enum_fields(value: Union[Any, "DeprecationEnum"]) -> Union[Any, "DeprecationEnum"]:
|
|
81
|
+
"""Resolves deprecated enum fields to their preferred values."""
|
|
82
|
+
if getattr(value, "deprecated", False):
|
|
83
|
+
return value.__class__[value.preferred_way]
|
|
84
|
+
return value
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
# NOTE: even deprecated enums need to have unique values.
|
|
88
|
+
# otherwise the deprecation warning will not be triggered
|
|
89
|
+
# as duplicated values are handled as aliases towards the original value
|
|
90
|
+
# and the original value is not accessed. However, _resolve_deprecated_enum_fields
|
|
91
|
+
# will handle this case and return the preferred value
|
|
92
|
+
@unique
|
|
93
|
+
class DeprecationEnum(Enum, metaclass=OnAccess):
|
|
94
|
+
def __new__(cls, value, *args) -> Any: # noqa: ANN001, ANN002
|
|
95
|
+
member = object.__new__(cls)
|
|
96
|
+
member._value_ = value
|
|
97
|
+
member.deprecated = False
|
|
98
|
+
member._on_access = None
|
|
99
|
+
|
|
100
|
+
if args:
|
|
101
|
+
member.preferred_way = args[0]
|
|
102
|
+
member._on_access = member.deprecate
|
|
103
|
+
member.deprecated = True
|
|
104
|
+
|
|
105
|
+
return member
|
|
106
|
+
|
|
107
|
+
def deprecate(self) -> None:
|
|
108
|
+
import warnings
|
|
109
|
+
|
|
110
|
+
clsname = self.__class__.__name__
|
|
111
|
+
|
|
112
|
+
warnings.warn(
|
|
113
|
+
f"{clsname}.{self.name} is deprecated. Use {clsname}.{self.preferred_way} instead!",
|
|
114
|
+
DeprecationWarning,
|
|
115
|
+
stacklevel=3,
|
|
116
|
+
)
|
|
@@ -2,7 +2,7 @@ import logging
|
|
|
2
2
|
import os
|
|
3
3
|
import warnings
|
|
4
4
|
from contextlib import contextmanager
|
|
5
|
-
from typing import TYPE_CHECKING, Generator, List, Optional, Union
|
|
5
|
+
from typing import TYPE_CHECKING, Generator, List, Optional, Tuple, Union
|
|
6
6
|
|
|
7
7
|
from lightning_sdk.api import TeamspaceApi, UserApi
|
|
8
8
|
from lightning_sdk.machine import Machine
|
|
@@ -13,6 +13,9 @@ if TYPE_CHECKING:
|
|
|
13
13
|
from lightning_sdk.user import User
|
|
14
14
|
|
|
15
15
|
|
|
16
|
+
_LIGHTNING_SERVICE_EXECUTION_ID_KEY = "LIGHTNING_SERVICE_EXECUTION_ID"
|
|
17
|
+
|
|
18
|
+
|
|
16
19
|
def _setup_logger(name: str, level: int = logging.INFO) -> logging.Logger:
|
|
17
20
|
_logger = logging.getLogger(name)
|
|
18
21
|
_handler = logging.StreamHandler()
|
|
@@ -43,6 +46,24 @@ def _resolve_deprecated_cloud_compute(machine: Machine, cloud_compute: Optional[
|
|
|
43
46
|
return machine
|
|
44
47
|
|
|
45
48
|
|
|
49
|
+
def _resolve_deprecated_cluster(cloud_account: Optional[str], cluster: Optional[str]) -> Optional[str]:
|
|
50
|
+
if cluster is not None:
|
|
51
|
+
if cloud_account is not None:
|
|
52
|
+
raise ValueError(
|
|
53
|
+
"Cannot use both 'cluster' and 'cloud_account' at the same time."
|
|
54
|
+
"Please don't set the 'cluster' as it will be deprecated!"
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
warnings.warn(
|
|
58
|
+
"The 'cluster' argument will be deprecated in the future! "
|
|
59
|
+
"Please consider using the 'cloud_account' argument instead!",
|
|
60
|
+
DeprecationWarning,
|
|
61
|
+
)
|
|
62
|
+
return cluster
|
|
63
|
+
|
|
64
|
+
return cloud_account
|
|
65
|
+
|
|
66
|
+
|
|
46
67
|
def _resolve_org_name(name: Optional[str]) -> Optional[str]:
|
|
47
68
|
if name is None:
|
|
48
69
|
name = os.environ.get("LIGHTNING_ORG", "") or None
|
|
@@ -54,7 +75,6 @@ def _resolve_org(org: Optional[Union[str, "Organization"]]) -> Optional["Organiz
|
|
|
54
75
|
|
|
55
76
|
if isinstance(org, Organization):
|
|
56
77
|
return org
|
|
57
|
-
|
|
58
78
|
org = _resolve_org_name(org)
|
|
59
79
|
|
|
60
80
|
if org is None:
|
|
@@ -68,7 +88,6 @@ def _resolve_org(org: Optional[Union[str, "Organization"]]) -> Optional["Organiz
|
|
|
68
88
|
def _resolve_user_name(name: Optional[str]) -> Optional[str]:
|
|
69
89
|
if name is None:
|
|
70
90
|
name = os.environ.get("LIGHTNING_USERNAME", "") or None
|
|
71
|
-
|
|
72
91
|
return name
|
|
73
92
|
|
|
74
93
|
|
|
@@ -79,7 +98,6 @@ def _resolve_user(user: Optional[Union[str, "User"]]) -> Optional["User"]:
|
|
|
79
98
|
return user
|
|
80
99
|
|
|
81
100
|
user = _resolve_user_name(user)
|
|
82
|
-
|
|
83
101
|
if user is None:
|
|
84
102
|
return None
|
|
85
103
|
|
|
@@ -131,6 +149,12 @@ def _get_organizations_for_authed_user() -> List["Organization"]:
|
|
|
131
149
|
return [Organization(_org.name) for _org in _orgs]
|
|
132
150
|
|
|
133
151
|
|
|
152
|
+
def _get_teamspace_names_for_authed_user() -> List[str]:
|
|
153
|
+
"""Returns Teamspace's names the current Authed user is a member of."""
|
|
154
|
+
teamspaces = UserApi()._get_all_teamspace_memberships("")
|
|
155
|
+
return sorted([ts.name for ts in teamspaces])
|
|
156
|
+
|
|
157
|
+
|
|
134
158
|
def _get_authed_user() -> "User":
|
|
135
159
|
from lightning_sdk.user import User
|
|
136
160
|
|
|
@@ -150,3 +174,16 @@ def skip_studio_init() -> Generator[None, None, None]:
|
|
|
150
174
|
yield
|
|
151
175
|
|
|
152
176
|
Studio._skip_init = prev_studio_init_state
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
def _parse_model_and_version(name: str) -> Tuple[str, str]:
|
|
180
|
+
parts = name.split(":")
|
|
181
|
+
if len(parts) == 1:
|
|
182
|
+
return parts[0], "latest"
|
|
183
|
+
if len(parts) == 2:
|
|
184
|
+
return parts[0], parts[1]
|
|
185
|
+
# The rest of the validation for name and version happens in the backend
|
|
186
|
+
raise ValueError(
|
|
187
|
+
"Model version is expected to be in the format `entity/modelname:version` separated by a"
|
|
188
|
+
f" single colon, but got: {name}"
|
|
189
|
+
)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Grid.ai
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -1,14 +1,37 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: lightning_sdk
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.46
|
|
4
4
|
Summary: SDK to develop using Lightning AI Studios
|
|
5
5
|
Author-email: Lightning-AI <justus@lightning.ai>
|
|
6
|
+
License: MIT License
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2024 Grid.ai
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in all
|
|
18
|
+
copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
26
|
+
SOFTWARE.
|
|
27
|
+
|
|
6
28
|
Keywords: deep learning,machine learning,pytorch,AI
|
|
7
29
|
Classifier: Programming Language :: Python :: 3
|
|
30
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
8
31
|
Requires-Python: >=3.8
|
|
9
32
|
Description-Content-Type: text/markdown
|
|
33
|
+
License-File: LICENSE
|
|
10
34
|
Requires-Dist: backoff
|
|
11
|
-
Requires-Dist: click
|
|
12
35
|
Requires-Dist: fastapi
|
|
13
36
|
Requires-Dist: pyjwt
|
|
14
37
|
Requires-Dist: python-multipart
|
|
@@ -22,6 +45,9 @@ Requires-Dist: tqdm
|
|
|
22
45
|
Requires-Dist: fire
|
|
23
46
|
Requires-Dist: simple-term-menu
|
|
24
47
|
Requires-Dist: lightning-utilities
|
|
48
|
+
Provides-Extra: serve
|
|
49
|
+
Requires-Dist: litserve>=0.2.5; extra == "serve"
|
|
50
|
+
Requires-Dist: docker; extra == "serve"
|
|
25
51
|
|
|
26
52
|
# Lightning SDK
|
|
27
53
|
|
|
@@ -70,8 +96,8 @@ s.install_plugin("jobs")
|
|
|
70
96
|
s.install_plugin("multi-machine-training")
|
|
71
97
|
|
|
72
98
|
# run the resulting plugins to start 1 job and 1 multi-machine training
|
|
73
|
-
s.installed_plugins["jobs"].run("python my_dummy_file", name="my_first_job",
|
|
74
|
-
s.installed_plugins["multi-machine-training"].run("python my_dummy_file", name="my_first_mmt",
|
|
99
|
+
s.installed_plugins["jobs"].run("python my_dummy_file", name="my_first_job", machine=Machine.A10G)
|
|
100
|
+
s.installed_plugins["multi-machine-training"].run("python my_dummy_file", name="my_first_mmt", machine=Machine.T4, num_instances=42)
|
|
75
101
|
|
|
76
102
|
print("Stopping Studio")
|
|
77
103
|
s.stop()
|