skypilot-nightly 1.0.0.dev20250715__tar.gz → 1.0.0.dev20250717__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {skypilot_nightly-1.0.0.dev20250715/sky/setup_files → skypilot_nightly-1.0.0.dev20250717}/MANIFEST.in +1 -0
- {skypilot_nightly-1.0.0.dev20250715/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250717}/PKG-INFO +5 -3
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/__init__.py +4 -2
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/adaptors/nebius.py +6 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/backends/backend.py +8 -4
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/backends/cloud_vm_ray_backend.py +50 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/backends/docker_utils.py +1 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/backends/local_docker_backend.py +2 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/common.py +60 -50
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/data_fetchers/fetch_gcp.py +1 -0
- skypilot_nightly-1.0.0.dev20250717/sky/catalog/data_fetchers/fetch_nebius.py +308 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/gcp_catalog.py +24 -7
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/kubernetes_catalog.py +5 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/client/cli/command.py +180 -77
- skypilot_nightly-1.0.0.dev20250717/sky/client/cli/git.py +549 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/client/common.py +1 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/gcp.py +1 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/hyperbolic.py +2 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/nebius.py +6 -4
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/404.html +1 -1
- skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/Et5IQ5Y3WvH608nXClo4z/_buildManifest.js +1 -0
- skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/1141-d8c6404a7c6fffe6.js +11 -0
- skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/1746.27d40aedc22bd2d6.js +60 -0
- skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/2641.35edc9ccaeaad9e3.js +1 -0
- skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/3785.b3cc2bc1d49d2c3c.js → skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/3785.95b94f18aaec7233.js +1 -1
- skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/4869.bdd42f14b51d1d6f.js +16 -0
- skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/6990-dcb411b566e64cde.js +1 -0
- skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/9025.a7c44babfe56ce09.js → skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/9025.133e9ba5c780afeb.js +1 -1
- skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/9847.46e613d000c55859.js +30 -0
- skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/pages/_app-e0f63ea4704026ad.js → skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/pages/_app-771a40cde532309b.js +1 -1
- skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-9096ea50b8e2cf9e.js +6 -0
- skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-14d404b7dd28502a.js +16 -0
- skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/pages/users-cd43fb3c122eedde.js → skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/pages/users-19e98664bdd61643.js +1 -1
- skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/pages/volumes-61ea7ba7e56f8d06.js +1 -0
- skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/pages/workspaces-06bde99155fa6292.js → skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/pages/workspaces-a1e43d9ef51a9cea.js +1 -1
- skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/webpack-4a336bff3bcec29a.js → skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/webpack-c3b45b7b0eaef66f.js +1 -1
- skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/css/219887b94512388c.css +3 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/clusters/[cluster].html +1 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/clusters.html +1 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/config.html +1 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/index.html +1 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/infra/[context].html +1 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/infra.html +1 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/jobs/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/jobs.html +1 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/users.html +1 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/volumes.html +1 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/workspace/new.html +1 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/workspaces/[name].html +1 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/workspaces.html +1 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/exceptions.py +5 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/execution.py +5 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/hyperbolic/__init__.py +1 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/hyperbolic/instance.py +10 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/kubernetes/utils.py +6 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/common.py +4 -3
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717/sky/setup_files}/MANIFEST.in +1 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/setup_files/dependencies.py +3 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/task.py +12 -2
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/command_runner.py +144 -35
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/controller_utils.py +4 -3
- skypilot_nightly-1.0.0.dev20250717/sky/utils/git.py +9 -0
- skypilot_nightly-1.0.0.dev20250717/sky/utils/git_clone.sh +460 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/schemas.py +15 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/tempstore.py +20 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717/skypilot_nightly.egg-info}/PKG-INFO +5 -3
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/skypilot_nightly.egg-info/SOURCES.txt +30 -26
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/skypilot_nightly.egg-info/requires.txt +4 -2
- skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/1141-726e5a3f00b67185.js +0 -11
- skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/1691.44e378727a41f3b5.js +0 -21
- skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/3256.7257acd01b481bed.js +0 -11
- skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/4697.f5421144224da9fc.js +0 -20
- skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/6990-d0dc765474fa0eca.js +0 -1
- skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/8982.a2e214068f30a857.js +0 -1
- skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-4608dc89f95eba89.js +0 -6
- skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-980d6f6b64ca7833.js +0 -16
- skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/pages/volumes-4ebf6484f7216387.js +0 -1
- skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/css/eacc7d65a8686c76.css +0 -3
- skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/y4pSeZ-9XymSDfPlcWhVO/_buildManifest.js +0 -1
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/README.md +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/pyproject.toml +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/setup.cfg +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/adaptors/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/adaptors/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/adaptors/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/adaptors/cloudflare.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/adaptors/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/adaptors/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/adaptors/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/adaptors/docker.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/adaptors/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/adaptors/hyperbolic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/adaptors/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/adaptors/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/adaptors/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/adaptors/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/adaptors/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/adaptors/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/admin_policy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/authentication.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/backends/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/backends/backend_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/backends/wheel_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/aws_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/azure_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/cudo_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/data_fetchers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/data_fetchers/analyze.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/data_fetchers/fetch_cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/data_fetchers/fetch_hyperbolic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/do_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/fluidstack_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/hyperbolic_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/ibm_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/lambda_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/nebius_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/oci_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/paperspace_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/runpod_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/scp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/ssh_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/vast_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/vsphere_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/check.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/client/cli/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/client/cli/deprecation_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/client/cli/flags.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/client/oauth.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/client/service_account_auth.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/cloud_stores.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/paperspace.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/scp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/ssh.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/utils/aws_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/utils/azure_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/utils/gcp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/utils/oci_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/utils/scp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/clouds/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/y4pSeZ-9XymSDfPlcWhVO → skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/Et5IQ5Y3WvH608nXClo4z}/_ssgManifest.js +0 -0
- /skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/1043-5e5ef6198735ff7e.js → /skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/1043-90a88c46f27b3df5.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/1664-d65361e92b85e786.js +0 -0
- /skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/1871-4d1f786e83bd9ffe.js → /skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/1871-76491ac174a95278.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/2544.27f70672535675ed.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/2875.c24c6d57dc82e436.js +0 -0
- /skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/3698-52ad1ca228faa776.js → /skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/3698-9fa11dafb5cad4a6.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/3937.d7f1c55d1916c7f2.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/3947-b059261d6fa88a1f.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/430.ed51037d1a4a438b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/4725.4c849b1e05c8e9ad.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/5230-df791914b54d91d9.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/5491.918ffed0ba7a5294.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/5739-5ea3ffa10fc884f2.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/616-162f3033ffcd3d31.js +0 -0
- /skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/6601-d38d10f957dff832.js → /skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/6601-d4a381403a8bae91.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/6989-eab0e9c16b64fd9f.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/804-9f5e98ce84d46bdd.js +0 -0
- /skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/8969-13bb52ce3cffa4e3.js → /skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/8969-743abf4bc86baf48.js +0 -0
- /skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/938-8e25c8ea0baa271a.js → /skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/938-6a9ffdaa21eee969.js +0 -0
- /skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/9470-21d059a1dfa03f61.js → /skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/9470-b6f6a35283863a6f.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/9984.b56614f3c4c5961d.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/fd9d1056-61f2257a9cd8b32b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/framework-efc06c2733009cd3.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/main-app-68c028b1bc5e1b72.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/main-c0a4f1ea606d48d2.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/pages/_error-c72a1f77a3c0be1b.js +0 -0
- /skypilot_nightly-1.0.0.dev20250715/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-0fbfb1dd0b08c90c.js → /skypilot_nightly-1.0.0.dev20250717/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-0c37ee1ac5f3474d.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/pages/clusters-102d169e87913ba1.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/pages/config-a2673b256b6d416f.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/pages/index-927ddeebe57a8ac3.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-8b0809f59034d509.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/pages/infra-ae9d2f705ce582c9.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/pages/jobs-5bbdc71878f0a068.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/pages/workspace/new-5629d4e551dba1ee.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-7c0187f43757a548.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/favicon.ico +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/skypilot.svg +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/data/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/data/data_transfer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/data/data_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/data/mounting_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/data/storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/data/storage_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/jobs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/jobs/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/jobs/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/jobs/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/jobs/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/jobs/recovery_strategy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/jobs/scheduler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/jobs/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/jobs/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/jobs/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/jobs/server/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/jobs/state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/jobs/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/logs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/logs/agent.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/logs/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/metrics/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/metrics/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/models.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/optimizer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/aws/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/aws/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/aws/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/azure/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/azure/azure-config-template.json +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/azure/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/azure/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/cudo/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/cudo/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/cudo/cudo_machine_type.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/cudo/cudo_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/cudo/cudo_wrapper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/cudo/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/do/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/do/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/do/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/do/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/do/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/fluidstack/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/fluidstack/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/fluidstack/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/gcp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/gcp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/gcp/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/gcp/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/gcp/instance_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/gcp/mig_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/gcp/volume_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/hyperbolic/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/hyperbolic/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/instance_setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/kubernetes/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/kubernetes/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/kubernetes/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/kubernetes/network.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/kubernetes/network_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/kubernetes/volume.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/lambda_cloud/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/lambda_cloud/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/lambda_cloud/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/nebius/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/nebius/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/nebius/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/nebius/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/nebius/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/oci/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/oci/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/oci/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/oci/query_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/paperspace/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/paperspace/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/paperspace/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/paperspace/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/paperspace/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/provisioner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/runpod/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/runpod/api/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/runpod/api/commands.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/runpod/api/pods.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/runpod/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/runpod/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/runpod/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/scp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/scp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/scp/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/ssh/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/vast/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/vast/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/vast/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/vast/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/vsphere/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/vsphere/common/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/vsphere/common/cls_api_client.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/vsphere/common/custom_script.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/vsphere/common/id_generator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/vsphere/common/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/vsphere/common/service_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/vsphere/common/ssl_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/vsphere/common/vapiconnect.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/vsphere/common/vim_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/vsphere/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/vsphere/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/provision/vsphere/vsphere_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/resources.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/serve/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/serve/autoscalers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/serve/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/serve/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/serve/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/serve/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/serve/load_balancer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/serve/load_balancing_policies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/serve/replica_managers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/serve/serve_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/serve/serve_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/serve/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/serve/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/serve/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/serve/service.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/serve/service_spec.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/serve/spot_placer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/html/log.html +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/html/token_page.html +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/metrics.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/requests/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/requests/event_loop.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/requests/executor.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/requests/payloads.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/requests/preconditions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/requests/process.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/requests/queues/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/requests/queues/local_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/requests/queues/mp_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/requests/requests.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/requests/serializers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/requests/serializers/decoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/requests/serializers/encoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/rest.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/stream_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/uvicorn.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/server/versions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/setup_files/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/sky_logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/attempt_skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/autostop_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/configs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/events.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/job_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/log_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/log_lib.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/providers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/providers/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/providers/ibm/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/providers/ibm/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/providers/ibm/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/ray_patches/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/ray_patches/cli.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/ray_patches/updater.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/ray_patches/worker.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skylet/subprocess_daemon.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/skypilot_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/ssh_node_pools/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/ssh_node_pools/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/ssh_node_pools/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/aws-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/azure-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/cudo-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/do-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/fluidstack-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/gcp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/hyperbolic-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/ibm-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/jobs-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/kubernetes-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/lambda-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/local-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/nebius-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/oci-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/paperspace-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/runpod-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/scp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/vast-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/vsphere-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/templates/websocket_proxy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/usage/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/usage/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/usage/usage_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/users/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/users/model.conf +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/users/permission.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/users/rbac.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/users/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/users/token_service.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/accelerator_registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/admin_policy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/annotations.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/atomic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/aws/get_default_security_group.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/cli_utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/cli_utils/status_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/cluster_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/command_runner.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/common_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/config_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/context.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/context_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/control_master_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/dag_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/env_options.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/infra_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/kubernetes/config_map_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/kubernetes/create_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/kubernetes/delete_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/kubernetes/deploy_remote_cluster.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/kubernetes/generate_kind_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/kubernetes/gpu_labeler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/kubernetes/rsync_helper.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/kubernetes/ssh_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/kubernetes_enums.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/log_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/message_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/resource_checker.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/resources_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/rich_console_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/rich_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/status_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/subprocess_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/timeline.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/ux_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/utils/validator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/volumes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/volumes/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/volumes/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/volumes/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/volumes/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/volumes/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/volumes/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/volumes/volume.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/workspaces/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/workspaces/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/workspaces/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/workspaces/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/skypilot_nightly.egg-info/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/skypilot_nightly.egg-info/top_level.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/tests/test_api.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/tests/test_api_compatibility.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/tests/test_cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/tests/test_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/tests/test_db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/tests/test_failover.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/tests/test_global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/tests/test_jobs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/tests/test_jobs_and_serve.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/tests/test_list_accelerators.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/tests/test_no_parellel.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/tests/test_optimizer_dryruns.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/tests/test_optimizer_random_dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/tests/test_serve_autoscaler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/tests/test_smoke.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/tests/test_storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/tests/test_wheels.py +0 -0
- {skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/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.dev20250717
|
4
4
|
Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
|
5
5
|
Author: SkyPilot Team
|
6
6
|
License: Apache 2.0
|
@@ -54,6 +54,8 @@ Requires-Dist: sqlalchemy_adapter
|
|
54
54
|
Requires-Dist: prometheus_client>=0.8.0
|
55
55
|
Requires-Dist: passlib
|
56
56
|
Requires-Dist: pyjwt
|
57
|
+
Requires-Dist: gitpython
|
58
|
+
Requires-Dist: types-paramiko
|
57
59
|
Provides-Extra: aws
|
58
60
|
Requires-Dist: awscli>=1.27.10; extra == "aws"
|
59
61
|
Requires-Dist: botocore>=1.29.10; extra == "aws"
|
@@ -118,7 +120,7 @@ Requires-Dist: vastai-sdk>=0.1.12; extra == "vast"
|
|
118
120
|
Provides-Extra: vsphere
|
119
121
|
Requires-Dist: pyvmomi==8.0.1.0.2; extra == "vsphere"
|
120
122
|
Provides-Extra: nebius
|
121
|
-
Requires-Dist: nebius>=0.2.
|
123
|
+
Requires-Dist: nebius>=0.2.37; extra == "nebius"
|
122
124
|
Requires-Dist: awscli>=1.27.10; extra == "nebius"
|
123
125
|
Requires-Dist: botocore>=1.29.10; extra == "nebius"
|
124
126
|
Requires-Dist: boto3>=1.26.1; extra == "nebius"
|
@@ -174,7 +176,7 @@ Requires-Dist: azure-core>=1.24.0; extra == "all"
|
|
174
176
|
Requires-Dist: azure-common; extra == "all"
|
175
177
|
Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
|
176
178
|
Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
|
177
|
-
Requires-Dist: nebius>=0.2.
|
179
|
+
Requires-Dist: nebius>=0.2.37; extra == "all"
|
178
180
|
Requires-Dist: awscli>=1.27.10; extra == "all"
|
179
181
|
Requires-Dist: botocore>=1.29.10; extra == "all"
|
180
182
|
Requires-Dist: boto3>=1.26.1; extra == "all"
|
@@ -5,7 +5,7 @@ from typing import Optional
|
|
5
5
|
import urllib.request
|
6
6
|
|
7
7
|
# Replaced with the current commit when building the wheels.
|
8
|
-
_SKYPILOT_COMMIT_SHA = '
|
8
|
+
_SKYPILOT_COMMIT_SHA = '5ed1775c386bbd0cc4b9d1c80fc0d2d91b352870'
|
9
9
|
|
10
10
|
|
11
11
|
def _get_git_commit():
|
@@ -35,7 +35,7 @@ def _get_git_commit():
|
|
35
35
|
|
36
36
|
|
37
37
|
__commit__ = _get_git_commit()
|
38
|
-
__version__ = '1.0.0.
|
38
|
+
__version__ = '1.0.0.dev20250717'
|
39
39
|
__root_dir__ = os.path.dirname(os.path.abspath(__file__))
|
40
40
|
|
41
41
|
|
@@ -88,6 +88,7 @@ from sky.admin_policy import UserRequest
|
|
88
88
|
from sky.catalog import list_accelerators
|
89
89
|
from sky.client.sdk import api_cancel
|
90
90
|
from sky.client.sdk import api_info
|
91
|
+
from sky.client.sdk import api_login
|
91
92
|
from sky.client.sdk import api_server_logs
|
92
93
|
from sky.client.sdk import api_start
|
93
94
|
from sky.client.sdk import api_status
|
@@ -206,6 +207,7 @@ __all__ = [
|
|
206
207
|
'api_status',
|
207
208
|
'api_cancel',
|
208
209
|
'api_info',
|
210
|
+
'api_login',
|
209
211
|
'api_start',
|
210
212
|
'api_stop',
|
211
213
|
'api_server_logs',
|
{skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/adaptors/nebius.py
RENAMED
@@ -89,6 +89,12 @@ def iam():
|
|
89
89
|
return iam_v1
|
90
90
|
|
91
91
|
|
92
|
+
def billing():
|
93
|
+
# pylint: disable=import-outside-toplevel
|
94
|
+
from nebius.api.nebius.billing import v1alpha1 as billing_v1alpha1
|
95
|
+
return billing_v1alpha1
|
96
|
+
|
97
|
+
|
92
98
|
def nebius_common():
|
93
99
|
# pylint: disable=import-outside-toplevel
|
94
100
|
from nebius.api.nebius.common import v1 as common_v1
|
{skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/backends/backend.py
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
"""Sky backend interface."""
|
2
2
|
import typing
|
3
|
-
from typing import Dict, Generic, Optional, Tuple
|
3
|
+
from typing import Any, Dict, Generic, Optional, Tuple, Union
|
4
4
|
|
5
5
|
from sky.usage import usage_lib
|
6
6
|
from sky.utils import cluster_utils
|
@@ -90,8 +90,10 @@ class Backend(Generic[_ResourceHandleType]):
|
|
90
90
|
|
91
91
|
@timeline.event
|
92
92
|
@usage_lib.messages.usage.update_runtime('sync_workdir')
|
93
|
-
def sync_workdir(self, handle: _ResourceHandleType,
|
94
|
-
|
93
|
+
def sync_workdir(self, handle: _ResourceHandleType,
|
94
|
+
workdir: Union[Path, Dict[str, Any]],
|
95
|
+
envs_and_secrets: Dict[str, str]) -> None:
|
96
|
+
return self._sync_workdir(handle, workdir, envs_and_secrets)
|
95
97
|
|
96
98
|
@timeline.event
|
97
99
|
@usage_lib.messages.usage.update_runtime('sync_file_mounts')
|
@@ -165,7 +167,9 @@ class Backend(Generic[_ResourceHandleType]):
|
|
165
167
|
) -> Tuple[Optional[_ResourceHandleType], bool]:
|
166
168
|
raise NotImplementedError
|
167
169
|
|
168
|
-
def _sync_workdir(self, handle: _ResourceHandleType,
|
170
|
+
def _sync_workdir(self, handle: _ResourceHandleType,
|
171
|
+
workdir: Union[Path, Dict[str, Any]],
|
172
|
+
envs_and_secrets: Dict[str, str]) -> None:
|
169
173
|
raise NotImplementedError
|
170
174
|
|
171
175
|
def _sync_file_mounts(
|
@@ -3240,10 +3240,59 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
3240
3240
|
common_utils.remove_file_if_exists(lock_path)
|
3241
3241
|
|
3242
3242
|
def _sync_workdir(self, handle: CloudVmRayResourceHandle,
|
3243
|
-
workdir: Path
|
3243
|
+
workdir: Union[Path, Dict[str, Any]],
|
3244
|
+
envs_and_secrets: Dict[str, str]) -> None:
|
3244
3245
|
# Even though provision() takes care of it, there may be cases where
|
3245
3246
|
# this function is called in isolation, without calling provision(),
|
3246
3247
|
# e.g., in CLI. So we should rerun rsync_up.
|
3248
|
+
if isinstance(workdir, dict):
|
3249
|
+
self._sync_git_workdir(handle, envs_and_secrets)
|
3250
|
+
else:
|
3251
|
+
self._sync_path_workdir(handle, workdir)
|
3252
|
+
|
3253
|
+
def _sync_git_workdir(self, handle: CloudVmRayResourceHandle,
|
3254
|
+
envs_and_secrets: Dict[str, str]) -> None:
|
3255
|
+
style = colorama.Style
|
3256
|
+
ip_list = handle.external_ips()
|
3257
|
+
assert ip_list is not None, 'external_ips is not cached in handle'
|
3258
|
+
|
3259
|
+
log_path = os.path.join(self.log_dir, 'workdir_sync.log')
|
3260
|
+
|
3261
|
+
# TODO(zhwu): refactor this with backend_utils.parallel_cmd_with_rsync
|
3262
|
+
runners = handle.get_command_runners()
|
3263
|
+
|
3264
|
+
def _sync_git_workdir_node(
|
3265
|
+
runner: command_runner.CommandRunner) -> None:
|
3266
|
+
# Type assertion to help mypy understand the type
|
3267
|
+
assert hasattr(
|
3268
|
+
runner, 'git_clone'
|
3269
|
+
), f'CommandRunner should have git_clone method, ' \
|
3270
|
+
f'got {type(runner)}'
|
3271
|
+
runner.git_clone(
|
3272
|
+
target_dir=SKY_REMOTE_WORKDIR,
|
3273
|
+
log_path=log_path,
|
3274
|
+
stream_logs=False,
|
3275
|
+
max_retry=3,
|
3276
|
+
envs_and_secrets=envs_and_secrets,
|
3277
|
+
)
|
3278
|
+
|
3279
|
+
num_nodes = handle.launched_nodes
|
3280
|
+
plural = 's' if num_nodes > 1 else ''
|
3281
|
+
logger.info(
|
3282
|
+
f' {style.DIM}Syncing workdir (to {num_nodes} node{plural}): '
|
3283
|
+
f'{SKY_REMOTE_WORKDIR}{style.RESET_ALL}')
|
3284
|
+
os.makedirs(os.path.expanduser(self.log_dir), exist_ok=True)
|
3285
|
+
os.system(f'touch {log_path}')
|
3286
|
+
num_threads = subprocess_utils.get_parallel_threads(
|
3287
|
+
str(handle.launched_resources.cloud))
|
3288
|
+
with rich_utils.safe_status(
|
3289
|
+
ux_utils.spinner_message('Syncing workdir', log_path)):
|
3290
|
+
subprocess_utils.run_in_parallel(_sync_git_workdir_node, runners,
|
3291
|
+
num_threads)
|
3292
|
+
logger.info(ux_utils.finishing_message('Synced workdir.', log_path))
|
3293
|
+
|
3294
|
+
def _sync_path_workdir(self, handle: CloudVmRayResourceHandle,
|
3295
|
+
workdir: Path) -> None:
|
3247
3296
|
fore = colorama.Fore
|
3248
3297
|
style = colorama.Style
|
3249
3298
|
ip_list = handle.external_ips()
|
@@ -168,7 +168,7 @@ def build_dockerimage(task: task_mod.Task,
|
|
168
168
|
build_dir=temp_dir)
|
169
169
|
|
170
170
|
dst = os.path.join(temp_dir, SKY_DOCKER_WORKDIR)
|
171
|
-
if task.workdir is not None:
|
171
|
+
if task.workdir is not None and isinstance(task.workdir, str):
|
172
172
|
# Copy workdir contents to tempdir
|
173
173
|
shutil.copytree(os.path.expanduser(task.workdir), dst)
|
174
174
|
else:
|
@@ -178,7 +178,8 @@ class LocalDockerBackend(backends.Backend['LocalDockerResourceHandle']):
|
|
178
178
|
return handle, False
|
179
179
|
|
180
180
|
def _sync_workdir(self, handle: LocalDockerResourceHandle,
|
181
|
-
workdir: Path
|
181
|
+
workdir: Union[Path, Dict[str, Any]],
|
182
|
+
envs_and_secrets: Dict[str, str]) -> None:
|
182
183
|
"""Workdir is sync'd by adding to the docker image.
|
183
184
|
|
184
185
|
This happens in the execute step.
|
{skypilot_nightly-1.0.0.dev20250715 → skypilot_nightly-1.0.0.dev20250717}/sky/catalog/common.py
RENAMED
@@ -13,6 +13,7 @@ from sky import sky_logging
|
|
13
13
|
from sky.adaptors import common as adaptors_common
|
14
14
|
from sky.clouds import cloud as cloud_lib
|
15
15
|
from sky.skylet import constants
|
16
|
+
from sky.utils import annotations
|
16
17
|
from sky.utils import common_utils
|
17
18
|
from sky.utils import registry
|
18
19
|
from sky.utils import rich_utils
|
@@ -125,17 +126,21 @@ class LazyDataFrame:
|
|
125
126
|
|
126
127
|
We don't need to load the catalog for every SkyPilot call, and this class
|
127
128
|
allows us to load the catalog only when needed.
|
129
|
+
|
130
|
+
Use update_if_stale_func to pass in a function that decides whether to
|
131
|
+
update the catalog on disk, updates it if needed, and returns
|
132
|
+
a bool indicating whether the update was done.
|
128
133
|
"""
|
129
134
|
|
130
|
-
def __init__(self, filename: str,
|
135
|
+
def __init__(self, filename: str, update_if_stale_func: Callable[[], bool]):
|
131
136
|
self._filename = filename
|
132
137
|
self._df: Optional['pd.DataFrame'] = None
|
133
|
-
self.
|
138
|
+
self._update_if_stale_func = update_if_stale_func
|
134
139
|
|
140
|
+
@annotations.lru_cache(scope='request')
|
135
141
|
def _load_df(self) -> 'pd.DataFrame':
|
136
|
-
if self._df is None:
|
142
|
+
if self._update_if_stale_func() or self._df is None:
|
137
143
|
try:
|
138
|
-
self._update_func()
|
139
144
|
self._df = pd.read_csv(self._filename)
|
140
145
|
except Exception as e: # pylint: disable=broad-except
|
141
146
|
# As users can manually modify the catalog, read_csv can fail.
|
@@ -193,55 +198,60 @@ def read_catalog(filename: str,
|
|
193
198
|
return last_update + pull_frequency_hours * 3600 < time.time()
|
194
199
|
|
195
200
|
def _update_catalog():
|
201
|
+
# Fast path: Exit early to avoid lock contention.
|
202
|
+
if not _need_update():
|
203
|
+
return False
|
204
|
+
|
196
205
|
# Atomic check, to avoid conflicts with other processes.
|
197
206
|
with filelock.FileLock(meta_path + '.lock'):
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
'connection.')
|
231
|
-
with ux_utils.print_exception_no_traceback():
|
232
|
-
raise e
|
207
|
+
# Double check after acquiring the lock.
|
208
|
+
if not _need_update():
|
209
|
+
return False
|
210
|
+
|
211
|
+
url = f'{constants.HOSTED_CATALOG_DIR_URL}/{constants.CATALOG_SCHEMA_VERSION}/{filename}' # pylint: disable=line-too-long
|
212
|
+
url_fallback = f'{constants.HOSTED_CATALOG_DIR_URL_S3_MIRROR}/{constants.CATALOG_SCHEMA_VERSION}/{filename}' # pylint: disable=line-too-long
|
213
|
+
headers = {'User-Agent': 'SkyPilot/0.7'}
|
214
|
+
update_frequency_str = ''
|
215
|
+
if pull_frequency_hours is not None:
|
216
|
+
update_frequency_str = (
|
217
|
+
f' (every {pull_frequency_hours} hours)')
|
218
|
+
with rich_utils.safe_status(
|
219
|
+
ux_utils.spinner_message(
|
220
|
+
f'Updating {cloud} catalog: {filename}') +
|
221
|
+
f'{update_frequency_str}'):
|
222
|
+
try:
|
223
|
+
r = requests.get(url=url, headers=headers)
|
224
|
+
if r.status_code == 429:
|
225
|
+
# fallback to s3 mirror, github introduced rate
|
226
|
+
# limit after 2025-05, see
|
227
|
+
# https://github.com/skypilot-org/skypilot/issues/5438
|
228
|
+
# for more details
|
229
|
+
r = requests.get(url=url_fallback, headers=headers)
|
230
|
+
r.raise_for_status()
|
231
|
+
except requests.exceptions.RequestException as e:
|
232
|
+
error_str = (f'Failed to fetch {cloud} catalog '
|
233
|
+
f'{filename}. ')
|
234
|
+
if os.path.exists(catalog_path):
|
235
|
+
logger.warning(
|
236
|
+
f'{error_str}Using cached catalog files.')
|
237
|
+
# Update catalog file modification time.
|
238
|
+
os.utime(catalog_path, None) # Sets to current time
|
233
239
|
else:
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
240
|
+
logger.error(f'{error_str}Please check your internet '
|
241
|
+
'connection.')
|
242
|
+
with ux_utils.print_exception_no_traceback():
|
243
|
+
raise e
|
244
|
+
else:
|
245
|
+
# Download successful, save the catalog to a local file.
|
246
|
+
os.makedirs(os.path.dirname(catalog_path), exist_ok=True)
|
247
|
+
with open(catalog_path, 'w', encoding='utf-8') as f:
|
248
|
+
f.write(r.text)
|
249
|
+
with open(meta_path + '.md5', 'w', encoding='utf-8') as f:
|
250
|
+
f.write(hashlib.md5(r.text.encode()).hexdigest())
|
251
|
+
logger.debug(f'Updated {cloud} catalog {filename}.')
|
252
|
+
return True
|
253
|
+
|
254
|
+
return LazyDataFrame(catalog_path, update_if_stale_func=_update_catalog)
|
245
255
|
|
246
256
|
|
247
257
|
def _get_instance_type(
|
@@ -0,0 +1,308 @@
|
|
1
|
+
"""A script that queries Nebius API to get instance types and pricing info.
|
2
|
+
|
3
|
+
This script takes about 1 minute to finish.
|
4
|
+
"""
|
5
|
+
import csv
|
6
|
+
from dataclasses import dataclass
|
7
|
+
import decimal
|
8
|
+
import json
|
9
|
+
import logging
|
10
|
+
import re
|
11
|
+
from typing import Any, Dict, List, Optional
|
12
|
+
|
13
|
+
from sky.adaptors import nebius
|
14
|
+
from sky.adaptors.nebius import billing
|
15
|
+
from sky.adaptors.nebius import compute
|
16
|
+
from sky.adaptors.nebius import iam
|
17
|
+
from sky.adaptors.nebius import nebius_common
|
18
|
+
|
19
|
+
logger = logging.getLogger(__name__)
|
20
|
+
|
21
|
+
TIMEOUT = 10
|
22
|
+
PARENT_ID_TEMPLATE = 'project-{}public-images'
|
23
|
+
ACCELERATOR_MANUFACTURER = 'NVIDIA'
|
24
|
+
|
25
|
+
|
26
|
+
@dataclass
|
27
|
+
class PresetInfo:
|
28
|
+
"""Represents information about a specific compute preset,
|
29
|
+
including its pricing.
|
30
|
+
|
31
|
+
Attributes:
|
32
|
+
region (str): The geographical region where the preset is available.
|
33
|
+
fullname (str): The full name of the preset, a combination of platform
|
34
|
+
and preset name.
|
35
|
+
name (str): The name of the preset.
|
36
|
+
platform_name (str): The name of the platform the preset belongs to.
|
37
|
+
gpu (int): The number of GPUs in the preset.
|
38
|
+
vcpu (int): The number of virtual CPUs in the preset.
|
39
|
+
memory_gib (int): The amount of memory in GiB in the preset.
|
40
|
+
accelerator_manufacturer (str | None): The manufacturer of the
|
41
|
+
accelerator (e.g., "NVIDIA"), or None if no accelerator.
|
42
|
+
accelerator_name (str | None): The name of the accelerator
|
43
|
+
(e.g., "H100"), or None if no accelerator.
|
44
|
+
price_hourly (decimal.Decimal): The hourly price of the preset.
|
45
|
+
"""
|
46
|
+
|
47
|
+
region: str
|
48
|
+
fullname: str
|
49
|
+
name: str
|
50
|
+
platform_name: str
|
51
|
+
gpu: int
|
52
|
+
vcpu: int
|
53
|
+
memory_gib: int
|
54
|
+
accelerator_manufacturer: Optional[str]
|
55
|
+
accelerator_name: Optional[str]
|
56
|
+
price_hourly: decimal.Decimal
|
57
|
+
|
58
|
+
|
59
|
+
def _format_decimal(value: decimal.Decimal) -> str:
|
60
|
+
"""Formats a decimal value to a string with at least two decimal places,
|
61
|
+
removing trailing zeros and ensuring a two-digit decimal part.
|
62
|
+
|
63
|
+
Args:
|
64
|
+
value (decimal.Decimal): The decimal value to format.
|
65
|
+
|
66
|
+
Returns:
|
67
|
+
str: The formatted string representation of the decimal.
|
68
|
+
"""
|
69
|
+
formatted_value = f'{value:f}'.rstrip('0').rstrip('.')
|
70
|
+
integer_part, decimal_part = formatted_value.split(
|
71
|
+
'.') if '.' in formatted_value else (formatted_value, '')
|
72
|
+
if len(decimal_part) < 2:
|
73
|
+
decimal_part += '0' * (2 - len(decimal_part))
|
74
|
+
|
75
|
+
return f'{integer_part}.{decimal_part}'
|
76
|
+
|
77
|
+
|
78
|
+
def _estimate_platforms(platforms: List[Any], parent_id: str,
|
79
|
+
region: str) -> List[PresetInfo]:
|
80
|
+
"""Collects specifications for all presets on the given platforms to form a
|
81
|
+
batch price request. It then sends the request and processes the responses
|
82
|
+
to create a list of PresetInfo objects.
|
83
|
+
|
84
|
+
Args:
|
85
|
+
platforms (List[Platform]): A List of compute platforms to estimate
|
86
|
+
prices for.
|
87
|
+
parent_id (str): The parent ID used for resource metadata
|
88
|
+
in the estimate request.
|
89
|
+
region (str): The region associated with the platforms.
|
90
|
+
|
91
|
+
Returns:
|
92
|
+
List[PresetInfo]: A list of PresetInfo objects containing details and
|
93
|
+
estimated prices for each preset.
|
94
|
+
"""
|
95
|
+
|
96
|
+
calculator_service = billing().CalculatorServiceClient(nebius.sdk())
|
97
|
+
futures = []
|
98
|
+
|
99
|
+
for platform in platforms:
|
100
|
+
platform_name = platform.metadata.name
|
101
|
+
|
102
|
+
for preset in platform.spec.presets:
|
103
|
+
# Form the specification for the price request
|
104
|
+
estimate_spec = billing().ResourceSpec(
|
105
|
+
compute_instance_spec=compute().CreateInstanceRequest(
|
106
|
+
metadata=nebius_common().ResourceMetadata(
|
107
|
+
parent_id=parent_id,),
|
108
|
+
spec=compute().InstanceSpec(
|
109
|
+
resources=compute().ResourcesSpec(
|
110
|
+
platform=platform_name,
|
111
|
+
preset=preset.name,
|
112
|
+
)),
|
113
|
+
))
|
114
|
+
|
115
|
+
price_request = billing().EstimateBatchRequest(
|
116
|
+
resource_specs=[estimate_spec])
|
117
|
+
# Start future for each preset
|
118
|
+
futures.append((
|
119
|
+
platform,
|
120
|
+
preset,
|
121
|
+
calculator_service.estimate_batch(price_request,
|
122
|
+
timeout=TIMEOUT),
|
123
|
+
))
|
124
|
+
|
125
|
+
# wait all futures to complete and collect results
|
126
|
+
result = []
|
127
|
+
for platform, preset, future in futures:
|
128
|
+
platform_name = platform.metadata.name
|
129
|
+
result.append(
|
130
|
+
PresetInfo(
|
131
|
+
region=region,
|
132
|
+
fullname=f'{platform_name}_{preset.name}',
|
133
|
+
name=preset.name,
|
134
|
+
platform_name=platform_name,
|
135
|
+
gpu=preset.resources.gpu_count or 0,
|
136
|
+
vcpu=preset.resources.vcpu_count,
|
137
|
+
memory_gib=preset.resources.memory_gibibytes,
|
138
|
+
accelerator_manufacturer=ACCELERATOR_MANUFACTURER
|
139
|
+
if platform_name.startswith('gpu-') else '',
|
140
|
+
accelerator_name=platform_name.split('-')[1].upper()
|
141
|
+
if platform_name.startswith('gpu-') else '',
|
142
|
+
price_hourly=decimal.Decimal(
|
143
|
+
future.wait().hourly_cost.general.total.cost),
|
144
|
+
))
|
145
|
+
|
146
|
+
return result
|
147
|
+
|
148
|
+
|
149
|
+
def _write_preset_prices(presets: List[PresetInfo], output_file: str) -> None:
|
150
|
+
"""Writes the provided preset information to a CSV file.
|
151
|
+
|
152
|
+
Args:
|
153
|
+
presets (List[PresetInfo]): A list of PresetInfo objects to write.
|
154
|
+
output_file (str): The path to the output CSV file.
|
155
|
+
"""
|
156
|
+
# Set up the CSV writer to output to stdout
|
157
|
+
with open(output_file, 'w', encoding='utf-8') as out:
|
158
|
+
header = [
|
159
|
+
'InstanceType',
|
160
|
+
'AcceleratorName',
|
161
|
+
'AcceleratorCount',
|
162
|
+
'vCPUs',
|
163
|
+
'MemoryGiB',
|
164
|
+
'Price',
|
165
|
+
'Region',
|
166
|
+
'GpuInfo',
|
167
|
+
'SpotPrice',
|
168
|
+
]
|
169
|
+
writer = csv.DictWriter(out, fieldnames=header)
|
170
|
+
writer.writeheader()
|
171
|
+
|
172
|
+
for preset in sorted(presets,
|
173
|
+
key=lambda x:
|
174
|
+
(bool(x.gpu), x.region, x.platform_name, x.vcpu)):
|
175
|
+
gpu_info = ''
|
176
|
+
if preset.gpu > 0:
|
177
|
+
gpu_info_dict = {
|
178
|
+
'Gpus': [{
|
179
|
+
'Name': preset.accelerator_name,
|
180
|
+
'Manufacturer': preset.accelerator_manufacturer,
|
181
|
+
'Count': preset.gpu,
|
182
|
+
'MemoryInfo': {
|
183
|
+
'SizeInMiB': preset.memory_gib * 1024 // preset.gpu
|
184
|
+
},
|
185
|
+
}],
|
186
|
+
'TotalGpuMemoryInMiB': preset.memory_gib * 1024,
|
187
|
+
}
|
188
|
+
gpu_info = json.dumps(gpu_info_dict).replace('"', '\'')
|
189
|
+
|
190
|
+
writer.writerow({
|
191
|
+
'InstanceType': preset.fullname,
|
192
|
+
'AcceleratorName': preset.accelerator_name,
|
193
|
+
'AcceleratorCount': preset.gpu,
|
194
|
+
'vCPUs': preset.vcpu,
|
195
|
+
'MemoryGiB': preset.memory_gib,
|
196
|
+
'Price': _format_decimal(preset.price_hourly),
|
197
|
+
'Region': preset.region,
|
198
|
+
'GpuInfo': gpu_info,
|
199
|
+
'SpotPrice': '',
|
200
|
+
})
|
201
|
+
|
202
|
+
|
203
|
+
def _fetch_platforms_for_project(project_id: str) -> List[Any]:
|
204
|
+
"""Fetches all available compute platforms for a given project.
|
205
|
+
|
206
|
+
Args:
|
207
|
+
project_id (str): The ID of the project to fetch platforms from.
|
208
|
+
|
209
|
+
Returns:
|
210
|
+
List[ComputePlatform]: A list of ComputePlatform objects available
|
211
|
+
in the project.
|
212
|
+
"""
|
213
|
+
platform_service = compute().PlatformServiceClient(nebius.sdk())
|
214
|
+
|
215
|
+
platform_request = compute().ListPlatformsRequest(page_size=999,
|
216
|
+
parent_id=project_id)
|
217
|
+
platform_response = platform_service.list(platform_request,
|
218
|
+
timeout=TIMEOUT).wait()
|
219
|
+
|
220
|
+
return platform_response.items
|
221
|
+
|
222
|
+
|
223
|
+
def _get_regions_map() -> Dict[str, str]:
|
224
|
+
"""Maps region codes to their full names by iterating through tenants and
|
225
|
+
projects.
|
226
|
+
|
227
|
+
Returns:
|
228
|
+
dict[str, str]: A dictionary where keys are region codes (e.g., "e00")
|
229
|
+
and values are full region names (e.g., "eu-north1").
|
230
|
+
"""
|
231
|
+
result = {}
|
232
|
+
response = iam().TenantServiceClient(nebius.sdk()).list(
|
233
|
+
iam().ListTenantsRequest(), timeout=TIMEOUT).wait()
|
234
|
+
|
235
|
+
for tenant in response.items:
|
236
|
+
projects = (iam().ProjectServiceClient(nebius.sdk()).list(
|
237
|
+
iam().ListProjectsRequest(parent_id=tenant.metadata.id),
|
238
|
+
timeout=TIMEOUT).wait())
|
239
|
+
|
240
|
+
for project in projects.items:
|
241
|
+
match = re.match(r'^project-([a-z0-9]{3})', project.metadata.id)
|
242
|
+
if match is None:
|
243
|
+
logger.error('Could not parse project id %s',
|
244
|
+
project.metadata.id)
|
245
|
+
continue
|
246
|
+
result[match.group(1)] = project.status.region
|
247
|
+
|
248
|
+
return result
|
249
|
+
|
250
|
+
|
251
|
+
def _get_all_platform_prices() -> List[PresetInfo]:
|
252
|
+
"""Orchestrates fetching specifications and prices for all platforms across
|
253
|
+
all regions.
|
254
|
+
|
255
|
+
This function first retrieves a map of region codes to full names, then
|
256
|
+
iterates through each region, fetches available platforms for
|
257
|
+
the corresponding project ID, and finally estimates prices for all presets
|
258
|
+
on those platforms.
|
259
|
+
|
260
|
+
Returns:
|
261
|
+
List[PresetInfo]: A consolidated list of PresetInfo objects for all
|
262
|
+
platforms and presets across all regions.
|
263
|
+
"""
|
264
|
+
|
265
|
+
# Get regions codes to names
|
266
|
+
regions_map = _get_regions_map()
|
267
|
+
|
268
|
+
presets = []
|
269
|
+
|
270
|
+
for region_code in sorted(regions_map.keys()):
|
271
|
+
project_id = PARENT_ID_TEMPLATE.format(region_code)
|
272
|
+
region = regions_map[region_code]
|
273
|
+
logger.info('Processing region: %s (project: %s)...', region,
|
274
|
+
project_id)
|
275
|
+
|
276
|
+
platforms = _fetch_platforms_for_project(project_id)
|
277
|
+
if not platforms:
|
278
|
+
logger.warning('No platforms found in region %s', region)
|
279
|
+
continue
|
280
|
+
|
281
|
+
presets.extend(
|
282
|
+
_estimate_platforms(platforms=platforms,
|
283
|
+
parent_id=project_id,
|
284
|
+
region=region))
|
285
|
+
|
286
|
+
return presets
|
287
|
+
|
288
|
+
|
289
|
+
def main() -> None:
|
290
|
+
"""Main function to fetch and write Nebius platform prices to a CSV file.
|
291
|
+
|
292
|
+
It initializes the SDK, fetches all platform prices, and then writes them
|
293
|
+
to the specified CSV file.
|
294
|
+
"""
|
295
|
+
|
296
|
+
output_file = 'nebius/vms.csv'
|
297
|
+
|
298
|
+
# Fetch presets and estimate
|
299
|
+
presets = _get_all_platform_prices()
|
300
|
+
|
301
|
+
# Write CSV
|
302
|
+
_write_preset_prices(presets, output_file)
|
303
|
+
|
304
|
+
logger.info('Done!')
|
305
|
+
|
306
|
+
|
307
|
+
if __name__ == '__main__':
|
308
|
+
main()
|