skypilot-nightly 1.0.0.dev20250926__tar.gz → 1.0.0.dev20251001__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.
Potentially problematic release.
This version of skypilot-nightly might be problematic. Click here for more details.
- {skypilot_nightly-1.0.0.dev20250926/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20251001}/PKG-INFO +36 -36
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/__init__.py +2 -2
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/backends/backend_utils.py +43 -14
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/backends/cloud_vm_ray_backend.py +153 -38
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/check.py +0 -29
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/client/cli/command.py +48 -26
- skypilot_nightly-1.0.0.dev20251001/sky/client/cli/table_utils.py +91 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/client/sdk.py +14 -23
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/client/sdk_async.py +5 -5
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/core.py +18 -20
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/404.html +1 -1
- skypilot_nightly-1.0.0.dev20250926/sky/dashboard/out/_next/static/chunks/3294.03e02ae73455f48e.js → skypilot_nightly-1.0.0.dev20251001/sky/dashboard/out/_next/static/chunks/3294.93d9336bdc032b3a.js +1 -1
- skypilot_nightly-1.0.0.dev20251001/sky/dashboard/out/_next/static/chunks/6856-5fdc9b851a18acdb.js +1 -0
- skypilot_nightly-1.0.0.dev20250926/sky/dashboard/out/_next/static/chunks/pages/jobs/pools/[pool]-07349868f7905d37.js → skypilot_nightly-1.0.0.dev20251001/sky/dashboard/out/_next/static/chunks/pages/jobs/pools/[pool]-509b2977a6373bf6.js +1 -1
- skypilot_nightly-1.0.0.dev20250926/sky/dashboard/out/_next/static/chunks/webpack-8e64d11e58eab5cb.js → skypilot_nightly-1.0.0.dev20251001/sky/dashboard/out/_next/static/chunks/webpack-4f0c389a4ce5fd9c.js +1 -1
- {skypilot_nightly-1.0.0.dev20250926/sky/dashboard/out/_next/static/VXU6_xE28M55BOdwmUUJS → skypilot_nightly-1.0.0.dev20251001/sky/dashboard/out/_next/static/m3YT2i5s6v4SsIdYc8WZa}/_buildManifest.js +1 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/clusters/[cluster].html +1 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/clusters.html +1 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/config.html +1 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/index.html +1 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/infra/[context].html +1 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/infra.html +1 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/jobs/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/jobs/pools/[pool].html +1 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/jobs.html +1 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/users.html +1 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/volumes.html +1 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/workspace/new.html +1 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/workspaces/[name].html +1 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/workspaces.html +1 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/data/storage.py +11 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/data/storage_utils.py +1 -45
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/execution.py +0 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/global_user_state.py +3 -3
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/jobs/client/sdk.py +3 -2
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/jobs/controller.py +15 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/jobs/server/core.py +120 -28
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/jobs/server/server.py +1 -1
- skypilot_nightly-1.0.0.dev20251001/sky/jobs/server/utils.py +115 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/jobs/state.py +145 -3
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/jobs/utils.py +87 -8
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/kubernetes/instance.py +1 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/api/responses.py +73 -0
- skypilot_nightly-1.0.0.dev20251001/sky/schemas/generated/managed_jobsv1_pb2.py +70 -0
- skypilot_nightly-1.0.0.dev20251001/sky/schemas/generated/managed_jobsv1_pb2.pyi +262 -0
- skypilot_nightly-1.0.0.dev20251001/sky/schemas/generated/managed_jobsv1_pb2_grpc.py +278 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/serve_utils.py +16 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/server/core.py +1 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/server/impl.py +6 -6
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/common.py +2 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/requests/serializers/decoders.py +10 -6
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/requests/serializers/encoders.py +13 -8
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/constants.py +1 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/job_lib.py +2 -32
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/log_lib.py +211 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/log_lib.pyi +30 -1
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/services.py +208 -2
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/skylet.py +3 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/task.py +4 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/cluster_utils.py +23 -5
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/command_runner.py +21 -5
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/command_runner.pyi +11 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/volume.py +5 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001/skypilot_nightly.egg-info}/PKG-INFO +36 -36
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/skypilot_nightly.egg-info/SOURCES.txt +10 -6
- skypilot_nightly-1.0.0.dev20250926/sky/dashboard/out/_next/static/chunks/6856-2b3600ff2854d066.js +0 -1
- skypilot_nightly-1.0.0.dev20250926/sky/jobs/server/utils.py +0 -82
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/README.md +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/pyproject.toml +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/setup.cfg +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/adaptors/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/adaptors/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/adaptors/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/adaptors/cloudflare.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/adaptors/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/adaptors/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/adaptors/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/adaptors/docker.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/adaptors/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/adaptors/hyperbolic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/adaptors/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/adaptors/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/adaptors/nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/adaptors/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/adaptors/primeintellect.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/adaptors/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/adaptors/seeweb.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/adaptors/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/adaptors/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/admin_policy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/authentication.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/backends/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/backends/backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/backends/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/backends/local_docker_backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/backends/wheel_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/aws_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/azure_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/cudo_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/data_fetchers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/data_fetchers/analyze.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/data_fetchers/fetch_cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/data_fetchers/fetch_gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/data_fetchers/fetch_hyperbolic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/data_fetchers/fetch_nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/data_fetchers/fetch_seeweb.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/do_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/fluidstack_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/gcp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/hyperbolic_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/ibm_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/kubernetes_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/lambda_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/nebius_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/oci_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/paperspace_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/primeintellect_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/runpod_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/scp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/seeweb_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/ssh_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/vast_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/catalog/vsphere_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/client/cli/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/client/cli/deprecation_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/client/cli/flags.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/client/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/client/oauth.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/client/service_account_auth.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/cloud_stores.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/hyperbolic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/paperspace.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/primeintellect.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/scp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/seeweb.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/ssh.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/utils/aws_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/utils/azure_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/utils/gcp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/utils/oci_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/utils/scp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/clouds/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/1121-d0782b9251f0fcd3.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/1141-159df2d4c441a9d1.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/1836-37fede578e2da5f8.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/2350.fab69e61bac57b23.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/3015-88c7c8d69b0b6dba.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/3785.0fa442e16dd3f00e.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/3850-ff4a9a69d978632b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/3937.210053269f121201.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/4045.b30465273dc5e468.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/4676-9da7fdbde90b5549.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/4725.10f7a9a5d3ea8208.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/5339.4a881570243431a5.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/5739-d67458fcb1386c92.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/6130-2be46d70a38f1e82.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/6135-4b4d5e824b7f9d3c.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/616-3d59f75e2ccf9321.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/649.b9d7f7d10c1b8c53.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/6601-06114c982db410b6.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/6989-01359c57e018caa4.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/6990-f6818c84ed8f1c86.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/7325.b4bc99ce0892dcd5.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/7411-b15471acd2cba716.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/754-d0da8ab45f9509e9.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/7669.1f5d9a402bf5cc42.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/8969-d8bc3a2b9cf839a9.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/9025.c12318fb6a1a9093.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/9037-d0c00018a5ba198c.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/fd9d1056-86323a29a8f7e46a.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/framework-cf60a09ccd051a10.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/main-app-587214043926b3cc.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/main-f15ccb73239a3bf1.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/pages/_app-ce361c6959bc2001.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-ad77b12fc736dca3.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-e052384df65ef200.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/pages/clusters-469814d711d63b1b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/pages/config-dfb9bf07b13045f4.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/pages/index-444f1804401f04ea.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-6563820e094f68ca.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/pages/infra-aabba60d57826e0f.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-dd64309c3fe67ed2.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/pages/jobs-1f70d9faa564804f.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/pages/users-018bf31cda52e11b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/pages/volumes-739726d6b823f532.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-af76bb06dbb3954f.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/pages/workspaces-7528cc0ef8c522c5.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/_next/static/css/4614e06482d7309e.css +0 -0
- {skypilot_nightly-1.0.0.dev20250926/sky/dashboard/out/_next/static/VXU6_xE28M55BOdwmUUJS → skypilot_nightly-1.0.0.dev20251001/sky/dashboard/out/_next/static/m3YT2i5s6v4SsIdYc8WZa}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/favicon.ico +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/skypilot.svg +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/data/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/data/data_transfer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/data/data_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/data/mounting_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/exceptions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/jobs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/jobs/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/jobs/client/sdk_async.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/jobs/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/jobs/recovery_strategy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/jobs/scheduler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/jobs/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/logs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/logs/agent.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/logs/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/logs/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/metrics/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/metrics/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/models.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/optimizer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/aws/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/aws/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/aws/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/azure/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/azure/azure-config-template.json +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/azure/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/azure/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/cudo/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/cudo/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/cudo/cudo_machine_type.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/cudo/cudo_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/cudo/cudo_wrapper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/cudo/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/do/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/do/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/do/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/do/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/do/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/fluidstack/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/fluidstack/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/fluidstack/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/gcp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/gcp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/gcp/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/gcp/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/gcp/instance_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/gcp/mig_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/gcp/volume_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/hyperbolic/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/hyperbolic/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/hyperbolic/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/hyperbolic/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/instance_setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/kubernetes/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/kubernetes/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/kubernetes/network.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/kubernetes/network_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/kubernetes/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/kubernetes/volume.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/lambda_cloud/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/lambda_cloud/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/lambda_cloud/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/nebius/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/nebius/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/nebius/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/nebius/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/nebius/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/oci/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/oci/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/oci/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/oci/query_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/paperspace/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/paperspace/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/paperspace/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/paperspace/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/paperspace/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/primeintellect/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/primeintellect/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/primeintellect/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/primeintellect/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/provisioner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/runpod/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/runpod/api/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/runpod/api/commands.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/runpod/api/pods.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/runpod/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/runpod/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/runpod/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/runpod/volume.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/scp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/scp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/scp/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/seeweb/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/seeweb/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/seeweb/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/ssh/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/vast/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/vast/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/vast/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/vast/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/vsphere/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/vsphere/common/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/vsphere/common/cls_api_client.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/vsphere/common/custom_script.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/vsphere/common/id_generator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/vsphere/common/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/vsphere/common/service_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/vsphere/common/ssl_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/vsphere/common/vapiconnect.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/vsphere/common/vim_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/vsphere/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/vsphere/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/provision/vsphere/vsphere_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/py.typed +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/resources.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/api/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/db/README +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/db/env.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/db/global_user_state/001_initial_schema.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/db/global_user_state/002_add_workspace_to_cluster_history.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/db/global_user_state/003_fix_initial_revision.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/db/global_user_state/004_is_managed.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/db/global_user_state/005_cluster_event.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/db/global_user_state/006_provision_log.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/db/global_user_state/007_cluster_event_request_id.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/db/global_user_state/008_skylet_ssh_tunnel_metadata.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/db/global_user_state/009_last_activity_and_launched_at.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/db/script.py.mako +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/db/serve_state/001_initial_schema.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/db/spot_jobs/001_initial_schema.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/db/spot_jobs/002_cluster_pool.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/db/spot_jobs/003_pool_hash.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/generated/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/generated/autostopv1_pb2.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/generated/autostopv1_pb2.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/generated/autostopv1_pb2_grpc.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/generated/jobsv1_pb2.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/generated/jobsv1_pb2.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/generated/jobsv1_pb2_grpc.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/generated/servev1_pb2.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/generated/servev1_pb2.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/schemas/generated/servev1_pb2_grpc.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/autoscalers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/client/impl.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/client/sdk_async.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/load_balancer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/load_balancing_policies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/replica_managers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/serve_rpc_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/serve_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/service.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/service_spec.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/serve/spot_placer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/auth/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/auth/authn.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/auth/oauth2_proxy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/daemons.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/html/log.html +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/html/token_page.html +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/metrics.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/requests/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/requests/event_loop.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/requests/executor.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/requests/payloads.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/requests/preconditions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/requests/process.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/requests/queues/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/requests/queues/local_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/requests/queues/mp_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/requests/requests.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/requests/serializers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/rest.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/stream_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/uvicorn.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/server/versions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/setup_files/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/setup_files/alembic.ini +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/setup_files/dependencies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/setup_files/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/sky_logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/attempt_skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/autostop_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/configs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/events.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/providers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/providers/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/providers/ibm/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/providers/ibm/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/providers/ibm/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/ray_patches/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/ray_patches/autoscaler.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/ray_patches/cli.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/ray_patches/cli.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/ray_patches/command_runner.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/ray_patches/log_monitor.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/ray_patches/resource_demand_scheduler.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/ray_patches/updater.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/ray_patches/updater.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/ray_patches/worker.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/ray_patches/worker.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skylet/subprocess_daemon.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/skypilot_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/ssh_node_pools/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/ssh_node_pools/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/ssh_node_pools/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/aws-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/azure-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/cudo-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/do-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/fluidstack-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/gcp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/hyperbolic-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/ibm-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/jobs-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/kubernetes-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/lambda-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/local-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/nebius-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/oci-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/paperspace-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/primeintellect-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/runpod-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/scp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/seeweb-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/vast-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/vsphere-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/templates/websocket_proxy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/usage/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/usage/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/usage/usage_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/users/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/users/model.conf +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/users/permission.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/users/rbac.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/users/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/users/token_service.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/accelerator_registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/admin_policy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/annotations.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/atomic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/aws/get_default_security_group.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/benchmark_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/cli_utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/cli_utils/status_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/common_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/config_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/context.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/context_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/control_master_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/controller_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/dag_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/db/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/db/db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/db/migration_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/directory_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/env_options.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/git.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/git_clone.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/infra_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/kubernetes/config_map_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/kubernetes/create_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/kubernetes/delete_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/kubernetes/deploy_remote_cluster.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/kubernetes/generate_kind_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/kubernetes/gpu_labeler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/kubernetes/rsync_helper.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/kubernetes/ssh_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/kubernetes_enums.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/lock_events.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/locks.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/log_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/message_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/perf_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/resource_checker.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/resources_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/rich_console_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/rich_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/schemas.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/serialize_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/status_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/subprocess_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/tempstore.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/timeline.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/ux_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/validator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/utils/yaml_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/volumes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/volumes/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/volumes/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/volumes/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/volumes/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/volumes/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/volumes/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/volumes/volume.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/workspaces/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/workspaces/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/workspaces/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/sky/workspaces/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/skypilot_nightly.egg-info/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/skypilot_nightly.egg-info/requires.txt +34 -34
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/skypilot_nightly.egg-info/top_level.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/tests/test_api.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/tests/test_api_compatibility.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/tests/test_cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/tests/test_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/tests/test_db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/tests/test_failover.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/tests/test_global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/tests/test_jobs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/tests/test_jobs_and_serve.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/tests/test_jobs_state_async_vs_sync.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/tests/test_list_accelerators.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/tests/test_no_parellel.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/tests/test_optimizer_dryruns.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/tests/test_optimizer_random_dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/tests/test_serve_autoscaler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/tests/test_smoke.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/tests/test_ssh_proxy_lag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/tests/test_storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/tests/test_wheels.py +0 -0
- {skypilot_nightly-1.0.0.dev20250926 → skypilot_nightly-1.0.0.dev20251001}/tests/test_yaml_parser.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: skypilot-nightly
|
|
3
|
-
Version: 1.0.0.
|
|
3
|
+
Version: 1.0.0.dev20251001
|
|
4
4
|
Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
|
|
5
5
|
Author: SkyPilot Team
|
|
6
6
|
License: Apache 2.0
|
|
@@ -154,51 +154,51 @@ Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "server"
|
|
|
154
154
|
Requires-Dist: aiosqlite; extra == "server"
|
|
155
155
|
Requires-Dist: greenlet; extra == "server"
|
|
156
156
|
Provides-Extra: all
|
|
157
|
-
Requires-Dist:
|
|
158
|
-
Requires-Dist:
|
|
157
|
+
Requires-Dist: anyio; extra == "all"
|
|
158
|
+
Requires-Dist: grpcio>=1.63.0; extra == "all"
|
|
159
|
+
Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "all"
|
|
160
|
+
Requires-Dist: sqlalchemy_adapter; extra == "all"
|
|
161
|
+
Requires-Dist: cudo-compute>=0.1.10; extra == "all"
|
|
162
|
+
Requires-Dist: ibm-cloud-sdk-core; extra == "all"
|
|
163
|
+
Requires-Dist: casbin; extra == "all"
|
|
164
|
+
Requires-Dist: awscli>=1.27.10; extra == "all"
|
|
165
|
+
Requires-Dist: azure-common; extra == "all"
|
|
159
166
|
Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
|
|
160
167
|
Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
|
|
161
|
-
Requires-Dist:
|
|
162
|
-
Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
|
|
163
|
-
Requires-Dist: ibm-cloud-sdk-core; extra == "all"
|
|
164
|
-
Requires-Dist: google-cloud-storage; extra == "all"
|
|
165
|
-
Requires-Dist: passlib; extra == "all"
|
|
168
|
+
Requires-Dist: aiohttp; extra == "all"
|
|
166
169
|
Requires-Dist: greenlet; extra == "all"
|
|
167
|
-
Requires-Dist:
|
|
168
|
-
Requires-Dist:
|
|
169
|
-
Requires-Dist:
|
|
170
|
+
Requires-Dist: pyjwt; extra == "all"
|
|
171
|
+
Requires-Dist: nebius>=0.2.47; extra == "all"
|
|
172
|
+
Requires-Dist: azure-core>=1.24.0; extra == "all"
|
|
173
|
+
Requires-Dist: runpod>=1.6.1; extra == "all"
|
|
174
|
+
Requires-Dist: msgraph-sdk; extra == "all"
|
|
175
|
+
Requires-Dist: botocore>=1.29.10; extra == "all"
|
|
176
|
+
Requires-Dist: azure-identity>=1.19.0; extra == "all"
|
|
177
|
+
Requires-Dist: pydo>=0.3.0; extra == "all"
|
|
170
178
|
Requires-Dist: websockets; extra == "all"
|
|
171
|
-
Requires-Dist:
|
|
172
|
-
Requires-Dist:
|
|
179
|
+
Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
|
|
180
|
+
Requires-Dist: tomli; python_version < "3.11" and extra == "all"
|
|
181
|
+
Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
|
|
173
182
|
Requires-Dist: boto3>=1.26.1; extra == "all"
|
|
174
|
-
Requires-Dist:
|
|
183
|
+
Requires-Dist: aiosqlite; extra == "all"
|
|
184
|
+
Requires-Dist: azure-core>=1.31.0; extra == "all"
|
|
185
|
+
Requires-Dist: colorama<0.4.5; extra == "all"
|
|
186
|
+
Requires-Dist: docker; extra == "all"
|
|
187
|
+
Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
|
|
175
188
|
Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
|
|
176
|
-
Requires-Dist:
|
|
189
|
+
Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
|
|
190
|
+
Requires-Dist: ibm-cos-sdk; extra == "all"
|
|
177
191
|
Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
|
|
192
|
+
Requires-Dist: ibm-vpc; extra == "all"
|
|
178
193
|
Requires-Dist: msrestazure; extra == "all"
|
|
179
|
-
Requires-Dist:
|
|
180
|
-
Requires-Dist:
|
|
181
|
-
Requires-Dist: msgraph-sdk; extra == "all"
|
|
182
|
-
Requires-Dist: ibm-cos-sdk; extra == "all"
|
|
183
|
-
Requires-Dist: awscli>=1.27.10; extra == "all"
|
|
184
|
-
Requires-Dist: azure-core>=1.24.0; extra == "all"
|
|
185
|
-
Requires-Dist: anyio; extra == "all"
|
|
186
|
-
Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
|
|
187
|
-
Requires-Dist: aiosqlite; extra == "all"
|
|
194
|
+
Requires-Dist: passlib; extra == "all"
|
|
195
|
+
Requires-Dist: oci; extra == "all"
|
|
188
196
|
Requires-Dist: ecsapi>=0.2.0; extra == "all"
|
|
189
|
-
Requires-Dist:
|
|
190
|
-
Requires-Dist:
|
|
191
|
-
Requires-Dist:
|
|
192
|
-
Requires-Dist:
|
|
193
|
-
Requires-Dist: aiohttp; extra == "all"
|
|
194
|
-
Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
|
|
197
|
+
Requires-Dist: ray[default]>=2.6.1; extra == "all"
|
|
198
|
+
Requires-Dist: ibm-platform-services>=0.48.0; extra == "all"
|
|
199
|
+
Requires-Dist: azure-cli>=2.65.0; extra == "all"
|
|
200
|
+
Requires-Dist: google-cloud-storage; extra == "all"
|
|
195
201
|
Requires-Dist: python-dateutil; extra == "all"
|
|
196
|
-
Requires-Dist: nebius>=0.2.47; extra == "all"
|
|
197
|
-
Requires-Dist: docker; extra == "all"
|
|
198
|
-
Requires-Dist: colorama<0.4.5; extra == "all"
|
|
199
|
-
Requires-Dist: runpod>=1.6.1; extra == "all"
|
|
200
|
-
Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
|
|
201
|
-
Requires-Dist: sqlalchemy_adapter; extra == "all"
|
|
202
202
|
Dynamic: author
|
|
203
203
|
Dynamic: classifier
|
|
204
204
|
Dynamic: description
|
|
@@ -7,7 +7,7 @@ import urllib.request
|
|
|
7
7
|
from sky.utils import directory_utils
|
|
8
8
|
|
|
9
9
|
# Replaced with the current commit when building the wheels.
|
|
10
|
-
_SKYPILOT_COMMIT_SHA = '
|
|
10
|
+
_SKYPILOT_COMMIT_SHA = '047e366ad4c073a5753b62cc5d4c3c4660b1476a'
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
def _get_git_commit():
|
|
@@ -37,7 +37,7 @@ def _get_git_commit():
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
__commit__ = _get_git_commit()
|
|
40
|
-
__version__ = '1.0.0.
|
|
40
|
+
__version__ = '1.0.0.dev20251001'
|
|
41
41
|
__root_dir__ = directory_utils.get_sky_dir()
|
|
42
42
|
|
|
43
43
|
|
|
@@ -16,8 +16,8 @@ import tempfile
|
|
|
16
16
|
import threading
|
|
17
17
|
import time
|
|
18
18
|
import typing
|
|
19
|
-
from typing import (Any, Callable, Dict, List, Optional, Sequence,
|
|
20
|
-
TypeVar, Union)
|
|
19
|
+
from typing import (Any, Callable, Dict, Iterator, List, Optional, Sequence,
|
|
20
|
+
Set, Tuple, TypeVar, Union)
|
|
21
21
|
import uuid
|
|
22
22
|
|
|
23
23
|
import aiohttp
|
|
@@ -723,11 +723,15 @@ def write_cluster_config(
|
|
|
723
723
|
'is not supported by this cloud. Remove the config or set: '
|
|
724
724
|
'`remote_identity: LOCAL_CREDENTIALS`.')
|
|
725
725
|
if isinstance(cloud, clouds.Kubernetes):
|
|
726
|
-
|
|
726
|
+
allowed_contexts = skypilot_config.get_workspace_cloud(
|
|
727
|
+
'kubernetes').get('allowed_contexts', None)
|
|
728
|
+
if allowed_contexts is None:
|
|
729
|
+
allowed_contexts = skypilot_config.get_effective_region_config(
|
|
727
730
|
cloud='kubernetes',
|
|
728
731
|
region=None,
|
|
729
732
|
keys=('allowed_contexts',),
|
|
730
|
-
default_value=None)
|
|
733
|
+
default_value=None)
|
|
734
|
+
if allowed_contexts is None:
|
|
731
735
|
excluded_clouds.add(cloud)
|
|
732
736
|
else:
|
|
733
737
|
excluded_clouds.add(cloud)
|
|
@@ -1226,7 +1230,6 @@ def _deterministic_cluster_yaml_hash(tmp_yaml_path: str) -> str:
|
|
|
1226
1230
|
Rather than constructing the whole byte sequence, which may be quite large,
|
|
1227
1231
|
we construct it incrementally by using hash.update() to add new bytes.
|
|
1228
1232
|
"""
|
|
1229
|
-
|
|
1230
1233
|
# Load the yaml contents so that we can directly remove keys.
|
|
1231
1234
|
yaml_config = yaml_utils.read_yaml(tmp_yaml_path)
|
|
1232
1235
|
for key_list in _RAY_YAML_KEYS_TO_REMOVE_FOR_HASH:
|
|
@@ -2614,7 +2617,7 @@ def refresh_cluster_record(
|
|
|
2614
2617
|
cluster_name: str,
|
|
2615
2618
|
*,
|
|
2616
2619
|
force_refresh_statuses: Optional[Set[status_lib.ClusterStatus]] = None,
|
|
2617
|
-
|
|
2620
|
+
cluster_lock_already_held: bool = False,
|
|
2618
2621
|
cluster_status_lock_timeout: int = CLUSTER_STATUS_LOCK_TIMEOUT_SECONDS,
|
|
2619
2622
|
include_user_info: bool = True,
|
|
2620
2623
|
summary_response: bool = False) -> Optional[Dict[str, Any]]:
|
|
@@ -2634,9 +2637,13 @@ def refresh_cluster_record(
|
|
|
2634
2637
|
_CLUSTER_STATUS_CACHE_DURATION_SECONDS old, and one of:
|
|
2635
2638
|
1. the cluster is a spot cluster, or
|
|
2636
2639
|
2. cluster autostop is set and the cluster is not STOPPED.
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
+
cluster_lock_already_held: Whether the caller is already holding the
|
|
2641
|
+
per-cluster lock. You MUST NOT set this to True if the caller does not
|
|
2642
|
+
already hold the lock. If True, we will not acquire the lock before
|
|
2643
|
+
updating the status. Failing to hold the lock while updating the
|
|
2644
|
+
status can lead to correctness issues - e.g. an launch in-progress may
|
|
2645
|
+
appear to be DOWN incorrectly. Even if this is set to False, the lock
|
|
2646
|
+
may not be acquired if the status does not need to be refreshed.
|
|
2640
2647
|
cluster_status_lock_timeout: The timeout to acquire the per-cluster
|
|
2641
2648
|
lock. If timeout, the function will use the cached status. If the
|
|
2642
2649
|
value is <0, do not timeout (wait for the lock indefinitely). By
|
|
@@ -2687,7 +2694,7 @@ def refresh_cluster_record(
|
|
|
2687
2694
|
if not _must_refresh_cluster_status(record, force_refresh_statuses):
|
|
2688
2695
|
return record
|
|
2689
2696
|
|
|
2690
|
-
if
|
|
2697
|
+
if cluster_lock_already_held:
|
|
2691
2698
|
return _update_cluster_status(cluster_name, include_user_info,
|
|
2692
2699
|
summary_response)
|
|
2693
2700
|
|
|
@@ -2741,7 +2748,7 @@ def refresh_cluster_status_handle(
|
|
|
2741
2748
|
cluster_name: str,
|
|
2742
2749
|
*,
|
|
2743
2750
|
force_refresh_statuses: Optional[Set[status_lib.ClusterStatus]] = None,
|
|
2744
|
-
|
|
2751
|
+
cluster_lock_already_held: bool = False,
|
|
2745
2752
|
cluster_status_lock_timeout: int = CLUSTER_STATUS_LOCK_TIMEOUT_SECONDS
|
|
2746
2753
|
) -> Tuple[Optional[status_lib.ClusterStatus],
|
|
2747
2754
|
Optional[backends.ResourceHandle]]:
|
|
@@ -2754,7 +2761,7 @@ def refresh_cluster_status_handle(
|
|
|
2754
2761
|
record = refresh_cluster_record(
|
|
2755
2762
|
cluster_name,
|
|
2756
2763
|
force_refresh_statuses=force_refresh_statuses,
|
|
2757
|
-
|
|
2764
|
+
cluster_lock_already_held=cluster_lock_already_held,
|
|
2758
2765
|
cluster_status_lock_timeout=cluster_status_lock_timeout,
|
|
2759
2766
|
include_user_info=False,
|
|
2760
2767
|
summary_response=True)
|
|
@@ -3079,7 +3086,7 @@ def _refresh_cluster(
|
|
|
3079
3086
|
record = refresh_cluster_record(
|
|
3080
3087
|
cluster_name,
|
|
3081
3088
|
force_refresh_statuses=force_refresh_statuses,
|
|
3082
|
-
|
|
3089
|
+
cluster_lock_already_held=False,
|
|
3083
3090
|
include_user_info=include_user_info,
|
|
3084
3091
|
summary_response=summary_response)
|
|
3085
3092
|
except (exceptions.ClusterStatusFetchingError,
|
|
@@ -3859,13 +3866,35 @@ def invoke_skylet_with_retries(func: Callable[..., T]) -> T:
|
|
|
3859
3866
|
) from last_exception
|
|
3860
3867
|
|
|
3861
3868
|
|
|
3869
|
+
def invoke_skylet_streaming_with_retries(
|
|
3870
|
+
stream_func: Callable[..., Iterator[T]]) -> Iterator[T]:
|
|
3871
|
+
"""Generic helper for making Skylet streaming gRPC requests."""
|
|
3872
|
+
max_attempts = 3
|
|
3873
|
+
backoff = common_utils.Backoff(initial_backoff=0.5)
|
|
3874
|
+
last_exception: Optional[Exception] = None
|
|
3875
|
+
|
|
3876
|
+
for _ in range(max_attempts):
|
|
3877
|
+
try:
|
|
3878
|
+
for response in stream_func():
|
|
3879
|
+
yield response
|
|
3880
|
+
return
|
|
3881
|
+
except grpc.RpcError as e:
|
|
3882
|
+
last_exception = e
|
|
3883
|
+
_handle_grpc_error(e, backoff.current_backoff())
|
|
3884
|
+
|
|
3885
|
+
raise RuntimeError(
|
|
3886
|
+
f'Failed to stream Skylet response after {max_attempts} attempts'
|
|
3887
|
+
) from last_exception
|
|
3888
|
+
|
|
3889
|
+
|
|
3862
3890
|
def _handle_grpc_error(e: 'grpc.RpcError', current_backoff: float) -> None:
|
|
3863
3891
|
if e.code() == grpc.StatusCode.INTERNAL:
|
|
3864
3892
|
with ux_utils.print_exception_no_traceback():
|
|
3865
3893
|
raise exceptions.SkyletInternalError(e.details())
|
|
3866
3894
|
elif e.code() == grpc.StatusCode.UNAVAILABLE:
|
|
3867
3895
|
time.sleep(current_backoff)
|
|
3868
|
-
elif e.code() == grpc.StatusCode.UNIMPLEMENTED
|
|
3896
|
+
elif e.code() == grpc.StatusCode.UNIMPLEMENTED or e.code(
|
|
3897
|
+
) == grpc.StatusCode.UNKNOWN:
|
|
3869
3898
|
# Handle backwards compatibility: old server doesn't implement this RPC.
|
|
3870
3899
|
# Let the caller fall back to legacy execution.
|
|
3871
3900
|
raise exceptions.SkyletMethodNotImplementedError(
|
|
@@ -19,8 +19,8 @@ import textwrap
|
|
|
19
19
|
import threading
|
|
20
20
|
import time
|
|
21
21
|
import typing
|
|
22
|
-
from typing import (Any, Callable, Dict, Iterable, List, Optional,
|
|
23
|
-
Union)
|
|
22
|
+
from typing import (Any, Callable, Dict, Iterable, Iterator, List, Optional,
|
|
23
|
+
Set, Tuple, Union)
|
|
24
24
|
|
|
25
25
|
import colorama
|
|
26
26
|
import psutil
|
|
@@ -91,6 +91,8 @@ if typing.TYPE_CHECKING:
|
|
|
91
91
|
from sky.schemas.generated import autostopv1_pb2_grpc
|
|
92
92
|
from sky.schemas.generated import jobsv1_pb2
|
|
93
93
|
from sky.schemas.generated import jobsv1_pb2_grpc
|
|
94
|
+
from sky.schemas.generated import managed_jobsv1_pb2
|
|
95
|
+
from sky.schemas.generated import managed_jobsv1_pb2_grpc
|
|
94
96
|
from sky.schemas.generated import servev1_pb2
|
|
95
97
|
from sky.schemas.generated import servev1_pb2_grpc
|
|
96
98
|
else:
|
|
@@ -111,6 +113,10 @@ else:
|
|
|
111
113
|
'sky.schemas.generated.servev1_pb2')
|
|
112
114
|
servev1_pb2_grpc = adaptors_common.LazyImport(
|
|
113
115
|
'sky.schemas.generated.servev1_pb2_grpc')
|
|
116
|
+
managed_jobsv1_pb2 = adaptors_common.LazyImport(
|
|
117
|
+
'sky.schemas.generated.managed_jobsv1_pb2')
|
|
118
|
+
managed_jobsv1_pb2_grpc = adaptors_common.LazyImport(
|
|
119
|
+
'sky.schemas.generated.managed_jobsv1_pb2_grpc')
|
|
114
120
|
|
|
115
121
|
Path = str
|
|
116
122
|
|
|
@@ -2737,6 +2743,11 @@ class CloudVmRayResourceHandle(backends.backend.ResourceHandle):
|
|
|
2737
2743
|
(tunnel.port, tunnel.pid) if tunnel is not None else None)
|
|
2738
2744
|
|
|
2739
2745
|
def get_grpc_channel(self) -> 'grpc.Channel':
|
|
2746
|
+
grpc_options = [
|
|
2747
|
+
# The task YAMLs can be large, so the default
|
|
2748
|
+
# max_receive_message_length of 4MB might not be enough.
|
|
2749
|
+
('grpc.max_receive_message_length', -1),
|
|
2750
|
+
]
|
|
2740
2751
|
# It's fine to not grab the lock here, as we're only reading,
|
|
2741
2752
|
# and writes are very rare.
|
|
2742
2753
|
# It's acceptable to read while another process is opening a tunnel,
|
|
@@ -2753,7 +2764,8 @@ class CloudVmRayResourceHandle(backends.backend.ResourceHandle):
|
|
|
2753
2764
|
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
|
2754
2765
|
s.settimeout(0.5)
|
|
2755
2766
|
s.connect(('localhost', tunnel.port))
|
|
2756
|
-
return grpc.insecure_channel(f'localhost:{tunnel.port}'
|
|
2767
|
+
return grpc.insecure_channel(f'localhost:{tunnel.port}',
|
|
2768
|
+
options=grpc_options)
|
|
2757
2769
|
except socket.error as e:
|
|
2758
2770
|
logger.warning(
|
|
2759
2771
|
'Failed to connect to SSH tunnel for cluster '
|
|
@@ -2772,19 +2784,22 @@ class CloudVmRayResourceHandle(backends.backend.ResourceHandle):
|
|
|
2772
2784
|
f'{self.cluster_name!r}, '
|
|
2773
2785
|
'opening the tunnel')
|
|
2774
2786
|
tunnel = self._open_and_update_skylet_tunnel()
|
|
2775
|
-
return grpc.insecure_channel(f'localhost:{tunnel.port}'
|
|
2787
|
+
return grpc.insecure_channel(f'localhost:{tunnel.port}',
|
|
2788
|
+
options=grpc_options)
|
|
2776
2789
|
try:
|
|
2777
2790
|
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
|
2778
2791
|
s.settimeout(0.5)
|
|
2779
2792
|
s.connect(('localhost', tunnel.port))
|
|
2780
|
-
return grpc.insecure_channel(f'localhost:{tunnel.port}'
|
|
2793
|
+
return grpc.insecure_channel(f'localhost:{tunnel.port}',
|
|
2794
|
+
options=grpc_options)
|
|
2781
2795
|
except socket.error as e:
|
|
2782
2796
|
logger.warning(
|
|
2783
2797
|
'Failed to connect to SSH tunnel for cluster '
|
|
2784
2798
|
f'{self.cluster_name!r} on port {tunnel.port} ({e}), '
|
|
2785
2799
|
'opening new tunnel')
|
|
2786
2800
|
tunnel = self._open_and_update_skylet_tunnel()
|
|
2787
|
-
return grpc.insecure_channel(f'localhost:{tunnel.port}'
|
|
2801
|
+
return grpc.insecure_channel(f'localhost:{tunnel.port}',
|
|
2802
|
+
options=grpc_options)
|
|
2788
2803
|
except locks.LockTimeout as e:
|
|
2789
2804
|
raise RuntimeError(
|
|
2790
2805
|
'Failed to get gRPC channel for cluster '
|
|
@@ -3060,6 +3075,8 @@ class SkyletClient:
|
|
|
3060
3075
|
self._autostop_stub = autostopv1_pb2_grpc.AutostopServiceStub(channel)
|
|
3061
3076
|
self._jobs_stub = jobsv1_pb2_grpc.JobsServiceStub(channel)
|
|
3062
3077
|
self._serve_stub = servev1_pb2_grpc.ServeServiceStub(channel)
|
|
3078
|
+
self._managed_jobs_stub = (
|
|
3079
|
+
managed_jobsv1_pb2_grpc.ManagedJobsServiceStub(channel))
|
|
3063
3080
|
|
|
3064
3081
|
def set_autostop(
|
|
3065
3082
|
self,
|
|
@@ -3146,6 +3163,13 @@ class SkyletClient:
|
|
|
3146
3163
|
) -> 'jobsv1_pb2.GetLogDirsForJobsResponse':
|
|
3147
3164
|
return self._jobs_stub.GetLogDirsForJobs(request, timeout=timeout)
|
|
3148
3165
|
|
|
3166
|
+
def tail_logs(
|
|
3167
|
+
self,
|
|
3168
|
+
request: 'jobsv1_pb2.TailLogsRequest',
|
|
3169
|
+
timeout: Optional[float] = constants.SKYLET_GRPC_TIMEOUT_SECONDS
|
|
3170
|
+
) -> Iterator['jobsv1_pb2.TailLogsResponse']:
|
|
3171
|
+
return self._jobs_stub.TailLogs(request, timeout=timeout)
|
|
3172
|
+
|
|
3149
3173
|
def get_service_status(
|
|
3150
3174
|
self,
|
|
3151
3175
|
request: 'servev1_pb2.GetServiceStatusRequest',
|
|
@@ -3194,6 +3218,35 @@ class SkyletClient:
|
|
|
3194
3218
|
) -> 'servev1_pb2.UpdateServiceResponse':
|
|
3195
3219
|
return self._serve_stub.UpdateService(request, timeout=timeout)
|
|
3196
3220
|
|
|
3221
|
+
def get_managed_job_controller_version(
|
|
3222
|
+
self,
|
|
3223
|
+
request: 'managed_jobsv1_pb2.GetVersionRequest',
|
|
3224
|
+
timeout: Optional[float] = constants.SKYLET_GRPC_TIMEOUT_SECONDS
|
|
3225
|
+
) -> 'managed_jobsv1_pb2.GetVersionResponse':
|
|
3226
|
+
return self._managed_jobs_stub.GetVersion(request, timeout=timeout)
|
|
3227
|
+
|
|
3228
|
+
def get_managed_job_table(
|
|
3229
|
+
self,
|
|
3230
|
+
request: 'managed_jobsv1_pb2.GetJobTableRequest',
|
|
3231
|
+
timeout: Optional[float] = constants.SKYLET_GRPC_TIMEOUT_SECONDS
|
|
3232
|
+
) -> 'managed_jobsv1_pb2.GetJobTableResponse':
|
|
3233
|
+
return self._managed_jobs_stub.GetJobTable(request, timeout=timeout)
|
|
3234
|
+
|
|
3235
|
+
def get_all_managed_job_ids_by_name(
|
|
3236
|
+
self,
|
|
3237
|
+
request: 'managed_jobsv1_pb2.GetAllJobIdsByNameRequest',
|
|
3238
|
+
timeout: Optional[float] = constants.SKYLET_GRPC_TIMEOUT_SECONDS
|
|
3239
|
+
) -> 'managed_jobsv1_pb2.GetAllJobIdsByNameResponse':
|
|
3240
|
+
return self._managed_jobs_stub.GetAllJobIdsByName(request,
|
|
3241
|
+
timeout=timeout)
|
|
3242
|
+
|
|
3243
|
+
def cancel_managed_jobs(
|
|
3244
|
+
self,
|
|
3245
|
+
request: 'managed_jobsv1_pb2.CancelJobsRequest',
|
|
3246
|
+
timeout: Optional[float] = constants.SKYLET_GRPC_TIMEOUT_SECONDS
|
|
3247
|
+
) -> 'managed_jobsv1_pb2.CancelJobsResponse':
|
|
3248
|
+
return self._managed_jobs_stub.CancelJobs(request, timeout=timeout)
|
|
3249
|
+
|
|
3197
3250
|
|
|
3198
3251
|
@registry.BACKEND_REGISTRY.type_register(name='cloudvmray')
|
|
3199
3252
|
class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
@@ -3706,7 +3759,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
|
3706
3759
|
ux_utils.spinner_message('Preparing SkyPilot runtime')):
|
|
3707
3760
|
use_legacy = not handle.is_grpc_enabled_with_flag
|
|
3708
3761
|
|
|
3709
|
-
if
|
|
3762
|
+
if not use_legacy:
|
|
3710
3763
|
try:
|
|
3711
3764
|
request = jobsv1_pb2.UpdateStatusRequest()
|
|
3712
3765
|
backend_utils.invoke_skylet_with_retries(
|
|
@@ -3730,7 +3783,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
|
3730
3783
|
# 2. On next `sky start`, it gets reset to FAILED.
|
|
3731
3784
|
use_legacy = not handle.is_grpc_enabled_with_flag
|
|
3732
3785
|
|
|
3733
|
-
if
|
|
3786
|
+
if not use_legacy:
|
|
3734
3787
|
try:
|
|
3735
3788
|
fail_request = jobsv1_pb2.FailAllInProgressJobsRequest()
|
|
3736
3789
|
backend_utils.invoke_skylet_with_retries(
|
|
@@ -4165,7 +4218,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
|
4165
4218
|
_dump_code_to_file(job_submit_cmd,
|
|
4166
4219
|
constants.PERSISTENT_RUN_SCRIPT_DIR)
|
|
4167
4220
|
|
|
4168
|
-
if
|
|
4221
|
+
if not use_legacy:
|
|
4169
4222
|
try:
|
|
4170
4223
|
managed_job_info: Optional[jobsv1_pb2.ManagedJobInfo] = None
|
|
4171
4224
|
if managed_job_dag is not None:
|
|
@@ -4297,7 +4350,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
|
4297
4350
|
metadata: str) -> Tuple[int, str]:
|
|
4298
4351
|
use_legacy = not handle.is_grpc_enabled_with_flag
|
|
4299
4352
|
|
|
4300
|
-
if
|
|
4353
|
+
if not use_legacy:
|
|
4301
4354
|
try:
|
|
4302
4355
|
request = jobsv1_pb2.AddJobRequest(
|
|
4303
4356
|
job_name=job_name,
|
|
@@ -4567,7 +4620,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
|
4567
4620
|
"""
|
|
4568
4621
|
use_legacy = not handle.is_grpc_enabled_with_flag
|
|
4569
4622
|
|
|
4570
|
-
if
|
|
4623
|
+
if not use_legacy:
|
|
4571
4624
|
try:
|
|
4572
4625
|
request = jobsv1_pb2.CancelJobsRequest(job_ids=jobs,
|
|
4573
4626
|
cancel_all=cancel_all,
|
|
@@ -4610,7 +4663,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
|
4610
4663
|
job_to_dir: Dict[str, str] = {}
|
|
4611
4664
|
use_legacy = not handle.is_grpc_enabled_with_flag
|
|
4612
4665
|
|
|
4613
|
-
if
|
|
4666
|
+
if not use_legacy:
|
|
4614
4667
|
try:
|
|
4615
4668
|
int_job_ids = []
|
|
4616
4669
|
if job_ids:
|
|
@@ -4724,6 +4777,28 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
|
4724
4777
|
The exit code of the tail command. Returns code 100 if the job has
|
|
4725
4778
|
failed. See exceptions.JobExitCode for possible return codes.
|
|
4726
4779
|
"""
|
|
4780
|
+
if handle.is_grpc_enabled_with_flag:
|
|
4781
|
+
last_exit_code = 0
|
|
4782
|
+
try:
|
|
4783
|
+
request = jobsv1_pb2.TailLogsRequest(
|
|
4784
|
+
job_id=job_id,
|
|
4785
|
+
managed_job_id=managed_job_id,
|
|
4786
|
+
follow=follow,
|
|
4787
|
+
tail=tail)
|
|
4788
|
+
for resp in backend_utils.invoke_skylet_streaming_with_retries(
|
|
4789
|
+
lambda: SkyletClient(handle.get_grpc_channel()
|
|
4790
|
+
).tail_logs(request, timeout=None)):
|
|
4791
|
+
if resp.log_line:
|
|
4792
|
+
print(resp.log_line, end='', flush=True)
|
|
4793
|
+
last_exit_code = resp.exit_code
|
|
4794
|
+
return last_exit_code
|
|
4795
|
+
except exceptions.SkyletMethodNotImplementedError:
|
|
4796
|
+
pass
|
|
4797
|
+
except grpc.RpcError as e:
|
|
4798
|
+
if e.code() == grpc.StatusCode.CANCELLED:
|
|
4799
|
+
return last_exit_code
|
|
4800
|
+
raise e
|
|
4801
|
+
|
|
4727
4802
|
code = job_lib.JobLibCodeGen.tail_logs(job_id,
|
|
4728
4803
|
managed_job_id=managed_job_id,
|
|
4729
4804
|
follow=follow,
|
|
@@ -4761,6 +4836,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
|
4761
4836
|
tail: Optional[int] = None) -> int:
|
|
4762
4837
|
# if job_name is not None, job_id should be None
|
|
4763
4838
|
assert job_name is None or job_id is None, (job_name, job_id)
|
|
4839
|
+
# TODO(kevin): Migrate stream_logs to gRPC
|
|
4764
4840
|
code = managed_jobs.ManagedJobCodeGen.stream_logs(
|
|
4765
4841
|
job_name, job_id, follow, controller, tail)
|
|
4766
4842
|
|
|
@@ -4806,20 +4882,37 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
|
4806
4882
|
assert job_name is None or job_id is None, (job_name, job_id)
|
|
4807
4883
|
|
|
4808
4884
|
if job_id is None:
|
|
4809
|
-
#
|
|
4885
|
+
# get the job_id
|
|
4810
4886
|
# if job_name is None, get all job_ids
|
|
4811
4887
|
# TODO: Only get the latest job_id, since that's the only one we use
|
|
4812
|
-
|
|
4813
|
-
|
|
4814
|
-
|
|
4815
|
-
|
|
4816
|
-
|
|
4817
|
-
|
|
4818
|
-
|
|
4819
|
-
|
|
4820
|
-
|
|
4821
|
-
|
|
4822
|
-
|
|
4888
|
+
|
|
4889
|
+
use_legacy = not handle.is_grpc_enabled_with_flag
|
|
4890
|
+
logger.info(f'handle.is_grpc_enabled_with_flag: '
|
|
4891
|
+
f'{handle.is_grpc_enabled_with_flag}')
|
|
4892
|
+
if not use_legacy:
|
|
4893
|
+
try:
|
|
4894
|
+
request = managed_jobsv1_pb2.GetAllJobIdsByNameRequest(
|
|
4895
|
+
job_name=job_name)
|
|
4896
|
+
response = backend_utils.invoke_skylet_with_retries(
|
|
4897
|
+
lambda: SkyletClient(handle.get_grpc_channel(
|
|
4898
|
+
)).get_all_managed_job_ids_by_name(request))
|
|
4899
|
+
job_ids = list(response.job_ids)
|
|
4900
|
+
except exceptions.SkyletMethodNotImplementedError:
|
|
4901
|
+
use_legacy = True
|
|
4902
|
+
|
|
4903
|
+
if use_legacy:
|
|
4904
|
+
code = managed_jobs.ManagedJobCodeGen.get_all_job_ids_by_name(
|
|
4905
|
+
job_name=job_name)
|
|
4906
|
+
returncode, job_ids_payload, stderr = self.run_on_head(
|
|
4907
|
+
handle,
|
|
4908
|
+
code,
|
|
4909
|
+
stream_logs=False,
|
|
4910
|
+
require_outputs=True,
|
|
4911
|
+
separate_stderr=True)
|
|
4912
|
+
subprocess_utils.handle_returncode(returncode, code,
|
|
4913
|
+
'Failed to sync down logs.',
|
|
4914
|
+
stderr)
|
|
4915
|
+
job_ids = message_utils.decode_payload(job_ids_payload)
|
|
4823
4916
|
if not job_ids:
|
|
4824
4917
|
logger.info(f'{colorama.Fore.YELLOW}'
|
|
4825
4918
|
'No matching job found'
|
|
@@ -4847,18 +4940,39 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
|
4847
4940
|
else:
|
|
4848
4941
|
# get the run_timestamp
|
|
4849
4942
|
# the function takes in [job_id]
|
|
4850
|
-
|
|
4851
|
-
|
|
4852
|
-
|
|
4853
|
-
|
|
4854
|
-
|
|
4855
|
-
|
|
4856
|
-
|
|
4857
|
-
|
|
4858
|
-
|
|
4859
|
-
|
|
4860
|
-
|
|
4861
|
-
|
|
4943
|
+
use_legacy = not handle.is_grpc_enabled_with_flag
|
|
4944
|
+
if not use_legacy:
|
|
4945
|
+
try:
|
|
4946
|
+
log_dirs_request = jobsv1_pb2.GetLogDirsForJobsRequest(
|
|
4947
|
+
job_ids=[job_id])
|
|
4948
|
+
log_dirs_response = (
|
|
4949
|
+
backend_utils.invoke_skylet_with_retries(
|
|
4950
|
+
lambda: SkyletClient(handle.get_grpc_channel(
|
|
4951
|
+
)).get_log_dirs_for_jobs(log_dirs_request)))
|
|
4952
|
+
job_log_dirs = log_dirs_response.job_log_dirs
|
|
4953
|
+
# Convert back to the expected format
|
|
4954
|
+
# {job_id: run_timestamp}
|
|
4955
|
+
run_timestamps = {}
|
|
4956
|
+
for jid, log_dir in job_log_dirs.items():
|
|
4957
|
+
run_timestamps[int(jid)] = log_dir
|
|
4958
|
+
except exceptions.SkyletMethodNotImplementedError:
|
|
4959
|
+
use_legacy = True
|
|
4960
|
+
|
|
4961
|
+
if use_legacy:
|
|
4962
|
+
code = job_lib.JobLibCodeGen.get_log_dirs_for_jobs(
|
|
4963
|
+
[str(job_id)])
|
|
4964
|
+
returncode, run_timestamps_payload, stderr = self.run_on_head(
|
|
4965
|
+
handle,
|
|
4966
|
+
code,
|
|
4967
|
+
stream_logs=False,
|
|
4968
|
+
require_outputs=True,
|
|
4969
|
+
separate_stderr=True)
|
|
4970
|
+
subprocess_utils.handle_returncode(returncode, code,
|
|
4971
|
+
'Failed to sync logs.',
|
|
4972
|
+
stderr)
|
|
4973
|
+
# returns with a dict of {job_id: run_timestamp}
|
|
4974
|
+
run_timestamps = message_utils.decode_payload(
|
|
4975
|
+
run_timestamps_payload)
|
|
4862
4976
|
if not run_timestamps:
|
|
4863
4977
|
logger.info(f'{colorama.Fore.YELLOW}'
|
|
4864
4978
|
'No matching log directories found'
|
|
@@ -4925,6 +5039,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
|
4925
5039
|
exist_ok=True)
|
|
4926
5040
|
log_file = os.path.join(local_log_dir, 'run.log')
|
|
4927
5041
|
|
|
5042
|
+
# TODO(kevin): Migrate stream_logs to gRPC
|
|
4928
5043
|
code = managed_jobs.ManagedJobCodeGen.stream_logs(
|
|
4929
5044
|
job_name=None,
|
|
4930
5045
|
job_id=int(job_id),
|
|
@@ -5006,7 +5121,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
|
5006
5121
|
# observed in AWS. See also
|
|
5007
5122
|
# _LAUNCH_DOUBLE_CHECK_WINDOW in backend_utils.py.
|
|
5008
5123
|
force_refresh_statuses={status_lib.ClusterStatus.INIT},
|
|
5009
|
-
|
|
5124
|
+
cluster_lock_already_held=True))
|
|
5010
5125
|
cluster_status_fetched = True
|
|
5011
5126
|
except exceptions.ClusterStatusFetchingError:
|
|
5012
5127
|
logger.warning(
|
|
@@ -5610,7 +5725,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
|
5610
5725
|
record = backend_utils.refresh_cluster_record(
|
|
5611
5726
|
cluster_name,
|
|
5612
5727
|
force_refresh_statuses={status_lib.ClusterStatus.INIT},
|
|
5613
|
-
|
|
5728
|
+
cluster_lock_already_held=True,
|
|
5614
5729
|
include_user_info=False,
|
|
5615
5730
|
summary_response=True,
|
|
5616
5731
|
)
|
|
@@ -621,35 +621,6 @@ def _format_enabled_cloud(cloud_name: str,
|
|
|
621
621
|
if cloud_name in [repr(sky_clouds.Kubernetes()), repr(sky_clouds.SSH())]:
|
|
622
622
|
return (f'{title}' + _format_context_details(
|
|
623
623
|
cloud_name, show_details=False, ctx2text=ctx2text))
|
|
624
|
-
|
|
625
|
-
if cloud_name == repr(sky_clouds.Kubernetes()):
|
|
626
|
-
# Get enabled contexts for Kubernetes
|
|
627
|
-
existing_contexts = sky_clouds.Kubernetes.existing_allowed_contexts()
|
|
628
|
-
if not existing_contexts:
|
|
629
|
-
return _green_color(cloud_and_capabilities)
|
|
630
|
-
|
|
631
|
-
# Check if allowed_contexts is explicitly set in config
|
|
632
|
-
allowed_contexts = skypilot_config.get_effective_region_config(
|
|
633
|
-
cloud='kubernetes',
|
|
634
|
-
region=None,
|
|
635
|
-
keys=('allowed_contexts',),
|
|
636
|
-
default_value=None)
|
|
637
|
-
|
|
638
|
-
# Format the context info with consistent styling
|
|
639
|
-
if allowed_contexts is not None:
|
|
640
|
-
contexts_formatted = []
|
|
641
|
-
for i, context in enumerate(existing_contexts):
|
|
642
|
-
symbol = (ux_utils.INDENT_LAST_SYMBOL
|
|
643
|
-
if i == len(existing_contexts) -
|
|
644
|
-
1 else ux_utils.INDENT_SYMBOL)
|
|
645
|
-
contexts_formatted.append(f'\n {symbol}{context}')
|
|
646
|
-
context_info = f' Allowed contexts:{"".join(contexts_formatted)}'
|
|
647
|
-
else:
|
|
648
|
-
context_info = f' Active context: {existing_contexts[0]}'
|
|
649
|
-
|
|
650
|
-
return (f'{_green_color(cloud_and_capabilities)}\n'
|
|
651
|
-
f' {colorama.Style.DIM}{context_info}'
|
|
652
|
-
f'{colorama.Style.RESET_ALL}')
|
|
653
624
|
return _green_color(cloud_and_capabilities)
|
|
654
625
|
|
|
655
626
|
|