skypilot-nightly 1.0.0.dev20250410__tar.gz → 1.0.0.dev20250411__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.
Files changed (382) hide show
  1. {skypilot_nightly-1.0.0.dev20250410/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250411}/PKG-INFO +1 -1
  2. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/__init__.py +2 -2
  3. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/client/common.py +4 -2
  4. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/client/sdk.py +58 -26
  5. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/jobs/client/sdk.py +5 -0
  6. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/optimizer.py +1 -2
  7. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/serve/client/sdk.py +6 -0
  8. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/server/common.py +16 -1
  9. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/server/constants.py +5 -0
  10. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skypilot_config.py +19 -30
  11. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411/skypilot_nightly.egg-info}/PKG-INFO +1 -1
  12. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/tests/test_config.py +9 -18
  13. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/LICENSE +0 -0
  14. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/MANIFEST.in +0 -0
  15. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/README.md +0 -0
  16. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/pyproject.toml +0 -0
  17. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/setup.cfg +0 -0
  18. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/setup.py +0 -0
  19. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/adaptors/__init__.py +0 -0
  20. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/adaptors/aws.py +0 -0
  21. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/adaptors/azure.py +0 -0
  22. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/adaptors/cloudflare.py +0 -0
  23. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/adaptors/common.py +0 -0
  24. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/adaptors/cudo.py +0 -0
  25. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/adaptors/do.py +0 -0
  26. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/adaptors/docker.py +0 -0
  27. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/adaptors/gcp.py +0 -0
  28. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/adaptors/ibm.py +0 -0
  29. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/adaptors/kubernetes.py +0 -0
  30. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/adaptors/nebius.py +0 -0
  31. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/adaptors/oci.py +0 -0
  32. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/adaptors/runpod.py +0 -0
  33. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/adaptors/vast.py +0 -0
  34. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/adaptors/vsphere.py +0 -0
  35. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/admin_policy.py +0 -0
  36. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/authentication.py +0 -0
  37. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/backends/__init__.py +0 -0
  38. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/backends/backend.py +0 -0
  39. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/backends/backend_utils.py +0 -0
  40. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/backends/cloud_vm_ray_backend.py +0 -0
  41. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/backends/docker_utils.py +0 -0
  42. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/backends/local_docker_backend.py +0 -0
  43. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  44. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/backends/wheel_utils.py +0 -0
  45. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/benchmark/__init__.py +0 -0
  46. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/benchmark/benchmark_state.py +0 -0
  47. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/benchmark/benchmark_utils.py +0 -0
  48. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/check.py +0 -0
  49. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/cli.py +0 -0
  50. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/client/__init__.py +0 -0
  51. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/client/cli.py +0 -0
  52. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/cloud_stores.py +0 -0
  53. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/__init__.py +0 -0
  54. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/aws.py +0 -0
  55. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/azure.py +0 -0
  56. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/cloud.py +0 -0
  57. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/cudo.py +0 -0
  58. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/do.py +0 -0
  59. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/fluidstack.py +0 -0
  60. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/gcp.py +0 -0
  61. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/ibm.py +0 -0
  62. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/kubernetes.py +0 -0
  63. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/lambda_cloud.py +0 -0
  64. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/nebius.py +0 -0
  65. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/oci.py +0 -0
  66. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/paperspace.py +0 -0
  67. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/runpod.py +0 -0
  68. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/scp.py +0 -0
  69. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/__init__.py +0 -0
  70. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/aws_catalog.py +0 -0
  71. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/azure_catalog.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/common.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/config.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/constants.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/data_fetchers/fetch_ibm.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/data_fetchers/fetch_vast.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/do_catalog.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/gcp_catalog.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/kubernetes_catalog.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/nebius_catalog.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/oci_catalog.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/scp_catalog.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/vast_catalog.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/utils/__init__.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/utils/aws_utils.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/utils/azure_utils.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/utils/gcp_utils.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/utils/oci_utils.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/utils/scp_utils.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/vast.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/clouds/vsphere.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/core.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/dag.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/data/__init__.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/data/data_transfer.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/data/data_utils.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/data/mounting_utils.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/data/storage.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/data/storage_utils.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/exceptions.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/execution.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/global_user_state.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/jobs/__init__.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/jobs/client/__init__.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/jobs/constants.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/jobs/controller.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/jobs/dashboard/dashboard.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/jobs/dashboard/static/favicon.ico +0 -0
  124. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/jobs/dashboard/templates/index.html +0 -0
  125. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/jobs/recovery_strategy.py +0 -0
  126. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/jobs/scheduler.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/jobs/server/__init__.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/jobs/server/core.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/jobs/server/dashboard_utils.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/jobs/server/server.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/jobs/state.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/jobs/utils.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/models.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/__init__.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/aws/__init__.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/aws/config.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/aws/instance.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/aws/utils.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/azure/__init__.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/azure/azure-config-template.json +0 -0
  141. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/azure/config.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/azure/instance.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/common.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/constants.py +0 -0
  145. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/cudo/__init__.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/cudo/config.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/cudo/cudo_machine_type.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/cudo/cudo_utils.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/cudo/cudo_wrapper.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/cudo/instance.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/do/__init__.py +0 -0
  152. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/do/config.py +0 -0
  153. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/do/constants.py +0 -0
  154. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/do/instance.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/do/utils.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/docker_utils.py +0 -0
  157. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/fluidstack/__init__.py +0 -0
  158. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/fluidstack/config.py +0 -0
  159. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  160. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/fluidstack/instance.py +0 -0
  161. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/gcp/__init__.py +0 -0
  162. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/gcp/config.py +0 -0
  163. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/gcp/constants.py +0 -0
  164. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/gcp/instance.py +0 -0
  165. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/gcp/instance_utils.py +0 -0
  166. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/gcp/mig_utils.py +0 -0
  167. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/instance_setup.py +0 -0
  168. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/kubernetes/__init__.py +0 -0
  169. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/kubernetes/config.py +0 -0
  170. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/kubernetes/constants.py +0 -0
  171. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/kubernetes/instance.py +0 -0
  172. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml +0 -0
  173. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml +0 -0
  174. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/kubernetes/network.py +0 -0
  175. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/kubernetes/network_utils.py +0 -0
  176. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/kubernetes/utils.py +0 -0
  177. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/lambda_cloud/__init__.py +0 -0
  178. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/lambda_cloud/config.py +0 -0
  179. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/lambda_cloud/instance.py +0 -0
  180. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  181. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/logging.py +0 -0
  182. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/metadata_utils.py +0 -0
  183. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/nebius/__init__.py +0 -0
  184. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/nebius/config.py +0 -0
  185. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/nebius/instance.py +0 -0
  186. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/nebius/utils.py +0 -0
  187. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/oci/__init__.py +0 -0
  188. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/oci/config.py +0 -0
  189. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/oci/instance.py +0 -0
  190. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/oci/query_utils.py +0 -0
  191. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/paperspace/__init__.py +0 -0
  192. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/paperspace/config.py +0 -0
  193. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/paperspace/constants.py +0 -0
  194. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/paperspace/instance.py +0 -0
  195. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/paperspace/utils.py +0 -0
  196. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/provisioner.py +0 -0
  197. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/runpod/__init__.py +0 -0
  198. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/runpod/api/__init__.py +0 -0
  199. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/runpod/api/commands.py +0 -0
  200. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/runpod/api/pods.py +0 -0
  201. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/runpod/config.py +0 -0
  202. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/runpod/instance.py +0 -0
  203. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/runpod/utils.py +0 -0
  204. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/vast/__init__.py +0 -0
  205. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/vast/config.py +0 -0
  206. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/vast/instance.py +0 -0
  207. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/vast/utils.py +0 -0
  208. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/vsphere/__init__.py +0 -0
  209. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/vsphere/common/__init__.py +0 -0
  210. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  211. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/vsphere/common/custom_script.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/vsphere/common/id_generator.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/vsphere/common/service_manager.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  218. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/vsphere/common/vim_utils.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/vsphere/config.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/vsphere/instance.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/provision/vsphere/vsphere_utils.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/resources.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/serve/__init__.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/serve/autoscalers.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/serve/client/__init__.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/serve/constants.py +0 -0
  228. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/serve/controller.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/serve/load_balancer.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/serve/load_balancing_policies.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/serve/replica_managers.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/serve/serve_state.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/serve/serve_utils.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/serve/server/__init__.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/serve/server/core.py +0 -0
  236. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/serve/server/server.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/serve/service.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/serve/service_spec.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/serve/spot_placer.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/server/__init__.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/server/html/log.html +0 -0
  242. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/server/requests/__init__.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/server/requests/event_loop.py +0 -0
  244. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/server/requests/executor.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/server/requests/payloads.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/server/requests/preconditions.py +0 -0
  247. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/server/requests/process.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/server/requests/queues/__init__.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/server/requests/queues/local_queue.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/server/requests/queues/mp_queue.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/server/requests/requests.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/server/requests/serializers/__init__.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/server/requests/serializers/decoders.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/server/requests/serializers/encoders.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/server/server.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/server/stream_utils.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/server/uvicorn.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/setup_files/MANIFEST.in +0 -0
  259. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/setup_files/dependencies.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/setup_files/setup.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/sky_logging.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/LICENSE +0 -0
  263. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/__init__.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/attempt_skylet.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/autostop_lib.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/configs.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/constants.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/events.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/job_lib.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/log_lib.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/log_lib.pyi +0 -0
  272. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/providers/__init__.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/providers/command_runner.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/providers/ibm/__init__.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/providers/ibm/node_provider.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/providers/ibm/utils.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/providers/scp/__init__.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/providers/scp/config.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/providers/scp/node_provider.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/ray_patches/__init__.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  283. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/ray_patches/cli.py.patch +0 -0
  284. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  285. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  286. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  287. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/ray_patches/updater.py.patch +0 -0
  288. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/ray_patches/worker.py.patch +0 -0
  289. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/skylet.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/skylet/subprocess_daemon.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/task.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/aws-ray.yml.j2 +0 -0
  293. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/azure-ray.yml.j2 +0 -0
  294. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/cudo-ray.yml.j2 +0 -0
  295. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/do-ray.yml.j2 +0 -0
  296. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  297. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/gcp-ray.yml.j2 +0 -0
  298. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/ibm-ray.yml.j2 +0 -0
  299. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/jobs-controller.yaml.j2 +0 -0
  300. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  301. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  302. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  303. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  304. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  305. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/lambda-ray.yml.j2 +0 -0
  306. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/local-ray.yml.j2 +0 -0
  307. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/nebius-ray.yml.j2 +0 -0
  308. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/oci-ray.yml.j2 +0 -0
  309. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/paperspace-ray.yml.j2 +0 -0
  310. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/runpod-ray.yml.j2 +0 -0
  311. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/scp-ray.yml.j2 +0 -0
  312. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  313. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  314. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/vast-ray.yml.j2 +0 -0
  315. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/vsphere-ray.yml.j2 +0 -0
  316. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/templates/websocket_proxy.py +0 -0
  317. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/usage/__init__.py +0 -0
  318. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/usage/constants.py +0 -0
  319. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/usage/usage_lib.py +0 -0
  320. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/__init__.py +0 -0
  321. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/accelerator_registry.py +0 -0
  322. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/admin_policy_utils.py +0 -0
  323. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/annotations.py +0 -0
  324. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/atomic.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/cli_utils/__init__.py +0 -0
  326. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/cli_utils/status_utils.py +0 -0
  327. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/cluster_utils.py +0 -0
  328. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/command_runner.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/command_runner.pyi +0 -0
  330. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/common.py +0 -0
  331. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/common_utils.py +0 -0
  332. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/config_utils.py +0 -0
  333. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/control_master_utils.py +0 -0
  334. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/controller_utils.py +0 -0
  335. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/dag_utils.py +0 -0
  336. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/db_utils.py +0 -0
  337. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/env_options.py +0 -0
  338. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/kubernetes/__init__.py +0 -0
  339. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/kubernetes/create_cluster.sh +0 -0
  340. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  341. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/kubernetes/deploy_remote_cluster.sh +0 -0
  342. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  343. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  344. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  345. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  346. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  347. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  348. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  349. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  350. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  351. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/kubernetes_enums.py +0 -0
  352. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/log_utils.py +0 -0
  353. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/message_utils.py +0 -0
  354. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/registry.py +0 -0
  355. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/resources_utils.py +0 -0
  356. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/rich_console_utils.py +0 -0
  357. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/rich_utils.py +0 -0
  358. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/schemas.py +0 -0
  359. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/status_lib.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/subprocess_utils.py +0 -0
  361. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/timeline.py +0 -0
  362. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/ux_utils.py +0 -0
  363. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/sky/utils/validator.py +0 -0
  364. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/skypilot_nightly.egg-info/SOURCES.txt +0 -0
  365. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  366. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  367. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/skypilot_nightly.egg-info/requires.txt +0 -0
  368. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/skypilot_nightly.egg-info/top_level.txt +0 -0
  369. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/tests/test_api.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/tests/test_cli.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/tests/test_failover.py +0 -0
  372. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/tests/test_global_user_state.py +0 -0
  373. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/tests/test_jobs.py +0 -0
  374. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/tests/test_jobs_and_serve.py +0 -0
  375. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/tests/test_list_accelerators.py +0 -0
  376. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/tests/test_optimizer_dryruns.py +0 -0
  377. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/tests/test_optimizer_random_dag.py +0 -0
  378. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/tests/test_serve_autoscaler.py +0 -0
  379. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/tests/test_smoke.py +0 -0
  380. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/tests/test_storage.py +0 -0
  381. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/tests/test_wheels.py +0 -0
  382. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250411}/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.dev20250410
3
+ Version: 1.0.0.dev20250411
4
4
  Summary: SkyPilot: An intercloud broker for the clouds
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -5,7 +5,7 @@ from typing import Optional
5
5
  import urllib.request
6
6
 
7
7
  # Replaced with the current commit when building the wheels.
8
- _SKYPILOT_COMMIT_SHA = '022a5c3ffe258f365764b03cb20fac70934f5a60'
8
+ _SKYPILOT_COMMIT_SHA = 'b4202948016cdf48a5939ea9bf1769a2d31f73bf'
9
9
 
10
10
 
11
11
  def _get_git_commit():
@@ -35,7 +35,7 @@ def _get_git_commit():
35
35
 
36
36
 
37
37
  __commit__ = _get_git_commit()
38
- __version__ = '1.0.0.dev20250410'
38
+ __version__ = '1.0.0.dev20250411'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -75,7 +75,8 @@ def download_logs_from_api_server(
75
75
  body = payloads.DownloadBody(folder_paths=list(paths_on_api_server),)
76
76
  response = requests.post(f'{server_common.get_server_url()}/download',
77
77
  json=json.loads(body.model_dump_json()),
78
- stream=True)
78
+ stream=True,
79
+ cookies=server_common.get_api_cookie_jar())
79
80
  if response.status_code == 200:
80
81
  remote_home_path = response.headers.get('X-Home-Path')
81
82
  assert remote_home_path is not None, response.headers
@@ -176,7 +177,8 @@ def _upload_chunk_with_retry(params: UploadChunkParams) -> None:
176
177
  },
177
178
  content=FileChunkIterator(f, _UPLOAD_CHUNK_BYTES,
178
179
  params.chunk_index),
179
- headers={'Content-Type': 'application/octet-stream'})
180
+ headers={'Content-Type': 'application/octet-stream'},
181
+ cookies=server_common.get_api_cookie_jar())
180
182
  if response.status_code == 200:
181
183
  data = response.json()
182
184
  status = data.get('status')
@@ -102,7 +102,8 @@ def check(clouds: Optional[Tuple[str]],
102
102
  """
103
103
  body = payloads.CheckBody(clouds=clouds, verbose=verbose)
104
104
  response = requests.post(f'{server_common.get_server_url()}/check',
105
- json=json.loads(body.model_dump_json()))
105
+ json=json.loads(body.model_dump_json()),
106
+ cookies=server_common.get_api_cookie_jar())
106
107
  return server_common.get_request_id(response)
107
108
 
108
109
 
@@ -118,7 +119,8 @@ def enabled_clouds() -> server_common.RequestId:
118
119
  Request Returns:
119
120
  A list of enabled clouds in string format.
120
121
  """
121
- response = requests.get(f'{server_common.get_server_url()}/enabled_clouds')
122
+ response = requests.get(f'{server_common.get_server_url()}/enabled_clouds',
123
+ cookies=server_common.get_api_cookie_jar())
122
124
  return server_common.get_request_id(response)
123
125
 
124
126
 
@@ -168,7 +170,8 @@ def list_accelerators(gpus_only: bool = True,
168
170
  )
169
171
  response = requests.post(
170
172
  f'{server_common.get_server_url()}/list_accelerators',
171
- json=json.loads(body.model_dump_json()))
173
+ json=json.loads(body.model_dump_json()),
174
+ cookies=server_common.get_api_cookie_jar())
172
175
  return server_common.get_request_id(response)
173
176
 
174
177
 
@@ -208,7 +211,8 @@ def list_accelerator_counts(
208
211
  )
209
212
  response = requests.post(
210
213
  f'{server_common.get_server_url()}/list_accelerator_counts',
211
- json=json.loads(body.model_dump_json()))
214
+ json=json.loads(body.model_dump_json()),
215
+ cookies=server_common.get_api_cookie_jar())
212
216
  return server_common.get_request_id(response)
213
217
 
214
218
 
@@ -246,7 +250,8 @@ def optimize(
246
250
  minimize=minimize,
247
251
  request_options=admin_policy_request_options)
248
252
  response = requests.post(f'{server_common.get_server_url()}/optimize',
249
- json=json.loads(body.model_dump_json()))
253
+ json=json.loads(body.model_dump_json()),
254
+ cookies=server_common.get_api_cookie_jar())
250
255
  return server_common.get_request_id(response)
251
256
 
252
257
 
@@ -281,7 +286,8 @@ def validate(
281
286
  body = payloads.ValidateBody(dag=dag_str,
282
287
  request_options=admin_policy_request_options)
283
288
  response = requests.post(f'{server_common.get_server_url()}/validate',
284
- json=json.loads(body.model_dump_json()))
289
+ json=json.loads(body.model_dump_json()),
290
+ cookies=server_common.get_api_cookie_jar())
285
291
  if response.status_code == 400:
286
292
  with ux_utils.print_exception_no_traceback():
287
293
  raise exceptions.deserialize_exception(
@@ -493,6 +499,7 @@ def launch(
493
499
  f'{server_common.get_server_url()}/launch',
494
500
  json=json.loads(body.model_dump_json()),
495
501
  timeout=5,
502
+ cookies=server_common.get_api_cookie_jar(),
496
503
  )
497
504
  return server_common.get_request_id(response)
498
505
 
@@ -576,6 +583,7 @@ def exec( # pylint: disable=redefined-builtin
576
583
  f'{server_common.get_server_url()}/exec',
577
584
  json=json.loads(body.model_dump_json()),
578
585
  timeout=5,
586
+ cookies=server_common.get_api_cookie_jar(),
579
587
  )
580
588
  return server_common.get_request_id(response)
581
589
 
@@ -626,7 +634,8 @@ def tail_logs(cluster_name: str,
626
634
  json=json.loads(body.model_dump_json()),
627
635
  stream=True,
628
636
  timeout=(client_common.API_SERVER_REQUEST_CONNECTION_TIMEOUT_SECONDS,
629
- None))
637
+ None),
638
+ cookies=server_common.get_api_cookie_jar())
630
639
  request_id = server_common.get_request_id(response)
631
640
  return stream_response(request_id, response, output_stream)
632
641
 
@@ -663,7 +672,8 @@ def download_logs(cluster_name: str,
663
672
  job_ids=job_ids,
664
673
  )
665
674
  response = requests.post(f'{server_common.get_server_url()}/download_logs',
666
- json=json.loads(body.model_dump_json()))
675
+ json=json.loads(body.model_dump_json()),
676
+ cookies=server_common.get_api_cookie_jar())
667
677
  job_id_remote_path_dict = stream_and_get(
668
678
  server_common.get_request_id(response))
669
679
  remote2local_path_dict = client_common.download_logs_from_api_server(
@@ -745,6 +755,7 @@ def start(
745
755
  f'{server_common.get_server_url()}/start',
746
756
  json=json.loads(body.model_dump_json()),
747
757
  timeout=5,
758
+ cookies=server_common.get_api_cookie_jar(),
748
759
  )
749
760
  return server_common.get_request_id(response)
750
761
 
@@ -790,6 +801,7 @@ def down(cluster_name: str, purge: bool = False) -> server_common.RequestId:
790
801
  f'{server_common.get_server_url()}/down',
791
802
  json=json.loads(body.model_dump_json()),
792
803
  timeout=5,
804
+ cookies=server_common.get_api_cookie_jar(),
793
805
  )
794
806
  return server_common.get_request_id(response)
795
807
 
@@ -838,6 +850,7 @@ def stop(cluster_name: str, purge: bool = False) -> server_common.RequestId:
838
850
  f'{server_common.get_server_url()}/stop',
839
851
  json=json.loads(body.model_dump_json()),
840
852
  timeout=5,
853
+ cookies=server_common.get_api_cookie_jar(),
841
854
  )
842
855
  return server_common.get_request_id(response)
843
856
 
@@ -907,6 +920,7 @@ def autostop(
907
920
  f'{server_common.get_server_url()}/autostop',
908
921
  json=json.loads(body.model_dump_json()),
909
922
  timeout=5,
923
+ cookies=server_common.get_api_cookie_jar(),
910
924
  )
911
925
  return server_common.get_request_id(response)
912
926
 
@@ -966,7 +980,8 @@ def queue(cluster_name: str,
966
980
  all_users=all_users,
967
981
  )
968
982
  response = requests.post(f'{server_common.get_server_url()}/queue',
969
- json=json.loads(body.model_dump_json()))
983
+ json=json.loads(body.model_dump_json()),
984
+ cookies=server_common.get_api_cookie_jar())
970
985
  return server_common.get_request_id(response)
971
986
 
972
987
 
@@ -1007,7 +1022,8 @@ def job_status(cluster_name: str,
1007
1022
  job_ids=job_ids,
1008
1023
  )
1009
1024
  response = requests.post(f'{server_common.get_server_url()}/job_status',
1010
- json=json.loads(body.model_dump_json()))
1025
+ json=json.loads(body.model_dump_json()),
1026
+ cookies=server_common.get_api_cookie_jar())
1011
1027
  return server_common.get_request_id(response)
1012
1028
 
1013
1029
 
@@ -1060,7 +1076,8 @@ def cancel(
1060
1076
  try_cancel_if_cluster_is_init=_try_cancel_if_cluster_is_init,
1061
1077
  )
1062
1078
  response = requests.post(f'{server_common.get_server_url()}/cancel',
1063
- json=json.loads(body.model_dump_json()))
1079
+ json=json.loads(body.model_dump_json()),
1080
+ cookies=server_common.get_api_cookie_jar())
1064
1081
  return server_common.get_request_id(response)
1065
1082
 
1066
1083
 
@@ -1155,7 +1172,8 @@ def status(
1155
1172
  all_users=all_users,
1156
1173
  )
1157
1174
  response = requests.post(f'{server_common.get_server_url()}/status',
1158
- json=json.loads(body.model_dump_json()))
1175
+ json=json.loads(body.model_dump_json()),
1176
+ cookies=server_common.get_api_cookie_jar())
1159
1177
  return server_common.get_request_id(response)
1160
1178
 
1161
1179
 
@@ -1189,7 +1207,8 @@ def endpoints(
1189
1207
  port=port,
1190
1208
  )
1191
1209
  response = requests.post(f'{server_common.get_server_url()}/endpoints',
1192
- json=json.loads(body.model_dump_json()))
1210
+ json=json.loads(body.model_dump_json()),
1211
+ cookies=server_common.get_api_cookie_jar())
1193
1212
  return server_common.get_request_id(response)
1194
1213
 
1195
1214
 
@@ -1227,7 +1246,8 @@ def cost_report() -> server_common.RequestId: # pylint: disable=redefined-built
1227
1246
  'total_cost': (float) cost given resources and usage intervals,
1228
1247
  }
1229
1248
  """
1230
- response = requests.get(f'{server_common.get_server_url()}/cost_report')
1249
+ response = requests.get(f'{server_common.get_server_url()}/cost_report',
1250
+ cookies=server_common.get_api_cookie_jar())
1231
1251
  return server_common.get_request_id(response)
1232
1252
 
1233
1253
 
@@ -1256,7 +1276,8 @@ def storage_ls() -> server_common.RequestId:
1256
1276
  }
1257
1277
  ]
1258
1278
  """
1259
- response = requests.get(f'{server_common.get_server_url()}/storage/ls')
1279
+ response = requests.get(f'{server_common.get_server_url()}/storage/ls',
1280
+ cookies=server_common.get_api_cookie_jar())
1260
1281
  return server_common.get_request_id(response)
1261
1282
 
1262
1283
 
@@ -1280,7 +1301,8 @@ def storage_delete(name: str) -> server_common.RequestId:
1280
1301
  """
1281
1302
  body = payloads.StorageBody(name=name)
1282
1303
  response = requests.post(f'{server_common.get_server_url()}/storage/delete',
1283
- json=json.loads(body.model_dump_json()))
1304
+ json=json.loads(body.model_dump_json()),
1305
+ cookies=server_common.get_api_cookie_jar())
1284
1306
  return server_common.get_request_id(response)
1285
1307
 
1286
1308
 
@@ -1318,7 +1340,8 @@ def local_up(gpus: bool,
1318
1340
  context_name=context_name,
1319
1341
  password=password)
1320
1342
  response = requests.post(f'{server_common.get_server_url()}/local_up',
1321
- json=json.loads(body.model_dump_json()))
1343
+ json=json.loads(body.model_dump_json()),
1344
+ cookies=server_common.get_api_cookie_jar())
1322
1345
  return server_common.get_request_id(response)
1323
1346
 
1324
1347
 
@@ -1334,7 +1357,8 @@ def local_down() -> server_common.RequestId:
1334
1357
  with ux_utils.print_exception_no_traceback():
1335
1358
  raise ValueError('sky local down is only supported when running '
1336
1359
  'SkyPilot locally.')
1337
- response = requests.post(f'{server_common.get_server_url()}/local_down')
1360
+ response = requests.post(f'{server_common.get_server_url()}/local_down',
1361
+ cookies=server_common.get_api_cookie_jar())
1338
1362
  return server_common.get_request_id(response)
1339
1363
 
1340
1364
 
@@ -1358,7 +1382,8 @@ def realtime_kubernetes_gpu_availability(
1358
1382
  response = requests.post(
1359
1383
  f'{server_common.get_server_url()}/'
1360
1384
  'realtime_kubernetes_gpu_availability',
1361
- json=json.loads(body.model_dump_json()))
1385
+ json=json.loads(body.model_dump_json()),
1386
+ cookies=server_common.get_api_cookie_jar())
1362
1387
  return server_common.get_request_id(response)
1363
1388
 
1364
1389
 
@@ -1389,7 +1414,8 @@ def kubernetes_node_info(
1389
1414
  body = payloads.KubernetesNodeInfoRequestBody(context=context)
1390
1415
  response = requests.post(
1391
1416
  f'{server_common.get_server_url()}/kubernetes_node_info',
1392
- json=json.loads(body.model_dump_json()))
1417
+ json=json.loads(body.model_dump_json()),
1418
+ cookies=server_common.get_api_cookie_jar())
1393
1419
  return server_common.get_request_id(response)
1394
1420
 
1395
1421
 
@@ -1418,7 +1444,8 @@ def status_kubernetes() -> server_common.RequestId:
1418
1444
  - context: Kubernetes context used to fetch the cluster information.
1419
1445
  """
1420
1446
  response = requests.get(
1421
- f'{server_common.get_server_url()}/status_kubernetes')
1447
+ f'{server_common.get_server_url()}/status_kubernetes',
1448
+ cookies=server_common.get_api_cookie_jar())
1422
1449
  return server_common.get_request_id(response)
1423
1450
 
1424
1451
 
@@ -1444,7 +1471,8 @@ def get(request_id: str) -> Any:
1444
1471
  response = requests.get(
1445
1472
  f'{server_common.get_server_url()}/api/get?request_id={request_id}',
1446
1473
  timeout=(client_common.API_SERVER_REQUEST_CONNECTION_TIMEOUT_SECONDS,
1447
- None))
1474
+ None),
1475
+ cookies=server_common.get_api_cookie_jar())
1448
1476
  request_task = None
1449
1477
  if response.status_code == 200:
1450
1478
  request_task = requests_lib.Request.decode(
@@ -1523,7 +1551,8 @@ def stream_and_get(
1523
1551
  params=params,
1524
1552
  timeout=(client_common.API_SERVER_REQUEST_CONNECTION_TIMEOUT_SECONDS,
1525
1553
  None),
1526
- stream=True)
1554
+ stream=True,
1555
+ cookies=server_common.get_api_cookie_jar())
1527
1556
  if response.status_code in [404, 400]:
1528
1557
  detail = response.json().get('detail')
1529
1558
  with ux_utils.print_exception_no_traceback():
@@ -1579,7 +1608,8 @@ def api_cancel(request_ids: Optional[Union[str, List[str]]] = None,
1579
1608
 
1580
1609
  response = requests.post(f'{server_common.get_server_url()}/api/cancel',
1581
1610
  json=json.loads(body.model_dump_json()),
1582
- timeout=5)
1611
+ timeout=5,
1612
+ cookies=server_common.get_api_cookie_jar())
1583
1613
  return server_common.get_request_id(response)
1584
1614
 
1585
1615
 
@@ -1607,7 +1637,8 @@ def api_status(
1607
1637
  f'{server_common.get_server_url()}/api/status',
1608
1638
  params=server_common.request_body_to_params(body),
1609
1639
  timeout=(client_common.API_SERVER_REQUEST_CONNECTION_TIMEOUT_SECONDS,
1610
- None))
1640
+ None),
1641
+ cookies=server_common.get_api_cookie_jar())
1611
1642
  server_common.handle_request_error(response)
1612
1643
  return [
1613
1644
  requests_lib.RequestPayload(**request) for request in response.json()
@@ -1634,7 +1665,8 @@ def api_info() -> Dict[str, str]:
1634
1665
  }
1635
1666
 
1636
1667
  """
1637
- response = requests.get(f'{server_common.get_server_url()}/api/health')
1668
+ response = requests.get(f'{server_common.get_server_url()}/api/health',
1669
+ cookies=server_common.get_api_cookie_jar())
1638
1670
  response.raise_for_status()
1639
1671
  return response.json()
1640
1672
 
@@ -82,6 +82,7 @@ def launch(
82
82
  f'{server_common.get_server_url()}/jobs/launch',
83
83
  json=json.loads(body.model_dump_json()),
84
84
  timeout=(5, None),
85
+ cookies=server_common.get_api_cookie_jar(),
85
86
  )
86
87
  return server_common.get_request_id(response)
87
88
 
@@ -138,6 +139,7 @@ def queue(refresh: bool,
138
139
  f'{server_common.get_server_url()}/jobs/queue',
139
140
  json=json.loads(body.model_dump_json()),
140
141
  timeout=(5, None),
142
+ cookies=server_common.get_api_cookie_jar(),
141
143
  )
142
144
  return server_common.get_request_id(response=response)
143
145
 
@@ -177,6 +179,7 @@ def cancel(
177
179
  f'{server_common.get_server_url()}/jobs/cancel',
178
180
  json=json.loads(body.model_dump_json()),
179
181
  timeout=(5, None),
182
+ cookies=server_common.get_api_cookie_jar(),
180
183
  )
181
184
  return server_common.get_request_id(response=response)
182
185
 
@@ -224,6 +227,7 @@ def tail_logs(name: Optional[str] = None,
224
227
  json=json.loads(body.model_dump_json()),
225
228
  stream=True,
226
229
  timeout=(5, None),
230
+ cookies=server_common.get_api_cookie_jar(),
227
231
  )
228
232
  request_id = server_common.get_request_id(response)
229
233
  return sdk.stream_response(request_id, response, output_stream)
@@ -267,6 +271,7 @@ def download_logs(
267
271
  f'{server_common.get_server_url()}/jobs/download_logs',
268
272
  json=json.loads(body.model_dump_json()),
269
273
  timeout=(5, None),
274
+ cookies=server_common.get_api_cookie_jar(),
270
275
  )
271
276
  job_id_remote_path_dict = sdk.stream_and_get(
272
277
  server_common.get_request_id(response))
@@ -6,6 +6,7 @@ import typing
6
6
  from typing import Any, Dict, Iterable, List, Optional, Set, Tuple
7
7
 
8
8
  import colorama
9
+ import numpy as np
9
10
  import prettytable
10
11
 
11
12
  from sky import check as sky_check
@@ -28,12 +29,10 @@ from sky.utils import ux_utils
28
29
 
29
30
  if typing.TYPE_CHECKING:
30
31
  import networkx as nx
31
- import numpy as np
32
32
 
33
33
  from sky import dag as dag_lib
34
34
  else:
35
35
  nx = adaptors_common.LazyImport('networkx')
36
- np = adaptors_common.LazyImport('numpy')
37
36
 
38
37
  logger = sky_logging.init_logger(__name__)
39
38
 
@@ -74,6 +74,7 @@ def up(
74
74
  f'{server_common.get_server_url()}/serve/up',
75
75
  json=json.loads(body.model_dump_json()),
76
76
  timeout=(5, None),
77
+ cookies=server_common.get_api_cookie_jar(),
77
78
  )
78
79
  return server_common.get_request_id(response)
79
80
 
@@ -132,6 +133,7 @@ def update(
132
133
  f'{server_common.get_server_url()}/serve/update',
133
134
  json=json.loads(body.model_dump_json()),
134
135
  timeout=(5, None),
136
+ cookies=server_common.get_api_cookie_jar(),
135
137
  )
136
138
  return server_common.get_request_id(response)
137
139
 
@@ -173,6 +175,7 @@ def down(
173
175
  f'{server_common.get_server_url()}/serve/down',
174
176
  json=json.loads(body.model_dump_json()),
175
177
  timeout=(5, None),
178
+ cookies=server_common.get_api_cookie_jar(),
176
179
  )
177
180
  return server_common.get_request_id(response)
178
181
 
@@ -207,6 +210,7 @@ def terminate_replica(service_name: str, replica_id: int,
207
210
  f'{server_common.get_server_url()}/serve/terminate-replica',
208
211
  json=json.loads(body.model_dump_json()),
209
212
  timeout=(5, None),
213
+ cookies=server_common.get_api_cookie_jar(),
210
214
  )
211
215
  return server_common.get_request_id(response)
212
216
 
@@ -279,6 +283,7 @@ def status(
279
283
  f'{server_common.get_server_url()}/serve/status',
280
284
  json=json.loads(body.model_dump_json()),
281
285
  timeout=(5, None),
286
+ cookies=server_common.get_api_cookie_jar(),
282
287
  )
283
288
  return server_common.get_request_id(response)
284
289
 
@@ -365,6 +370,7 @@ def tail_logs(service_name: str,
365
370
  json=json.loads(body.model_dump_json()),
366
371
  timeout=(5, None),
367
372
  stream=True,
373
+ cookies=server_common.get_api_cookie_jar(),
368
374
  )
369
375
  request_id = server_common.get_request_id(response)
370
376
  sdk.stream_response(request_id, response, output_stream)
@@ -3,6 +3,7 @@
3
3
  import dataclasses
4
4
  import enum
5
5
  import functools
6
+ from http.cookiejar import MozillaCookieJar
6
7
  import json
7
8
  import os
8
9
  import pathlib
@@ -80,6 +81,18 @@ class ApiServerInfo:
80
81
  api_version: ApiVersion
81
82
 
82
83
 
84
+ def get_api_cookie_jar() -> requests.cookies.RequestsCookieJar:
85
+ """Returns the cookie jar used by the client to access the API server."""
86
+ cookie_file = os.environ.get(server_constants.API_COOKIE_FILE_ENV_VAR)
87
+ cookie_jar = requests.cookies.RequestsCookieJar()
88
+ if cookie_file and os.path.exists(cookie_file):
89
+ cookie_path = pathlib.Path(cookie_file).expanduser().resolve()
90
+ file_cookie_jar = MozillaCookieJar(cookie_path)
91
+ file_cookie_jar.load()
92
+ cookie_jar.update(file_cookie_jar)
93
+ return cookie_jar
94
+
95
+
83
96
  @annotations.lru_cache(scope='global')
84
97
  def get_server_url(host: Optional[str] = None) -> str:
85
98
  endpoint = DEFAULT_SERVER_URL
@@ -117,7 +130,9 @@ def get_api_server_status(endpoint: Optional[str] = None) -> ApiServerInfo:
117
130
  server_url = endpoint if endpoint is not None else get_server_url()
118
131
  while time_out_try_count <= RETRY_COUNT_ON_TIMEOUT:
119
132
  try:
120
- response = requests.get(f'{server_url}/api/health', timeout=2.5)
133
+ response = requests.get(f'{server_url}/api/health',
134
+ timeout=2.5,
135
+ cookies=get_api_cookie_jar())
121
136
  if response.status_code == 200:
122
137
  try:
123
138
  result = response.json()
@@ -1,5 +1,7 @@
1
1
  """Constants for the API servers."""
2
2
 
3
+ from sky.skylet import constants
4
+
3
5
  # API server version, whenever there is a change in API server that requires a
4
6
  # restart of the local API server or error out when the client does not match
5
7
  # the server version.
@@ -19,3 +21,6 @@ API_SERVER_REQUEST_DB_PATH = '~/.sky/api_server/requests.db'
19
21
  # The interval (seconds) for the cluster status to be refreshed in the
20
22
  # background.
21
23
  CLUSTER_REFRESH_DAEMON_INTERVAL_SECONDS = 60
24
+
25
+ # Environment variable for a file path to the API cookie file.
26
+ API_COOKIE_FILE_ENV_VAR = f'{constants.SKYPILOT_ENV_VAR_PREFIX}API_COOKIE_FILE'
@@ -52,7 +52,6 @@ import contextlib
52
52
  import copy
53
53
  import os
54
54
  import pprint
55
- import tempfile
56
55
  import typing
57
56
  from typing import Any, Dict, Iterator, Optional, Tuple
58
57
 
@@ -92,6 +91,7 @@ CONFIG_PATH = '~/.sky/config.yaml'
92
91
  # The loaded config.
93
92
  _dict = config_utils.Config()
94
93
  _loaded_config_path: Optional[str] = None
94
+ _config_overridden: bool = False
95
95
 
96
96
 
97
97
  def get_nested(keys: Tuple[str, ...],
@@ -178,7 +178,10 @@ def _reload_config() -> None:
178
178
 
179
179
 
180
180
  def loaded_config_path() -> Optional[str]:
181
- """Returns the path to the loaded config file."""
181
+ """Returns the path to the loaded config file, or
182
+ '<overridden>' if the config is overridden."""
183
+ if _config_overridden:
184
+ return '<overridden>'
182
185
  return _loaded_config_path
183
186
 
184
187
 
@@ -195,31 +198,30 @@ def loaded() -> bool:
195
198
  def override_skypilot_config(
196
199
  override_configs: Optional[Dict[str, Any]]) -> Iterator[None]:
197
200
  """Overrides the user configurations."""
201
+ global _dict, _config_overridden
198
202
  # TODO(SKY-1215): allow admin user to extend the disallowed keys or specify
199
203
  # allowed keys.
200
204
  if not override_configs:
201
205
  # If no override configs (None or empty dict), do nothing.
202
206
  yield
203
207
  return
204
- original_env_config_path = _loaded_config_path
205
- original_config = dict(_dict)
208
+ original_config = _dict
206
209
  config = _dict.get_nested(
207
210
  keys=tuple(),
208
211
  default_value=None,
209
212
  override_configs=override_configs,
210
213
  allowed_override_keys=None,
211
214
  disallowed_override_keys=constants.SKIPPED_CLIENT_OVERRIDE_KEYS)
212
- with tempfile.NamedTemporaryFile(
213
- mode='w',
214
- prefix='skypilot_config',
215
- # Have to avoid deleting the file as the underlying function needs
216
- # to read the config file, and we need to close the file mode='w'
217
- # to enable reading.
218
- delete=False) as f:
219
- common_utils.dump_yaml(f.name, dict(config))
220
- os.environ[ENV_VAR_SKYPILOT_CONFIG] = f.name
221
215
  try:
222
- _reload_config()
216
+ common_utils.validate_schema(
217
+ config,
218
+ schemas.get_config_schema(),
219
+ f'Invalid config {config}. See: '
220
+ 'https://docs.skypilot.co/en/latest/reference/config.html. ' # pylint: disable=line-too-long
221
+ 'Error: ',
222
+ skip_none=False)
223
+ _config_overridden = True
224
+ _dict = config
223
225
  yield
224
226
  except exceptions.InvalidSkyPilotConfigError as e:
225
227
  with ux_utils.print_exception_no_traceback():
@@ -227,23 +229,10 @@ def override_skypilot_config(
227
229
  'Failed to override the SkyPilot config on API '
228
230
  'server with your local SkyPilot config:\n'
229
231
  '=== SkyPilot config on API server ===\n'
230
- f'{common_utils.dump_yaml_str(original_config)}\n'
232
+ f'{common_utils.dump_yaml_str(dict(original_config))}\n'
231
233
  '=== Your local SkyPilot config ===\n'
232
234
  f'{common_utils.dump_yaml_str(override_configs)}\n'
233
235
  f'Details: {e}') from e
234
-
235
236
  finally:
236
- if original_env_config_path is not None:
237
- os.environ[ENV_VAR_SKYPILOT_CONFIG] = original_env_config_path
238
- else:
239
- os.environ.pop(ENV_VAR_SKYPILOT_CONFIG, None)
240
- # Reload the config to restore the original config to avoid the next
241
- # request reusing the same process to use the config for the current
242
- # request.
243
- _reload_config()
244
-
245
- try:
246
- os.remove(f.name)
247
- except Exception: # pylint: disable=broad-except
248
- # Failing to delete the file is not critical.
249
- pass
237
+ _dict = original_config
238
+ _config_overridden = False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20250410
3
+ Version: 1.0.0.dev20250411
4
4
  Summary: SkyPilot: An intercloud broker for the clouds
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -366,6 +366,15 @@ def test_config_with_env(monkeypatch, tmp_path) -> None:
366
366
  assert skypilot_config.get_nested(('gcp', 'use_internal_ips'), None)
367
367
 
368
368
 
369
+ def test_invalid_override_config(monkeypatch, tmp_path) -> None:
370
+ """Test that an invalid override config is rejected."""
371
+ with pytest.raises(sky.exceptions.InvalidSkyPilotConfigError) as e:
372
+ with skypilot_config.override_skypilot_config({
373
+ 'invalid_key': 'invalid_value',
374
+ }):
375
+ pass
376
+
377
+
369
378
  def test_k8s_config_with_override(monkeypatch, tmp_path,
370
379
  enable_all_clouds) -> None:
371
380
  config_path = tmp_path / 'config.yaml'
@@ -554,23 +563,11 @@ def test_override_skypilot_config(monkeypatch, tmp_path):
554
563
  assert skypilot_config.get_nested(('aws', 'ssh_proxy_command'),
555
564
  None) == 'override-command'
556
565
 
557
- # Get the temp file path
558
- temp_config_path = os.environ.get(
559
- skypilot_config.ENV_VAR_SKYPILOT_CONFIG)
560
- assert temp_config_path is not None
561
- assert os.path.exists(temp_config_path)
562
-
563
566
  # Check values are restored
564
567
  assert skypilot_config.get_nested(('aws', 'vpc_name'), None) == original_vpc
565
568
  assert skypilot_config.get_nested(('aws', 'ssh_proxy_command'),
566
569
  None) == original_proxy
567
570
 
568
- # Check temp file is cleaned up
569
- assert not os.path.exists(temp_config_path)
570
- env_config_path = os.environ.get(skypilot_config.ENV_VAR_SKYPILOT_CONFIG)
571
- assert env_config_path == str(config_path), (
572
- f'{env_config_path} is not cleaned up')
573
-
574
571
  # Test with None override_configs
575
572
  with skypilot_config.override_skypilot_config(None):
576
573
  assert skypilot_config.get_nested(('aws', 'vpc_name'),
@@ -614,12 +611,6 @@ def test_override_skypilot_config_without_original_config(
614
611
  assert skypilot_config.get_nested(('aws', 'ssh_proxy_command'),
615
612
  None) == 'override-command'
616
613
 
617
- # Get the temp file path
618
- temp_config_path = os.environ.get(
619
- skypilot_config.ENV_VAR_SKYPILOT_CONFIG)
620
- assert temp_config_path is not None
621
- assert os.path.exists(temp_config_path)
622
-
623
614
  # Check values are restored
624
615
  assert skypilot_config.get_nested(('aws', 'vpc_name'), None) is None
625
616
  assert skypilot_config.get_nested(