skypilot-nightly 1.0.0.dev20250222__py3-none-any.whl → 1.0.0.dev20250224__py3-none-any.whl

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.
sky/__init__.py CHANGED
@@ -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 = '48af6a074e3f260c5dd30570a84851ec92abca49'
8
+ _SKYPILOT_COMMIT_SHA = '73e95ab79bf75923963a93733e54c100d0567e02'
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.dev20250222'
38
+ __version__ = '1.0.0.dev20250224'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
sky/cli.py CHANGED
@@ -2027,7 +2027,7 @@ def queue(clusters: List[str], skip_finished: bool, all_users: bool):
2027
2027
  clusters = [cluster['name'] for cluster in cluster_records]
2028
2028
 
2029
2029
  unsupported_clusters = []
2030
- logger.info(f'Fetching job queue for {clusters}')
2030
+ logger.info(f'Fetching job queue for: {", ".join(clusters)}')
2031
2031
  job_tables = {}
2032
2032
 
2033
2033
  def _get_job_queue(cluster):
@@ -4585,6 +4585,7 @@ def serve_status(verbose: bool, endpoint: bool, service_names: List[str]):
4585
4585
  type=int,
4586
4586
  help='Tear down a given replica')
4587
4587
  @_add_click_options(_COMMON_OPTIONS)
4588
+ @usage_lib.entrypoint
4588
4589
  # pylint: disable=redefined-builtin
4589
4590
  def serve_down(
4590
4591
  service_names: List[str],
sky/client/cli.py CHANGED
@@ -2027,7 +2027,7 @@ def queue(clusters: List[str], skip_finished: bool, all_users: bool):
2027
2027
  clusters = [cluster['name'] for cluster in cluster_records]
2028
2028
 
2029
2029
  unsupported_clusters = []
2030
- logger.info(f'Fetching job queue for {clusters}')
2030
+ logger.info(f'Fetching job queue for: {", ".join(clusters)}')
2031
2031
  job_tables = {}
2032
2032
 
2033
2033
  def _get_job_queue(cluster):
@@ -4585,6 +4585,7 @@ def serve_status(verbose: bool, endpoint: bool, service_names: List[str]):
4585
4585
  type=int,
4586
4586
  help='Tear down a given replica')
4587
4587
  @_add_click_options(_COMMON_OPTIONS)
4588
+ @usage_lib.entrypoint
4588
4589
  # pylint: disable=redefined-builtin
4589
4590
  def serve_down(
4590
4591
  service_names: List[str],
sky/client/sdk.py CHANGED
@@ -321,8 +321,7 @@ def launch(
321
321
  many minute of idleness, i.e., no running or pending jobs in the
322
322
  cluster's job queue. Idleness gets reset whenever setting-up/
323
323
  running/pending jobs are found in the job queue. Setting this
324
- flag is equivalent to running
325
- ``sky.launch(..., detach_run=True, ...)`` and then
324
+ flag is equivalent to running ``sky.launch()`` and then
326
325
  ``sky.autostop(idle_minutes=<minutes>)``. If not set, the cluster
327
326
  will not be autostopped.
328
327
  dryrun: if True, do not actually launch the cluster.
@@ -677,8 +676,7 @@ def start(
677
676
  many minute of idleness, i.e., no running or pending jobs in the
678
677
  cluster's job queue. Idleness gets reset whenever setting-up/
679
678
  running/pending jobs are found in the job queue. Setting this
680
- flag is equivalent to running
681
- ``sky.launch(..., detach_run=True, ...)`` and then
679
+ flag is equivalent to running ``sky.launch()`` and then
682
680
  ``sky.autostop(idle_minutes=<minutes>)``. If not set, the
683
681
  cluster will not be autostopped.
684
682
  retry_until_up: whether to retry launching the cluster until it is
@@ -889,7 +887,7 @@ def autostop(
889
887
  @usage_lib.entrypoint
890
888
  @server_common.check_server_healthy_or_start
891
889
  @annotations.client_api
892
- def queue(cluster_name: List[str],
890
+ def queue(cluster_name: str,
893
891
  skip_finished: bool = False,
894
892
  all_users: bool = False) -> server_common.RequestId:
895
893
  """Gets the job queue of a cluster.
sky/core.py CHANGED
@@ -373,8 +373,7 @@ def start(
373
373
  many minute of idleness, i.e., no running or pending jobs in the
374
374
  cluster's job queue. Idleness gets reset whenever setting-up/
375
375
  running/pending jobs are found in the job queue. Setting this
376
- flag is equivalent to running
377
- ``sky.launch(..., detach_run=True, ...)`` and then
376
+ flag is equivalent to running ``sky.launch()`` and then
378
377
  ``sky.autostop(idle_minutes=<minutes>)``. If not set, the
379
378
  cluster will not be autostopped.
380
379
  retry_until_up: whether to retry launching the cluster until it is
sky/jobs/server/server.py CHANGED
@@ -115,7 +115,8 @@ async def dashboard(request: fastapi.Request,
115
115
  # Find the port for the dashboard of the user
116
116
  os.environ[constants.USER_ID_ENV_VAR] = user_hash
117
117
  server_common.reload_for_new_request(client_entrypoint=None,
118
- client_command=None)
118
+ client_command=None,
119
+ using_remote_api_server=False)
119
120
  logger.info(f'Starting dashboard for user hash: {user_hash}')
120
121
 
121
122
  with dashboard_utils.get_dashboard_lock_for_user(user_hash):
sky/server/common.py CHANGED
@@ -400,20 +400,25 @@ def request_body_to_params(body: pydantic.BaseModel) -> Dict[str, Any]:
400
400
 
401
401
 
402
402
  def reload_for_new_request(client_entrypoint: Optional[str],
403
- client_command: Optional[str]):
403
+ client_command: Optional[str],
404
+ using_remote_api_server: bool):
404
405
  """Reload modules, global variables, and usage message for a new request."""
405
406
  # Reset the client entrypoint and command for the usage message.
406
- common_utils.set_client_entrypoint_and_command(
407
+ common_utils.set_client_status(
407
408
  client_entrypoint=client_entrypoint,
408
409
  client_command=client_command,
410
+ using_remote_api_server=using_remote_api_server,
409
411
  )
410
- # We need to reset usage message, so that the message is up-to-date with the
411
- # latest information in the context, e.g. client entrypoint and run id.
412
- usage_lib.messages.reset(usage_lib.MessageType.USAGE)
413
412
 
413
+ # Clear cache should be called before reload_logger and usage reset,
414
+ # otherwise, the latest env var will not be used.
414
415
  for func in annotations.FUNCTIONS_NEED_RELOAD_CACHE:
415
416
  func.cache_clear()
416
417
 
418
+ # We need to reset usage message, so that the message is up-to-date with the
419
+ # latest information in the context, e.g. client entrypoint and run id.
420
+ usage_lib.messages.reset(usage_lib.MessageType.USAGE)
421
+
417
422
  # Make sure the logger takes the new environment variables. This is
418
423
  # necessary because the logger is initialized before the environment
419
424
  # variables are set, such as SKYPILOT_DEBUG.
@@ -178,7 +178,8 @@ def override_request_env_and_config(
178
178
  os.environ['CLICOLOR_FORCE'] = '1'
179
179
  server_common.reload_for_new_request(
180
180
  client_entrypoint=request_body.entrypoint,
181
- client_command=request_body.entrypoint_command)
181
+ client_command=request_body.entrypoint_command,
182
+ using_remote_api_server=request_body.using_remote_api_server)
182
183
  try:
183
184
  with skypilot_config.override_skypilot_config(
184
185
  request_body.override_skypilot_config):
@@ -255,6 +256,7 @@ def _request_execution_wrapper(request_id: str,
255
256
  try:
256
257
  with override_request_env_and_config(request_body):
257
258
  return_value = func(**request_body.to_kwargs())
259
+ f.flush()
258
260
  except KeyboardInterrupt:
259
261
  logger.info(f'Request {request_id} cancelled by user')
260
262
  _restore_output(original_stdout, original_stderr)
@@ -37,7 +37,7 @@ def request_body_env_vars() -> dict:
37
37
  env_vars[constants.USER_ENV_VAR] = os.getenv(constants.USER_ENV_VAR,
38
38
  getpass.getuser())
39
39
  env_vars[
40
- usage_constants.USAGE_RUN_ID_ENV_VAR] = common_utils.get_usage_run_id()
40
+ usage_constants.USAGE_RUN_ID_ENV_VAR] = usage_lib.messages.usage.run_id
41
41
  # Remove the path to config file, as the config content is included in the
42
42
  # request body and will be merged with the config on the server side.
43
43
  env_vars.pop(skypilot_config.ENV_VAR_SKYPILOT_CONFIG, None)
@@ -70,6 +70,7 @@ class RequestBody(pydantic.BaseModel):
70
70
  env_vars: Dict[str, str] = {}
71
71
  entrypoint: str = ''
72
72
  entrypoint_command: str = ''
73
+ using_remote_api_server: bool = False
73
74
  override_skypilot_config: Optional[Dict[str, Any]] = {}
74
75
 
75
76
  def __init__(self, **data):
@@ -80,6 +81,8 @@ class RequestBody(pydantic.BaseModel):
80
81
  data['entrypoint'] = data.get('entrypoint', usage_lib_entrypoint)
81
82
  data['entrypoint_command'] = data.get(
82
83
  'entrypoint_command', common_utils.get_pretty_entrypoint_cmd())
84
+ data['using_remote_api_server'] = data.get(
85
+ 'using_remote_api_server', not common.is_api_server_local())
83
86
  data['override_skypilot_config'] = data.get(
84
87
  'override_skypilot_config',
85
88
  get_override_skypilot_config_from_client())
@@ -95,6 +98,7 @@ class RequestBody(pydantic.BaseModel):
95
98
  kwargs.pop('env_vars')
96
99
  kwargs.pop('entrypoint')
97
100
  kwargs.pop('entrypoint_command')
101
+ kwargs.pop('using_remote_api_server')
98
102
  kwargs.pop('override_skypilot_config')
99
103
  return kwargs
100
104
 
sky/server/server.py CHANGED
@@ -41,6 +41,7 @@ from sky.server.requests import executor
41
41
  from sky.server.requests import payloads
42
42
  from sky.server.requests import requests as requests_lib
43
43
  from sky.skylet import constants
44
+ from sky.usage import usage_lib
44
45
  from sky.utils import common as common_lib
45
46
  from sky.utils import common_utils
46
47
  from sky.utils import dag_utils
@@ -1076,6 +1077,10 @@ if __name__ == '__main__':
1076
1077
  parser.add_argument('--port', default=46580, type=int)
1077
1078
  parser.add_argument('--deploy', action='store_true')
1078
1079
  cmd_args = parser.parse_args()
1080
+ # Show the privacy policy if it is not already shown. We place it here so
1081
+ # that it is shown only when the API server is started.
1082
+ usage_lib.maybe_show_privacy_policy()
1083
+
1079
1084
  num_workers = None
1080
1085
  if cmd_args.deploy:
1081
1086
  num_workers = os.cpu_count()
sky/skylet/constants.py CHANGED
@@ -143,7 +143,8 @@ DISABLE_GPU_ECC_COMMAND = (
143
143
  # AWS's Deep Learning AMI's default conda environment.
144
144
  CONDA_INSTALLATION_COMMANDS = (
145
145
  'which conda > /dev/null 2>&1 || '
146
- '{ curl https://repo.anaconda.com/miniconda/Miniconda3-py310_23.11.0-2-Linux-x86_64.sh -o Miniconda3-Linux-x86_64.sh && ' # pylint: disable=line-too-long
146
+ '{ '
147
+ 'curl https://repo.anaconda.com/miniconda/Miniconda3-py310_23.11.0-2-Linux-x86_64.sh -o Miniconda3-Linux-x86_64.sh && ' # pylint: disable=line-too-long
147
148
  # We do not use && for installation of conda and the following init commands
148
149
  # because for some images, conda is already installed, but not initialized.
149
150
  # In this case, we need to initialize conda and set auto_activate_base to
@@ -152,18 +153,10 @@ CONDA_INSTALLATION_COMMANDS = (
152
153
  'eval "$(~/miniconda3/bin/conda shell.bash hook)" && conda init && '
153
154
  # Caller should replace {conda_auto_activate} with either true or false.
154
155
  'conda config --set auto_activate_base {conda_auto_activate} && '
155
- 'conda activate base; }; }; '
156
+ 'conda activate base; }; '
157
+ '}; '
156
158
  'grep "# >>> conda initialize >>>" ~/.bashrc || '
157
159
  '{ conda init && source ~/.bashrc; };'
158
- # If Python version is larger then equal to 3.12, create a new conda env
159
- # with Python 3.10.
160
- # We don't use a separate conda env for SkyPilot dependencies because it is
161
- # costly to create a new conda env, and venv should be a lightweight and
162
- # faster alternative when the python version satisfies the requirement.
163
- '[[ $(python3 --version | cut -d " " -f 2 | cut -d "." -f 2) -ge 12 ]] && '
164
- 'echo "Creating conda env with Python 3.10" && '
165
- f'conda create -y -n {SKY_REMOTE_PYTHON_ENV_NAME} python=3.10 && '
166
- f'conda activate {SKY_REMOTE_PYTHON_ENV_NAME};'
167
160
  # Install uv for venv management and pip installation.
168
161
  f'{SKY_UV_INSTALL_CMD};'
169
162
  # Create a separate conda environment for SkyPilot dependencies.
@@ -173,7 +166,14 @@ CONDA_INSTALLATION_COMMANDS = (
173
166
  # Reference: https://github.com/skypilot-org/skypilot/issues/4097
174
167
  # --seed will include pip and setuptools, which are present in venvs created
175
168
  # with python -m venv.
176
- f'{SKY_UV_CMD} venv --seed {SKY_REMOTE_PYTHON_ENV};'
169
+ # --python 3.10 will ensure the specific python version is downloaded
170
+ # and installed in the venv. SkyPilot requires Python<3.12, and 3.10 is
171
+ # preferred. We have to always pass in `--python` to avoid the issue when a
172
+ # user has `.python_version` file in their home directory, which will cause
173
+ # uv to use the python version specified in the `.python_version` file.
174
+ # TODO(zhwu): consider adding --python-preference only-managed to avoid
175
+ # using the system python, if a user report such issue.
176
+ f'{SKY_UV_CMD} venv --seed {SKY_REMOTE_PYTHON_ENV} --python 3.10;'
177
177
  f'echo "$(echo {SKY_REMOTE_PYTHON_ENV})/bin/python" > {SKY_PYTHON_PATH_FILE};'
178
178
  )
179
179
 
sky/usage/usage_lib.py CHANGED
@@ -10,8 +10,6 @@ import traceback
10
10
  import typing
11
11
  from typing import Any, Callable, Dict, List, Optional, Union
12
12
 
13
- import click
14
-
15
13
  import sky
16
14
  from sky import sky_logging
17
15
  from sky.adaptors import common as adaptors_common
@@ -167,6 +165,10 @@ class UsageMessageToReport(MessageToReport):
167
165
  self.exception: Optional[str] = None # entrypoint_context
168
166
  self.stacktrace: Optional[str] = None # entrypoint_context
169
167
 
168
+ # Whether API server is deployed remotely.
169
+ self.using_remote_api_server: bool = (
170
+ common_utils.get_using_remote_api_server())
171
+
170
172
  def update_entrypoint(self, msg: str):
171
173
  if self.client_entrypoint is None:
172
174
  self.client_entrypoint = common_utils.get_current_client_entrypoint(
@@ -215,9 +217,11 @@ class UsageMessageToReport(MessageToReport):
215
217
  def update_ray_yaml(self, yaml_config_or_path: Union[Dict, str]):
216
218
  if self.ray_yamls is None:
217
219
  self.ray_yamls = []
218
- self.ray_yamls.extend(
219
- prepare_json_from_yaml_config(yaml_config_or_path))
220
- self.num_tried_regions = len(self.ray_yamls)
220
+ if self.num_tried_regions is None:
221
+ self.num_tried_regions = 0
222
+ # Only keep the latest ray yaml to reduce the size of the message.
223
+ self.ray_yamls = prepare_json_from_yaml_config(yaml_config_or_path)
224
+ self.num_tried_regions += 1
221
225
 
222
226
  def update_cluster_name(self, cluster_name: Union[List[str], str]):
223
227
  if isinstance(cluster_name, str):
@@ -465,6 +469,20 @@ def send_heartbeat(interval_seconds: int = 600):
465
469
  _send_to_loki(MessageType.HEARTBEAT)
466
470
 
467
471
 
472
+ def maybe_show_privacy_policy():
473
+ """Show the privacy policy if it is not already shown."""
474
+ # Show the policy message only when the entrypoint is used.
475
+ # An indicator for PRIVACY_POLICY has already been shown.
476
+ privacy_policy_indicator = os.path.expanduser(constants.PRIVACY_POLICY_PATH)
477
+ if not env_options.Options.DISABLE_LOGGING.get():
478
+ os.makedirs(os.path.dirname(privacy_policy_indicator), exist_ok=True)
479
+ try:
480
+ with open(privacy_policy_indicator, 'x', encoding='utf-8'):
481
+ logger.info(constants.USAGE_POLICY_MESSAGE)
482
+ except FileExistsError:
483
+ pass
484
+
485
+
468
486
  @contextlib.contextmanager
469
487
  def entrypoint_context(name: str, fallback: bool = False):
470
488
  """Context manager for entrypoint.
@@ -476,17 +494,6 @@ def entrypoint_context(name: str, fallback: bool = False):
476
494
  additional entrypoint_context with fallback=True can be used to wrap
477
495
  the global entrypoint to catch any exceptions that are not caught.
478
496
  """
479
- # Show the policy message only when the entrypoint is used.
480
- # An indicator for PRIVACY_POLICY has already been shown.
481
- privacy_policy_indicator = os.path.expanduser(constants.PRIVACY_POLICY_PATH)
482
- if not env_options.Options.DISABLE_LOGGING.get():
483
- os.makedirs(os.path.dirname(privacy_policy_indicator), exist_ok=True)
484
- try:
485
- with open(privacy_policy_indicator, 'x', encoding='utf-8'):
486
- click.secho(constants.USAGE_POLICY_MESSAGE, fg='yellow')
487
- except FileExistsError:
488
- pass
489
-
490
497
  is_entry = messages.usage.entrypoint is None
491
498
  if is_entry and not fallback:
492
499
  for message in messages.values():
sky/utils/common_utils.py CHANGED
@@ -247,18 +247,23 @@ class Backoff:
247
247
 
248
248
  _current_command: Optional[str] = None
249
249
  _current_client_entrypoint: Optional[str] = None
250
+ _using_remote_api_server: Optional[bool] = None
250
251
 
251
252
 
252
- def set_client_entrypoint_and_command(client_entrypoint: Optional[str],
253
- client_command: Optional[str]):
253
+ def set_client_status(client_entrypoint: Optional[str],
254
+ client_command: Optional[str],
255
+ using_remote_api_server: bool):
254
256
  """Override the current client entrypoint and command.
255
257
 
256
258
  This is useful when we are on the SkyPilot API server side and we have a
257
259
  client entrypoint and command from the client.
258
260
  """
259
- global _current_command, _current_client_entrypoint
261
+ global _current_command
262
+ global _current_client_entrypoint
263
+ global _using_remote_api_server
260
264
  _current_command = client_command
261
265
  _current_client_entrypoint = client_entrypoint
266
+ _using_remote_api_server = using_remote_api_server
262
267
 
263
268
 
264
269
  def get_current_command() -> str:
@@ -284,6 +289,17 @@ def get_current_client_entrypoint(server_entrypoint: str) -> str:
284
289
  return server_entrypoint
285
290
 
286
291
 
292
+ def get_using_remote_api_server() -> bool:
293
+ """Returns whether the API server is remote."""
294
+ if _using_remote_api_server is not None:
295
+ return _using_remote_api_server
296
+ # This gets the right status for the local client.
297
+ # TODO(zhwu): This is to prevent circular import. We should refactor this.
298
+ # pylint: disable=import-outside-toplevel
299
+ from sky.server import common as server_common
300
+ return not server_common.is_api_server_local()
301
+
302
+
287
303
  def get_pretty_entrypoint_cmd() -> str:
288
304
  """Returns the prettified entry point of this process (sys.argv).
289
305
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20250222
3
+ Version: 1.0.0.dev20250224
4
4
  Summary: SkyPilot: An intercloud broker for the clouds
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -1,10 +1,10 @@
1
- sky/__init__.py,sha256=7iBU5pyam97MN91pMk5JoqnfW9oEE8baGgEjTfdQNns,6428
1
+ sky/__init__.py,sha256=8zed0-GYhvWXZwZFaUANPausBHOuBBm3jZpWo9MJsmE,6428
2
2
  sky/admin_policy.py,sha256=hPo02f_A32gCqhUueF0QYy1fMSSKqRwYEg_9FxScN_s,3248
3
3
  sky/authentication.py,sha256=hCEqi77nprQEg3ktfRL51xiiw16zwZOmFEDB_Z7fWVU,22384
4
4
  sky/check.py,sha256=NDKx_Zm7YRxPjMv82wz3ESLnGIPljaACyqVdVNM0PzY,11258
5
- sky/cli.py,sha256=iwYBgEt3tgsYmOIp-ivPmL2FHoalvhH4Ng--C31ubws,218201
5
+ sky/cli.py,sha256=wTej1bo7hZ-qWfjd1Fn392dLU53Jph7cl0ZnCKD_Nio,218235
6
6
  sky/cloud_stores.py,sha256=-95XIqi_ouo7hvoN5mQNP6bGm07MyF6Yk-YP4Txb5wg,24034
7
- sky/core.py,sha256=gw_TrQOxz28sLAJJq6ajPnlRlrKQ2G1DtqLuntMejFU,45508
7
+ sky/core.py,sha256=X83hdpPTiWyEJLamrguCd03PUjkRiGgqTFfEBEQkzWc,45471
8
8
  sky/dag.py,sha256=Yl7Ry26Vql5cv4YMz8g9kOUgtoCihJnw7c8NgZYakMY,3242
9
9
  sky/exceptions.py,sha256=cGepNlBkjjgvi3fazc3DbdYLKhhF_sHCuGX0-hu_QMQ,13685
10
10
  sky/execution.py,sha256=0M4RTEzWn-B9oz221XdZOIGH12XOACmNq0j-WGUT_No,28023
@@ -43,9 +43,9 @@ sky/benchmark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
43
  sky/benchmark/benchmark_state.py,sha256=X8CXmuU9KgsDRhKedhFgjeRMUFWtQsjFs1qECvPG2yg,8723
44
44
  sky/benchmark/benchmark_utils.py,sha256=o4RymqSceq5mLEZL0upQM6NVEzJJQzj9s9tTm49uUTc,26365
45
45
  sky/client/__init__.py,sha256=pz6xvVSd9X-gwqbsDL0E9QOojYqM0KAD0j-NCyCIF1k,38
46
- sky/client/cli.py,sha256=iwYBgEt3tgsYmOIp-ivPmL2FHoalvhH4Ng--C31ubws,218201
46
+ sky/client/cli.py,sha256=wTej1bo7hZ-qWfjd1Fn392dLU53Jph7cl0ZnCKD_Nio,218235
47
47
  sky/client/common.py,sha256=axDic7WOG1e78SdFm5XIwdhX7YNvf3g4k7INrsW3X4s,14611
48
- sky/client/sdk.py,sha256=XYjiVnxZFcNYHgWEHerSqpHyMLLg0HHZPUIklUnAyWw,67068
48
+ sky/client/sdk.py,sha256=U4v8Khu1lf1oUoBuJUhIFnjsFhYM9x8XcKsnVRMtihI,66990
49
49
  sky/clouds/__init__.py,sha256=OW6mJ-9hpJSBORCgt2LippLQEYZHNfnBW1mooRNNvxo,1416
50
50
  sky/clouds/aws.py,sha256=J8tczaTDL239UowN9tUlhI92SeHw01wtFucSckvG63w,54112
51
51
  sky/clouds/azure.py,sha256=bawEw6wOLAVyrjxMD-4UjLCuMj1H5_jH8qggpfZYS54,31703
@@ -121,7 +121,7 @@ sky/jobs/dashboard/templates/index.html,sha256=tz95q8O2pF7IvfY6yv0rnPyhj4DX8WX4R
121
121
  sky/jobs/server/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
122
122
  sky/jobs/server/core.py,sha256=r9wrwVHrmuqgYAMoEEp4UfCLw8eYaD2RHGIBViHy9cc,23985
123
123
  sky/jobs/server/dashboard_utils.py,sha256=2Mbx40W1pQqPEPHsSDbHeaF0j5cgyKy-_A9Owdwp_AQ,2315
124
- sky/jobs/server/server.py,sha256=s3wULAh4u4drdIz2VA8l0HiXxHWdUzsBDYCstzU0Vxs,7411
124
+ sky/jobs/server/server.py,sha256=XvAwFE6pROoffrC3RZ8IwYoMDguCoGurNVqjncFRJTU,7483
125
125
  sky/provision/__init__.py,sha256=LzOo5LjkRXwSf29dUqN14YbjzQu3liXLQcmweTeZ4dE,6457
126
126
  sky/provision/common.py,sha256=E8AlSUFcn0FYQq1erNmoVfMAdsF9tP2yxfyk-9PLvQU,10286
127
127
  sky/provision/constants.py,sha256=oc_XDUkcoLQ_lwDy5yMeMSWviKS0j0s1c0pjlvpNeWY,800
@@ -228,14 +228,14 @@ sky/serve/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
228
228
  sky/serve/server/core.py,sha256=pRvFadEIH_WTUkTtSmuFoPBP4JFq8Obt68ifi9DWuog,36865
229
229
  sky/serve/server/server.py,sha256=gQGVU9nHYdGbaLhGjIUNIYn4xwKjRASRJkiiTL5AI1Y,3283
230
230
  sky/server/__init__.py,sha256=MPPBqFzXz6Jv5QSk6td_IcvnfXfNErDZVcizu4MLRow,27
231
- sky/server/common.py,sha256=aCLz5LcSmNO0xISAGhtGs-YF2qzIwgIYKgDlIf6DFyU,17333
231
+ sky/server/common.py,sha256=0LphKrp89_sGI-xDakK2uEqI-zKuvbc4OTcuLCiKfmQ,17560
232
232
  sky/server/constants.py,sha256=SqhWJMassFyvWAJn2UJHvuA_0_C6f5vngMzZ2KYLsKw,770
233
- sky/server/server.py,sha256=0gcIn3jr_4DkHpBJYdNq--uPo9Im8bn2ftxgd8mBMcU,42225
233
+ sky/server/server.py,sha256=4ipJG67sBFWylNYdPD1FUhth36yX23XbcROXipRSZsw,42438
234
234
  sky/server/stream_utils.py,sha256=-3IX1YCgxAFfcvQIV0TCvOn1wbRLWovAx3ckCrsExWU,5651
235
235
  sky/server/html/log.html,sha256=TSGZktua9Ysl_ysg3w60rjxAxhH61AJnsYDHdtqrjmI,6929
236
236
  sky/server/requests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
237
- sky/server/requests/executor.py,sha256=NxVB0aFA05GddXDdt89wEwEYyJcIIrsQxE2wowklhUI,19597
238
- sky/server/requests/payloads.py,sha256=PeEkqQoTO3ellelkFX5yzPKbPkDV-NfVXkxHndYlrjE,15769
237
+ sky/server/requests/executor.py,sha256=TWX2jYkkstgRyRkWNE19Mgw4_CfzadebOW30iTGdK_Q,19693
238
+ sky/server/requests/payloads.py,sha256=YfZyHI1vYil1m_nT6GwrhAfslheBOjECyPFkmXsZ7pU,15982
239
239
  sky/server/requests/requests.py,sha256=aMdjiK5kjSYP36pxdXFU6qgKOXcOmtViHbFm3V8Dvf8,19590
240
240
  sky/server/requests/queues/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
241
241
  sky/server/requests/queues/mp_queue.py,sha256=_7AFas__0b1L8e7Bwy4lu0VYU18R85YwMlDHPhQCfh0,2998
@@ -250,7 +250,7 @@ sky/skylet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
250
250
  sky/skylet/attempt_skylet.py,sha256=GZ6ITjjA0m-da3IxXXfoHR6n4pjp3X3TOXUqVvSrV0k,2136
251
251
  sky/skylet/autostop_lib.py,sha256=W4CtMira6QnmYToFT5kYTGjNPRZNC-bZPfsF1k3tluE,4480
252
252
  sky/skylet/configs.py,sha256=UtnpmEL0F9hH6PSjhsps7xgjGZ6qzPOfW1p2yj9tSng,1887
253
- sky/skylet/constants.py,sha256=eXT0Ule1N6ZYRGjJmC_idUAzZH3ymZ1JSzDL3USwTAE,17963
253
+ sky/skylet/constants.py,sha256=WB7bKWvMkgyEf9tAzfKwtM8eYR9OEgJtqwgBT3BEoEM,17923
254
254
  sky/skylet/events.py,sha256=pnV3ZiwWhXqTHpU5B5Y9Xwam_7FQDI6IrxgSx7X_NVA,12743
255
255
  sky/skylet/job_lib.py,sha256=8W6GM2zxqGMIoD3AGiXcKsK_7-qouuTojiVL6upSeoA,43728
256
256
  sky/skylet/log_lib.py,sha256=DzOrgY8C7RdEMLC9O9kEKV-iLMb9wVMPSnDha8eMx28,20900
@@ -301,7 +301,7 @@ sky/templates/vsphere-ray.yml.j2,sha256=NWU3kksvESEh5OxeWsoJ0r4jvskQyassfiBatj0q
301
301
  sky/templates/websocket_proxy.py,sha256=vm8mnwSOZC2pGdeCNn3WGX7u16xenDv08xTcUAR3CNc,2138
302
302
  sky/usage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
303
303
  sky/usage/constants.py,sha256=mFrTgrFIfFf4kpcl-M1VDU7_moD5_mJazUJTUDrybms,1102
304
- sky/usage/usage_lib.py,sha256=F3S7eu4UYg9OjdG14l-yBUAl3fnwwC9vvjgE1s8BKXY,21055
304
+ sky/usage/usage_lib.py,sha256=rInJW2kj2O1wwXUZAbeVVLhnoa7T_xBHqDhbBBrUqfI,21400
305
305
  sky/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
306
306
  sky/utils/accelerator_registry.py,sha256=GjOgqT0s0n5hT-wcpCcTRu74rnKb8LwQ6MJl6dKL-1I,3905
307
307
  sky/utils/admin_policy_utils.py,sha256=y_do0VH6qh163EqSuRW1uGeKvTnJhiYNrHUs77uoOcA,6013
@@ -310,7 +310,7 @@ sky/utils/cluster_utils.py,sha256=s6DFRXktv6_gF_DnwDEXJ7CniifHp8CAPeGciRCbXgI,14
310
310
  sky/utils/command_runner.py,sha256=-7vxLvwZnTvYMQ_nScmuQWY6ZvQYv69yvvIp2uOaOqU,39063
311
311
  sky/utils/command_runner.pyi,sha256=mJOzCgcYZAfHwnY_6Wf1YwlTEJGb9ihzc2f0rE0Kw98,7751
312
312
  sky/utils/common.py,sha256=P4oVXFATUYgkruHX92cN12SJBtfb8DiOOYZtbN1kvP0,1927
313
- sky/utils/common_utils.py,sha256=-O0GthIockeJy8LlA4heVYYtaUdQwNA-5mFMqHajRf8,27457
313
+ sky/utils/common_utils.py,sha256=SChX042UH_Beoq0SJiyw0kRpCA0faycPRaqXEF2GNZ4,28091
314
314
  sky/utils/config_utils.py,sha256=VQ2E3DQ2XysD-kul-diSrxn_pXWsDMfKAev91OiJQ1Q,9041
315
315
  sky/utils/control_master_utils.py,sha256=iD4M0onjYOdZ2RuxjwMBl4KhafHXJzuHjvqlBUnu-VE,1450
316
316
  sky/utils/controller_utils.py,sha256=Wth_esy2NX9nco-MK01bgQMIChAYky0Uq4T35jQkXxY,48472
@@ -344,9 +344,9 @@ sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml,sha256=VLKT2KKimZu1GDg_4AIlIt488
344
344
  sky/utils/kubernetes/kubernetes_deploy_utils.py,sha256=iAjfyPclOs8qlALACcfxLpRAO9CZ-h16leFqXZ6tNaY,10096
345
345
  sky/utils/kubernetes/rsync_helper.sh,sha256=h4YwrPFf9727CACnMJvF3EyK_0OeOYKKt4su_daKekw,1256
346
346
  sky/utils/kubernetes/ssh_jump_lifecycle_manager.py,sha256=Kq1MDygF2IxFmu9FXpCxqucXLmeUrvs6OtRij6XTQbo,6554
347
- skypilot_nightly-1.0.0.dev20250222.dist-info/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
348
- skypilot_nightly-1.0.0.dev20250222.dist-info/METADATA,sha256=CmUu708u5W9NVwDxnonxDW_9FdrWvADTirCDjIhE7E0,19055
349
- skypilot_nightly-1.0.0.dev20250222.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
350
- skypilot_nightly-1.0.0.dev20250222.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
351
- skypilot_nightly-1.0.0.dev20250222.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
352
- skypilot_nightly-1.0.0.dev20250222.dist-info/RECORD,,
347
+ skypilot_nightly-1.0.0.dev20250224.dist-info/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
348
+ skypilot_nightly-1.0.0.dev20250224.dist-info/METADATA,sha256=ooOoPMweqRG9pczdIUORjFZdEqb0bjxfyGkkHxBSgMg,19055
349
+ skypilot_nightly-1.0.0.dev20250224.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
350
+ skypilot_nightly-1.0.0.dev20250224.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
351
+ skypilot_nightly-1.0.0.dev20250224.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
352
+ skypilot_nightly-1.0.0.dev20250224.dist-info/RECORD,,