skypilot-nightly 1.0.0.dev20250202__tar.gz → 1.0.0.dev20250204__tar.gz
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.
- {skypilot_nightly-1.0.0.dev20250202/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250204}/PKG-INFO +1 -1
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/__init__.py +2 -2
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/check.py +2 -2
- skypilot_nightly-1.0.0.dev20250204/sky/jobs/dashboard/dashboard.py +227 -0
- skypilot_nightly-1.0.0.dev20250204/sky/jobs/dashboard/templates/index.html +669 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/lambda_cloud/instance.py +17 -1
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/serve/serve_state.py +23 -21
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204/skypilot_nightly.egg-info}/PKG-INFO +1 -1
- skypilot_nightly-1.0.0.dev20250202/sky/jobs/dashboard/dashboard.py +0 -91
- skypilot_nightly-1.0.0.dev20250202/sky/jobs/dashboard/templates/index.html +0 -255
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/README.md +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/pyproject.toml +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/setup.cfg +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/adaptors/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/adaptors/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/adaptors/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/adaptors/cloudflare.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/adaptors/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/adaptors/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/adaptors/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/adaptors/docker.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/adaptors/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/adaptors/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/adaptors/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/adaptors/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/adaptors/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/adaptors/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/admin_policy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/authentication.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/backends/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/backends/backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/backends/backend_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/backends/cloud_vm_ray_backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/backends/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/backends/local_docker_backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/backends/wheel_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/benchmark/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/benchmark/benchmark_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/benchmark/benchmark_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/cloud_stores.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/cloud_registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/paperspace.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/scp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/aws_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/azure_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/do_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/gcp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/kubernetes_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/oci_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/scp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/utils/aws_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/utils/azure_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/utils/gcp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/utils/oci_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/utils/scp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/clouds/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/data/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/data/data_transfer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/data/data_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/data/mounting_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/data/storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/data/storage_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/exceptions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/execution.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/jobs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/jobs/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/jobs/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/jobs/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/jobs/dashboard/static/favicon.ico +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/jobs/recovery_strategy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/jobs/scheduler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/jobs/state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/jobs/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/optimizer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/aws/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/aws/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/aws/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/azure/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/azure/azure-config-template.json +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/azure/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/azure/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/cudo/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/cudo/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/cudo/cudo_machine_type.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/cudo/cudo_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/cudo/cudo_wrapper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/cudo/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/do/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/do/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/do/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/do/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/do/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/fluidstack/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/fluidstack/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/fluidstack/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/gcp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/gcp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/gcp/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/gcp/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/gcp/instance_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/gcp/mig_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/instance_setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/kubernetes/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/kubernetes/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/kubernetes/network.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/kubernetes/network_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/kubernetes/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/lambda_cloud/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/lambda_cloud/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/oci/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/oci/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/oci/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/oci/query_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/paperspace/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/paperspace/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/paperspace/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/paperspace/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/paperspace/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/provisioner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/runpod/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/runpod/api/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/runpod/api/commands.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/runpod/api/pods.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/runpod/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/runpod/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/runpod/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/vsphere/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/vsphere/common/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/vsphere/common/cls_api_client.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/vsphere/common/custom_script.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/vsphere/common/id_generator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/vsphere/common/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/vsphere/common/service_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/vsphere/common/ssl_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/vsphere/common/vapiconnect.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/vsphere/common/vim_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/vsphere/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/vsphere/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/provision/vsphere/vsphere_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/resources.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/serve/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/serve/autoscalers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/serve/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/serve/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/serve/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/serve/load_balancer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/serve/load_balancing_policies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/serve/replica_managers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/serve/serve_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/serve/service.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/serve/service_spec.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/setup_files/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/setup_files/dependencies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/setup_files/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/sky_logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/attempt_skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/autostop_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/configs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/events.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/job_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/log_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/log_lib.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/providers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/providers/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/providers/ibm/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/providers/ibm/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/providers/ibm/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/providers/scp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/providers/scp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/providers/scp/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/ray_patches/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/ray_patches/cli.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/ray_patches/updater.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/ray_patches/worker.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skylet/subprocess_daemon.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/skypilot_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/status_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/task.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/aws-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/azure-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/cudo-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/do-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/fluidstack-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/gcp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/ibm-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/jobs-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/kubernetes-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/lambda-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/local-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/oci-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/paperspace-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/runpod-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/scp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/templates/vsphere-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/usage/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/usage/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/usage/usage_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/accelerator_registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/admin_policy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/cli_utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/cli_utils/status_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/cluster_yaml_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/command_runner.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/common_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/control_master_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/controller_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/dag_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/env_options.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/kubernetes/create_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/kubernetes/delete_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/kubernetes/deploy_remote_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/kubernetes/generate_kind_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/kubernetes/gpu_labeler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/kubernetes/rsync_helper.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/kubernetes_enums.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/log_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/resources_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/rich_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/schemas.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/subprocess_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/timeline.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/ux_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/sky/utils/validator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/skypilot_nightly.egg-info/SOURCES.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/skypilot_nightly.egg-info/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/skypilot_nightly.egg-info/requires.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/skypilot_nightly.egg-info/top_level.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/tests/test_api.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/tests/test_cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/tests/test_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/tests/test_global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/tests/test_jobs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/tests/test_jobs_and_serve.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/tests/test_list_accelerators.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/tests/test_optimizer_dryruns.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/tests/test_optimizer_random_dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/tests/test_serve_autoscaler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/tests/test_smoke.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/tests/test_storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/tests/test_wheels.py +0 -0
- {skypilot_nightly-1.0.0.dev20250202 → skypilot_nightly-1.0.0.dev20250204}/tests/test_yaml_parser.py +0 -0
@@ -5,7 +5,7 @@ from typing import Optional
|
|
5
5
|
import urllib.request
|
6
6
|
|
7
7
|
# Replaced with the current commit when building the wheels.
|
8
|
-
_SKYPILOT_COMMIT_SHA = '
|
8
|
+
_SKYPILOT_COMMIT_SHA = 'e4ad98c907a819d9a6b7f6872445ca497401b8c9'
|
9
9
|
|
10
10
|
|
11
11
|
def _get_git_commit():
|
@@ -35,7 +35,7 @@ def _get_git_commit():
|
|
35
35
|
|
36
36
|
|
37
37
|
__commit__ = _get_git_commit()
|
38
|
-
__version__ = '1.0.0.
|
38
|
+
__version__ = '1.0.0.dev20250204'
|
39
39
|
__root_dir__ = os.path.dirname(os.path.abspath(__file__))
|
40
40
|
|
41
41
|
|
@@ -245,10 +245,10 @@ def _format_enabled_cloud(cloud_name: str) -> str:
|
|
245
245
|
# here we are using rich. We should migrate this file to
|
246
246
|
# use colorama as we do in the rest of the codebase.
|
247
247
|
symbol = ('└── ' if i == len(existing_contexts) - 1 else '├── ')
|
248
|
-
contexts_formatted.append(f'\n
|
248
|
+
contexts_formatted.append(f'\n {symbol}{context}')
|
249
249
|
context_info = f'Allowed contexts:{"".join(contexts_formatted)}'
|
250
250
|
else:
|
251
251
|
context_info = f'Active context: {existing_contexts[0]}'
|
252
252
|
|
253
|
-
return f'{cloud_name}[/green][dim]\n
|
253
|
+
return f'{cloud_name}[/green][dim]\n {context_info}[/dim][green]'
|
254
254
|
return cloud_name
|
@@ -0,0 +1,227 @@
|
|
1
|
+
"""Dashboard for managed jobs based on Flask.
|
2
|
+
|
3
|
+
TODO(zongheng): This is a basic version. In the future we can beef up the web
|
4
|
+
frameworks used (e.g.,
|
5
|
+
https://github.com/ray-project/ray/tree/master/dashboard/client/src) and/or get
|
6
|
+
rid of the SSH port-forwarding business (see cli.py's job_dashboard()
|
7
|
+
comment).
|
8
|
+
"""
|
9
|
+
import collections
|
10
|
+
import datetime
|
11
|
+
import enum
|
12
|
+
import os
|
13
|
+
import pathlib
|
14
|
+
|
15
|
+
import flask
|
16
|
+
import yaml
|
17
|
+
|
18
|
+
from sky import jobs as managed_jobs
|
19
|
+
from sky.jobs import constants as managed_job_constants
|
20
|
+
from sky.utils import common_utils
|
21
|
+
from sky.utils import controller_utils
|
22
|
+
|
23
|
+
app = flask.Flask(__name__)
|
24
|
+
|
25
|
+
|
26
|
+
def _is_running_on_jobs_controller() -> bool:
|
27
|
+
"""Am I running on jobs controller?
|
28
|
+
|
29
|
+
Loads ~/.sky/sky_ray.yml and check cluster_name.
|
30
|
+
"""
|
31
|
+
if pathlib.Path('~/.sky/sky_ray.yml').expanduser().exists():
|
32
|
+
config = yaml.safe_load(
|
33
|
+
pathlib.Path('~/.sky/sky_ray.yml').expanduser().read_text(
|
34
|
+
encoding='utf-8'))
|
35
|
+
cluster_name = config.get('cluster_name', '')
|
36
|
+
candidate_controller_names = (
|
37
|
+
controller_utils.Controllers.JOBS_CONTROLLER.value.
|
38
|
+
candidate_cluster_names)
|
39
|
+
# We use startswith instead of exact match because the cluster name in
|
40
|
+
# the yaml file is cluster_name_on_cloud which may have additional
|
41
|
+
# suffices.
|
42
|
+
return any(
|
43
|
+
cluster_name.startswith(name)
|
44
|
+
for name in candidate_controller_names)
|
45
|
+
return False
|
46
|
+
|
47
|
+
|
48
|
+
# Column indices for job table
|
49
|
+
class JobTableColumns(enum.IntEnum):
|
50
|
+
"""Column indices for the jobs table in the dashboard.
|
51
|
+
|
52
|
+
- DROPDOWN (0): Column for expandable dropdown arrow
|
53
|
+
- ID (1): Job ID column
|
54
|
+
- TASK (2): Task name/number column
|
55
|
+
- NAME (3): Job name column
|
56
|
+
- RESOURCES (4): Resources used by job
|
57
|
+
- SUBMITTED (5): Job submission timestamp
|
58
|
+
- TOTAL_DURATION (6): Total time since job submission
|
59
|
+
- JOB_DURATION (7): Actual job runtime
|
60
|
+
- RECOVERIES (8): Number of job recoveries
|
61
|
+
- STATUS (9): Current job status
|
62
|
+
- STARTED (10): Job start timestamp
|
63
|
+
- CLUSTER (11): Cluster name
|
64
|
+
- REGION (12): Cloud region
|
65
|
+
- FAILOVER (13): Job failover history
|
66
|
+
- DETAILS (14): Job details
|
67
|
+
- ACTIONS (15): Available actions column
|
68
|
+
"""
|
69
|
+
DROPDOWN = 0
|
70
|
+
ID = 1
|
71
|
+
TASK = 2
|
72
|
+
NAME = 3
|
73
|
+
RESOURCES = 4
|
74
|
+
SUBMITTED = 5
|
75
|
+
TOTAL_DURATION = 6
|
76
|
+
JOB_DURATION = 7
|
77
|
+
RECOVERIES = 8
|
78
|
+
STATUS = 9
|
79
|
+
STARTED = 10
|
80
|
+
CLUSTER = 11
|
81
|
+
REGION = 12
|
82
|
+
DETAILS = 13
|
83
|
+
FAILOVER = 14
|
84
|
+
ACTIONS = 15
|
85
|
+
|
86
|
+
|
87
|
+
# Column headers matching the indices above
|
88
|
+
JOB_TABLE_COLUMNS = [
|
89
|
+
'', 'ID', 'Task', 'Name', 'Resources', 'Submitted', 'Total Duration',
|
90
|
+
'Job Duration', 'Status', 'Started', 'Cluster', 'Region', 'Failover',
|
91
|
+
'Recoveries', 'Details', 'Actions'
|
92
|
+
]
|
93
|
+
|
94
|
+
|
95
|
+
def _extract_launch_history(log_content: str) -> str:
|
96
|
+
"""Extract launch history from log content.
|
97
|
+
|
98
|
+
Args:
|
99
|
+
log_content: Content of the log file.
|
100
|
+
Returns:
|
101
|
+
A formatted string containing the launch history.
|
102
|
+
"""
|
103
|
+
launches = []
|
104
|
+
current_launch = None
|
105
|
+
|
106
|
+
for line in log_content.splitlines():
|
107
|
+
if 'Launching on' in line:
|
108
|
+
try:
|
109
|
+
parts = line.split(']')
|
110
|
+
if len(parts) >= 2:
|
111
|
+
timestamp = parts[0].split()[1:3]
|
112
|
+
message = parts[1].replace('[0m⚙︎', '').strip()
|
113
|
+
formatted_line = f'{" ".join(timestamp)} {message}'
|
114
|
+
if current_launch:
|
115
|
+
prev_time, prev_target = current_launch.rsplit(
|
116
|
+
' Launching on ', 1)
|
117
|
+
launches.append(
|
118
|
+
f'{prev_time} Tried to launch on {prev_target}')
|
119
|
+
|
120
|
+
# Store the current launch
|
121
|
+
current_launch = formatted_line
|
122
|
+
except IndexError:
|
123
|
+
launches.append(line.strip())
|
124
|
+
|
125
|
+
# Add the final (successful) launch at the beginning
|
126
|
+
if current_launch:
|
127
|
+
result = [current_launch]
|
128
|
+
result.extend(launches)
|
129
|
+
return '\n'.join(result)
|
130
|
+
|
131
|
+
return 'No launch history found'
|
132
|
+
|
133
|
+
|
134
|
+
@app.route('/')
|
135
|
+
def home():
|
136
|
+
if not _is_running_on_jobs_controller():
|
137
|
+
# Experimental: run on laptop (refresh is very slow).
|
138
|
+
all_managed_jobs = managed_jobs.queue(refresh=True, skip_finished=False)
|
139
|
+
else:
|
140
|
+
job_table = managed_jobs.dump_managed_job_queue()
|
141
|
+
all_managed_jobs = managed_jobs.load_managed_job_queue(job_table)
|
142
|
+
|
143
|
+
timestamp = datetime.datetime.now(datetime.timezone.utc)
|
144
|
+
rows = managed_jobs.format_job_table(all_managed_jobs,
|
145
|
+
show_all=True,
|
146
|
+
return_rows=True)
|
147
|
+
|
148
|
+
status_counts = collections.defaultdict(int)
|
149
|
+
for task in all_managed_jobs:
|
150
|
+
if not task['status'].is_terminal():
|
151
|
+
status_counts[task['status'].value] += 1
|
152
|
+
|
153
|
+
# Add an empty column for the dropdown button and actions column
|
154
|
+
rows = [[''] + row + [''] + [''] for row in rows
|
155
|
+
] # Add empty cell for failover and actions column
|
156
|
+
|
157
|
+
# Add log content as failover history for each job
|
158
|
+
for row in rows:
|
159
|
+
job_id = str(row[JobTableColumns.ID]).strip().replace(' ⤳', '')
|
160
|
+
if job_id and job_id != '-':
|
161
|
+
try:
|
162
|
+
log_path = os.path.join(
|
163
|
+
os.path.expanduser(
|
164
|
+
managed_job_constants.JOBS_CONTROLLER_LOGS_DIR),
|
165
|
+
f'{job_id}.log')
|
166
|
+
if os.path.exists(log_path):
|
167
|
+
with open(log_path, 'r', encoding='utf-8') as f:
|
168
|
+
log_content = f.read()
|
169
|
+
row[JobTableColumns.FAILOVER] = _extract_launch_history(
|
170
|
+
log_content)
|
171
|
+
else:
|
172
|
+
row[JobTableColumns.FAILOVER] = 'Log file not found'
|
173
|
+
except (IOError, OSError) as e:
|
174
|
+
row[JobTableColumns.FAILOVER] = f'Error reading log: {str(e)}'
|
175
|
+
app.logger.error('All managed jobs:')
|
176
|
+
|
177
|
+
# Validate column count
|
178
|
+
if rows and len(rows[0]) != len(JOB_TABLE_COLUMNS):
|
179
|
+
raise RuntimeError(
|
180
|
+
f'Dashboard code and managed job queue code are out of sync. '
|
181
|
+
f'Expected {(JOB_TABLE_COLUMNS)} columns, got {(rows[0])}')
|
182
|
+
|
183
|
+
# Fix STATUS color codes: '\x1b[33mCANCELLED\x1b[0m' -> 'CANCELLED'
|
184
|
+
for row in rows:
|
185
|
+
row[JobTableColumns.STATUS] = common_utils.remove_color(
|
186
|
+
row[JobTableColumns.STATUS])
|
187
|
+
|
188
|
+
# Remove filler rows ([''], ..., ['-'])
|
189
|
+
rows = [
|
190
|
+
row for row in rows
|
191
|
+
if ''.join(map(str, row[:JobTableColumns.ACTIONS])) != ''
|
192
|
+
]
|
193
|
+
|
194
|
+
# Get all unique status values
|
195
|
+
status_values = sorted(
|
196
|
+
list(set(row[JobTableColumns.STATUS] for row in rows)))
|
197
|
+
|
198
|
+
rendered_html = flask.render_template(
|
199
|
+
'index.html',
|
200
|
+
columns=JOB_TABLE_COLUMNS,
|
201
|
+
rows=rows,
|
202
|
+
last_updated_timestamp=timestamp,
|
203
|
+
status_values=status_values,
|
204
|
+
status_counts=status_counts,
|
205
|
+
)
|
206
|
+
return rendered_html
|
207
|
+
|
208
|
+
|
209
|
+
@app.route('/download_log/<job_id>')
|
210
|
+
def download_log(job_id):
|
211
|
+
try:
|
212
|
+
log_path = os.path.join(
|
213
|
+
os.path.expanduser(managed_job_constants.JOBS_CONTROLLER_LOGS_DIR),
|
214
|
+
f'{job_id}.log')
|
215
|
+
if not os.path.exists(log_path):
|
216
|
+
flask.abort(404)
|
217
|
+
return flask.send_file(log_path,
|
218
|
+
mimetype='text/plain',
|
219
|
+
as_attachment=True,
|
220
|
+
download_name=f'job_{job_id}.log')
|
221
|
+
except (IOError, OSError) as e:
|
222
|
+
app.logger.error(f'Error downloading log for job {job_id}: {str(e)}')
|
223
|
+
flask.abort(500)
|
224
|
+
|
225
|
+
|
226
|
+
if __name__ == '__main__':
|
227
|
+
app.run()
|