skypilot-nightly 1.0.0.dev20250312__py3-none-any.whl → 1.0.0.dev20250313__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 = '78a42b6e733bbc29b68efe0e9c79191eaaca9fcd'
8
+ _SKYPILOT_COMMIT_SHA = '6044bbfe8712221e8d0da08ce8ce7ec36ab66caf'
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.dev20250312'
38
+ __version__ = '1.0.0.dev20250313'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
sky/adaptors/gcp.py CHANGED
@@ -68,6 +68,13 @@ def credential_error_exception():
68
68
  return exceptions.DefaultCredentialsError
69
69
 
70
70
 
71
+ @common.load_lazy_modules(_LAZY_MODULES)
72
+ def gcp_auth_refresh_error_exception():
73
+ """GCP auth refresh error exception."""
74
+ from google.auth import exceptions
75
+ return exceptions.RefreshError
76
+
77
+
71
78
  @common.load_lazy_modules(_LAZY_MODULES)
72
79
  def get_credentials(cred_type: str, credentials_field: str):
73
80
  """Get GCP credentials."""
sky/cli.py CHANGED
@@ -100,6 +100,7 @@ an autogenerated name."""
100
100
  # The maximum number of in-progress managed jobs to show in the status
101
101
  # command.
102
102
  _NUM_MANAGED_JOBS_TO_SHOW_IN_STATUS = 5
103
+ _NUM_MANAGED_JOBS_TO_SHOW = 50
103
104
 
104
105
  _STATUS_PROPERTY_CLUSTER_NUM_ERROR_MESSAGE = (
105
106
  '{cluster_num} cluster{plural} {verb}. Please specify {cause} '
@@ -1389,16 +1390,16 @@ def _handle_jobs_queue_request(
1389
1390
  request_id: str,
1390
1391
  show_all: bool,
1391
1392
  show_user: bool,
1392
- limit_num_jobs_to_show: bool = False,
1393
+ max_num_jobs_to_show: Optional[int],
1393
1394
  is_called_by_user: bool = False) -> Tuple[Optional[int], str]:
1394
1395
  """Get the in-progress managed jobs.
1395
1396
 
1396
1397
  Args:
1397
1398
  show_all: Show all information of each job (e.g., region, price).
1398
1399
  show_user: Show the user who submitted the job.
1399
- limit_num_jobs_to_show: If True, limit the number of jobs to show to
1400
- _NUM_MANAGED_JOBS_TO_SHOW_IN_STATUS, which is mainly used by
1401
- `sky status`.
1400
+ max_num_jobs_to_show: If not None, limit the number of jobs to show to
1401
+ this number, which is mainly used by `sky status`
1402
+ and `sky jobs queue`.
1402
1403
  is_called_by_user: If this function is called by user directly, or an
1403
1404
  internal call.
1404
1405
 
@@ -1459,12 +1460,10 @@ def _handle_jobs_queue_request(
1459
1460
  msg += ('Failed to query managed jobs: '
1460
1461
  f'{common_utils.format_exception(e, use_bracket=True)}')
1461
1462
  else:
1462
- max_jobs_to_show = (_NUM_MANAGED_JOBS_TO_SHOW_IN_STATUS
1463
- if limit_num_jobs_to_show else None)
1464
1463
  msg = managed_jobs.format_job_table(managed_jobs_,
1465
1464
  show_all=show_all,
1466
1465
  show_user=show_user,
1467
- max_jobs=max_jobs_to_show)
1466
+ max_jobs=max_num_jobs_to_show)
1468
1467
  return num_in_progress_jobs, msg
1469
1468
 
1470
1469
 
@@ -1875,7 +1874,7 @@ def status(verbose: bool, refresh: bool, ip: bool, endpoints: bool,
1875
1874
  managed_jobs_queue_request_id,
1876
1875
  show_all=False,
1877
1876
  show_user=all_users,
1878
- limit_num_jobs_to_show=not all,
1877
+ max_num_jobs_to_show=_NUM_MANAGED_JOBS_TO_SHOW_IN_STATUS,
1879
1878
  is_called_by_user=False)
1880
1879
  except KeyboardInterrupt:
1881
1880
  sdk.api_cancel(managed_jobs_queue_request_id, silent=True)
@@ -3943,10 +3942,15 @@ def jobs_launch(
3943
3942
  is_flag=True,
3944
3943
  required=False,
3945
3944
  help='Show jobs from all users.')
3945
+ @click.option('--all',
3946
+ default=False,
3947
+ is_flag=True,
3948
+ required=False,
3949
+ help='Show all jobs.')
3946
3950
  @usage_lib.entrypoint
3947
3951
  # pylint: disable=redefined-builtin
3948
3952
  def jobs_queue(verbose: bool, refresh: bool, skip_finished: bool,
3949
- all_users: bool):
3953
+ all_users: bool, all: bool):
3950
3954
  """Show statuses of managed jobs.
3951
3955
 
3952
3956
  Each managed jobs can have one of the following statuses:
@@ -4004,10 +4008,13 @@ def jobs_queue(verbose: bool, refresh: bool, skip_finished: bool,
4004
4008
  with rich_utils.client_status('[cyan]Checking managed jobs[/]'):
4005
4009
  managed_jobs_request_id = managed_jobs.queue(
4006
4010
  refresh=refresh, skip_finished=skip_finished, all_users=all_users)
4007
- _, msg = _handle_jobs_queue_request(managed_jobs_request_id,
4008
- show_all=verbose,
4009
- show_user=all_users,
4010
- is_called_by_user=True)
4011
+ max_num_jobs_to_show = (_NUM_MANAGED_JOBS_TO_SHOW if not all else None)
4012
+ num_jobs, msg = _handle_jobs_queue_request(
4013
+ managed_jobs_request_id,
4014
+ show_all=verbose,
4015
+ show_user=all_users,
4016
+ max_num_jobs_to_show=max_num_jobs_to_show,
4017
+ is_called_by_user=True)
4011
4018
  if not skip_finished:
4012
4019
  in_progress_only_hint = ''
4013
4020
  else:
@@ -4015,6 +4022,12 @@ def jobs_queue(verbose: bool, refresh: bool, skip_finished: bool,
4015
4022
  click.echo(f'{colorama.Fore.CYAN}{colorama.Style.BRIGHT}'
4016
4023
  f'Managed jobs{colorama.Style.RESET_ALL}'
4017
4024
  f'{in_progress_only_hint}\n{msg}')
4025
+ if max_num_jobs_to_show and num_jobs and max_num_jobs_to_show < num_jobs:
4026
+ click.echo(
4027
+ f'{colorama.Fore.CYAN}'
4028
+ f'Only showing the latest {max_num_jobs_to_show} '
4029
+ f'managed jobs'
4030
+ f'(use --all to show all managed jobs) {colorama.Style.RESET_ALL} ')
4018
4031
 
4019
4032
 
4020
4033
  @jobs.command('cancel', cls=_DocumentedCodeCommand)
sky/client/cli.py CHANGED
@@ -100,6 +100,7 @@ an autogenerated name."""
100
100
  # The maximum number of in-progress managed jobs to show in the status
101
101
  # command.
102
102
  _NUM_MANAGED_JOBS_TO_SHOW_IN_STATUS = 5
103
+ _NUM_MANAGED_JOBS_TO_SHOW = 50
103
104
 
104
105
  _STATUS_PROPERTY_CLUSTER_NUM_ERROR_MESSAGE = (
105
106
  '{cluster_num} cluster{plural} {verb}. Please specify {cause} '
@@ -1389,16 +1390,16 @@ def _handle_jobs_queue_request(
1389
1390
  request_id: str,
1390
1391
  show_all: bool,
1391
1392
  show_user: bool,
1392
- limit_num_jobs_to_show: bool = False,
1393
+ max_num_jobs_to_show: Optional[int],
1393
1394
  is_called_by_user: bool = False) -> Tuple[Optional[int], str]:
1394
1395
  """Get the in-progress managed jobs.
1395
1396
 
1396
1397
  Args:
1397
1398
  show_all: Show all information of each job (e.g., region, price).
1398
1399
  show_user: Show the user who submitted the job.
1399
- limit_num_jobs_to_show: If True, limit the number of jobs to show to
1400
- _NUM_MANAGED_JOBS_TO_SHOW_IN_STATUS, which is mainly used by
1401
- `sky status`.
1400
+ max_num_jobs_to_show: If not None, limit the number of jobs to show to
1401
+ this number, which is mainly used by `sky status`
1402
+ and `sky jobs queue`.
1402
1403
  is_called_by_user: If this function is called by user directly, or an
1403
1404
  internal call.
1404
1405
 
@@ -1459,12 +1460,10 @@ def _handle_jobs_queue_request(
1459
1460
  msg += ('Failed to query managed jobs: '
1460
1461
  f'{common_utils.format_exception(e, use_bracket=True)}')
1461
1462
  else:
1462
- max_jobs_to_show = (_NUM_MANAGED_JOBS_TO_SHOW_IN_STATUS
1463
- if limit_num_jobs_to_show else None)
1464
1463
  msg = managed_jobs.format_job_table(managed_jobs_,
1465
1464
  show_all=show_all,
1466
1465
  show_user=show_user,
1467
- max_jobs=max_jobs_to_show)
1466
+ max_jobs=max_num_jobs_to_show)
1468
1467
  return num_in_progress_jobs, msg
1469
1468
 
1470
1469
 
@@ -1875,7 +1874,7 @@ def status(verbose: bool, refresh: bool, ip: bool, endpoints: bool,
1875
1874
  managed_jobs_queue_request_id,
1876
1875
  show_all=False,
1877
1876
  show_user=all_users,
1878
- limit_num_jobs_to_show=not all,
1877
+ max_num_jobs_to_show=_NUM_MANAGED_JOBS_TO_SHOW_IN_STATUS,
1879
1878
  is_called_by_user=False)
1880
1879
  except KeyboardInterrupt:
1881
1880
  sdk.api_cancel(managed_jobs_queue_request_id, silent=True)
@@ -3943,10 +3942,15 @@ def jobs_launch(
3943
3942
  is_flag=True,
3944
3943
  required=False,
3945
3944
  help='Show jobs from all users.')
3945
+ @click.option('--all',
3946
+ default=False,
3947
+ is_flag=True,
3948
+ required=False,
3949
+ help='Show all jobs.')
3946
3950
  @usage_lib.entrypoint
3947
3951
  # pylint: disable=redefined-builtin
3948
3952
  def jobs_queue(verbose: bool, refresh: bool, skip_finished: bool,
3949
- all_users: bool):
3953
+ all_users: bool, all: bool):
3950
3954
  """Show statuses of managed jobs.
3951
3955
 
3952
3956
  Each managed jobs can have one of the following statuses:
@@ -4004,10 +4008,13 @@ def jobs_queue(verbose: bool, refresh: bool, skip_finished: bool,
4004
4008
  with rich_utils.client_status('[cyan]Checking managed jobs[/]'):
4005
4009
  managed_jobs_request_id = managed_jobs.queue(
4006
4010
  refresh=refresh, skip_finished=skip_finished, all_users=all_users)
4007
- _, msg = _handle_jobs_queue_request(managed_jobs_request_id,
4008
- show_all=verbose,
4009
- show_user=all_users,
4010
- is_called_by_user=True)
4011
+ max_num_jobs_to_show = (_NUM_MANAGED_JOBS_TO_SHOW if not all else None)
4012
+ num_jobs, msg = _handle_jobs_queue_request(
4013
+ managed_jobs_request_id,
4014
+ show_all=verbose,
4015
+ show_user=all_users,
4016
+ max_num_jobs_to_show=max_num_jobs_to_show,
4017
+ is_called_by_user=True)
4011
4018
  if not skip_finished:
4012
4019
  in_progress_only_hint = ''
4013
4020
  else:
@@ -4015,6 +4022,12 @@ def jobs_queue(verbose: bool, refresh: bool, skip_finished: bool,
4015
4022
  click.echo(f'{colorama.Fore.CYAN}{colorama.Style.BRIGHT}'
4016
4023
  f'Managed jobs{colorama.Style.RESET_ALL}'
4017
4024
  f'{in_progress_only_hint}\n{msg}')
4025
+ if max_num_jobs_to_show and num_jobs and max_num_jobs_to_show < num_jobs:
4026
+ click.echo(
4027
+ f'{colorama.Fore.CYAN}'
4028
+ f'Only showing the latest {max_num_jobs_to_show} '
4029
+ f'managed jobs'
4030
+ f'(use --all to show all managed jobs) {colorama.Style.RESET_ALL} ')
4018
4031
 
4019
4032
 
4020
4033
  @jobs.command('cancel', cls=_DocumentedCodeCommand)
sky/client/sdk.py CHANGED
@@ -32,7 +32,6 @@ from sky import sky_logging
32
32
  from sky import skypilot_config
33
33
  from sky.client import common as client_common
34
34
  from sky.server import common as server_common
35
- from sky.server import constants as server_constants
36
35
  from sky.server.requests import payloads
37
36
  from sky.server.requests import requests as requests_lib
38
37
  from sky.skylet import constants
@@ -1707,14 +1706,8 @@ def api_stop() -> None:
1707
1706
  force=True)
1708
1707
  found = True
1709
1708
 
1710
- # Remove the database for requests including any files starting with
1711
- # api.constants.API_SERVER_REQUEST_DB_PATH
1712
- db_path = os.path.expanduser(server_constants.API_SERVER_REQUEST_DB_PATH)
1713
- for extension in ['', '-shm', '-wal']:
1714
- try:
1715
- os.remove(f'{db_path}{extension}')
1716
- except FileNotFoundError:
1717
- logger.debug(f'Database file {db_path}{extension} not found.')
1709
+ # Remove the database for requests.
1710
+ server_common.clear_local_api_server_database()
1718
1711
 
1719
1712
  if found:
1720
1713
  logger.info(f'{colorama.Fore.GREEN}SkyPilot API server stopped.'
sky/clouds/gcp.py CHANGED
@@ -843,7 +843,10 @@ class GCP(clouds.Cloud):
843
843
  permissions = {'permissions': gcp_minimal_permissions}
844
844
  request = crm.projects().testIamPermissions(resource=project,
845
845
  body=permissions)
846
- ret_permissions = request.execute().get('permissions', [])
846
+ try:
847
+ ret_permissions = request.execute().get('permissions', [])
848
+ except gcp.gcp_auth_refresh_error_exception() as e:
849
+ return False, common_utils.format_exception(e, use_bracket=True)
847
850
 
848
851
  diffs = set(gcp_minimal_permissions).difference(set(ret_permissions))
849
852
  if diffs:
sky/data/storage.py CHANGED
@@ -143,6 +143,22 @@ class StoreType(enum.Enum):
143
143
 
144
144
  raise ValueError(f'Unsupported cloud for StoreType: {cloud}')
145
145
 
146
+ def to_cloud(self) -> str:
147
+ if self == StoreType.S3:
148
+ return str(clouds.AWS())
149
+ elif self == StoreType.GCS:
150
+ return str(clouds.GCP())
151
+ elif self == StoreType.AZURE:
152
+ return str(clouds.Azure())
153
+ elif self == StoreType.R2:
154
+ return cloudflare.NAME
155
+ elif self == StoreType.IBM:
156
+ return str(clouds.IBM())
157
+ elif self == StoreType.OCI:
158
+ return str(clouds.OCI())
159
+ else:
160
+ raise ValueError(f'Unknown store type: {self}')
161
+
146
162
  @classmethod
147
163
  def from_store(cls, store: 'AbstractStore') -> 'StoreType':
148
164
  if isinstance(store, S3Store):
@@ -717,6 +717,15 @@ def check_instance_fits(context: Optional[str],
717
717
  fits, reason = check_tpu_fits(k8s_instance_type, gpu_nodes)
718
718
  if reason is not None:
719
719
  return fits, reason
720
+ else:
721
+ # Check if any of the GPU nodes have sufficient number of GPUs.
722
+ gpu_nodes = [
723
+ node for node in gpu_nodes if
724
+ get_node_accelerator_count(node.status.allocatable) >= acc_count
725
+ ]
726
+ if not gpu_nodes:
727
+ return False, (
728
+ f'No GPU nodes found with {acc_count} or more GPUs.')
720
729
 
721
730
  candidate_nodes = gpu_nodes
722
731
  not_fit_reason_prefix = (
sky/server/common.py CHANGED
@@ -428,3 +428,19 @@ def reload_for_new_request(client_entrypoint: Optional[str],
428
428
  # necessary because the logger is initialized before the environment
429
429
  # variables are set, such as SKYPILOT_DEBUG.
430
430
  sky_logging.reload_logger()
431
+
432
+
433
+ def clear_local_api_server_database() -> None:
434
+ """Removes the local API server database.
435
+
436
+ The CLI can call this during cleanup of a local API server, or the API
437
+ server can call it during startup.
438
+ """
439
+ # Remove the database for requests including any files starting with
440
+ # api.constants.API_SERVER_REQUEST_DB_PATH
441
+ db_path = os.path.expanduser(server_constants.API_SERVER_REQUEST_DB_PATH)
442
+ for extension in ['', '-shm', '-wal']:
443
+ try:
444
+ os.remove(f'{db_path}{extension}')
445
+ except FileNotFoundError:
446
+ logger.debug(f'Database file {db_path}{extension} not found.')
@@ -447,7 +447,7 @@ def init_db(func):
447
447
 
448
448
  def reset_db_and_logs():
449
449
  """Create the database."""
450
- common_utils.remove_file_if_exists(_DB_PATH)
450
+ server_common.clear_local_api_server_database()
451
451
  shutil.rmtree(pathlib.Path(REQUEST_LOG_PATH_PREFIX).expanduser(),
452
452
  ignore_errors=True)
453
453
  shutil.rmtree(server_common.API_SERVER_CLIENT_DIR.expanduser(),
@@ -120,7 +120,10 @@ extras_require: Dict[str, List[str]] = {
120
120
  # https://github.com/googleapis/google-api-python-client/commit/f6e9d3869ed605b06f7cbf2e8cf2db25108506e6
121
121
  'gcp': ['google-api-python-client>=2.69.0', 'google-cloud-storage'],
122
122
  'ibm': [
123
- 'ibm-cloud-sdk-core', 'ibm-vpc', 'ibm-platform-services', 'ibm-cos-sdk'
123
+ 'ibm-cloud-sdk-core',
124
+ 'ibm-vpc',
125
+ 'ibm-platform-services>=0.48.0',
126
+ 'ibm-cos-sdk',
124
127
  ] + local_ray,
125
128
  'docker': ['docker'] + local_ray,
126
129
  'lambda': [], # No dependencies needed for lambda
@@ -805,6 +805,16 @@ def maybe_translate_local_file_mounts_and_sync_up(task: 'task_lib.Task',
805
805
  else:
806
806
  (store_type, bucket_name, sub_path, storage_account_name, region) = (
807
807
  storage_lib.StoreType.get_fields_from_store_url(bucket_wth_prefix))
808
+ cloud_str = store_type.to_cloud()
809
+ if (cloud_str not in
810
+ storage_lib.get_cached_enabled_storage_clouds_or_refresh()):
811
+ with ux_utils.print_exception_no_traceback():
812
+ raise ValueError(
813
+ f'`{task_type}.bucket` is specified in SkyPilot config '
814
+ f'with {bucket_wth_prefix}, but {cloud_str} is not '
815
+ 'enabled. Please avoid specifying the bucket or enable the '
816
+ f'cloud by: sky check {cloud_str}')
817
+
808
818
  if storage_account_name is not None:
809
819
  store_kwargs['storage_account_name'] = storage_account_name
810
820
  if region is not None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20250312
3
+ Version: 1.0.0.dev20250313
4
4
  Summary: SkyPilot: An intercloud broker for the clouds
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -68,7 +68,7 @@ Requires-Dist: google-cloud-storage; extra == "gcp"
68
68
  Provides-Extra: ibm
69
69
  Requires-Dist: ibm-cloud-sdk-core; extra == "ibm"
70
70
  Requires-Dist: ibm-vpc; extra == "ibm"
71
- Requires-Dist: ibm-platform-services; extra == "ibm"
71
+ Requires-Dist: ibm-platform-services>=0.48.0; extra == "ibm"
72
72
  Requires-Dist: ibm-cos-sdk; extra == "ibm"
73
73
  Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "ibm"
74
74
  Provides-Extra: docker
@@ -126,7 +126,7 @@ Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
126
126
  Requires-Dist: google-cloud-storage; extra == "all"
127
127
  Requires-Dist: ibm-cloud-sdk-core; extra == "all"
128
128
  Requires-Dist: ibm-vpc; extra == "all"
129
- Requires-Dist: ibm-platform-services; extra == "all"
129
+ Requires-Dist: ibm-platform-services>=0.48.0; extra == "all"
130
130
  Requires-Dist: ibm-cos-sdk; extra == "all"
131
131
  Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
132
132
  Requires-Dist: docker; extra == "all"
@@ -1,8 +1,8 @@
1
- sky/__init__.py,sha256=15ZYL6HUs43go7VjSHq7_BlZEptubkQ6aeBIx534zkU,6428
1
+ sky/__init__.py,sha256=UqvgvPfup1oX2lnpkzogyzHlj1-UyMM8sa6RW5orlo4,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=qBRqtKVV_GurbCFZBHkF2UIahy3A7bsOsmfCNm6mZ54,221503
5
+ sky/cli.py,sha256=o1IHTY4YSJzsfkynTynaN1dB4RBPZIRZGWQ4rTnVVnQ,221956
6
6
  sky/cloud_stores.py,sha256=kEHXd2divyra-1c3EusHxKyM5yTQlTXc6cKVXofsefA,23978
7
7
  sky/core.py,sha256=MU9hcTdh8baMGrr2ZXmbxx12vNlhajrkeyg5QtV717c,47609
8
8
  sky/dag.py,sha256=Yl7Ry26Vql5cv4YMz8g9kOUgtoCihJnw7c8NgZYakMY,3242
@@ -23,7 +23,7 @@ sky/adaptors/common.py,sha256=nJmuBYFokCH0vX2oFqdAJYS-84FnUSTmIPKjAi4gqzo,2877
23
23
  sky/adaptors/cudo.py,sha256=WGvIQrlzJkGDe02Ve7pygA56tHwUc4kwS3XHW8kMFAA,239
24
24
  sky/adaptors/do.py,sha256=dJ0BYbkQoUWVu6_9Pxq3fOu6PngjZyyCQzgjnODXLCA,777
25
25
  sky/adaptors/docker.py,sha256=_kzpZ0fkWHqqQAVVl0llTsCE31KYz3Sjn8psTBQHVkA,468
26
- sky/adaptors/gcp.py,sha256=OQ9RaqjR0r0iaWYpjvEtIx5vnEhyB4LhUCwbtdxsmVk,3115
26
+ sky/adaptors/gcp.py,sha256=EEjiF_n0HGH3TEjSbY6PQ8nczlhV2kSdUCXe0l8DmJg,3316
27
27
  sky/adaptors/ibm.py,sha256=H87vD6izq_wQI8oQC7cx9iVtRgPi_QkAcrfa1Z3PNqU,4906
28
28
  sky/adaptors/kubernetes.py,sha256=UIUc3zI0MgWcv1GTBu-pZUSx_NTLf0zRI20JUdtA1HI,6594
29
29
  sky/adaptors/nebius.py,sha256=QAqU_reFk7MKQ39TE1FiNgNnDPH5L5-HT19j6CtJcJE,3175
@@ -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=qBRqtKVV_GurbCFZBHkF2UIahy3A7bsOsmfCNm6mZ54,221503
46
+ sky/client/cli.py,sha256=o1IHTY4YSJzsfkynTynaN1dB4RBPZIRZGWQ4rTnVVnQ,221956
47
47
  sky/client/common.py,sha256=axDic7WOG1e78SdFm5XIwdhX7YNvf3g4k7INrsW3X4s,14611
48
- sky/client/sdk.py,sha256=IRx72BXqOn_WVvtOuTXfgR5zcSm_lyoXeYxa5c_2_qk,68723
48
+ sky/client/sdk.py,sha256=DL-3aV-kbK3T70_qXrEiMlaUmbiHaJk513gLp2by-6Y,68352
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
@@ -53,7 +53,7 @@ sky/clouds/cloud.py,sha256=Ej6WH6VElYdG3PG1-Sp6lFVsJ42uskV4dAg7kmoY4JA,35376
53
53
  sky/clouds/cudo.py,sha256=femv17IUM1TOXuCAg6zljqyFcBGfofbXCNGckpXFHzc,13127
54
54
  sky/clouds/do.py,sha256=hmksx0XML0dVHUZBMV2Wr3a5VilOsYfxX2dSBV_XK5o,11487
55
55
  sky/clouds/fluidstack.py,sha256=Eb0nlfU_EwTtGtV0nPKS2ueBlB0nYiDAN9swA-jjQV0,12446
56
- sky/clouds/gcp.py,sha256=FUCUq94yGUZ_yyKxA3prRKTqetObbIMkfjAPTPbhXyA,55824
56
+ sky/clouds/gcp.py,sha256=cvFSeX8RcyhX5HJb57YposUr9p1RaUPmpxvg_AI_D3c,55978
57
57
  sky/clouds/ibm.py,sha256=R4JR96YfXstZ2B_IgFNVEX2SBAq3q0lSWz4y7FoFoeE,21474
58
58
  sky/clouds/kubernetes.py,sha256=xsYX8HhdcRzsdx6Gd_3kumNqjMjpo_l4cinhs3ZMwZM,35067
59
59
  sky/clouds/lambda_cloud.py,sha256=ejqA_Wj5-325Y_QjQ__FY4HMO8sv_2tSRsufmaldcmI,12699
@@ -104,7 +104,7 @@ sky/data/__init__.py,sha256=Nhaf1NURisXpZuwWANa2IuCyppIuc720FRwqSE2oEwY,184
104
104
  sky/data/data_transfer.py,sha256=wixC4_3_JaeJFdGKOp-O5ulcsMugDSgrCR0SnPpugGc,8946
105
105
  sky/data/data_utils.py,sha256=HjcgMDuWRR_fNQ9gjuROi9GgPVvTGApiJwxGtdb2_UU,28860
106
106
  sky/data/mounting_utils.py,sha256=i79Y-DZXVR88fjG_MBPB8EgsZBnHdpf1LGnJSm_VhAg,16063
107
- sky/data/storage.py,sha256=mTgMGdfSV6Gia076Dvgmc18ZlqF6eObima558UShiXA,207165
107
+ sky/data/storage.py,sha256=vYn7V2vyh9mGoQpyfd7FyoPZQ6HPpl3yH2x62GgfQgw,207707
108
108
  sky/data/storage_utils.py,sha256=zB99nRTJjh8isU0UmqERmlwwRNgfig91IwrwVH8CcNw,12383
109
109
  sky/jobs/__init__.py,sha256=qoI53-xXE0-SOkrLWigvhgFXjk7dWE0OTqGPYIk-kmM,1458
110
110
  sky/jobs/constants.py,sha256=1XiIqdR5dEgGgepLKWkZCRT3MYSsMBR-dO7N4RTsjwg,3088
@@ -165,7 +165,7 @@ sky/provision/kubernetes/constants.py,sha256=dZCUV8FOO9Gct80sdqeubKnxeW3CGl-u5mx
165
165
  sky/provision/kubernetes/instance.py,sha256=oag17OtuiqU-1RjkgW9NvEpxSGUFIYdI7M61S-YmPu8,50503
166
166
  sky/provision/kubernetes/network.py,sha256=AtcOM8wPs_-UlQJhGEQGP6Lh4HIgdx63Y0iWEhP5jyc,12673
167
167
  sky/provision/kubernetes/network_utils.py,sha256=Bwy5ZQb62ejC7ZHM4htjzhs86UNACK7AXN-NfQ9IJrE,11454
168
- sky/provision/kubernetes/utils.py,sha256=aGIYhGFnvInMqd8INwR7RirKrstSsMQxM0RvZUFia4Q,109762
168
+ sky/provision/kubernetes/utils.py,sha256=A2nzKUCFqmq5KveyagE5u4_p0b6frg6256lwvAlwPEA,110155
169
169
  sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml,sha256=AMzYzlY0JIlfBWj5eX054Rc1XDW2thUcLSOGMJVhIdA,229
170
170
  sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml,sha256=RtTq4F1QUmR2Uunb6zuuRaPhV7hpesz4saHjn3Ncsb4,2010
171
171
  sky/provision/lambda_cloud/__init__.py,sha256=6EEvSgtUeEiup9ivIFevHmgv0GqleroO2X0K7TRa2nE,612
@@ -228,7 +228,7 @@ 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=pEa-q3P5aOm6RMlit0pVzlDoJnZU_6zViO7aK_7htn0,17843
231
+ sky/server/common.py,sha256=PMPaKoPtoUGolbdSW78VetUW5H0X7YKBT-z6Hbu3BJM,18471
232
232
  sky/server/constants.py,sha256=_ZNrxYh8vmgbf3DmkGDduxjvO2y43ZSPTkH5rCNsVjU,770
233
233
  sky/server/server.py,sha256=kEjwRjA7PJDZzx6KqD_NAFxryVLkzwCnuPfbmY_p30A,44232
234
234
  sky/server/stream_utils.py,sha256=4JMHgtoXPpCT8JwtqyUcDQ9IdZFir9om0JaCRr8rvbQ,5849
@@ -239,14 +239,14 @@ sky/server/requests/event_loop.py,sha256=OhpPbuce65bbjpGRlcJa78AVnYSm08SzFKt70yp
239
239
  sky/server/requests/executor.py,sha256=SuSr-cVrRnMzf-1SEz6O8HpcLzGM3mrbNc8re7QduYk,20862
240
240
  sky/server/requests/payloads.py,sha256=nVb7vr1SNAq6ay2dNe9301zLHp7NrM79M7nsWAECBms,16340
241
241
  sky/server/requests/preconditions.py,sha256=ipxIb_3JXG6S3-ymcOdqQNb7VDvoPqADxu9ZK7-nQWc,7179
242
- sky/server/requests/requests.py,sha256=HrBDrJyWPaKk52ykHp34A6UjipXPH-f2Eh2sNvhWt4g,21228
242
+ sky/server/requests/requests.py,sha256=Sys2rg22rIXn7SrHfKzDVuTjBdRlm5oZk58u1UmS6JA,21231
243
243
  sky/server/requests/queues/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
244
244
  sky/server/requests/queues/mp_queue.py,sha256=_7AFas__0b1L8e7Bwy4lu0VYU18R85YwMlDHPhQCfh0,2998
245
245
  sky/server/requests/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
246
246
  sky/server/requests/serializers/decoders.py,sha256=0cpg80uAqkdK_LqcQPkpKswhcNUUztG9luDLm_0eUow,6811
247
247
  sky/server/requests/serializers/encoders.py,sha256=i4SAb5Oyp00CyMkyidbdA9dtxAzxZl40KTpL_x6pH0w,5679
248
248
  sky/setup_files/MANIFEST.in,sha256=cHYG6IdIp7RsDapL4Lrs-WTeYJftHn6qystSolmyyk8,581
249
- sky/setup_files/dependencies.py,sha256=cm2qeYFeVDv5tHlcSw0xtZzTI6uz4m_WaF2GUIFIgCk,6313
249
+ sky/setup_files/dependencies.py,sha256=-atLGWT_luo5ZLIFwt88JDqvqJH2N4t2ShKowGxvH2E,6346
250
250
  sky/setup_files/setup.py,sha256=Q9f0RvsdPC0FLvyTKW-upQtRuA81jRO4TtN3VK-mP-Y,7436
251
251
  sky/skylet/LICENSE,sha256=BnFrJSvUFpMUoH5mOpWnEvaC5R6Uux8W6WXgrte8iYg,12381
252
252
  sky/skylet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -316,7 +316,7 @@ sky/utils/common.py,sha256=P4oVXFATUYgkruHX92cN12SJBtfb8DiOOYZtbN1kvP0,1927
316
316
  sky/utils/common_utils.py,sha256=vsikxAnRZYTbn0OWENuMSv1JWYUr2hRnPxqWSct6N7I,31357
317
317
  sky/utils/config_utils.py,sha256=VQ2E3DQ2XysD-kul-diSrxn_pXWsDMfKAev91OiJQ1Q,9041
318
318
  sky/utils/control_master_utils.py,sha256=iD4M0onjYOdZ2RuxjwMBl4KhafHXJzuHjvqlBUnu-VE,1450
319
- sky/utils/controller_utils.py,sha256=1aDH0O6gTRzGwp4lyoQgC0rLxcOE_UrMeMY2LSyJ2y4,48911
319
+ sky/utils/controller_utils.py,sha256=KuOX7pnIuC1n_wmrDr27G-HtnJtYRTXXLB1DaO0Dlb4,49439
320
320
  sky/utils/dag_utils.py,sha256=sAus0aL1wtuuFZSDnpO4LY-6WK4u5iJY952oWQzHo3Y,7532
321
321
  sky/utils/db_utils.py,sha256=K2-OHPg0FeHCarevMdWe0IWzm6wWumViEeYeJuGoFUE,3747
322
322
  sky/utils/env_options.py,sha256=aaD6GoYK0LaZIqjOEZ-R7eccQuiRriW3EuLWtOI5En8,1578
@@ -347,9 +347,9 @@ sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml,sha256=VLKT2KKimZu1GDg_4AIlIt488
347
347
  sky/utils/kubernetes/kubernetes_deploy_utils.py,sha256=otzHzpliHDCpzYT-nU9Q0ZExbiFpDPWvhxwkvchZj7k,10073
348
348
  sky/utils/kubernetes/rsync_helper.sh,sha256=h4YwrPFf9727CACnMJvF3EyK_0OeOYKKt4su_daKekw,1256
349
349
  sky/utils/kubernetes/ssh_jump_lifecycle_manager.py,sha256=Kq1MDygF2IxFmu9FXpCxqucXLmeUrvs6OtRij6XTQbo,6554
350
- skypilot_nightly-1.0.0.dev20250312.dist-info/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
351
- skypilot_nightly-1.0.0.dev20250312.dist-info/METADATA,sha256=q1Bn6vuOOsagTfsfIAPxoyhpt2hWE2H6hzCmLvH65jM,18051
352
- skypilot_nightly-1.0.0.dev20250312.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
353
- skypilot_nightly-1.0.0.dev20250312.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
354
- skypilot_nightly-1.0.0.dev20250312.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
355
- skypilot_nightly-1.0.0.dev20250312.dist-info/RECORD,,
350
+ skypilot_nightly-1.0.0.dev20250313.dist-info/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
351
+ skypilot_nightly-1.0.0.dev20250313.dist-info/METADATA,sha256=VibaO5XptVT8zYrzI6xf0HQwy_deHj5qNkpYsEWXR6g,18067
352
+ skypilot_nightly-1.0.0.dev20250313.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
353
+ skypilot_nightly-1.0.0.dev20250313.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
354
+ skypilot_nightly-1.0.0.dev20250313.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
355
+ skypilot_nightly-1.0.0.dev20250313.dist-info/RECORD,,