skypilot-nightly 1.0.0.dev20250305__tar.gz → 1.0.0.dev20250307__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 (372) hide show
  1. {skypilot_nightly-1.0.0.dev20250305/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250307}/PKG-INFO +1 -1
  2. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/__init__.py +2 -2
  3. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/backends/wheel_utils.py +29 -14
  4. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/cli.py +1 -1
  5. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/client/cli.py +1 -1
  6. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/data_fetchers/fetch_vast.py +14 -4
  7. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/jobs/server/core.py +4 -2
  8. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/jobs/server/server.py +3 -0
  9. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/jobs/utils.py +19 -6
  10. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/server/server.py +5 -0
  11. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/jobs-controller.yaml.j2 +2 -3
  12. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/command_runner.py +2 -2
  13. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/rich_utils.py +41 -3
  14. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307/skypilot_nightly.egg-info}/PKG-INFO +1 -1
  15. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/LICENSE +0 -0
  16. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/MANIFEST.in +0 -0
  17. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/README.md +0 -0
  18. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/pyproject.toml +0 -0
  19. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/setup.cfg +0 -0
  20. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/setup.py +0 -0
  21. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/adaptors/__init__.py +0 -0
  22. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/adaptors/aws.py +0 -0
  23. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/adaptors/azure.py +0 -0
  24. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/adaptors/cloudflare.py +0 -0
  25. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/adaptors/common.py +0 -0
  26. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/adaptors/cudo.py +0 -0
  27. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/adaptors/do.py +0 -0
  28. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/adaptors/docker.py +0 -0
  29. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/adaptors/gcp.py +0 -0
  30. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/adaptors/ibm.py +0 -0
  31. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/adaptors/kubernetes.py +0 -0
  32. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/adaptors/nebius.py +0 -0
  33. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/adaptors/oci.py +0 -0
  34. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/adaptors/runpod.py +0 -0
  35. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/adaptors/vast.py +0 -0
  36. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/adaptors/vsphere.py +0 -0
  37. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/admin_policy.py +0 -0
  38. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/authentication.py +0 -0
  39. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/backends/__init__.py +0 -0
  40. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/backends/backend.py +0 -0
  41. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/backends/backend_utils.py +0 -0
  42. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/backends/cloud_vm_ray_backend.py +0 -0
  43. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/backends/docker_utils.py +0 -0
  44. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/backends/local_docker_backend.py +0 -0
  45. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  46. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/benchmark/__init__.py +0 -0
  47. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/benchmark/benchmark_state.py +0 -0
  48. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/benchmark/benchmark_utils.py +0 -0
  49. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/check.py +0 -0
  50. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/client/__init__.py +0 -0
  51. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/client/common.py +0 -0
  52. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/client/sdk.py +0 -0
  53. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/cloud_stores.py +0 -0
  54. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/__init__.py +0 -0
  55. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/aws.py +0 -0
  56. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/azure.py +0 -0
  57. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/cloud.py +0 -0
  58. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/cudo.py +0 -0
  59. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/do.py +0 -0
  60. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/fluidstack.py +0 -0
  61. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/gcp.py +0 -0
  62. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/ibm.py +0 -0
  63. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/kubernetes.py +0 -0
  64. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/lambda_cloud.py +0 -0
  65. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/nebius.py +0 -0
  66. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/oci.py +0 -0
  67. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/paperspace.py +0 -0
  68. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/runpod.py +0 -0
  69. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/scp.py +0 -0
  70. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/__init__.py +0 -0
  71. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/aws_catalog.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/azure_catalog.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/common.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/config.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/constants.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/do_catalog.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/gcp_catalog.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/kubernetes_catalog.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/nebius_catalog.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/oci_catalog.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/scp_catalog.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/vast_catalog.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/utils/__init__.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/utils/aws_utils.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/utils/azure_utils.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/utils/gcp_utils.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/utils/oci_utils.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/utils/scp_utils.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/vast.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/clouds/vsphere.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/core.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/dag.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/data/__init__.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/data/data_transfer.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/data/data_utils.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/data/mounting_utils.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/data/storage.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/data/storage_utils.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/exceptions.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/execution.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/global_user_state.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/jobs/__init__.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/jobs/client/__init__.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/jobs/client/sdk.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/jobs/constants.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/jobs/controller.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/jobs/dashboard/dashboard.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/jobs/dashboard/static/favicon.ico +0 -0
  124. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/jobs/dashboard/templates/index.html +0 -0
  125. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/jobs/recovery_strategy.py +0 -0
  126. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/jobs/scheduler.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/jobs/server/__init__.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/jobs/server/dashboard_utils.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/jobs/state.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/models.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/optimizer.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/__init__.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/aws/__init__.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/aws/config.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/aws/instance.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/aws/utils.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/azure/__init__.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/azure/azure-config-template.json +0 -0
  139. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/azure/config.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/azure/instance.py +0 -0
  141. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/common.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/constants.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/cudo/__init__.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/cudo/config.py +0 -0
  145. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/cudo/cudo_machine_type.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/cudo/cudo_utils.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/cudo/cudo_wrapper.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/cudo/instance.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/do/__init__.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/do/config.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/do/constants.py +0 -0
  152. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/do/instance.py +0 -0
  153. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/do/utils.py +0 -0
  154. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/docker_utils.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/fluidstack/__init__.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/fluidstack/config.py +0 -0
  157. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  158. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/fluidstack/instance.py +0 -0
  159. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/gcp/__init__.py +0 -0
  160. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/gcp/config.py +0 -0
  161. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/gcp/constants.py +0 -0
  162. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/gcp/instance.py +0 -0
  163. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/gcp/instance_utils.py +0 -0
  164. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/gcp/mig_utils.py +0 -0
  165. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/instance_setup.py +0 -0
  166. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/kubernetes/__init__.py +0 -0
  167. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/kubernetes/config.py +0 -0
  168. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/kubernetes/constants.py +0 -0
  169. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/kubernetes/instance.py +0 -0
  170. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml +0 -0
  171. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml +0 -0
  172. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/kubernetes/network.py +0 -0
  173. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/kubernetes/network_utils.py +0 -0
  174. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/kubernetes/utils.py +0 -0
  175. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/lambda_cloud/__init__.py +0 -0
  176. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/lambda_cloud/config.py +0 -0
  177. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/lambda_cloud/instance.py +0 -0
  178. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  179. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/logging.py +0 -0
  180. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/metadata_utils.py +0 -0
  181. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/nebius/__init__.py +0 -0
  182. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/nebius/config.py +0 -0
  183. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/nebius/instance.py +0 -0
  184. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/nebius/utils.py +0 -0
  185. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/oci/__init__.py +0 -0
  186. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/oci/config.py +0 -0
  187. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/oci/instance.py +0 -0
  188. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/oci/query_utils.py +0 -0
  189. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/paperspace/__init__.py +0 -0
  190. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/paperspace/config.py +0 -0
  191. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/paperspace/constants.py +0 -0
  192. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/paperspace/instance.py +0 -0
  193. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/paperspace/utils.py +0 -0
  194. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/provisioner.py +0 -0
  195. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/runpod/__init__.py +0 -0
  196. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/runpod/api/__init__.py +0 -0
  197. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/runpod/api/commands.py +0 -0
  198. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/runpod/api/pods.py +0 -0
  199. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/runpod/config.py +0 -0
  200. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/runpod/instance.py +0 -0
  201. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/runpod/utils.py +0 -0
  202. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/vast/__init__.py +0 -0
  203. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/vast/config.py +0 -0
  204. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/vast/instance.py +0 -0
  205. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/vast/utils.py +0 -0
  206. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/vsphere/__init__.py +0 -0
  207. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/vsphere/common/__init__.py +0 -0
  208. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  209. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  210. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/vsphere/common/custom_script.py +0 -0
  211. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/vsphere/common/id_generator.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/vsphere/common/service_manager.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/vsphere/common/vim_utils.py +0 -0
  218. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/vsphere/config.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/vsphere/instance.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/provision/vsphere/vsphere_utils.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/resources.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/serve/__init__.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/serve/autoscalers.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/serve/client/__init__.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/serve/client/sdk.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/serve/constants.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/serve/controller.py +0 -0
  228. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/serve/load_balancer.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/serve/load_balancing_policies.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/serve/replica_managers.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/serve/serve_state.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/serve/serve_utils.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/serve/server/__init__.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/serve/server/core.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/serve/server/server.py +0 -0
  236. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/serve/service.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/serve/service_spec.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/server/__init__.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/server/common.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/server/constants.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/server/html/log.html +0 -0
  242. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/server/requests/__init__.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/server/requests/executor.py +0 -0
  244. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/server/requests/payloads.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/server/requests/queues/__init__.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/server/requests/queues/mp_queue.py +0 -0
  247. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/server/requests/requests.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/server/requests/serializers/__init__.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/server/requests/serializers/decoders.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/server/requests/serializers/encoders.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/server/stream_utils.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/setup_files/MANIFEST.in +0 -0
  253. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/setup_files/dependencies.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/setup_files/setup.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/sky_logging.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/LICENSE +0 -0
  257. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/__init__.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/attempt_skylet.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/autostop_lib.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/configs.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/constants.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/events.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/job_lib.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/log_lib.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/log_lib.pyi +0 -0
  266. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/providers/__init__.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/providers/command_runner.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/providers/ibm/__init__.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/providers/ibm/node_provider.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/providers/ibm/utils.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/providers/scp/__init__.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/providers/scp/config.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/providers/scp/node_provider.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/ray_patches/__init__.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  277. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/ray_patches/cli.py.patch +0 -0
  278. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  279. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  280. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  281. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/ray_patches/updater.py.patch +0 -0
  282. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/ray_patches/worker.py.patch +0 -0
  283. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/skylet.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skylet/subprocess_daemon.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/skypilot_config.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/task.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/aws-ray.yml.j2 +0 -0
  288. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/azure-ray.yml.j2 +0 -0
  289. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/cudo-ray.yml.j2 +0 -0
  290. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/do-ray.yml.j2 +0 -0
  291. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  292. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/gcp-ray.yml.j2 +0 -0
  293. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/ibm-ray.yml.j2 +0 -0
  294. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  295. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  296. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  297. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  298. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  299. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/lambda-ray.yml.j2 +0 -0
  300. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/local-ray.yml.j2 +0 -0
  301. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/nebius-ray.yml.j2 +0 -0
  302. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/oci-ray.yml.j2 +0 -0
  303. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/paperspace-ray.yml.j2 +0 -0
  304. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/runpod-ray.yml.j2 +0 -0
  305. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/scp-ray.yml.j2 +0 -0
  306. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  307. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  308. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/vast-ray.yml.j2 +0 -0
  309. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/vsphere-ray.yml.j2 +0 -0
  310. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/templates/websocket_proxy.py +0 -0
  311. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/usage/__init__.py +0 -0
  312. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/usage/constants.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/usage/usage_lib.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/__init__.py +0 -0
  315. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/accelerator_registry.py +0 -0
  316. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/admin_policy_utils.py +0 -0
  317. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/annotations.py +0 -0
  318. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/cli_utils/__init__.py +0 -0
  319. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/cli_utils/status_utils.py +0 -0
  320. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/cluster_utils.py +0 -0
  321. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/command_runner.pyi +0 -0
  322. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/common.py +0 -0
  323. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/common_utils.py +0 -0
  324. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/config_utils.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/control_master_utils.py +0 -0
  326. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/controller_utils.py +0 -0
  327. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/dag_utils.py +0 -0
  328. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/db_utils.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/env_options.py +0 -0
  330. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/kubernetes/__init__.py +0 -0
  331. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/kubernetes/create_cluster.sh +0 -0
  332. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  333. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/kubernetes/deploy_remote_cluster.sh +0 -0
  334. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  335. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  336. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  337. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  338. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  339. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  340. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  341. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  342. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  343. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/kubernetes_enums.py +0 -0
  344. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/log_utils.py +0 -0
  345. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/message_utils.py +0 -0
  346. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/registry.py +0 -0
  347. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/resources_utils.py +0 -0
  348. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/schemas.py +0 -0
  349. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/status_lib.py +0 -0
  350. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/subprocess_utils.py +0 -0
  351. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/timeline.py +0 -0
  352. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/ux_utils.py +0 -0
  353. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/sky/utils/validator.py +0 -0
  354. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/skypilot_nightly.egg-info/SOURCES.txt +0 -0
  355. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  356. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  357. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/skypilot_nightly.egg-info/requires.txt +0 -0
  358. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/skypilot_nightly.egg-info/top_level.txt +0 -0
  359. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/tests/test_api.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/tests/test_cli.py +0 -0
  361. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/tests/test_config.py +0 -0
  362. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/tests/test_global_user_state.py +0 -0
  363. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/tests/test_jobs.py +0 -0
  364. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/tests/test_jobs_and_serve.py +0 -0
  365. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/tests/test_list_accelerators.py +0 -0
  366. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/tests/test_optimizer_dryruns.py +0 -0
  367. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/tests/test_optimizer_random_dag.py +0 -0
  368. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/tests/test_serve_autoscaler.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/tests/test_smoke.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/tests/test_storage.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/tests/test_wheels.py +0 -0
  372. {skypilot_nightly-1.0.0.dev20250305 → skypilot_nightly-1.0.0.dev20250307}/tests/test_yaml_parser.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20250305
3
+ Version: 1.0.0.dev20250307
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 = '296a22e868b9bdf1faccbe3effbfb858a5a05905'
8
+ _SKYPILOT_COMMIT_SHA = 'f6a65c2ea0ac00976d06e47c46e8df1297cb70a2'
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.dev20250305'
38
+ __version__ = '1.0.0.dev20250307'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -17,7 +17,7 @@ import re
17
17
  import shutil
18
18
  import subprocess
19
19
  import tempfile
20
- from typing import Tuple
20
+ from typing import Optional, Tuple
21
21
 
22
22
  import filelock
23
23
  from packaging import version
@@ -149,16 +149,29 @@ def build_sky_wheel() -> Tuple[pathlib.Path, str]:
149
149
  - wheel_hash: The wheel content hash.
150
150
  """
151
151
 
152
- def _get_latest_modification_time(path: pathlib.Path) -> float:
152
+ def _get_latest_modification_time(path: pathlib.Path) -> Optional[float]:
153
+ max_time = -1.
153
154
  if not path.exists():
154
- return -1.
155
- try:
156
- return max(
157
- os.path.getmtime(os.path.join(root, f))
158
- for root, dirs, files in os.walk(path)
159
- for f in (*dirs, *files))
160
- except ValueError:
161
- return -1.
155
+ return max_time
156
+ for root, dirs, files in os.walk(path):
157
+ # Prune __pycache__ directories to prevent walking into them and
158
+ # exclude them from processing
159
+ if '__pycache__' in dirs:
160
+ dirs.remove('__pycache__')
161
+ # Filter out .pyc files
162
+ filtered_files = [f for f in files if not f.endswith('.pyc')]
163
+ # Process remaining directories and files
164
+ for entry in (*dirs, *filtered_files):
165
+ entry_path = os.path.join(root, entry)
166
+ try:
167
+ mtime = os.path.getmtime(entry_path)
168
+ if mtime > max_time:
169
+ max_time = mtime
170
+ except OSError:
171
+ # Handle cases where file might have been deleted after
172
+ # listing
173
+ return None
174
+ return max_time
162
175
 
163
176
  # This lock prevents that the wheel is updated while being copied.
164
177
  # Although the current caller already uses a lock, we still lock it here
@@ -170,10 +183,12 @@ def build_sky_wheel() -> Tuple[pathlib.Path, str]:
170
183
  last_modification_time = _get_latest_modification_time(SKY_PACKAGE_PATH)
171
184
  last_wheel_modification_time = _get_latest_modification_time(WHEEL_DIR)
172
185
 
173
- # Only build wheels if the wheel is outdated or wheel does not exist
174
- # for the requested version.
175
- if (last_wheel_modification_time < last_modification_time) or not any(
176
- WHEEL_DIR.glob(f'**/{_WHEEL_PATTERN}')):
186
+ # Only build wheels if the wheel is outdated, wheel does not exist
187
+ # for the requested version, or files were deleted during checking.
188
+ if ((last_modification_time is None or
189
+ last_wheel_modification_time is None) or
190
+ (last_wheel_modification_time < last_modification_time) or
191
+ not any(WHEEL_DIR.glob(f'**/{_WHEEL_PATTERN}'))):
177
192
  if not WHEEL_DIR.exists():
178
193
  WHEEL_DIR.mkdir(parents=True, exist_ok=True)
179
194
  latest_wheel = _build_sky_wheel()
@@ -1874,7 +1874,7 @@ def status(verbose: bool, refresh: bool, ip: bool, endpoints: bool,
1874
1874
  num_in_progress_jobs, msg = _handle_jobs_queue_request(
1875
1875
  managed_jobs_queue_request_id,
1876
1876
  show_all=False,
1877
- show_user=False,
1877
+ show_user=all_users,
1878
1878
  limit_num_jobs_to_show=not all,
1879
1879
  is_called_by_user=False)
1880
1880
  except KeyboardInterrupt:
@@ -1874,7 +1874,7 @@ def status(verbose: bool, refresh: bool, ip: bool, endpoints: bool,
1874
1874
  num_in_progress_jobs, msg = _handle_jobs_queue_request(
1875
1875
  managed_jobs_queue_request_id,
1876
1876
  show_all=False,
1877
- show_user=False,
1877
+ show_user=all_users,
1878
1878
  limit_num_jobs_to_show=not all,
1879
1879
  is_called_by_user=False)
1880
1880
  except KeyboardInterrupt:
@@ -9,8 +9,8 @@ import collections
9
9
  import csv
10
10
  import json
11
11
  import math
12
+ import os
12
13
  import re
13
- import sys
14
14
  from typing import Any, Dict, List
15
15
 
16
16
  from sky.adaptors import vast
@@ -38,6 +38,10 @@ def dot_get(d: dict, key: str) -> Any:
38
38
 
39
39
  if __name__ == '__main__':
40
40
  seen = set()
41
+ # InstanceList is the buffered list to emit to
42
+ # the CSV
43
+ csvList = []
44
+
41
45
  # InstanceType and gpuInfo are basically just stubs
42
46
  # so that the dictwriter is happy without weird
43
47
  # code.
@@ -47,8 +51,6 @@ if __name__ == '__main__':
47
51
  ('cpu_ram', 'MemoryGiB'), ('gpu_name', 'GpuInfo'),
48
52
  ('search.totalHour', 'Price'), ('min_bid', 'SpotPrice'),
49
53
  ('geolocation', 'Region'))
50
- writer = csv.DictWriter(sys.stdout, fieldnames=[x[1] for x in mapped_keys])
51
- writer.writeheader()
52
54
 
53
55
  # Vast has a wide variety of machines, some of
54
56
  # which will have less diskspace and network
@@ -141,7 +143,15 @@ if __name__ == '__main__':
141
143
  printstub = f'{stub}#print'
142
144
  if printstub not in seen:
143
145
  instance['SpotPrice'] = f'{maxBid:.2f}'
144
- writer.writerow(instance)
146
+ csvList.append(instance)
145
147
  seen.add(printstub)
146
148
  else:
147
149
  seen.add(stub)
150
+
151
+ os.makedirs('vast', exist_ok=True)
152
+ with open('vast/vms.csv', 'w', newline='', encoding='utf-8') as csvfile:
153
+ writer = csv.DictWriter(csvfile, fieldnames=[x[1] for x in mapped_keys])
154
+ writer.writeheader()
155
+
156
+ for instance in csvList:
157
+ writer.writerow(instance)
@@ -157,6 +157,7 @@ def launch(
157
157
  'modified_catalogs':
158
158
  service_catalog_common.get_modified_catalog_file_mounts(),
159
159
  'dashboard_setup_cmd': managed_job_constants.DASHBOARD_SETUP_CMD,
160
+ 'dashboard_user_id': common.SERVER_ID,
160
161
  **controller_utils.shared_controller_vars_to_fill(
161
162
  controller_utils.Controllers.JOBS_CONTROLLER,
162
163
  remote_user_config_path=remote_user_config_path,
@@ -305,10 +306,9 @@ def _maybe_restart_controller(
305
306
  with rich_utils.safe_status(
306
307
  ux_utils.spinner_message('Starting dashboard...')):
307
308
  runner = handle.get_command_runners()[0]
308
- user_hash = common_utils.get_user_hash()
309
309
  runner.run(
310
310
  f'export '
311
- f'{skylet_constants.USER_ID_ENV_VAR}={user_hash!r}; '
311
+ f'{skylet_constants.USER_ID_ENV_VAR}={common.SERVER_ID!r}; '
312
312
  f'{managed_job_constants.DASHBOARD_SETUP_CMD}',
313
313
  stream_logs=True,
314
314
  )
@@ -341,6 +341,8 @@ def queue(refresh: bool,
341
341
  'status': (sky.jobs.ManagedJobStatus) of the job,
342
342
  'cluster_resources': (str) resources of the cluster,
343
343
  'region': (str) region of the cluster,
344
+ 'user_name': (Optional[str]) job creator's user name,
345
+ 'user_hash': (str) job creator's user hash,
344
346
  }
345
347
  ]
346
348
  Raises:
@@ -159,6 +159,9 @@ async def dashboard(request: fastapi.Request,
159
159
  except Exception as e: # pylint: disable=broad-except
160
160
  # We catch all exceptions to gracefully handle unknown
161
161
  # errors and retry or raise an HTTPException to the client.
162
+ # Assume an exception indicates that the dashboard connection
163
+ # is stale - remove it so that a new one is created.
164
+ dashboard_utils.remove_dashboard_session(user_hash)
162
165
  msg = (
163
166
  f'Dashboard connection attempt {attempt + 1} failed with '
164
167
  f'{common_utils.format_exception(e, use_bracket=True)}')
@@ -735,6 +735,10 @@ def stream_logs_by_id(job_id: int, follow: bool = True) -> Tuple[str, int]:
735
735
  managed_job_status = managed_job_state.get_status(job_id)
736
736
  assert managed_job_status is not None, job_id
737
737
 
738
+ if not follow and not managed_job_status.is_terminal():
739
+ # The job is not in terminal state and we are not following,
740
+ # just return.
741
+ return '', exceptions.JobExitCode.SUCCEEDED
738
742
  logger.info(
739
743
  ux_utils.finishing_message(f'Managed job finished: {job_id} '
740
744
  f'(status: {managed_job_status.value}).'))
@@ -914,6 +918,10 @@ def load_managed_job_queue(payload: str) -> List[Dict[str, Any]]:
914
918
  jobs = message_utils.decode_payload(payload)
915
919
  for job in jobs:
916
920
  job['status'] = managed_job_state.ManagedJobStatus(job['status'])
921
+ if 'user_hash' in job and job['user_hash'] is not None:
922
+ # Skip jobs that do not have user_hash info.
923
+ # TODO(cooperc): Remove check before 0.12.0.
924
+ job['user_name'] = global_user_state.get_user(job['user_hash']).name
917
925
  return jobs
918
926
 
919
927
 
@@ -1043,16 +1051,21 @@ def format_job_table(
1043
1051
  def get_user_column_values(task: Dict[str, Any]) -> List[str]:
1044
1052
  user_values: List[str] = []
1045
1053
  if show_user:
1054
+ user_name = '-' # default value
1055
+
1056
+ task_user_name = task.get('user_name', None)
1057
+ task_user_hash = task.get('user_hash', None)
1058
+ if task_user_name is not None:
1059
+ user_name = task_user_name
1060
+ elif task_user_hash is not None:
1061
+ # Fallback to the user hash if we are somehow missing the name.
1062
+ user_name = task_user_hash
1046
1063
 
1047
- user_name = '-'
1048
- user_hash = task.get('user_hash', None)
1049
- if user_hash:
1050
- user = global_user_state.get_user(user_hash)
1051
- user_name = user.name if user.name else '-'
1052
1064
  user_values = [user_name]
1053
1065
 
1054
1066
  if show_all:
1055
- user_values.append(user_hash if user_hash is not None else '-')
1067
+ user_values.append(
1068
+ task_user_hash if task_user_hash is not None else '-')
1056
1069
 
1057
1070
  return user_values
1058
1071
 
@@ -45,6 +45,7 @@ from sky.utils import admin_policy_utils
45
45
  from sky.utils import common as common_lib
46
46
  from sky.utils import common_utils
47
47
  from sky.utils import dag_utils
48
+ from sky.utils import env_options
48
49
  from sky.utils import status_lib
49
50
 
50
51
  # pylint: disable=ungrouped-imports
@@ -65,6 +66,10 @@ def _add_timestamp_prefix_for_server_logs() -> None:
65
66
  # Add date prefix to the log message printed by loggers under
66
67
  # server.
67
68
  stream_handler = logging.StreamHandler(sys.stdout)
69
+ if env_options.Options.SHOW_DEBUG_INFO.get():
70
+ stream_handler.setLevel(logging.DEBUG)
71
+ else:
72
+ stream_handler.setLevel(logging.INFO)
68
73
  stream_handler.flush = sys.stdout.flush # type: ignore
69
74
  stream_handler.setFormatter(sky_logging.FORMATTER)
70
75
  server_logger.addHandler(stream_handler)
@@ -39,9 +39,7 @@ setup: |
39
39
  After=network.target
40
40
 
41
41
  [Service]
42
- Environment="PATH={{ sky_python_env_path }}:\$PATH"
43
- Environment="SKYPILOT_USER_ID={{controller_envs.SKYPILOT_USER_ID}}"
44
- Environment="SKYPILOT_USER={{controller_envs.SKYPILOT_USER}}"
42
+ Environment="SKYPILOT_USER_ID={{ dashboard_user_id }}"
45
43
  Restart=always
46
44
  StandardOutput=append:/home/$USER/.sky/job-dashboard.log
47
45
  StandardError=append:/home/$USER/.sky/job-dashboard.log
@@ -51,6 +49,7 @@ setup: |
51
49
  WantedBy=default.target
52
50
  EOF
53
51
 
52
+ export SKYPILOT_USER_ID="{{ dashboard_user_id }}"
54
53
  {{ dashboard_setup_cmd }}
55
54
 
56
55
  run: |
@@ -531,8 +531,8 @@ class SSHCommandRunner(CommandRunner):
531
531
  if port_forward is not None:
532
532
  for local, remote in port_forward:
533
533
  logger.info(
534
- f'Forwarding port {local} to port {remote} on localhost.')
535
- ssh += ['-NL', f'{remote}:localhost:{local}']
534
+ f'Forwarding local port {local} to remote port {remote}.')
535
+ ssh += ['-NL', f'{local}:localhost:{remote}']
536
536
  if self._docker_ssh_proxy_command is not None:
537
537
  docker_ssh_proxy_command = self._docker_ssh_proxy_command(ssh)
538
538
  else:
@@ -230,15 +230,53 @@ def decode_rich_status(
230
230
  decoding_status = None
231
231
  try:
232
232
  last_line = ''
233
+ # Buffer to store incomplete UTF-8 bytes between chunks
234
+ undecoded_buffer = b''
235
+
233
236
  # Iterate over the response content in chunks. We do not use iter_lines
234
237
  # because it will strip the trailing newline characters, causing the
235
238
  # progress bar ending with `\r` becomes a pyramid.
236
- for encoded_msg in response.iter_content(chunk_size=None):
237
- if encoded_msg is None:
239
+ for chunk in response.iter_content(chunk_size=None):
240
+ if chunk is None:
238
241
  return
239
- encoded_msg = encoded_msg.decode('utf-8')
242
+
243
+ # Append the new chunk to any leftover bytes from previous iteration
244
+ current_bytes = undecoded_buffer + chunk
245
+ undecoded_buffer = b''
246
+
247
+ # Try to decode the combined bytes
248
+ try:
249
+ encoded_msg = current_bytes.decode('utf-8')
250
+ except UnicodeDecodeError as e:
251
+ # Check if this is potentially an incomplete sequence at the end
252
+ if e.start > 0:
253
+ # Decode the valid part
254
+ encoded_msg = current_bytes[:e.start].decode('utf-8')
255
+
256
+ # Check if the remaining bytes are likely a partial char
257
+ # or actually invalid UTF-8
258
+ remaining_bytes = current_bytes[e.start:]
259
+ if len(remaining_bytes) < 4: # Max UTF-8 char is 4 bytes
260
+ # Likely incomplete - save for next chunk
261
+ undecoded_buffer = remaining_bytes
262
+ else:
263
+ # Likely invalid - replace with replacement character
264
+ encoded_msg += remaining_bytes.decode('utf-8',
265
+ errors='replace')
266
+ undecoded_buffer = b''
267
+ else:
268
+ # Error at the very beginning of the buffer - invalid UTF-8
269
+ encoded_msg = current_bytes.decode('utf-8',
270
+ errors='replace')
271
+ undecoded_buffer = b''
272
+
240
273
  lines = encoded_msg.splitlines(keepends=True)
241
274
 
275
+ # Skip processing if lines is empty to avoid IndexError
276
+ if not lines:
277
+ continue
278
+
279
+ # Append any leftover text from previous chunk to first line
242
280
  lines[0] = last_line + lines[0]
243
281
  last_line = lines[-1]
244
282
  # If the last line is not ended with `\r` or `\n` (with ending
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20250305
3
+ Version: 1.0.0.dev20250307
4
4
  Summary: SkyPilot: An intercloud broker for the clouds
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0