skypilot-nightly 1.0.0.dev20250403__py3-none-any.whl → 1.0.0.dev20250405__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 = '7149e721d257cfc890526c9738290724882ce82e'
8
+ _SKYPILOT_COMMIT_SHA = '5025c819176d48aa8643fe9ec058158ce2bece9a'
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.dev20250403'
38
+ __version__ = '1.0.0.dev20250405'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -655,7 +655,10 @@ class RayCodeGen:
655
655
  rclone_flush_script = {rclone_flush_script!r}
656
656
  if run_fn is not None:
657
657
  script = run_fn({gang_scheduling_id}, gang_scheduling_id_to_ip)
658
- script += rclone_flush_script
658
+ if script is not None:
659
+ script += rclone_flush_script
660
+ else:
661
+ script = rclone_flush_script
659
662
 
660
663
  if script is not None:
661
664
  sky_env_vars_dict['{constants.SKYPILOT_NUM_GPUS_PER_NODE}'] = {int(math.ceil(num_gpus))!r}
sky/check.py CHANGED
@@ -289,6 +289,12 @@ def _print_checked_cloud(
289
289
  cloud_tuple: The cloud to print the capabilities for.
290
290
  cloud_capabilities: The capabilities for the cloud.
291
291
  """
292
+
293
+ def _yellow_color(str_to_format: str) -> str:
294
+ return (f'{colorama.Fore.LIGHTYELLOW_EX}'
295
+ f'{str_to_format}'
296
+ f'{colorama.Style.RESET_ALL}')
297
+
292
298
  cloud_repr, cloud = cloud_tuple
293
299
  # Print the capabilities for the cloud.
294
300
  # consider cloud enabled if any capability is enabled.
@@ -319,7 +325,7 @@ def _print_checked_cloud(
319
325
  if activated_account is not None:
320
326
  echo(f' Activated account: {activated_account}')
321
327
  for reason, caps in hints_to_capabilities.items():
322
- echo(f' Hint [{", ".join(caps)}]: {reason}')
328
+ echo(f' Hint [{", ".join(caps)}]: {_yellow_color(reason)}')
323
329
  for reason, caps in reasons_to_capabilities.items():
324
330
  echo(f' Reason [{", ".join(caps)}]: {reason}')
325
331
 
sky/cli.py CHANGED
@@ -3062,10 +3062,15 @@ def _down_or_stop_clusters(
3062
3062
  'Letting --all take effect.')
3063
3063
  # We should not remove controllers when --all is specified.
3064
3064
  # Otherwise, it would be very easy to accidentally delete a controller.
3065
+
3066
+ # do not select already stopped clusters for stop command.
3067
+ # stopped clusters are still included for down or autostop commands.
3065
3068
  names = [
3066
3069
  record['name']
3067
3070
  for record in all_clusters
3068
3071
  if controller_utils.Controllers.from_name(record['name']) is None
3072
+ and (down or idle_minutes_to_autostop is not None or
3073
+ record['status'] != status_lib.ClusterStatus.STOPPED)
3069
3074
  ]
3070
3075
 
3071
3076
  clusters = names
sky/client/cli.py CHANGED
@@ -3062,10 +3062,15 @@ def _down_or_stop_clusters(
3062
3062
  'Letting --all take effect.')
3063
3063
  # We should not remove controllers when --all is specified.
3064
3064
  # Otherwise, it would be very easy to accidentally delete a controller.
3065
+
3066
+ # do not select already stopped clusters for stop command.
3067
+ # stopped clusters are still included for down or autostop commands.
3065
3068
  names = [
3066
3069
  record['name']
3067
3070
  for record in all_clusters
3068
3071
  if controller_utils.Controllers.from_name(record['name']) is None
3072
+ and (down or idle_minutes_to_autostop is not None or
3073
+ record['status'] != status_lib.ClusterStatus.STOPPED)
3069
3074
  ]
3070
3075
 
3071
3076
  clusters = names
sky/clouds/kubernetes.py CHANGED
@@ -679,7 +679,8 @@ class Kubernetes(clouds.Cloud):
679
679
  success = False
680
680
  for context in existing_allowed_contexts:
681
681
  try:
682
- check_result = kubernetes_utils.check_credentials(context)
682
+ check_result = kubernetes_utils.check_credentials(
683
+ context, run_optional_checks=True)
683
684
  if check_result[0]:
684
685
  success = True
685
686
  if check_result[1] is not None:
@@ -689,15 +690,6 @@ class Kubernetes(clouds.Cloud):
689
690
  except Exception as e: # pylint: disable=broad-except
690
691
  return (False, f'Credential check failed for {context}: '
691
692
  f'{common_utils.format_exception(e)}')
692
- unlabeled_nodes = kubernetes_utils.get_unlabeled_accelerator_nodes(
693
- context)
694
- if len(unlabeled_nodes) > 0:
695
- hints.append(f'Context {context} has {len(unlabeled_nodes)} '
696
- f'unlabeled nodes with accelerators. '
697
- f'To label these nodes, run '
698
- f'`python -m sky.utils.kubernetes.gpu_labeler '
699
- f'--context {context}` from the project root '
700
- f'directory.')
701
693
  if success:
702
694
  return (True, cls._format_credential_check_results(hints, reasons))
703
695
  return (False, 'Failed to find available context with working '
@@ -328,9 +328,9 @@ def get_common_gpus() -> List[str]:
328
328
  'A100',
329
329
  'A100-80GB',
330
330
  'H100',
331
+ 'H200',
331
332
  'L4',
332
333
  'L40S',
333
- 'P100',
334
334
  'T4',
335
335
  'V100',
336
336
  'V100-32GB',
@@ -272,7 +272,8 @@ def get_gke_accelerator_name(accelerator: str) -> str:
272
272
  if accelerator == 'H100':
273
273
  # H100 is named as H100-80GB in GKE.
274
274
  accelerator = 'H100-80GB'
275
- if accelerator in ('A100-80GB', 'L4', 'H100-80GB', 'H100-MEGA-80GB'):
275
+ if accelerator in ('A100-80GB', 'L4', 'H100-80GB', 'H100-MEGA-80GB',
276
+ 'B200'):
276
277
  # A100-80GB, L4, H100-80GB and H100-MEGA-80GB
277
278
  # have a different name pattern.
278
279
  return 'nvidia-{}'.format(accelerator.lower())
@@ -1096,7 +1097,9 @@ def get_accelerator_label_key_value(
1096
1097
  ResourcesUnavailableError: Can be raised from the following conditions:
1097
1098
  - The cluster does not have GPU/TPU resources
1098
1099
  (nvidia.com/gpu, google.com/tpu)
1099
- - The cluster does not have GPU/TPU labels setup correctly
1100
+ - The cluster has GPU/TPU resources, but no node in the cluster has
1101
+ an accelerator label.
1102
+ - The cluster has a node with an invalid accelerator label value.
1100
1103
  - The cluster doesn't have any nodes with acc_type GPU/TPU
1101
1104
  """
1102
1105
  # Check if the cluster has GPU resources
@@ -1291,7 +1294,8 @@ def get_external_ip(network_mode: Optional[
1291
1294
 
1292
1295
 
1293
1296
  def check_credentials(context: Optional[str],
1294
- timeout: int = kubernetes.API_TIMEOUT) -> \
1297
+ timeout: int = kubernetes.API_TIMEOUT,
1298
+ run_optional_checks: bool = False) -> \
1295
1299
  Tuple[bool, Optional[str]]:
1296
1300
  """Check if the credentials in kubeconfig file are valid
1297
1301
 
@@ -1333,6 +1337,9 @@ def check_credentials(context: Optional[str],
1333
1337
  f'{common_utils.format_exception(e, use_bracket=True)}')
1334
1338
 
1335
1339
  # If we reach here, the credentials are valid and Kubernetes cluster is up.
1340
+ if not run_optional_checks:
1341
+ return True, None
1342
+
1336
1343
  # We now do softer checks to check if exec based auth is used and to
1337
1344
  # see if the cluster is GPU-enabled.
1338
1345
 
@@ -1344,16 +1351,36 @@ def check_credentials(context: Optional[str],
1344
1351
  # `sky launch --gpus <gpu>` and the optimizer does not list Kubernetes as a
1345
1352
  # provider if their cluster GPUs are not setup correctly.
1346
1353
  gpu_msg = ''
1347
- try:
1348
- get_accelerator_label_key_value(context,
1349
- acc_type='',
1350
- acc_count=0,
1351
- check_mode=True)
1352
- except exceptions.ResourcesUnavailableError as e:
1353
- # If GPUs are not available, we return cluster as enabled (since it can
1354
- # be a CPU-only cluster) but we also return the exception message which
1355
- # serves as a hint for how to enable GPU access.
1356
- gpu_msg = str(e)
1354
+ unlabeled_nodes = get_unlabeled_accelerator_nodes(context)
1355
+ if unlabeled_nodes:
1356
+ gpu_msg = (f'Cluster has {len(unlabeled_nodes)} nodes with '
1357
+ f'accelerators that are not labeled. '
1358
+ f'To label the nodes, run '
1359
+ f'`python -m sky.utils.kubernetes.gpu_labeler '
1360
+ f'--context {context}`')
1361
+ else:
1362
+ try:
1363
+ # This function raises a ResourcesUnavailableError in three cases:
1364
+ # 1. If no node in cluster has GPU/TPU resource in its capacity.
1365
+ # (e.g. google.com/tpu, nvidia.com/gpu)
1366
+ # 2. If at least one node in cluster has GPU/TPU resource in its
1367
+ # capacity, but no node in the cluster has an accelerator label.
1368
+ # 3. If an accelerator label on a node is invalid.
1369
+ # Exception 2 is a special case of a cluster having at least one
1370
+ # unlabelled node, which is caught in
1371
+ # `get_unlabeled_accelerator_nodes`.
1372
+ # Therefore, if `get_unlabeled_accelerator_nodes` detects unlabelled
1373
+ # nodes, we skip this check.
1374
+ get_accelerator_label_key_value(context,
1375
+ acc_type='',
1376
+ acc_count=0,
1377
+ check_mode=True)
1378
+ except exceptions.ResourcesUnavailableError as e:
1379
+ # If GPUs are not available, we return cluster as enabled
1380
+ # (since it can be a CPU-only cluster) but we also return the
1381
+ # exception message which serves as a hint for how to enable
1382
+ # GPU access.
1383
+ gpu_msg = str(e)
1357
1384
  if exec_msg and gpu_msg:
1358
1385
  return True, f'{gpu_msg}\n Additionally, {exec_msg}'
1359
1386
  elif gpu_msg:
@@ -260,6 +260,12 @@ def _request_execution_wrapper(request_id: str,
260
260
  f.flush()
261
261
  except KeyboardInterrupt:
262
262
  logger.info(f'Request {request_id} cancelled by user')
263
+ # Kill all children processes related to this request.
264
+ # Each executor handles a single request, so we can safely kill all
265
+ # children processes related to this request.
266
+ # This is required as python does not pass the KeyboardInterrupt
267
+ # to the threads that are not main thread.
268
+ subprocess_utils.kill_children_processes()
263
269
  _restore_output(original_stdout, original_stderr)
264
270
  return
265
271
  except (Exception, SystemExit) as e: # pylint: disable=broad-except
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20250403
3
+ Version: 1.0.0.dev20250405
4
4
  Summary: SkyPilot: An intercloud broker for the clouds
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -1,8 +1,8 @@
1
- sky/__init__.py,sha256=jAriaLe3W4tnwwVPeiJ2hAxmMnsB0NRcf-MQ2yLMyQk,6428
1
+ sky/__init__.py,sha256=ZkLN1hea20dguJClNeFn8F6wG99qD8HssxJoWkHxbR8,6428
2
2
  sky/admin_policy.py,sha256=hPo02f_A32gCqhUueF0QYy1fMSSKqRwYEg_9FxScN_s,3248
3
3
  sky/authentication.py,sha256=ND011K_-Ud1dVZF37A9KrwYir_ihJXcHc7iDWmuBc8Q,22872
4
- sky/check.py,sha256=oktScSPsHIyO7ZrVHy3QaybB6-s_D6eMEjmICAiUtDo,15902
5
- sky/cli.py,sha256=Zcio2ak6zX_5_N_lshDUqCvoV6NEOmGS6Tp6AgS9VAk,222446
4
+ sky/check.py,sha256=PPNQnaaZBA9_aogJpN4gnG4XWnTqkd74c-rBYDkDRDY,16101
5
+ sky/cli.py,sha256=DOMNgAjK8Iir8nQNoQDG2tIWg9Jf_Gh2DDFqHnjxflU,222727
6
6
  sky/cloud_stores.py,sha256=cmKdSoB4bmwrd-Z1NCZBFb6IIJt0jKVxkGPoX86280s,26606
7
7
  sky/core.py,sha256=G3n6z0dyvoU4FJVGnnTu3kFdu_EtQC1l57er5voRAX0,47926
8
8
  sky/dag.py,sha256=Yl7Ry26Vql5cv4YMz8g9kOUgtoCihJnw7c8NgZYakMY,3242
@@ -34,7 +34,7 @@ sky/adaptors/vsphere.py,sha256=zJP9SeObEoLrpgHW2VHvZE48EhgVf8GfAEIwBeaDMfM,2129
34
34
  sky/backends/__init__.py,sha256=UDjwbUgpTRApbPJnNfR786GadUuwgRk3vsWoVu5RB_c,536
35
35
  sky/backends/backend.py,sha256=4BOqKZ-bwBTpjNnZF4JAHX2m2Iga7EmEn8Ao3tEivaM,7527
36
36
  sky/backends/backend_utils.py,sha256=ndY4IPs1F9QovyiKAnB1FNYGWm52_ylwf_K7wY50cv0,134922
37
- sky/backends/cloud_vm_ray_backend.py,sha256=uRz6XUvrTHGsF6LYIuSjFBUP51BSD5_yTj4R5-3DLo0,251922
37
+ sky/backends/cloud_vm_ray_backend.py,sha256=ICo21xsKd1Ipy_nBHbP2FUWllOmdS0Pvr4mfypSYhXI,252012
38
38
  sky/backends/docker_utils.py,sha256=Hyw1YY20EyghhEbYx6O2FIMDcGkNzBzV9TM7LFynei8,8358
39
39
  sky/backends/local_docker_backend.py,sha256=nSYCjms3HOPjPNOrcCqsUKm1WV3AAovRFjEQ7hcEXW4,17021
40
40
  sky/backends/wheel_utils.py,sha256=meypuMaygSXXjGdXfq6dhWl-OrpAybg9KVRoup4D0wU,9098
@@ -43,7 +43,7 @@ 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=7rf-iHt6RXZ_pnBBWOMwcdodHQW69x27xNyx0yVog1U,26385
45
45
  sky/client/__init__.py,sha256=pz6xvVSd9X-gwqbsDL0E9QOojYqM0KAD0j-NCyCIF1k,38
46
- sky/client/cli.py,sha256=Zcio2ak6zX_5_N_lshDUqCvoV6NEOmGS6Tp6AgS9VAk,222446
46
+ sky/client/cli.py,sha256=DOMNgAjK8Iir8nQNoQDG2tIWg9Jf_Gh2DDFqHnjxflU,222727
47
47
  sky/client/common.py,sha256=YMgYoSYlV3B_scfCIJRKHvDq6JKvnSvRZDhlRjRmzu0,14780
48
48
  sky/client/sdk.py,sha256=36tvJou2IaG8H5lrqMicv-gSJn6VUDHUtB7V20t4lA8,68620
49
49
  sky/clouds/__init__.py,sha256=OW6mJ-9hpJSBORCgt2LippLQEYZHNfnBW1mooRNNvxo,1416
@@ -55,7 +55,7 @@ sky/clouds/do.py,sha256=P38l4otp2AuDReUH9Ii621ht9s-NIyb7-R37jbtjHk8,11580
55
55
  sky/clouds/fluidstack.py,sha256=jIqW1MLe55MVME1PATZm8e6_FsiTnJawW7OdytPW0aM,12666
56
56
  sky/clouds/gcp.py,sha256=sUJ9LXUnMxYm6OYZ5P-z1dJHxgVILuC3OW3eFSTNCv8,56919
57
57
  sky/clouds/ibm.py,sha256=XtuPN8QgrwJdb1qb_b-7KwAE2tf_N9wh9eEfi2tcg-s,22013
58
- sky/clouds/kubernetes.py,sha256=VuPHstRysRZH0UTYZIExY2Gtd2ItQn9I5EboqxyuvV0,36717
58
+ sky/clouds/kubernetes.py,sha256=SNRilcl_JYvaMDoYw0jnMtfaSi7FKQycCiJVmX6-4f4,36216
59
59
  sky/clouds/lambda_cloud.py,sha256=rR2YrZ6flEbKKpQAm60eKNjiMDYvH2hqzaCo3Hx4Ffw,12916
60
60
  sky/clouds/nebius.py,sha256=4D7C2NQYI-BNhXWNOyAXNAZj7-5nN33VQW1sxfSGt9w,14662
61
61
  sky/clouds/oci.py,sha256=YO4kjSsHBmAVH4z1TuVP72zfmC0BXte4E0xIyZir9N4,27622
@@ -64,7 +64,7 @@ sky/clouds/runpod.py,sha256=P486CMN-Mt3R-7jMVd3XIGjLWYy0X5B74dK_IgAp2Cg,12149
64
64
  sky/clouds/scp.py,sha256=6OucFxDIOZFA1Z_QZwGqblW4zdBljhUjhamssvchu_0,15971
65
65
  sky/clouds/vast.py,sha256=1AZaM71dI837oeuMZEXN4muHsH3CKRLjBAPcPy1QqV4,11296
66
66
  sky/clouds/vsphere.py,sha256=yRLQESpuSOdfs4KaVTMSQJqf_3mr4VysGqSo1zs1ZtU,12453
67
- sky/clouds/service_catalog/__init__.py,sha256=Fbm8kKpVTCoIumnY-FWL0X4xMpKu_qwYAxyuVXu4IBQ,14997
67
+ sky/clouds/service_catalog/__init__.py,sha256=WCYMAhek36Ee1HjJL9LP287a70hv2NMA_8plcZDI4Z4,14997
68
68
  sky/clouds/service_catalog/aws_catalog.py,sha256=PbYD37rU_8m-Y_5xTglW21ppxI0GecM1sdO1yXuPwHE,13518
69
69
  sky/clouds/service_catalog/azure_catalog.py,sha256=5Q51x_WEKvQ2YSgJvZHRH3URlbwIstYuwpjaWW_wJlw,8149
70
70
  sky/clouds/service_catalog/common.py,sha256=6TCUE1kg2FvUZXpV2ktrnsRchUYNTGx8rq16m5Nztek,27766
@@ -166,7 +166,7 @@ sky/provision/kubernetes/constants.py,sha256=dZCUV8FOO9Gct80sdqeubKnxeW3CGl-u5mx
166
166
  sky/provision/kubernetes/instance.py,sha256=oag17OtuiqU-1RjkgW9NvEpxSGUFIYdI7M61S-YmPu8,50503
167
167
  sky/provision/kubernetes/network.py,sha256=AtcOM8wPs_-UlQJhGEQGP6Lh4HIgdx63Y0iWEhP5jyc,12673
168
168
  sky/provision/kubernetes/network_utils.py,sha256=6uck1aBkgtm-gGBitU3_hEUp8j14ZuG_4Xo70ReZYXs,11654
169
- sky/provision/kubernetes/utils.py,sha256=IR2AKbZA-ZuKtLRuqHZsiA1N2HmQTJKz5IqOQIVEk4U,125753
169
+ sky/provision/kubernetes/utils.py,sha256=D7xfk6RjqLAsERpJMxQ8ozu-D3pRTz_bRszKQeMsVno,127188
170
170
  sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml,sha256=AMzYzlY0JIlfBWj5eX054Rc1XDW2thUcLSOGMJVhIdA,229
171
171
  sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml,sha256=RtTq4F1QUmR2Uunb6zuuRaPhV7hpesz4saHjn3Ncsb4,2010
172
172
  sky/provision/lambda_cloud/__init__.py,sha256=6EEvSgtUeEiup9ivIFevHmgv0GqleroO2X0K7TRa2nE,612
@@ -238,7 +238,7 @@ sky/server/uvicorn.py,sha256=wajwPHJ3IEEP3GMNOCc0S81-1v2qT5F-ejUkLFVhUzk,2953
238
238
  sky/server/html/log.html,sha256=TSGZktua9Ysl_ysg3w60rjxAxhH61AJnsYDHdtqrjmI,6929
239
239
  sky/server/requests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
240
240
  sky/server/requests/event_loop.py,sha256=OhpPbuce65bbjpGRlcJa78AVnYSm08SzFKt70ypCUuQ,1211
241
- sky/server/requests/executor.py,sha256=wW-8s8APEakYRJKNiWIhHg2vrn2UUteseUTsqm9q3Fg,21693
241
+ sky/server/requests/executor.py,sha256=txzvCUKLafRzEoY4Snk9xVFbIdw5cnu7_wkHTldQdmE,22085
242
242
  sky/server/requests/payloads.py,sha256=3sF36Z9_PLzpEncW0AplJtOz-_nsn5PJaM5lS-3Y8bw,16558
243
243
  sky/server/requests/preconditions.py,sha256=ipxIb_3JXG6S3-ymcOdqQNb7VDvoPqADxu9ZK7-nQWc,7179
244
244
  sky/server/requests/requests.py,sha256=9ovdQE-zv_Mvc6IbGATHVyQlOxSKjg_OankZbgDVGeE,21338
@@ -350,9 +350,9 @@ sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml,sha256=VLKT2KKimZu1GDg_4AIlIt488
350
350
  sky/utils/kubernetes/kubernetes_deploy_utils.py,sha256=HPVgNt-wbCVPd9dpDFiA7t2mzQLpjXHJ61eiwRbEr-c,10378
351
351
  sky/utils/kubernetes/rsync_helper.sh,sha256=h4YwrPFf9727CACnMJvF3EyK_0OeOYKKt4su_daKekw,1256
352
352
  sky/utils/kubernetes/ssh_jump_lifecycle_manager.py,sha256=Kq1MDygF2IxFmu9FXpCxqucXLmeUrvs6OtRij6XTQbo,6554
353
- skypilot_nightly-1.0.0.dev20250403.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
354
- skypilot_nightly-1.0.0.dev20250403.dist-info/METADATA,sha256=YkgmWuWgAbuQRFP3Zfk3QpnqS_0KN7x50GuSoVI9JwU,18552
355
- skypilot_nightly-1.0.0.dev20250403.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
356
- skypilot_nightly-1.0.0.dev20250403.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
357
- skypilot_nightly-1.0.0.dev20250403.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
358
- skypilot_nightly-1.0.0.dev20250403.dist-info/RECORD,,
353
+ skypilot_nightly-1.0.0.dev20250405.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
354
+ skypilot_nightly-1.0.0.dev20250405.dist-info/METADATA,sha256=wdtznc_1O5ewseMG9VlObIYMZmvjQO4-Cd7woHSdQV8,18552
355
+ skypilot_nightly-1.0.0.dev20250405.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
356
+ skypilot_nightly-1.0.0.dev20250405.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
357
+ skypilot_nightly-1.0.0.dev20250405.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
358
+ skypilot_nightly-1.0.0.dev20250405.dist-info/RECORD,,