skypilot-nightly 1.0.0.dev20241028__py3-none-any.whl → 1.0.0.dev20241030__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.
Files changed (33) hide show
  1. sky/__init__.py +2 -2
  2. sky/adaptors/azure.py +3 -0
  3. sky/backends/backend_utils.py +10 -133
  4. sky/backends/cloud_vm_ray_backend.py +17 -105
  5. sky/clouds/azure.py +10 -1
  6. sky/execution.py +5 -4
  7. sky/jobs/controller.py +38 -22
  8. sky/jobs/recovery_strategy.py +30 -5
  9. sky/jobs/state.py +33 -5
  10. sky/jobs/utils.py +28 -4
  11. sky/optimizer.py +11 -7
  12. sky/provision/azure/azure-config-template.json +7 -1
  13. sky/provision/azure/config.py +65 -45
  14. sky/provision/azure/instance.py +275 -70
  15. sky/provision/constants.py +7 -0
  16. sky/provision/gcp/instance.py +0 -7
  17. sky/resources.py +25 -8
  18. sky/serve/core.py +0 -2
  19. sky/serve/serve_state.py +3 -7
  20. sky/serve/serve_utils.py +2 -14
  21. sky/serve/service_spec.py +0 -28
  22. sky/setup_files/setup.py +4 -3
  23. sky/skylet/job_lib.py +37 -53
  24. sky/skylet/log_lib.py +5 -14
  25. sky/templates/azure-ray.yml.j2 +1 -0
  26. sky/utils/dag_utils.py +14 -4
  27. sky/utils/schemas.py +25 -15
  28. {skypilot_nightly-1.0.0.dev20241028.dist-info → skypilot_nightly-1.0.0.dev20241030.dist-info}/METADATA +13 -11
  29. {skypilot_nightly-1.0.0.dev20241028.dist-info → skypilot_nightly-1.0.0.dev20241030.dist-info}/RECORD +33 -33
  30. {skypilot_nightly-1.0.0.dev20241028.dist-info → skypilot_nightly-1.0.0.dev20241030.dist-info}/WHEEL +1 -1
  31. {skypilot_nightly-1.0.0.dev20241028.dist-info → skypilot_nightly-1.0.0.dev20241030.dist-info}/LICENSE +0 -0
  32. {skypilot_nightly-1.0.0.dev20241028.dist-info → skypilot_nightly-1.0.0.dev20241030.dist-info}/entry_points.txt +0 -0
  33. {skypilot_nightly-1.0.0.dev20241028.dist-info → skypilot_nightly-1.0.0.dev20241030.dist-info}/top_level.txt +0 -0
sky/skylet/job_lib.py CHANGED
@@ -512,16 +512,13 @@ def _get_jobs_by_ids(job_ids: List[int]) -> List[Dict[str, Any]]:
512
512
  return records
513
513
 
514
514
 
515
- def _get_pending_jobs():
516
- rows = _CURSOR.execute(
517
- 'SELECT job_id, created_time, submit FROM pending_jobs')
518
- rows = list(rows)
519
- return {
520
- job_id: {
521
- 'created_time': created_time,
522
- 'submit': submit
523
- } for job_id, created_time, submit in rows
524
- }
515
+ def _get_pending_job(job_id: int) -> Optional[Dict[str, Any]]:
516
+ rows = _CURSOR.execute('SELECT created_time, submit FROM pending_jobs '
517
+ f'WHERE job_id={job_id!r}')
518
+ for row in rows:
519
+ created_time, submit = row
520
+ return {'created_time': created_time, 'submit': submit}
521
+ return None
525
522
 
526
523
 
527
524
  def update_job_status(job_ids: List[int],
@@ -535,7 +532,7 @@ def update_job_status(job_ids: List[int],
535
532
  during job cancelling, we still need this to handle the staleness problem,
536
533
  caused by instance restarting and other corner cases (if any).
537
534
 
538
- This function should only be run on the remote instance with ray==2.4.0.
535
+ This function should only be run on the remote instance with ray>=2.4.0.
539
536
  """
540
537
  if len(job_ids) == 0:
541
538
  return []
@@ -547,50 +544,45 @@ def update_job_status(job_ids: List[int],
547
544
 
548
545
  # In ray 2.4.0, job_client.list_jobs returns a list of JobDetails,
549
546
  # which contains the job status (str) and submission_id (str).
547
+ ray_job_query_time = time.time()
550
548
  job_detail_lists: List['ray_pydantic.JobDetails'] = job_client.list_jobs()
551
549
 
552
- pending_jobs = _get_pending_jobs()
553
550
  job_details = {}
554
551
  ray_job_ids_set = set(ray_job_ids)
555
552
  for job_detail in job_detail_lists:
556
553
  if job_detail.submission_id in ray_job_ids_set:
557
554
  job_details[job_detail.submission_id] = job_detail
558
- job_statuses: List[Optional[JobStatus]] = [None] * len(ray_job_ids)
559
- for i, ray_job_id in enumerate(ray_job_ids):
560
- job_id = job_ids[i]
561
- if ray_job_id in job_details:
562
- ray_status = job_details[ray_job_id].status
563
- job_statuses[i] = _RAY_TO_JOB_STATUS_MAP[ray_status]
564
- if job_id in pending_jobs:
565
- if pending_jobs[job_id]['created_time'] < psutil.boot_time():
566
- logger.info(
567
- f'Job {job_id} is stale, setting to FAILED: '
568
- f'created_time={pending_jobs[job_id]["created_time"]}, '
569
- f'boot_time={psutil.boot_time()}')
570
- # The job is stale as it is created before the instance
571
- # is booted, e.g. the instance is rebooted.
572
- job_statuses[i] = JobStatus.FAILED
573
- # Gives a 60 second grace period between job being submit from
574
- # the pending table until appearing in ray jobs.
575
- if (pending_jobs[job_id]['submit'] > 0 and
576
- pending_jobs[job_id]['submit'] <
577
- time.time() - _PENDING_SUBMIT_GRACE_PERIOD):
578
- # For jobs submitted outside of the grace period, we will
579
- # consider the ray job status.
580
- continue
581
- else:
582
- # Reset the job status to PENDING even though it may not appear
583
- # in the ray jobs, so that it will not be considered as stale.
584
- job_statuses[i] = JobStatus.PENDING
585
-
586
- assert len(job_statuses) == len(job_ids), (job_statuses, job_ids)
587
555
 
588
556
  statuses = []
589
- for job_id, status in zip(job_ids, job_statuses):
557
+ for job_id, ray_job_id in zip(job_ids, ray_job_ids):
590
558
  # Per-job status lock is required because between the job status
591
559
  # query and the job status update, the job status in the databse
592
560
  # can be modified by the generated ray program.
593
561
  with filelock.FileLock(_get_lock_path(job_id)):
562
+ status = None
563
+ if ray_job_id in job_details:
564
+ ray_status = job_details[ray_job_id].status
565
+ status = _RAY_TO_JOB_STATUS_MAP[ray_status]
566
+ pending_job = _get_pending_job(job_id)
567
+ if pending_job is not None:
568
+ if pending_job['created_time'] < psutil.boot_time():
569
+ logger.info(f'Job {job_id} is stale, setting to FAILED: '
570
+ f'created_time={pending_job["created_time"]}, '
571
+ f'boot_time={psutil.boot_time()}')
572
+ # The job is stale as it is created before the instance
573
+ # is booted, e.g. the instance is rebooted.
574
+ status = JobStatus.FAILED
575
+ # Gives a 60 second grace period between job being submit from
576
+ # the pending table until appearing in ray jobs. For jobs
577
+ # submitted outside of the grace period, we will consider the
578
+ # ray job status.
579
+ if not (pending_job['submit'] > 0 and pending_job['submit'] <
580
+ ray_job_query_time - _PENDING_SUBMIT_GRACE_PERIOD):
581
+ # Reset the job status to PENDING even though it may not
582
+ # appear in the ray jobs, so that it will not be considered
583
+ # as stale.
584
+ status = JobStatus.PENDING
585
+
594
586
  original_status = get_status_no_lock(job_id)
595
587
  assert original_status is not None, (job_id, status)
596
588
  if status is None:
@@ -827,14 +819,6 @@ class JobLibCodeGen:
827
819
  'import os',
828
820
  'import getpass',
829
821
  'from sky.skylet import job_lib, log_lib, constants',
830
- # Backward compatibility for old skylet lib version on the remote
831
- # machine. The `job_owner` argument was removed in #3037, and if the
832
- # remote machine has an old SkyPilot version before that, we need to
833
- # pass the `job_owner` argument to the job_lib functions.
834
- # TODO(zhwu): Remove this in 0.7.0 release.
835
- 'job_owner_kwargs = {} '
836
- 'if getattr(constants, "SKYLET_LIB_VERSION", 0) >= 1 '
837
- 'else {"job_owner": getpass.getuser()}',
838
822
  ]
839
823
 
840
824
  @classmethod
@@ -861,7 +845,7 @@ class JobLibCodeGen:
861
845
 
862
846
  @classmethod
863
847
  def update_status(cls) -> str:
864
- code = ['job_lib.update_status(**job_owner_kwargs)']
848
+ code = ['job_lib.update_status()']
865
849
  return cls._build(code)
866
850
 
867
851
  @classmethod
@@ -879,7 +863,7 @@ class JobLibCodeGen:
879
863
  """See job_lib.cancel_jobs()."""
880
864
  code = [
881
865
  (f'cancelled = job_lib.cancel_jobs_encoded_results('
882
- f' {job_ids!r}, {cancel_all}, **job_owner_kwargs)'),
866
+ f' {job_ids!r}, {cancel_all})'),
883
867
  # Print cancelled IDs. Caller should parse by decoding.
884
868
  'print(cancelled, flush=True)',
885
869
  ]
@@ -902,7 +886,7 @@ class JobLibCodeGen:
902
886
  'run_timestamp = job_lib.get_run_timestamp(job_id)',
903
887
  f'log_dir = None if run_timestamp is None else os.path.join({constants.SKY_LOGS_DIRECTORY!r}, run_timestamp)',
904
888
  f'log_lib.tail_logs(job_id=job_id, log_dir=log_dir, '
905
- f'managed_job_id={managed_job_id!r}, follow={follow}, **job_owner_kwargs)',
889
+ f'managed_job_id={managed_job_id!r}, follow={follow})',
906
890
  ]
907
891
  return cls._build(code)
908
892
 
sky/skylet/log_lib.py CHANGED
@@ -186,20 +186,11 @@ def run_with_log(
186
186
  daemon_script = os.path.join(
187
187
  os.path.dirname(os.path.abspath(job_lib.__file__)),
188
188
  'subprocess_daemon.py')
189
- if not hasattr(constants, 'SKY_GET_PYTHON_PATH_CMD'):
190
- # Backward compatibility: for cluster started before #3326, this
191
- # constant does not exist. Since we generate the job script
192
- # in backends.cloud_vm_ray_backend with inspect, so the
193
- # the lates `run_with_log` will be used, but the `constants` is
194
- # not updated. We fallback to `python3` in this case.
195
- # TODO(zhwu): remove this after 0.7.0.
196
- python_path = 'python3'
197
- else:
198
- python_path = subprocess.check_output(
199
- constants.SKY_GET_PYTHON_PATH_CMD,
200
- shell=True,
201
- stderr=subprocess.DEVNULL,
202
- encoding='utf-8').strip()
189
+ python_path = subprocess.check_output(
190
+ constants.SKY_GET_PYTHON_PATH_CMD,
191
+ shell=True,
192
+ stderr=subprocess.DEVNULL,
193
+ encoding='utf-8').strip()
203
194
  daemon_cmd = [
204
195
  python_path,
205
196
  daemon_script,
@@ -34,6 +34,7 @@ provider:
34
34
  # instead of the cluster_name. This ensures that ray creates new instances
35
35
  # for different cluster_name.
36
36
  resource_group: {{resource_group}}
37
+ use_external_resource_group: {{use_external_resource_group}}
37
38
  # Keep (otherwise cannot reuse when re-provisioning).
38
39
  # teardown(terminate=True) will override this.
39
40
  cache_stopped_nodes: True
sky/utils/dag_utils.py CHANGED
@@ -143,11 +143,21 @@ def fill_default_config_in_dag_for_job_launch(dag: dag_lib.Dag) -> None:
143
143
  for task_ in dag.tasks:
144
144
 
145
145
  new_resources_list = []
146
+ default_strategy = jobs.DEFAULT_RECOVERY_STRATEGY
147
+ assert default_strategy is not None
146
148
  for resources in list(task_.resources):
147
- change_default_value: Dict[str, Any] = {}
148
- if resources.job_recovery is None:
149
- change_default_value[
150
- 'job_recovery'] = jobs.DEFAULT_RECOVERY_STRATEGY
149
+ original_job_recovery = resources.job_recovery
150
+ job_recovery = {'strategy': default_strategy}
151
+ if isinstance(original_job_recovery, str):
152
+ job_recovery['strategy'] = original_job_recovery
153
+ elif isinstance(original_job_recovery, dict):
154
+ job_recovery.update(original_job_recovery)
155
+ strategy = job_recovery.get('strategy')
156
+ if strategy is None:
157
+ job_recovery['strategy'] = default_strategy
158
+ change_default_value: Dict[str, Any] = {
159
+ 'job_recovery': job_recovery
160
+ }
151
161
 
152
162
  new_resources = resources.copy(**change_default_value)
153
163
  new_resources_list.append(new_resources)
sky/utils/schemas.py CHANGED
@@ -92,7 +92,27 @@ def _get_single_resources_schema():
92
92
  'type': 'string',
93
93
  },
94
94
  'job_recovery': {
95
- 'type': 'string',
95
+ # Either a string or a dict.
96
+ 'anyOf': [{
97
+ 'type': 'string',
98
+ }, {
99
+ 'type': 'object',
100
+ 'required': [],
101
+ 'additionalProperties': False,
102
+ 'properties': {
103
+ 'strategy': {
104
+ 'anyOf': [{
105
+ 'type': 'string',
106
+ }, {
107
+ 'type': 'null',
108
+ }],
109
+ },
110
+ 'max_restarts_on_errors': {
111
+ 'type': 'integer',
112
+ 'minimum': 0,
113
+ },
114
+ }
115
+ }],
96
116
  },
97
117
  'disk_size': {
98
118
  'type': 'integer',
@@ -357,19 +377,6 @@ def get_service_schema():
357
377
  'downscale_delay_seconds': {
358
378
  'type': 'number',
359
379
  },
360
- # TODO(MaoZiming): Fields `qps_upper_threshold`,
361
- # `qps_lower_threshold` and `auto_restart` are deprecated.
362
- # Temporarily keep these fields for backward compatibility.
363
- # Remove after 2 minor release, i.e., 0.6.0.
364
- 'auto_restart': {
365
- 'type': 'boolean',
366
- },
367
- 'qps_upper_threshold': {
368
- 'type': 'number',
369
- },
370
- 'qps_lower_threshold': {
371
- 'type': 'number',
372
- },
373
380
  }
374
381
  },
375
382
  'replicas': {
@@ -595,7 +602,7 @@ _NETWORK_CONFIG_SCHEMA = {
595
602
 
596
603
  _LABELS_SCHEMA = {
597
604
  # Deprecated: 'instance_tags' is replaced by 'labels'. Keeping for backward
598
- # compatibility. Will be removed after 0.7.0.
605
+ # compatibility. Will be removed after 0.8.0.
599
606
  'instance_tags': {
600
607
  'type': 'object',
601
608
  'required': [],
@@ -771,6 +778,9 @@ def get_config_schema():
771
778
  'storage_account': {
772
779
  'type': 'string',
773
780
  },
781
+ 'resource_group_vm': {
782
+ 'type': 'string',
783
+ },
774
784
  }
775
785
  },
776
786
  'kubernetes': {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20241028
3
+ Version: 1.0.0.dev20241030
4
4
  Summary: SkyPilot: An intercloud broker for the clouds
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -46,11 +46,12 @@ Requires-Dist: awscli>=1.27.10; extra == "all"
46
46
  Requires-Dist: botocore>=1.29.10; extra == "all"
47
47
  Requires-Dist: boto3>=1.26.1; extra == "all"
48
48
  Requires-Dist: colorama<0.4.5; extra == "all"
49
- Requires-Dist: azure-cli>=2.31.0; extra == "all"
50
- Requires-Dist: azure-core; extra == "all"
51
- Requires-Dist: azure-identity>=1.13.0; extra == "all"
52
- Requires-Dist: azure-mgmt-network; extra == "all"
53
- Requires-Dist: azure-storage-blob; extra == "all"
49
+ Requires-Dist: azure-cli>=2.65.0; extra == "all"
50
+ Requires-Dist: azure-core>=1.31.0; extra == "all"
51
+ Requires-Dist: azure-identity>=1.19.0; extra == "all"
52
+ Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
53
+ Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
54
+ Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
54
55
  Requires-Dist: msgraph-sdk; extra == "all"
55
56
  Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
56
57
  Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
@@ -78,11 +79,12 @@ Requires-Dist: botocore>=1.29.10; extra == "aws"
78
79
  Requires-Dist: boto3>=1.26.1; extra == "aws"
79
80
  Requires-Dist: colorama<0.4.5; extra == "aws"
80
81
  Provides-Extra: azure
81
- Requires-Dist: azure-cli>=2.31.0; extra == "azure"
82
- Requires-Dist: azure-core; extra == "azure"
83
- Requires-Dist: azure-identity>=1.13.0; extra == "azure"
84
- Requires-Dist: azure-mgmt-network; extra == "azure"
85
- Requires-Dist: azure-storage-blob; extra == "azure"
82
+ Requires-Dist: azure-cli>=2.65.0; extra == "azure"
83
+ Requires-Dist: azure-core>=1.31.0; extra == "azure"
84
+ Requires-Dist: azure-identity>=1.19.0; extra == "azure"
85
+ Requires-Dist: azure-mgmt-network>=27.0.0; extra == "azure"
86
+ Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "azure"
87
+ Requires-Dist: azure-storage-blob>=12.23.1; extra == "azure"
86
88
  Requires-Dist: msgraph-sdk; extra == "azure"
87
89
  Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "azure"
88
90
  Provides-Extra: cloudflare
@@ -1,4 +1,4 @@
1
- sky/__init__.py,sha256=VJgULLW-g5zmsZdNK6RE_nYOPiwoAau82qlC-KSxDjs,5882
1
+ sky/__init__.py,sha256=WwnJbF2ubaAJEJkUGPJ7jK5mh3QD1r487evpncErtC8,5882
2
2
  sky/admin_policy.py,sha256=hPo02f_A32gCqhUueF0QYy1fMSSKqRwYEg_9FxScN_s,3248
3
3
  sky/authentication.py,sha256=pAdCT60OxxiXI9KXDyP2lQ9u9vMc6aMtq5Xi2h_hbdw,20984
4
4
  sky/check.py,sha256=D3Y3saIFAYVvPxuBHnVgJEO0fUVDxgjwuMBaO-D778k,9472
@@ -7,17 +7,17 @@ sky/cloud_stores.py,sha256=RjFgmRhUh1Kk__f6g3KxzLp9s7dA0pFK4W1AukEuUaw,21153
7
7
  sky/core.py,sha256=DW9OGE2kS2CmsvQ1grrpRnNFS3woMGWSHu5GE99e-I4,38190
8
8
  sky/dag.py,sha256=WLFWr5hfrwjd31uYlNvI-zWUk7tLaT_gzJn4LzbVtkE,2780
9
9
  sky/exceptions.py,sha256=KBIEJHgrw6OMBL8H65o-Gk6qYQEV1SR9gBwMjnMnxxg,8858
10
- sky/execution.py,sha256=CbrKMgfc2JgLqZqwPvmYKxbWAQKYqHpOLpUEOb-k2m0,24679
10
+ sky/execution.py,sha256=tDK6JhF_405cjqxRpbdLbHZyxrKTD5oa0UkKDvPJ_9Q,24751
11
11
  sky/global_user_state.py,sha256=PywEmUutF97XBgRMClR6IS5_KM8JJC0oA1LsPUZebp0,28681
12
- sky/optimizer.py,sha256=OzxWiA6ZC0tyJ1eNMy4e72vitjfLKfbOLF9ywZOccXU,59343
13
- sky/resources.py,sha256=bm004Ms2qlBqEr0N_TEUybDOXJVhLF8yOwkhoqb1t9c,67478
12
+ sky/optimizer.py,sha256=tXGrFpc6xNtKH34qjBAMd4jTuWcDZTPnGFwEtuCQFmk,59702
13
+ sky/resources.py,sha256=7kVpLRfy3DFFgmEji0_Xz6FbrvBDUSXC6K0bsRIK3hA,68290
14
14
  sky/sky_logging.py,sha256=oLmTmwkuucIto3LHXLJfMcyRpYSkmZAZa5XzQPA5IHk,4434
15
15
  sky/skypilot_config.py,sha256=E3g65cX3P3dT9b5N0GgFBG6yB0FXwIGpisKoozmJmWU,9094
16
16
  sky/status_lib.py,sha256=J7Jb4_Dz0v2T64ttOdyUgpokvl4S0sBJrMfH7Fvo51A,1457
17
17
  sky/task.py,sha256=KDsTBIxYpkCOPHv3_ei5H3LDMiGHvDeS9_2HeL6yyLA,49766
18
18
  sky/adaptors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  sky/adaptors/aws.py,sha256=jz3E8YyeGscgLZvFE6A1SkxpH6o_inZ-0NiXdRnxSGA,6863
20
- sky/adaptors/azure.py,sha256=n4PXHGJ8ambcbzYzWifj9BsoShUhg62pF6udmUw45S8,21762
20
+ sky/adaptors/azure.py,sha256=yjM8nAPW-mlSXfmA8OmJNnSIrZ9lQx2-GxiI-TIVrwE,21910
21
21
  sky/adaptors/cloudflare.py,sha256=0JA41HeZeYoqcJoEyol01caYgt8UrlpcZJJ6ToU-Fg8,7594
22
22
  sky/adaptors/common.py,sha256=VhgAFPx-GmhXoob8B1YvqGC2BXs2HwtqoA8oFMaqkbc,2551
23
23
  sky/adaptors/cudo.py,sha256=WGvIQrlzJkGDe02Ve7pygA56tHwUc4kwS3XHW8kMFAA,239
@@ -30,8 +30,8 @@ sky/adaptors/runpod.py,sha256=4Nt_BfZhJAKQNA3wO8cxvvNI8x4NsDGHu_4EhRDlGYQ,225
30
30
  sky/adaptors/vsphere.py,sha256=zJP9SeObEoLrpgHW2VHvZE48EhgVf8GfAEIwBeaDMfM,2129
31
31
  sky/backends/__init__.py,sha256=UDjwbUgpTRApbPJnNfR786GadUuwgRk3vsWoVu5RB_c,536
32
32
  sky/backends/backend.py,sha256=wwfbrxPhjMPs6PSyy3tAHI8WJhl-xhgzWBsAZjmJJ6g,6249
33
- sky/backends/backend_utils.py,sha256=PA21DAXspXuTZDQ5qA3G5RGJ0oUTpJ7XatRRvhtmtt0,126993
34
- sky/backends/cloud_vm_ray_backend.py,sha256=D9x5TT_4IE_WhzgLjj-I7nliRmnCY9DKVwcLuJicx7s,237775
33
+ sky/backends/backend_utils.py,sha256=LmLsaLiPuuUyGebOXykdvwZpUY-8sB7n4o2AnmwNmdQ,121714
34
+ sky/backends/cloud_vm_ray_backend.py,sha256=ZWAzdmKzSf3qalDoKfmLGaO3PywjLtIA5Q3AeeHhvHA,233158
35
35
  sky/backends/docker_utils.py,sha256=Hyw1YY20EyghhEbYx6O2FIMDcGkNzBzV9TM7LFynei8,8358
36
36
  sky/backends/local_docker_backend.py,sha256=0JL5m0YUgOmOL4aWEUe4tmt89dsxjk4_WXkPwgEKEis,16801
37
37
  sky/backends/wheel_utils.py,sha256=3QS4T_Ydvo4DbYhogtyADyNBEf04I6jUCL71M285shQ,7963
@@ -41,7 +41,7 @@ sky/benchmark/benchmark_state.py,sha256=X8CXmuU9KgsDRhKedhFgjeRMUFWtQsjFs1qECvPG
41
41
  sky/benchmark/benchmark_utils.py,sha256=eb-i6zYoo-Zkod-T9qtCu1FcYLw--Yyos1SyibUPZNE,26194
42
42
  sky/clouds/__init__.py,sha256=WuNIJEnZmBO72tU5awgaaL3rdvFRSkgaYNNeuY68dXo,1356
43
43
  sky/clouds/aws.py,sha256=dVZ8auaa2z2Ifl9iiRT06IeEFaNtZhANKtHVLT6Gcno,49474
44
- sky/clouds/azure.py,sha256=wgR78HMn64EwgQlU9Klv-j3neVbgo4NKycaBkNHyiBc,30158
44
+ sky/clouds/azure.py,sha256=-K-VPV2sYJJAfJbDcPAiNhNVhMQYkRBuYHQRb3-MGIQ,30598
45
45
  sky/clouds/cloud.py,sha256=A5F4a71ciPyljWEs6vT-4RmdGT-AE9NkhS8gJ4Vgi_I,35165
46
46
  sky/clouds/cloud_registry.py,sha256=oLoYFjm_SDTgdHokY7b6A5Utq80HXRQNxV0fLjDdVsQ,2361
47
47
  sky/clouds/cudo.py,sha256=UiY273Sln7VOYDYx93yWiWH_RLlOKZ2cm7mA31ld4A8,13094
@@ -95,17 +95,17 @@ sky/data/storage.py,sha256=x8YYY4zVBdit_5oAR_MXV-TM9qDefV_ZV4z0irv6ZaU,163102
95
95
  sky/data/storage_utils.py,sha256=cM3kxlffYE7PnJySDu8huyUsMX_JYsf9uer8r5OYsjo,9556
96
96
  sky/jobs/__init__.py,sha256=yucibSB_ZimtJMvOhMxn6ZqwBIYNfcwmc6pSXtCqmNQ,1483
97
97
  sky/jobs/constants.py,sha256=YLgcCg_RHSYr_rfsI_4UIdXk78KKKOK29Oem88t5j8I,1350
98
- sky/jobs/controller.py,sha256=zSdawmXg-9SZ91jJg5_OSFVlntu9xupLs-CiPwG1QdQ,26412
98
+ sky/jobs/controller.py,sha256=sirpi730_GfKfPZeZ2PvCXnJWger0r6AyLSOx2sLd6A,27368
99
99
  sky/jobs/core.py,sha256=RkBFaKDlovmdzqlOAgQ0xAimZFgo4pXq3qaQkAvGsGk,16908
100
- sky/jobs/recovery_strategy.py,sha256=UOEaVGSpRbCnCzlD8cgyjhCPIBIeBeCXCutoSic5aiA,25545
101
- sky/jobs/state.py,sha256=C6R5Yq7ftBqGPa_71tUjflBMKAaJ1FTTdbgjAwmbJsI,23231
102
- sky/jobs/utils.py,sha256=lYfWkEAPVnYcj2nT6VYdM6PCaWKUH6_AD4TAV_sVCkY,36376
100
+ sky/jobs/recovery_strategy.py,sha256=FpPK6e2PT61cZPDUJqIfo6g53uSRTBh7dOTbfR1DLVE,26672
101
+ sky/jobs/state.py,sha256=TV1G12vEMQJRgwWXsAjb3lmkJqkZmAOUUOja2QQPrg8,24307
102
+ sky/jobs/utils.py,sha256=pF4Kyl4v1M_Bmm2jIRlXGTSdII5BJ3f4qwex_oCFgBk,37742
103
103
  sky/jobs/dashboard/dashboard.py,sha256=HFShuaxKir97QTeK2x37h6bsY6ncaFaNEg1USZqJPdc,3050
104
104
  sky/jobs/dashboard/static/favicon.ico,sha256=uYlvgxSM7gjBmXpZ8wydvZUPAbJiiix-rc2Xe5mma9s,15086
105
105
  sky/jobs/dashboard/templates/index.html,sha256=DBKMYEkkJ6sgLYod9ro7drgL8Y_neDsCx_WbwhWDsWM,9837
106
106
  sky/provision/__init__.py,sha256=UhYsGRribEyK1--PPT0Dom9051jlpdn8UCNhO8qpPOc,6262
107
107
  sky/provision/common.py,sha256=E8AlSUFcn0FYQq1erNmoVfMAdsF9tP2yxfyk-9PLvQU,10286
108
- sky/provision/constants.py,sha256=DvHj3wpqdpaSBHMOGIfVWLLWGJoz0eOQAx73DwYMNEk,531
108
+ sky/provision/constants.py,sha256=oc_XDUkcoLQ_lwDy5yMeMSWviKS0j0s1c0pjlvpNeWY,800
109
109
  sky/provision/docker_utils.py,sha256=cKYasCwbMf6C2_0vTxg2GvbrnhFvko-xDl1frfm7wxc,19199
110
110
  sky/provision/instance_setup.py,sha256=n1Px_KOYZl7Rf1WLXrfTTHyqxyA8_5QTN9BNLjQRkgc,22427
111
111
  sky/provision/logging.py,sha256=yZWgejrFBhhRjAtvFu5N5bRXIMK5TuwNjp1vKQqz2pw,2103
@@ -116,9 +116,9 @@ sky/provision/aws/config.py,sha256=ApEh63RR_KyCp9nPXX35z6jBREoulJPQ5st8K9Jlclo,2
116
116
  sky/provision/aws/instance.py,sha256=eCslJ2XfJo_pkQMnKFQqhGnUIRvwKiT12oxBY5-klss,40750
117
117
  sky/provision/aws/utils.py,sha256=m49pS-SHGW7Au3bhDeTPsL8N5iRzbwOXzyEWRCc1Vho,3238
118
118
  sky/provision/azure/__init__.py,sha256=87cgk1_Ws7n9rqaDDPv-HpfrkVeSQMdFQnhnXwyx9g4,548
119
- sky/provision/azure/azure-config-template.json,sha256=jsyzjE03FLoR8TF9phe7XMdmQyRQpbfwCMlSxjPjEig,4531
120
- sky/provision/azure/config.py,sha256=zFgWWK-UWsbuxOo7_TTVL2rqWMqUWmkQl9bnP7w18xI,7907
121
- sky/provision/azure/instance.py,sha256=xHHPSfPoBJxC4IkzHeaGfQZoxEpElSK7LC04z34spgc,39319
119
+ sky/provision/azure/azure-config-template.json,sha256=jrjAgOtpe0e6FSg3vsVqHKQqJe0w-HeWOFT1HuwzS2c,4712
120
+ sky/provision/azure/config.py,sha256=V5-0Zelt4Xo0vcqnD6PpsnaCS7vc3xosDelILDAKSW4,8885
121
+ sky/provision/azure/instance.py,sha256=dq67O6gwvNN0jrBklgJ8AnrNj784aqyLl7PHeB5xVQA,50088
122
122
  sky/provision/cudo/__init__.py,sha256=KAEl26MVPsk7IoP9Gg-MOJJRIV6-X9B0fbyHdyJWdLo,741
123
123
  sky/provision/cudo/config.py,sha256=RYOVkV0MoUqVBJRZiKhBZhjFygeyFs7eUdVMdPg1vds,327
124
124
  sky/provision/cudo/cudo_machine_type.py,sha256=_VNXWPELmlFXbtdcnPvkuLuyE9CZ923BUCdiac-ClDY,696
@@ -132,7 +132,7 @@ sky/provision/fluidstack/instance.py,sha256=jZb_zJFkyCZw3QV3Dt-GbUxl_2HR1kxvOxS7
132
132
  sky/provision/gcp/__init__.py,sha256=zlgjR2JoaGD7sStGStMRu9bJ62f-8NKEIyb-bFHBlzM,528
133
133
  sky/provision/gcp/config.py,sha256=i0PhR1ybGErQiPT8cD6E5OFB7LD6sub4Rc-mhgTREVI,33340
134
134
  sky/provision/gcp/constants.py,sha256=ojerfnNEeayJn-0aJq2Uq1iTchxOkpruKrPBbHmdiEw,7448
135
- sky/provision/gcp/instance.py,sha256=l2-1nHj4pUoHqOu8HMN1hT1bwd4Q96X8MXgOPsNJUN8,25184
135
+ sky/provision/gcp/instance.py,sha256=8yjisiPqNBbhEiPBRogvhhgEpmmDplwTBQRgi17TR_I,24786
136
136
  sky/provision/gcp/instance_utils.py,sha256=veRBr6Oziv0KaUdC4acuWeaOremNV0gMYCCHaSvY7c8,70943
137
137
  sky/provision/gcp/mig_utils.py,sha256=oFpcFZoapHMILSE4iIm8V5bxP1RhbMHRF7cciqq8qAk,7883
138
138
  sky/provision/kubernetes/__init__.py,sha256=y6yVfii81WYG3ROxv4hiIj-ydinS5-xGxLvXnARVQoI,719
@@ -175,16 +175,16 @@ sky/serve/__init__.py,sha256=gFZt7W3UPMi4qvYe2xgkHg1VxbR1WGavKyWLBUD3mpg,1731
175
175
  sky/serve/autoscalers.py,sha256=khY1oZ22PRaUQNsLCoNKH178X_NiJw0LSLOKr7_LNgY,30275
176
176
  sky/serve/constants.py,sha256=7MflfgTHO9gDSux93U4BmNeEMWXxZB4q7I54KUwgp-s,4651
177
177
  sky/serve/controller.py,sha256=R5iIEGEEFtbm_6MvSGelYZP-vSmW0cSFuy64OexUc4g,11719
178
- sky/serve/core.py,sha256=pz62ERWyHcg2p-rtzVjBZaWmKrK6Hx213YPoa_J5Tlo,31097
178
+ sky/serve/core.py,sha256=jwrgglvtFqbD9Y4pzXmuso5hKc0OQcTWJ-AkvypiQII,30986
179
179
  sky/serve/load_balancer.py,sha256=aUfDsgUT_fYrchCwJCeunMPXmAkwJAY58BEu-IN2FaA,11571
180
180
  sky/serve/load_balancing_policies.py,sha256=ExdwH_pxPYpJ6CkoTQCOPSa4lzwbq1LFFMKzmIu8ryk,2331
181
181
  sky/serve/replica_managers.py,sha256=1xYDK9Te5wFEF5hUK0gyNIUib0MY-HScLHUBDlTSl-k,57774
182
- sky/serve/serve_state.py,sha256=5BZSKKKxQRk-0mku17Ch4Veu4qOhaFvaOJY3zrZCkLw,19315
183
- sky/serve/serve_utils.py,sha256=9tqh7i-99Kll-24sKhfjEzjTOnGXWJQdeqIyNkFVoMo,40180
182
+ sky/serve/serve_state.py,sha256=Q7De4GoBEPxlN_t1Lpn-Y1fd94SeHZ3E-94f1OTuhpc,19086
183
+ sky/serve/serve_utils.py,sha256=wqBxChpJylZ_qHWyFmMBJqrG8_7xTIOr9nlOeyHs9P8,39431
184
184
  sky/serve/service.py,sha256=fkfJvNJ2BO6rfV0TblZG-QkOXaCyZlpkwbGgrsTzf2w,11872
185
- sky/serve/service_spec.py,sha256=iRhW95SERvb4NWtV10uCuhgvW31HuSAmZZ55OX0WK8s,15309
185
+ sky/serve/service_spec.py,sha256=1aS6b-ku7W4CjyekXKDxjZsDdt-O8ygos-jFeXu31cA,13766
186
186
  sky/setup_files/MANIFEST.in,sha256=CXz8lIJMgWlH9TvYgzIL3vPFtSDoQq-UMfD9K62rtH4,590
187
- sky/setup_files/setup.py,sha256=o4IgiwFoTB6Sdn3MmOirUIS0OSkoh6qo_0vrgcmrYA4,12093
187
+ sky/setup_files/setup.py,sha256=G767GNB-jXqyC8MR-IdiojnnI2E6tP4gMYenKU14ZGA,12156
188
188
  sky/skylet/LICENSE,sha256=BnFrJSvUFpMUoH5mOpWnEvaC5R6Uux8W6WXgrte8iYg,12381
189
189
  sky/skylet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
190
190
  sky/skylet/attempt_skylet.py,sha256=GZ6ITjjA0m-da3IxXXfoHR6n4pjp3X3TOXUqVvSrV0k,2136
@@ -192,8 +192,8 @@ sky/skylet/autostop_lib.py,sha256=JPDHmByuhoNYXSUHl-OnyeJUkOFWn7gDM1FrS7Kr3E8,44
192
192
  sky/skylet/configs.py,sha256=UtnpmEL0F9hH6PSjhsps7xgjGZ6qzPOfW1p2yj9tSng,1887
193
193
  sky/skylet/constants.py,sha256=OsuJcQp6UgkQ9Yfml6f_raXXbHS7-_h-v4QNv92y0Gw,14642
194
194
  sky/skylet/events.py,sha256=A09E7LmmwzcGrSG0n8K7d3EZ1ZJr1mmmzoGyhnArYJA,12303
195
- sky/skylet/job_lib.py,sha256=csXhJ6lvAxjzSy2PzZvr0sPJyEoVkCvPi2Zjq9JZkHY,35884
196
- sky/skylet/log_lib.py,sha256=7rdmEr5Wy9CIGLkWls5-FVeqTL1O2GPy44uDaEAqMS0,19312
195
+ sky/skylet/job_lib.py,sha256=jqJ4D3UeG6fNMm8xPtdWclnrVHQb6WiRqb1nrBp8TPg,35200
196
+ sky/skylet/log_lib.py,sha256=Jyj3h2yMBlheFX53AabXEiPaKyCbu06hLEhay5_ZRN0,18734
197
197
  sky/skylet/log_lib.pyi,sha256=AHMkW2DGK2erFovb3ToZWxRiYaATlzkxKb5J9pkgF2Y,4295
198
198
  sky/skylet/skylet.py,sha256=U9plr5hmhD9-Nyy0LMCymlE8DWtRXTFXQvfbFsS746Y,1153
199
199
  sky/skylet/subprocess_daemon.py,sha256=IJwGAzOdERrhWJS7VYKAUByNsLyIkKkB0w5nk06okG8,2818
@@ -219,7 +219,7 @@ sky/skylet/ray_patches/resource_demand_scheduler.py.patch,sha256=AVV-Hw-Rxw16aFm
219
219
  sky/skylet/ray_patches/updater.py.patch,sha256=ZNMGVYICPBB44jLbEx2KvCgIY7BWYdDv3-2b2HJWmAQ,289
220
220
  sky/skylet/ray_patches/worker.py.patch,sha256=_OBhibdr3xOy5Qje6Tt8D1eQVm_msi50TJbCJmOTxVU,565
221
221
  sky/templates/aws-ray.yml.j2,sha256=K0rAuyf1XC_GPFp1BR9df42-Be12A6T2UF0BllVSpYg,8005
222
- sky/templates/azure-ray.yml.j2,sha256=zjASvx-Y0ZNEvCg9hsBhp3mt0Je5fvUv6XYUAYdrNqI,6245
222
+ sky/templates/azure-ray.yml.j2,sha256=l8zBUVfMPNRlKpn3l7_D3yXpdrUoSeykUuZRy0UoCLQ,6308
223
223
  sky/templates/cudo-ray.yml.j2,sha256=SEHVY57iBauCOE2HYJtYVFEKlriAkdwQu_p86a1n_bA,3548
224
224
  sky/templates/fluidstack-ray.yml.j2,sha256=t8TCULgiErCZdtFmBZVsA8ZdcqR7ccwsmQhuDFTBEAU,3541
225
225
  sky/templates/gcp-ray.yml.j2,sha256=y95B-Nk6hFxm6vEIaxI1wFzAIcy_GcKC3XMYo9m-ThI,9662
@@ -249,14 +249,14 @@ sky/utils/command_runner.py,sha256=3CDcqRXEmoe3C-t2P58McgcRg6p9m5haUWYj1rOLuqM,3
249
249
  sky/utils/command_runner.pyi,sha256=mJOzCgcYZAfHwnY_6Wf1YwlTEJGb9ihzc2f0rE0Kw98,7751
250
250
  sky/utils/common_utils.py,sha256=Qy25LuIoTT0qg391EWyT9i5D6fwk1S4OdFwRpCTZ9Vk,24657
251
251
  sky/utils/controller_utils.py,sha256=wF4_y1PCsLAWoo3XEtECwkNYTN6hO3vn_cxGxgQYcd8,43268
252
- sky/utils/dag_utils.py,sha256=gjGZiJj4_GYsraXX67e6ElvbmOByJcyjSfvVgYZiXvs,5588
252
+ sky/utils/dag_utils.py,sha256=pVX3lGDDcYTcGoH_1jEWzl9767Y4mwlIEYIzoyHO6gM,6105
253
253
  sky/utils/db_utils.py,sha256=AOvMmBEN9cF4I7CoXihPCtus4mU2VDGjBQSVMMgzKlA,2786
254
254
  sky/utils/env_options.py,sha256=3oAaUPxowL6vI2XmxXrH56V7Myj9IJWsL-MXFmRFVdI,1294
255
255
  sky/utils/kubernetes_enums.py,sha256=imGqHSa8O07zD_6xH1SDMM7dBU5lF5fzFFlQuQy00QM,1384
256
256
  sky/utils/log_utils.py,sha256=ptv2sbsiJSgk4NvdccrMsUR-MvOKnbu4BQiRSishgk0,12472
257
257
  sky/utils/resources_utils.py,sha256=Xqi7gxPYw2y5wl5okUI5zx5LEij0hJF_V3Zi8q7TXYg,7890
258
258
  sky/utils/rich_utils.py,sha256=hmnI1X5dKvRIQzB7EyNb34FT97qFNve-0QHqM5r0mVk,3066
259
- sky/utils/schemas.py,sha256=qo9j1TJZXqgJlBgbQfqz1oIZAxc3CN8uWooKYPQXXIY,28878
259
+ sky/utils/schemas.py,sha256=mogoStpQ77S936VfChinAW2I1DT4q2c5E7qY_qNiO0w,29094
260
260
  sky/utils/subprocess_utils.py,sha256=3R54Elc2n8DQeO6Y8MCDJ6N6v27HDGpbNMIfCquqXYQ,6552
261
261
  sky/utils/timeline.py,sha256=ao_nm0y52ZQILfL7Y92c3pSEFRyPm_ElORC3DrI5BwQ,3936
262
262
  sky/utils/ux_utils.py,sha256=CqyIFGDuSE8fQasPkna_loZMwtboC9KedR09WEQ7qz0,6502
@@ -274,9 +274,9 @@ sky/utils/kubernetes/k8s_gpu_labeler_job.yaml,sha256=k0TBoQ4zgf79-sVkixKSGYFHQ7Z
274
274
  sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml,sha256=VLKT2KKimZu1GDg_4AIlIt488oMQvhRZWwsj9vBbPUg,3812
275
275
  sky/utils/kubernetes/rsync_helper.sh,sha256=hyYDaYSNxYaNvzUQBzC8AidB7nDeojizjkzc_CTxycY,1077
276
276
  sky/utils/kubernetes/ssh_jump_lifecycle_manager.py,sha256=RFLJ3k7MR5UN4SKHykQ0lV9SgXumoULpKYIAt1vh-HU,6560
277
- skypilot_nightly-1.0.0.dev20241028.dist-info/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
278
- skypilot_nightly-1.0.0.dev20241028.dist-info/METADATA,sha256=8eFLTibwR6C40v9UaWQJTpI65ybVGgMyoeGkQzxl-qk,19540
279
- skypilot_nightly-1.0.0.dev20241028.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
280
- skypilot_nightly-1.0.0.dev20241028.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
281
- skypilot_nightly-1.0.0.dev20241028.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
282
- skypilot_nightly-1.0.0.dev20241028.dist-info/RECORD,,
277
+ skypilot_nightly-1.0.0.dev20241030.dist-info/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
278
+ skypilot_nightly-1.0.0.dev20241030.dist-info/METADATA,sha256=bwgfsg4Zzl63yZYrUfZIBNeMitC8bOcgqKucALPDnbk,19708
279
+ skypilot_nightly-1.0.0.dev20241030.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
280
+ skypilot_nightly-1.0.0.dev20241030.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
281
+ skypilot_nightly-1.0.0.dev20241030.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
282
+ skypilot_nightly-1.0.0.dev20241030.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.2.0)
2
+ Generator: setuptools (75.3.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5