skypilot-nightly 1.0.0.dev20251012__tar.gz → 1.0.0.dev20251013__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.dev20251012/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20251013}/PKG-INFO +36 -35
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/__init__.py +4 -2
- skypilot_nightly-1.0.0.dev20251013/sky/adaptors/shadeform.py +89 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/authentication.py +43 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/backends/backend_utils.py +2 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/backends/cloud_vm_ray_backend.py +2 -0
- skypilot_nightly-1.0.0.dev20251013/sky/catalog/data_fetchers/fetch_shadeform.py +142 -0
- skypilot_nightly-1.0.0.dev20251013/sky/catalog/shadeform_catalog.py +165 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/__init__.py +2 -0
- skypilot_nightly-1.0.0.dev20251013/sky/clouds/shadeform.py +393 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/404.html +1 -1
- skypilot_nightly-1.0.0.dev20251012/sky/dashboard/out/_next/static/chunks/webpack-66f23594d38c7f16.js → skypilot_nightly-1.0.0.dev20251013/sky/dashboard/out/_next/static/chunks/webpack-ac3a34c8f9fef041.js +1 -1
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/clusters/[cluster].html +1 -1
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/clusters.html +1 -1
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/config.html +1 -1
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/index.html +1 -1
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/infra/[context].html +1 -1
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/infra.html +1 -1
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/jobs/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/jobs/pools/[pool].html +1 -1
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/jobs.html +1 -1
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/users.html +1 -1
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/volumes.html +1 -1
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/workspace/new.html +1 -1
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/workspaces/[name].html +1 -1
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/workspaces.html +1 -1
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/__init__.py +1 -0
- skypilot_nightly-1.0.0.dev20251013/sky/provision/shadeform/__init__.py +11 -0
- skypilot_nightly-1.0.0.dev20251013/sky/provision/shadeform/config.py +12 -0
- skypilot_nightly-1.0.0.dev20251013/sky/provision/shadeform/instance.py +351 -0
- skypilot_nightly-1.0.0.dev20251013/sky/provision/shadeform/shadeform_utils.py +83 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/executor.py +22 -2
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/server.py +4 -3
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/setup_files/dependencies.py +1 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/constants.py +1 -1
- skypilot_nightly-1.0.0.dev20251013/sky/templates/shadeform-ray.yml.j2 +72 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/context_utils.py +13 -9
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013/skypilot_nightly.egg-info}/PKG-INFO +36 -35
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/skypilot_nightly.egg-info/SOURCES.txt +12 -3
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/skypilot_nightly.egg-info/requires.txt +36 -34
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/tests/test_optimizer_dryruns.py +4 -4
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/README.md +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/pyproject.toml +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/setup.cfg +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/cloudflare.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/docker.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/hyperbolic.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/primeintellect.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/seeweb.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/admin_policy.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/backends/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/backends/backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/backends/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/backends/local_docker_backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/backends/wheel_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/aws_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/azure_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/cudo_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/analyze.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_hyperbolic.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_seeweb.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/do_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/fluidstack_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/gcp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/hyperbolic_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/ibm_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/kubernetes_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/lambda_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/nebius_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/oci_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/paperspace_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/primeintellect_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/runpod_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/scp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/seeweb_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/ssh_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/vast_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/vsphere_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/check.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/client/cli/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/client/cli/command.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/client/cli/deprecation_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/client/cli/flags.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/client/cli/table_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/client/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/client/oauth.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/client/sdk_async.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/client/service_account_auth.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/cloud_stores.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/hyperbolic.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/paperspace.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/primeintellect.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/scp.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/seeweb.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/ssh.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/utils/aws_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/utils/azure_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/utils/gcp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/utils/oci_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/utils/scp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012/sky/dashboard/out/_next/static/yOfMelBaFp8uL5F9atyAK → skypilot_nightly-1.0.0.dev20251013/sky/dashboard/out/_next/static/MtlDUf-nH1hhcy7xwbCj3}/_buildManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012/sky/dashboard/out/_next/static/yOfMelBaFp8uL5F9atyAK → skypilot_nightly-1.0.0.dev20251013/sky/dashboard/out/_next/static/MtlDUf-nH1hhcy7xwbCj3}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/1121-d0782b9251f0fcd3.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/1141-3b40c39626f99c89.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/1871-49141c317f3a9020.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/2350.fab69e61bac57b23.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/2369.fc20f0c2c8ed9fe7.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/2755.97300e1362fe7c98.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/3015-7e0e8f06bb2f881c.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/3294.1fafbf42b3bcebff.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/3785.a19328ba41517b8b.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/3850-ff4a9a69d978632b.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/3937.210053269f121201.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/4725.10f7a9a5d3ea8208.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/4937.a2baa2df5572a276.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/5739-d67458fcb1386c92.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/6130-2be46d70a38f1e82.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/6135-4b4d5e824b7f9d3c.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/616-3d59f75e2ccf9321.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/6212-7bd06f60ba693125.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/6601-06114c982db410b6.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/6856-5fdc9b851a18acdb.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/6989-01359c57e018caa4.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/6990-f6818c84ed8f1c86.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/7359-c8d04e06886000b3.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/7411-b15471acd2cba716.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/8640.5b9475a2d18c5416.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/8969-66237729cdf9749e.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/9025.c12318fb6a1a9093.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/9360.71e83b2ddc844ec2.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/9847.3aaca6bb33455140.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/fd9d1056-86323a29a8f7e46a.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/framework-cf60a09ccd051a10.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/main-app-587214043926b3cc.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/main-f15ccb73239a3bf1.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/_app-ce361c6959bc2001.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-8f058b0346db2aff.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-477555ab7c0b13d8.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/clusters-2f61f65487f6d8ff.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/config-dfb9bf07b13045f4.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/index-444f1804401f04ea.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-553b8b5cb65e100b.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/infra-910a22500c50596f.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-e5c9ce6a24fc0de4.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/jobs/pools/[pool]-bc979970c247d8f3.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/jobs-a35a9dc3c5ccd657.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/users-98d2ed979084162a.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/volumes-835d14ba94808f79.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-e8688c35c06f0ac5.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/workspaces-69c80d677d3c2949.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/css/4614e06482d7309e.css +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/favicon.ico +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/skypilot.svg +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/data/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/data/data_transfer.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/data/data_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/data/mounting_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/data/storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/data/storage_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/exceptions.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/execution.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/client/sdk_async.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/recovery_strategy.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/scheduler.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/server/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/state.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/logs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/logs/agent.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/logs/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/logs/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/metrics/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/metrics/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/models.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/optimizer.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/aws/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/aws/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/aws/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/azure/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/azure/azure-config-template.json +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/azure/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/azure/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/cudo/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/cudo/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/cudo/cudo_machine_type.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/cudo/cudo_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/cudo/cudo_wrapper.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/cudo/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/do/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/do/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/do/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/do/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/do/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/fluidstack/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/fluidstack/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/fluidstack/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/gcp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/gcp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/gcp/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/gcp/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/gcp/instance_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/gcp/mig_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/gcp/volume_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/hyperbolic/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/hyperbolic/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/hyperbolic/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/hyperbolic/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/instance_setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/kubernetes/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/kubernetes/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/kubernetes/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/kubernetes/network.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/kubernetes/network_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/kubernetes/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/kubernetes/volume.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/lambda_cloud/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/lambda_cloud/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/lambda_cloud/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/nebius/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/nebius/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/nebius/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/nebius/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/nebius/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/oci/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/oci/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/oci/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/oci/query_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/paperspace/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/paperspace/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/paperspace/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/paperspace/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/paperspace/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/primeintellect/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/primeintellect/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/primeintellect/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/primeintellect/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/provisioner.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/runpod/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/runpod/api/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/runpod/api/commands.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/runpod/api/pods.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/runpod/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/runpod/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/runpod/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/runpod/volume.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/scp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/scp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/scp/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/seeweb/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/seeweb/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/seeweb/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/ssh/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vast/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vast/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vast/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vast/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/cls_api_client.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/custom_script.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/id_generator.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/service_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/ssl_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/vapiconnect.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/vim_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/vsphere_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/py.typed +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/resources.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/api/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/api/responses.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/README +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/env.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/global_user_state/001_initial_schema.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/global_user_state/002_add_workspace_to_cluster_history.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/global_user_state/003_fix_initial_revision.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/global_user_state/004_is_managed.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/global_user_state/005_cluster_event.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/global_user_state/006_provision_log.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/global_user_state/007_cluster_event_request_id.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/global_user_state/008_skylet_ssh_tunnel_metadata.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/global_user_state/009_last_activity_and_launched_at.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/global_user_state/010_save_ssh_key.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/script.py.mako +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/serve_state/001_initial_schema.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/spot_jobs/001_initial_schema.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/spot_jobs/002_cluster_pool.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/spot_jobs/003_pool_hash.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/autostopv1_pb2.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/autostopv1_pb2.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/autostopv1_pb2_grpc.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/jobsv1_pb2.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/jobsv1_pb2.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/jobsv1_pb2_grpc.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/managed_jobsv1_pb2.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/managed_jobsv1_pb2.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/managed_jobsv1_pb2_grpc.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/servev1_pb2.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/servev1_pb2.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/servev1_pb2_grpc.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/autoscalers.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/client/impl.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/client/sdk_async.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/load_balancer.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/load_balancing_policies.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/replica_managers.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/serve_rpc_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/serve_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/serve_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/server/impl.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/service.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/service_spec.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/spot_placer.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/auth/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/auth/authn.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/auth/loopback.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/auth/oauth2_proxy.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/daemons.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/html/log.html +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/html/token_page.html +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/metrics.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/event_loop.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/payloads.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/preconditions.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/process.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/queues/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/queues/local_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/queues/mp_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/requests.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/serializers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/serializers/decoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/serializers/encoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/rest.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/state.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/stream_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/uvicorn.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/server/versions.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/setup_files/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/setup_files/alembic.ini +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/setup_files/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/sky_logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/attempt_skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/autostop_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/configs.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/events.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/job_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/log_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/log_lib.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/providers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/providers/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/providers/ibm/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/providers/ibm/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/providers/ibm/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/autoscaler.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/cli.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/cli.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/command_runner.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/log_monitor.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/resource_demand_scheduler.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/updater.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/updater.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/worker.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/worker.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/services.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/subprocess_daemon.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/skypilot_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/ssh_node_pools/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/ssh_node_pools/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/ssh_node_pools/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/task.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/aws-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/azure-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/cudo-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/do-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/fluidstack-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/gcp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/hyperbolic-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/ibm-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/jobs-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/kubernetes-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/lambda-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/local-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/nebius-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/oci-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/paperspace-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/primeintellect-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/runpod-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/scp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/seeweb-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/vast-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/vsphere-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/websocket_proxy.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/usage/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/usage/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/usage/usage_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/users/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/users/model.conf +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/users/permission.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/users/rbac.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/users/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/users/token_service.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/accelerator_registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/admin_policy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/annotations.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/atomic.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/aws/get_default_security_group.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/benchmark_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/cli_utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/cli_utils/status_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/cluster_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/command_runner.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/common_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/config_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/context.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/control_master_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/controller_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/dag_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/db/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/db/db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/db/migration_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/directory_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/env_options.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/git.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/git_clone.sh +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/infra_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/config_map_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/create_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/delete_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/deploy_remote_cluster.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/generate_kind_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/gpu_labeler.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/rsync_helper.sh +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/ssh_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes_enums.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/lock_events.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/locks.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/log_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/message_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/perf_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/resource_checker.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/resources_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/rich_console_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/rich_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/schemas.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/serialize_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/status_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/subprocess_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/tempstore.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/timeline.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/ux_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/validator.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/volume.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/yaml_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/volumes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/volumes/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/volumes/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/volumes/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/volumes/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/volumes/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/volumes/volume.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/workspaces/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/workspaces/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/workspaces/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/workspaces/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/skypilot_nightly.egg-info/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/skypilot_nightly.egg-info/top_level.txt +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/tests/test_api.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/tests/test_api_compatibility.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/tests/test_cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/tests/test_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/tests/test_db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/tests/test_failover.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/tests/test_global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/tests/test_jobs.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/tests/test_jobs_and_serve.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/tests/test_jobs_state_async_vs_sync.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/tests/test_list_accelerators.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/tests/test_no_parellel.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/tests/test_optimizer_random_dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/tests/test_serve_autoscaler.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/tests/test_smoke.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/tests/test_ssh_proxy_lag.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/tests/test_storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/tests/test_wheels.py +0 -0
- {skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/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.dev20251013
|
|
4
4
|
Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
|
|
5
5
|
Author: SkyPilot Team
|
|
6
6
|
License: Apache 2.0
|
|
@@ -154,52 +154,53 @@ Requires-Dist: grpcio>=1.63.0; extra == "server"
|
|
|
154
154
|
Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "server"
|
|
155
155
|
Requires-Dist: aiosqlite; extra == "server"
|
|
156
156
|
Requires-Dist: greenlet; extra == "server"
|
|
157
|
+
Provides-Extra: shadeform
|
|
157
158
|
Provides-Extra: all
|
|
158
|
-
Requires-Dist: pyjwt; extra == "all"
|
|
159
|
-
Requires-Dist: websockets; extra == "all"
|
|
160
159
|
Requires-Dist: boto3>=1.26.1; extra == "all"
|
|
160
|
+
Requires-Dist: ecsapi>=0.2.0; extra == "all"
|
|
161
|
+
Requires-Dist: nebius>=0.2.47; extra == "all"
|
|
162
|
+
Requires-Dist: aiohttp; extra == "all"
|
|
163
|
+
Requires-Dist: cudo-compute>=0.1.10; extra == "all"
|
|
164
|
+
Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
|
|
165
|
+
Requires-Dist: grpcio>=1.63.0; extra == "all"
|
|
166
|
+
Requires-Dist: colorama<0.4.5; extra == "all"
|
|
161
167
|
Requires-Dist: anyio; extra == "all"
|
|
162
|
-
Requires-Dist:
|
|
168
|
+
Requires-Dist: passlib; extra == "all"
|
|
169
|
+
Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
|
|
170
|
+
Requires-Dist: pyjwt; extra == "all"
|
|
171
|
+
Requires-Dist: python-dateutil; extra == "all"
|
|
163
172
|
Requires-Dist: runpod>=1.6.1; extra == "all"
|
|
164
|
-
Requires-Dist:
|
|
165
|
-
Requires-Dist: aiosqlite; extra == "all"
|
|
166
|
-
Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
|
|
167
|
-
Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
|
|
168
|
-
Requires-Dist: ibm-cloud-sdk-core; extra == "all"
|
|
169
|
-
Requires-Dist: msrestazure; extra == "all"
|
|
173
|
+
Requires-Dist: websockets; extra == "all"
|
|
170
174
|
Requires-Dist: tomli; python_version < "3.11" and extra == "all"
|
|
171
|
-
Requires-Dist:
|
|
172
|
-
Requires-Dist:
|
|
173
|
-
Requires-Dist: azure-common; extra == "all"
|
|
174
|
-
Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
|
|
175
|
-
Requires-Dist: grpcio>=1.63.0; extra == "all"
|
|
176
|
-
Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
|
|
177
|
-
Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
|
|
175
|
+
Requires-Dist: pydo>=0.3.0; extra == "all"
|
|
176
|
+
Requires-Dist: ibm-platform-services>=0.48.0; extra == "all"
|
|
178
177
|
Requires-Dist: ibm-cos-sdk; extra == "all"
|
|
179
|
-
Requires-Dist: google-cloud-storage; extra == "all"
|
|
180
|
-
Requires-Dist: greenlet; extra == "all"
|
|
181
|
-
Requires-Dist: ecsapi>=0.2.0; extra == "all"
|
|
182
178
|
Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
|
|
183
|
-
Requires-Dist:
|
|
184
|
-
Requires-Dist:
|
|
185
|
-
Requires-Dist:
|
|
179
|
+
Requires-Dist: oci; extra == "all"
|
|
180
|
+
Requires-Dist: aiosqlite; extra == "all"
|
|
181
|
+
Requires-Dist: google-cloud-storage; extra == "all"
|
|
182
|
+
Requires-Dist: docker; extra == "all"
|
|
183
|
+
Requires-Dist: casbin; extra == "all"
|
|
184
|
+
Requires-Dist: ibm-cloud-sdk-core; extra == "all"
|
|
186
185
|
Requires-Dist: msgraph-sdk; extra == "all"
|
|
186
|
+
Requires-Dist: azure-common; extra == "all"
|
|
187
|
+
Requires-Dist: botocore>=1.29.10; extra == "all"
|
|
187
188
|
Requires-Dist: ibm-vpc; extra == "all"
|
|
189
|
+
Requires-Dist: ray[default]>=2.6.1; extra == "all"
|
|
190
|
+
Requires-Dist: azure-identity>=1.19.0; extra == "all"
|
|
188
191
|
Requires-Dist: sqlalchemy_adapter; extra == "all"
|
|
189
|
-
Requires-Dist:
|
|
190
|
-
Requires-Dist:
|
|
191
|
-
Requires-Dist: pydo>=0.3.0; extra == "all"
|
|
192
|
-
Requires-Dist: aiohttp; extra == "all"
|
|
193
|
-
Requires-Dist: docker; extra == "all"
|
|
194
|
-
Requires-Dist: nebius>=0.2.47; extra == "all"
|
|
195
|
-
Requires-Dist: azure-core>=1.24.0; extra == "all"
|
|
192
|
+
Requires-Dist: greenlet; extra == "all"
|
|
193
|
+
Requires-Dist: awscli>=1.27.10; extra == "all"
|
|
196
194
|
Requires-Dist: azure-core>=1.31.0; extra == "all"
|
|
197
|
-
Requires-Dist:
|
|
198
|
-
Requires-Dist:
|
|
199
|
-
Requires-Dist:
|
|
195
|
+
Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
|
|
196
|
+
Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
|
|
197
|
+
Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
|
|
198
|
+
Requires-Dist: azure-core>=1.24.0; extra == "all"
|
|
199
|
+
Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
|
|
200
|
+
Requires-Dist: azure-cli>=2.65.0; extra == "all"
|
|
200
201
|
Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "all"
|
|
201
|
-
Requires-Dist:
|
|
202
|
-
Requires-Dist:
|
|
202
|
+
Requires-Dist: msrestazure; extra == "all"
|
|
203
|
+
Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
|
|
203
204
|
Dynamic: author
|
|
204
205
|
Dynamic: classifier
|
|
205
206
|
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 = 'c9063aba1971bd726c07f76164ad1127ac90424c'
|
|
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.dev20251013'
|
|
41
41
|
__root_dir__ = directory_utils.get_sky_dir()
|
|
42
42
|
|
|
43
43
|
|
|
@@ -150,6 +150,7 @@ Vsphere = clouds.Vsphere
|
|
|
150
150
|
Fluidstack = clouds.Fluidstack
|
|
151
151
|
Nebius = clouds.Nebius
|
|
152
152
|
Hyperbolic = clouds.Hyperbolic
|
|
153
|
+
Shadeform = clouds.Shadeform
|
|
153
154
|
Seeweb = clouds.Seeweb
|
|
154
155
|
|
|
155
156
|
__all__ = [
|
|
@@ -172,6 +173,7 @@ __all__ = [
|
|
|
172
173
|
'Fluidstack',
|
|
173
174
|
'Nebius',
|
|
174
175
|
'Hyperbolic',
|
|
176
|
+
'Shadeform',
|
|
175
177
|
'Seeweb',
|
|
176
178
|
'Optimizer',
|
|
177
179
|
'OptimizeTarget',
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"""Shadeform cloud adaptor."""
|
|
2
|
+
|
|
3
|
+
import functools
|
|
4
|
+
import socket
|
|
5
|
+
from typing import Any, Dict, List, Optional
|
|
6
|
+
|
|
7
|
+
import requests
|
|
8
|
+
|
|
9
|
+
from sky import sky_logging
|
|
10
|
+
from sky.provision.shadeform import shadeform_utils
|
|
11
|
+
from sky.utils import common_utils
|
|
12
|
+
|
|
13
|
+
logger = sky_logging.init_logger(__name__)
|
|
14
|
+
|
|
15
|
+
_shadeform_sdk = None
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def import_package(func):
|
|
19
|
+
|
|
20
|
+
@functools.wraps(func)
|
|
21
|
+
def wrapper(*args, **kwargs):
|
|
22
|
+
global _shadeform_sdk
|
|
23
|
+
if _shadeform_sdk is None:
|
|
24
|
+
try:
|
|
25
|
+
import shadeform as _shadeform # pylint: disable=import-outside-toplevel
|
|
26
|
+
_shadeform_sdk = _shadeform
|
|
27
|
+
except ImportError:
|
|
28
|
+
raise ImportError(
|
|
29
|
+
'Failed to import dependencies for Shadeform. '
|
|
30
|
+
'Try pip install "skypilot[shadeform]"') from None
|
|
31
|
+
return func(*args, **kwargs)
|
|
32
|
+
|
|
33
|
+
return wrapper
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
@import_package
|
|
37
|
+
def shadeform():
|
|
38
|
+
"""Return the shadeform package."""
|
|
39
|
+
return _shadeform_sdk
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def list_ssh_keys() -> List[Dict[str, Any]]:
|
|
43
|
+
"""List all SSH keys in Shadeform account."""
|
|
44
|
+
try:
|
|
45
|
+
response = shadeform_utils.get_ssh_keys()
|
|
46
|
+
return response.get('ssh_keys', [])
|
|
47
|
+
except (ValueError, KeyError, requests.exceptions.RequestException) as e:
|
|
48
|
+
logger.warning(f'Failed to list SSH keys from Shadeform: {e}')
|
|
49
|
+
return []
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def add_ssh_key_to_shadeform(public_key: str) -> Optional[str]:
|
|
53
|
+
"""Add SSH key to Shadeform if it doesn't already exist.
|
|
54
|
+
|
|
55
|
+
Args:
|
|
56
|
+
public_key: The SSH public key string.
|
|
57
|
+
|
|
58
|
+
Returns:
|
|
59
|
+
The name of the key if added successfully, None otherwise.
|
|
60
|
+
"""
|
|
61
|
+
try:
|
|
62
|
+
# Check if key already exists
|
|
63
|
+
existing_keys = list_ssh_keys()
|
|
64
|
+
key_exists = False
|
|
65
|
+
key_id = None
|
|
66
|
+
for key in existing_keys:
|
|
67
|
+
if key.get('public_key') == public_key:
|
|
68
|
+
key_exists = True
|
|
69
|
+
key_id = key.get('id')
|
|
70
|
+
break
|
|
71
|
+
|
|
72
|
+
if key_exists:
|
|
73
|
+
logger.info('SSH key already exists in Shadeform account')
|
|
74
|
+
return key_id
|
|
75
|
+
|
|
76
|
+
# Generate a unique key name
|
|
77
|
+
hostname = socket.gethostname()
|
|
78
|
+
key_name = f'skypilot-{hostname}-{common_utils.get_user_hash()[:8]}'
|
|
79
|
+
|
|
80
|
+
# Add the key
|
|
81
|
+
response = shadeform_utils.add_ssh_key(name=key_name,
|
|
82
|
+
public_key=public_key)
|
|
83
|
+
key_id = response['id']
|
|
84
|
+
logger.info(f'Added SSH key to Shadeform: {key_name, key_id}')
|
|
85
|
+
return key_id
|
|
86
|
+
|
|
87
|
+
except (ValueError, KeyError, requests.exceptions.RequestException) as e:
|
|
88
|
+
logger.warning(f'Failed to add SSH key to Shadeform: {e}')
|
|
89
|
+
return None
|
{skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/authentication.py
RENAMED
|
@@ -39,6 +39,7 @@ from sky.adaptors import gcp
|
|
|
39
39
|
from sky.adaptors import ibm
|
|
40
40
|
from sky.adaptors import runpod
|
|
41
41
|
from sky.adaptors import seeweb as seeweb_adaptor
|
|
42
|
+
from sky.adaptors import shadeform as shadeform_adaptor
|
|
42
43
|
from sky.adaptors import vast
|
|
43
44
|
from sky.provision.fluidstack import fluidstack_utils
|
|
44
45
|
from sky.provision.kubernetes import utils as kubernetes_utils
|
|
@@ -511,6 +512,48 @@ def setup_hyperbolic_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
|
|
|
511
512
|
return configure_ssh_info(config)
|
|
512
513
|
|
|
513
514
|
|
|
515
|
+
def setup_shadeform_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
|
|
516
|
+
"""Sets up SSH authentication for Shadeform.
|
|
517
|
+
- Generates a new SSH key pair if one does not exist.
|
|
518
|
+
- Adds the public SSH key to the user's Shadeform account.
|
|
519
|
+
|
|
520
|
+
Note: This assumes there is a Shadeform Python SDK available.
|
|
521
|
+
If no official SDK exists, this function would need to use direct API calls.
|
|
522
|
+
"""
|
|
523
|
+
|
|
524
|
+
_, public_key_path = get_or_generate_keys()
|
|
525
|
+
ssh_key_id = None
|
|
526
|
+
|
|
527
|
+
with open(public_key_path, 'r', encoding='utf-8') as f:
|
|
528
|
+
public_key = f.read().strip()
|
|
529
|
+
|
|
530
|
+
try:
|
|
531
|
+
# Add SSH key to Shadeform using our utility functions
|
|
532
|
+
ssh_key_id = shadeform_adaptor.add_ssh_key_to_shadeform(public_key)
|
|
533
|
+
|
|
534
|
+
except ImportError as e:
|
|
535
|
+
# If required dependencies are missing
|
|
536
|
+
logger.warning(
|
|
537
|
+
f'Failed to add Shadeform SSH key due to missing dependencies: '
|
|
538
|
+
f'{e}. Manually configure SSH keys in your Shadeform account.')
|
|
539
|
+
|
|
540
|
+
except Exception as e:
|
|
541
|
+
logger.warning(f'Failed to set up Shadeform authentication: {e}')
|
|
542
|
+
raise exceptions.CloudUserIdentityError(
|
|
543
|
+
'Failed to set up SSH authentication for Shadeform. '
|
|
544
|
+
f'Please ensure your Shadeform credentials are configured: {e}'
|
|
545
|
+
) from e
|
|
546
|
+
|
|
547
|
+
if ssh_key_id is None:
|
|
548
|
+
raise Exception('Failed to add SSH key to Shadeform')
|
|
549
|
+
|
|
550
|
+
# Configure SSH info in the config
|
|
551
|
+
config['auth']['ssh_public_key'] = public_key_path
|
|
552
|
+
config['auth']['ssh_key_id'] = ssh_key_id
|
|
553
|
+
|
|
554
|
+
return configure_ssh_info(config)
|
|
555
|
+
|
|
556
|
+
|
|
514
557
|
def setup_primeintellect_authentication(
|
|
515
558
|
config: Dict[str, Any]) -> Dict[str, Any]:
|
|
516
559
|
"""Sets up SSH authentication for Prime Intellect.
|
|
@@ -1124,6 +1124,8 @@ def _add_auth_to_cluster_config(cloud: clouds.Cloud, tmp_yaml_path: str):
|
|
|
1124
1124
|
config = auth.setup_fluidstack_authentication(config)
|
|
1125
1125
|
elif isinstance(cloud, clouds.Hyperbolic):
|
|
1126
1126
|
config = auth.setup_hyperbolic_authentication(config)
|
|
1127
|
+
elif isinstance(cloud, clouds.Shadeform):
|
|
1128
|
+
config = auth.setup_shadeform_authentication(config)
|
|
1127
1129
|
elif isinstance(cloud, clouds.PrimeIntellect):
|
|
1128
1130
|
config = auth.setup_primeintellect_authentication(config)
|
|
1129
1131
|
elif isinstance(cloud, clouds.Seeweb):
|
|
@@ -141,6 +141,7 @@ _NODES_LAUNCHING_PROGRESS_TIMEOUT = {
|
|
|
141
141
|
clouds.OCI: 300,
|
|
142
142
|
clouds.Paperspace: 600,
|
|
143
143
|
clouds.Kubernetes: 300,
|
|
144
|
+
clouds.Shadeform: 300,
|
|
144
145
|
clouds.Vsphere: 240,
|
|
145
146
|
}
|
|
146
147
|
|
|
@@ -304,6 +305,7 @@ def _get_cluster_config_template(cloud):
|
|
|
304
305
|
clouds.RunPod: 'runpod-ray.yml.j2',
|
|
305
306
|
clouds.Kubernetes: 'kubernetes-ray.yml.j2',
|
|
306
307
|
clouds.SSH: 'kubernetes-ray.yml.j2',
|
|
308
|
+
clouds.Shadeform: 'shadeform-ray.yml.j2',
|
|
307
309
|
clouds.Vsphere: 'vsphere-ray.yml.j2',
|
|
308
310
|
clouds.Vast: 'vast-ray.yml.j2',
|
|
309
311
|
clouds.Fluidstack: 'fluidstack-ray.yml.j2',
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"""A script that generates the Shadeform catalog.
|
|
2
|
+
|
|
3
|
+
Usage:
|
|
4
|
+
python fetch_shadeform.py [-h] [--api-key API_KEY]
|
|
5
|
+
[--api-key-path API_KEY_PATH]
|
|
6
|
+
|
|
7
|
+
If neither --api-key nor --api-key-path are provided, this script will parse
|
|
8
|
+
`~/.shadeform/api_key` to look for Shadeform API key.
|
|
9
|
+
"""
|
|
10
|
+
import argparse
|
|
11
|
+
import csv
|
|
12
|
+
import json
|
|
13
|
+
import os
|
|
14
|
+
from typing import Dict
|
|
15
|
+
|
|
16
|
+
import requests
|
|
17
|
+
|
|
18
|
+
ENDPOINT = 'https://api.shadeform.ai/v1/instances/types'
|
|
19
|
+
DEFAULT_SHADEFORM_API_KEY_PATH = os.path.expanduser('~/.shadeform/api_key')
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def parse_gpu_info(gpu_type: str, num_gpus: int, ram_per_gpu: int) -> Dict:
|
|
23
|
+
"""Parse GPU information for the catalog."""
|
|
24
|
+
|
|
25
|
+
manufacturer = 'NVIDIA'
|
|
26
|
+
if gpu_type == 'MI300X':
|
|
27
|
+
manufacturer = 'AMD'
|
|
28
|
+
elif gpu_type == 'GAUDI2':
|
|
29
|
+
manufacturer = 'Intel'
|
|
30
|
+
|
|
31
|
+
return {
|
|
32
|
+
'Gpus': [{
|
|
33
|
+
'Name': gpu_type,
|
|
34
|
+
'Manufacturer': manufacturer,
|
|
35
|
+
'Count': float(num_gpus),
|
|
36
|
+
'MemoryInfo': {
|
|
37
|
+
'SizeInMiB': ram_per_gpu
|
|
38
|
+
},
|
|
39
|
+
'TotalGpuMemoryInMiB': ram_per_gpu * num_gpus
|
|
40
|
+
}]
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def create_catalog(api_key: str, output_path: str) -> None:
|
|
45
|
+
"""Create Shadeform catalog by fetching from API."""
|
|
46
|
+
headers = {'X-API-KEY': api_key}
|
|
47
|
+
|
|
48
|
+
params = {'available': 'true'}
|
|
49
|
+
|
|
50
|
+
response = requests.get(ENDPOINT,
|
|
51
|
+
headers=headers,
|
|
52
|
+
params=params,
|
|
53
|
+
timeout=30)
|
|
54
|
+
response.raise_for_status()
|
|
55
|
+
|
|
56
|
+
data = response.json()
|
|
57
|
+
instance_types = data.get('instance_types', [])
|
|
58
|
+
|
|
59
|
+
with open(output_path, mode='w', encoding='utf-8') as f:
|
|
60
|
+
writer = csv.writer(f, delimiter=',', quotechar='"')
|
|
61
|
+
writer.writerow([
|
|
62
|
+
'InstanceType', 'AcceleratorName', 'AcceleratorCount', 'vCPUs',
|
|
63
|
+
'MemoryGiB', 'Price', 'Region', 'GpuInfo', 'SpotPrice'
|
|
64
|
+
])
|
|
65
|
+
|
|
66
|
+
for instance in instance_types:
|
|
67
|
+
config = instance['configuration']
|
|
68
|
+
|
|
69
|
+
cloud = instance['cloud']
|
|
70
|
+
shade_instance_type = instance['shade_instance_type']
|
|
71
|
+
instance_type = f'{cloud}_{shade_instance_type.replace("_", "-")}'
|
|
72
|
+
gpu_type = config['gpu_type'].replace('_', '-')
|
|
73
|
+
gpu_count = float(config['num_gpus'])
|
|
74
|
+
vcpus = float(config['vcpus'])
|
|
75
|
+
memory_gb = int(config['memory_in_gb'])
|
|
76
|
+
|
|
77
|
+
# Append "B" to instance_type and gpu_type if they end with "G"
|
|
78
|
+
if instance_type.endswith('G'):
|
|
79
|
+
instance_type += 'B'
|
|
80
|
+
if gpu_type.endswith('G'):
|
|
81
|
+
gpu_type += 'B'
|
|
82
|
+
|
|
83
|
+
# Replace "Gx" with "GBx" (case sensitive)
|
|
84
|
+
if 'Gx' in instance_type:
|
|
85
|
+
instance_type = instance_type.replace('Gx', 'GBx')
|
|
86
|
+
|
|
87
|
+
# Price is in cents per hour, convert to dollars
|
|
88
|
+
price = float(instance['hourly_price']) / 100
|
|
89
|
+
|
|
90
|
+
# Create GPU info
|
|
91
|
+
gpuinfo = None
|
|
92
|
+
if gpu_count > 0:
|
|
93
|
+
gpuinfo_dict = parse_gpu_info(gpu_type, int(gpu_count),
|
|
94
|
+
int(config['vram_per_gpu_in_gb']))
|
|
95
|
+
gpuinfo = json.dumps(gpuinfo_dict).replace('"', '\'')
|
|
96
|
+
|
|
97
|
+
# Write entry for each available region
|
|
98
|
+
for availability in instance.get('availability', []):
|
|
99
|
+
if availability['available'] and gpu_count > 0:
|
|
100
|
+
region = availability['region']
|
|
101
|
+
writer.writerow([
|
|
102
|
+
instance_type,
|
|
103
|
+
gpu_type,
|
|
104
|
+
gpu_count,
|
|
105
|
+
vcpus,
|
|
106
|
+
memory_gb,
|
|
107
|
+
price,
|
|
108
|
+
region,
|
|
109
|
+
gpuinfo,
|
|
110
|
+
'' # No spot pricing info available
|
|
111
|
+
])
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
def get_api_key(cmdline_args: argparse.Namespace) -> str:
|
|
115
|
+
"""Get Shadeform API key from cmdline or default path."""
|
|
116
|
+
api_key = cmdline_args.api_key
|
|
117
|
+
if api_key is None:
|
|
118
|
+
if cmdline_args.api_key_path is not None:
|
|
119
|
+
with open(cmdline_args.api_key_path, mode='r',
|
|
120
|
+
encoding='utf-8') as f:
|
|
121
|
+
api_key = f.read().strip()
|
|
122
|
+
else:
|
|
123
|
+
# Read from ~/.shadeform/api_key
|
|
124
|
+
with open(DEFAULT_SHADEFORM_API_KEY_PATH,
|
|
125
|
+
mode='r',
|
|
126
|
+
encoding='utf-8') as f:
|
|
127
|
+
api_key = f.read().strip()
|
|
128
|
+
assert api_key is not None, (
|
|
129
|
+
f'API key not found. Please provide via --api-key or place in '
|
|
130
|
+
f'{DEFAULT_SHADEFORM_API_KEY_PATH}')
|
|
131
|
+
return api_key
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
if __name__ == '__main__':
|
|
135
|
+
parser = argparse.ArgumentParser()
|
|
136
|
+
parser.add_argument('--api-key', help='Shadeform API key.')
|
|
137
|
+
parser.add_argument('--api-key-path',
|
|
138
|
+
help='path of file containing Shadeform API key.')
|
|
139
|
+
args = parser.parse_args()
|
|
140
|
+
os.makedirs('shadeform', exist_ok=True)
|
|
141
|
+
create_catalog(get_api_key(args), 'shadeform/vms.csv')
|
|
142
|
+
print('Shadeform catalog saved to shadeform/vms.csv')
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
""" Shadeform | Catalog
|
|
2
|
+
|
|
3
|
+
This module loads pricing and instance information from the Shadeform API
|
|
4
|
+
and can be used to query instance types and pricing information for Shadeform.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
import typing
|
|
8
|
+
from typing import Dict, List, Optional, Tuple, Union
|
|
9
|
+
|
|
10
|
+
import pandas as pd
|
|
11
|
+
|
|
12
|
+
from sky.catalog import common
|
|
13
|
+
|
|
14
|
+
if typing.TYPE_CHECKING:
|
|
15
|
+
from sky.clouds import cloud
|
|
16
|
+
|
|
17
|
+
# We'll use dynamic fetching, so no static CSV file to load
|
|
18
|
+
_df = None
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def _get_df():
|
|
22
|
+
"""Get the dataframe, fetching from API if needed."""
|
|
23
|
+
global _df
|
|
24
|
+
if _df is None:
|
|
25
|
+
# For now, we'll fall back to a minimal static catalog
|
|
26
|
+
# In a full implementation, this would call the Shadeform API
|
|
27
|
+
# to dynamically fetch the latest instance types and pricing
|
|
28
|
+
try:
|
|
29
|
+
df = common.read_catalog('shadeform/vms.csv')
|
|
30
|
+
except FileNotFoundError:
|
|
31
|
+
# If no static catalog exists, create an empty one
|
|
32
|
+
# This would be replaced with dynamic API fetching
|
|
33
|
+
_df = pd.DataFrame(columns=[
|
|
34
|
+
'InstanceType', 'AcceleratorName', 'AcceleratorCount', 'vCPUs',
|
|
35
|
+
'MemoryGiB', 'Price', 'Region', 'GpuInfo', 'SpotPrice'
|
|
36
|
+
])
|
|
37
|
+
else:
|
|
38
|
+
df = df[df['InstanceType'].notna()]
|
|
39
|
+
if 'AcceleratorName' in df.columns:
|
|
40
|
+
df = df[df['AcceleratorName'].notna()]
|
|
41
|
+
df = df.assign(AcceleratorName=df['AcceleratorName'].astype(
|
|
42
|
+
str).str.strip())
|
|
43
|
+
_df = df.reset_index(drop=True)
|
|
44
|
+
return _df
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def _is_not_found_error(err: ValueError) -> bool:
|
|
48
|
+
msg = str(err).lower()
|
|
49
|
+
return 'not found' in msg or 'not supported' in msg
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def _call_or_default(func, default):
|
|
53
|
+
try:
|
|
54
|
+
return func()
|
|
55
|
+
except ValueError as err:
|
|
56
|
+
if _is_not_found_error(err):
|
|
57
|
+
return default
|
|
58
|
+
raise
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def instance_type_exists(instance_type: str) -> bool:
|
|
62
|
+
"""Check if an instance type exists."""
|
|
63
|
+
return common.instance_type_exists_impl(_get_df(), instance_type)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def validate_region_zone(
|
|
67
|
+
region: Optional[str],
|
|
68
|
+
zone: Optional[str]) -> Tuple[Optional[str], Optional[str]]:
|
|
69
|
+
"""Validate region and zone for Shadeform."""
|
|
70
|
+
return common.validate_region_zone_impl('shadeform', _get_df(), region,
|
|
71
|
+
zone)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def get_hourly_cost(instance_type: str,
|
|
75
|
+
use_spot: bool = False,
|
|
76
|
+
region: Optional[str] = None,
|
|
77
|
+
zone: Optional[str] = None) -> float:
|
|
78
|
+
"""Returns the cost, or the cheapest cost among all zones for spot."""
|
|
79
|
+
# Shadeform doesn't support spot instances currently
|
|
80
|
+
if use_spot:
|
|
81
|
+
raise ValueError('Spot instances are not supported on Shadeform')
|
|
82
|
+
|
|
83
|
+
return common.get_hourly_cost_impl(_get_df(), instance_type, use_spot,
|
|
84
|
+
region, zone)
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def get_vcpus_mem_from_instance_type(
|
|
88
|
+
instance_type: str) -> Tuple[Optional[float], Optional[float]]:
|
|
89
|
+
"""Get vCPUs and memory from instance type."""
|
|
90
|
+
return _call_or_default(
|
|
91
|
+
lambda: common.get_vcpus_mem_from_instance_type_impl(
|
|
92
|
+
_get_df(), instance_type), (None, None))
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def get_default_instance_type(cpus: Optional[str] = None,
|
|
96
|
+
memory: Optional[str] = None,
|
|
97
|
+
disk_tier: Optional[str] = None,
|
|
98
|
+
region: Optional[str] = None,
|
|
99
|
+
zone: Optional[str] = None) -> Optional[str]:
|
|
100
|
+
"""Get default instance type based on requirements."""
|
|
101
|
+
del disk_tier # Shadeform doesn't support custom disk tiers yet
|
|
102
|
+
return _call_or_default(
|
|
103
|
+
lambda: common.get_instance_type_for_cpus_mem_impl(
|
|
104
|
+
_get_df(), cpus, memory, region, zone), None)
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def get_accelerators_from_instance_type(
|
|
108
|
+
instance_type: str) -> Optional[Dict[str, Union[int, float]]]:
|
|
109
|
+
"""Get accelerator information from instance type."""
|
|
110
|
+
return _call_or_default(
|
|
111
|
+
lambda: common.get_accelerators_from_instance_type_impl(
|
|
112
|
+
_get_df(), instance_type), None)
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
def get_instance_type_for_accelerator(
|
|
116
|
+
acc_name: str,
|
|
117
|
+
acc_count: int,
|
|
118
|
+
cpus: Optional[str] = None,
|
|
119
|
+
memory: Optional[str] = None,
|
|
120
|
+
use_spot: bool = False,
|
|
121
|
+
region: Optional[str] = None,
|
|
122
|
+
zone: Optional[str] = None) -> Tuple[Optional[List[str]], List[str]]:
|
|
123
|
+
"""Returns a list of instance types that have the given accelerator."""
|
|
124
|
+
if use_spot:
|
|
125
|
+
# Return empty lists since spot is not supported
|
|
126
|
+
return None, ['Spot instances are not supported on Shadeform']
|
|
127
|
+
|
|
128
|
+
return _call_or_default(
|
|
129
|
+
lambda: common.get_instance_type_for_accelerator_impl(
|
|
130
|
+
df=_get_df(),
|
|
131
|
+
acc_name=acc_name,
|
|
132
|
+
acc_count=acc_count,
|
|
133
|
+
cpus=cpus,
|
|
134
|
+
memory=memory,
|
|
135
|
+
use_spot=use_spot,
|
|
136
|
+
region=region,
|
|
137
|
+
zone=zone), (None, []))
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
def get_region_zones_for_instance_type(instance_type: str,
|
|
141
|
+
use_spot: bool) -> List['cloud.Region']:
|
|
142
|
+
"""Get regions and zones for an instance type."""
|
|
143
|
+
if use_spot:
|
|
144
|
+
return [] # No spot support
|
|
145
|
+
|
|
146
|
+
df = _get_df()
|
|
147
|
+
df_filtered = df[df['InstanceType'] == instance_type]
|
|
148
|
+
return _call_or_default(
|
|
149
|
+
lambda: common.get_region_zones(df_filtered, use_spot), [])
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
def list_accelerators(
|
|
153
|
+
gpus_only: bool,
|
|
154
|
+
name_filter: Optional[str],
|
|
155
|
+
region_filter: Optional[str],
|
|
156
|
+
quantity_filter: Optional[int],
|
|
157
|
+
case_sensitive: bool = True,
|
|
158
|
+
all_regions: bool = False,
|
|
159
|
+
require_price: bool = True) -> Dict[str, List[common.InstanceTypeInfo]]:
|
|
160
|
+
"""Returns all instance types in Shadeform offering GPUs."""
|
|
161
|
+
del require_price # Unused.
|
|
162
|
+
return common.list_accelerators_impl('Shadeform', _get_df(), gpus_only,
|
|
163
|
+
name_filter, region_filter,
|
|
164
|
+
quantity_filter, case_sensitive,
|
|
165
|
+
all_regions)
|
{skypilot_nightly-1.0.0.dev20251012 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/__init__.py
RENAMED
|
@@ -30,6 +30,7 @@ from sky.clouds.primeintellect import PrimeIntellect
|
|
|
30
30
|
from sky.clouds.runpod import RunPod
|
|
31
31
|
from sky.clouds.scp import SCP
|
|
32
32
|
from sky.clouds.seeweb import Seeweb
|
|
33
|
+
from sky.clouds.shadeform import Shadeform
|
|
33
34
|
from sky.clouds.ssh import SSH
|
|
34
35
|
from sky.clouds.vast import Vast
|
|
35
36
|
from sky.clouds.vsphere import Vsphere
|
|
@@ -48,6 +49,7 @@ __all__ = [
|
|
|
48
49
|
'PrimeIntellect',
|
|
49
50
|
'SCP',
|
|
50
51
|
'RunPod',
|
|
52
|
+
'Shadeform',
|
|
51
53
|
'Vast',
|
|
52
54
|
'OCI',
|
|
53
55
|
'Vsphere',
|