skypilot-nightly 1.0.0.dev20241006__py3-none-any.whl → 1.0.0.dev20241008__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 +2 -2
- sky/backends/backend_utils.py +14 -10
- sky/backends/cloud_vm_ray_backend.py +2 -2
- sky/data/storage.py +4 -8
- sky/data/storage_utils.py +57 -1
- sky/serve/controller.py +14 -7
- sky/serve/serve_utils.py +4 -0
- sky/skylet/constants.py +2 -0
- sky/utils/command_runner.py +21 -18
- sky/utils/command_runner.pyi +2 -1
- sky/utils/subprocess_utils.py +1 -0
- {skypilot_nightly-1.0.0.dev20241006.dist-info → skypilot_nightly-1.0.0.dev20241008.dist-info}/METADATA +1 -1
- {skypilot_nightly-1.0.0.dev20241006.dist-info → skypilot_nightly-1.0.0.dev20241008.dist-info}/RECORD +17 -17
- {skypilot_nightly-1.0.0.dev20241006.dist-info → skypilot_nightly-1.0.0.dev20241008.dist-info}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20241006.dist-info → skypilot_nightly-1.0.0.dev20241008.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20241006.dist-info → skypilot_nightly-1.0.0.dev20241008.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20241006.dist-info → skypilot_nightly-1.0.0.dev20241008.dist-info}/top_level.txt +0 -0
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 = '
|
8
|
+
_SKYPILOT_COMMIT_SHA = '3f898abe10c1aa2a05da0e00f0c6a9a947b53bbc'
|
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.
|
38
|
+
__version__ = '1.0.0.dev20241008'
|
39
39
|
__root_dir__ = os.path.dirname(os.path.abspath(__file__))
|
40
40
|
|
41
41
|
|
sky/backends/backend_utils.py
CHANGED
@@ -280,18 +280,22 @@ def path_size_megabytes(path: str) -> int:
|
|
280
280
|
If successful: the size of 'path' in megabytes, rounded down. Otherwise,
|
281
281
|
-1.
|
282
282
|
"""
|
283
|
-
resolved_path = pathlib.Path(path).expanduser().resolve()
|
284
283
|
git_exclude_filter = ''
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
284
|
+
resolved_path = pathlib.Path(path).expanduser().resolve()
|
285
|
+
if (resolved_path / constants.SKY_IGNORE_FILE).exists():
|
286
|
+
rsync_filter = command_runner.RSYNC_FILTER_SKYIGNORE
|
287
|
+
else:
|
288
|
+
rsync_filter = command_runner.RSYNC_FILTER_GITIGNORE
|
289
|
+
if (resolved_path / command_runner.GIT_EXCLUDE).exists():
|
290
|
+
# Ensure file exists; otherwise, rsync will error out.
|
291
|
+
#
|
292
|
+
# We shlex.quote() because the path may contain spaces:
|
293
|
+
# 'my dir/.git/info/exclude'
|
294
|
+
# Without quoting rsync fails.
|
295
|
+
git_exclude_filter = command_runner.RSYNC_EXCLUDE_OPTION.format(
|
296
|
+
shlex.quote(str(resolved_path / command_runner.GIT_EXCLUDE)))
|
293
297
|
rsync_command = (f'rsync {command_runner.RSYNC_DISPLAY_OPTION} '
|
294
|
-
f'{
|
298
|
+
f'{rsync_filter} '
|
295
299
|
f'{git_exclude_filter} --dry-run {path!r}')
|
296
300
|
rsync_output = ''
|
297
301
|
try:
|
@@ -3056,7 +3056,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
3056
3056
|
logger.warning(
|
3057
3057
|
f'{fore.YELLOW}The size of workdir {workdir!r} '
|
3058
3058
|
f'is {dir_size} MB. Try to keep workdir small or use '
|
3059
|
-
'.
|
3059
|
+
'.skyignore to exclude large files, as large sizes will slow '
|
3060
3060
|
f'down rsync.{style.RESET_ALL}')
|
3061
3061
|
|
3062
3062
|
log_path = os.path.join(self.log_dir, 'workdir_sync.log')
|
@@ -4470,7 +4470,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
4470
4470
|
logger.warning(
|
4471
4471
|
f'{fore.YELLOW}The size of file mount src {src!r} '
|
4472
4472
|
f'is {src_size} MB. Try to keep src small or use '
|
4473
|
-
'.
|
4473
|
+
'.skyignore to exclude large files, as large sizes '
|
4474
4474
|
f'will slow down rsync. {style.RESET_ALL}')
|
4475
4475
|
if os.path.islink(full_src):
|
4476
4476
|
logger.warning(
|
sky/data/storage.py
CHANGED
@@ -1298,8 +1298,7 @@ class S3Store(AbstractStore):
|
|
1298
1298
|
|
1299
1299
|
def get_dir_sync_command(src_dir_path, dest_dir_name):
|
1300
1300
|
# we exclude .git directory from the sync
|
1301
|
-
excluded_list = storage_utils.
|
1302
|
-
src_dir_path)
|
1301
|
+
excluded_list = storage_utils.get_excluded_files(src_dir_path)
|
1303
1302
|
excluded_list.append('.git/*')
|
1304
1303
|
excludes = ' '.join([
|
1305
1304
|
f'--exclude {shlex.quote(file_name)}'
|
@@ -1764,8 +1763,7 @@ class GcsStore(AbstractStore):
|
|
1764
1763
|
return sync_command
|
1765
1764
|
|
1766
1765
|
def get_dir_sync_command(src_dir_path, dest_dir_name):
|
1767
|
-
excluded_list = storage_utils.
|
1768
|
-
src_dir_path)
|
1766
|
+
excluded_list = storage_utils.get_excluded_files(src_dir_path)
|
1769
1767
|
# we exclude .git directory from the sync
|
1770
1768
|
excluded_list.append(r'^\.git/.*$')
|
1771
1769
|
excludes = '|'.join(excluded_list)
|
@@ -2490,8 +2488,7 @@ class AzureBlobStore(AbstractStore):
|
|
2490
2488
|
|
2491
2489
|
def get_dir_sync_command(src_dir_path, dest_dir_name) -> str:
|
2492
2490
|
# we exclude .git directory from the sync
|
2493
|
-
excluded_list = storage_utils.
|
2494
|
-
src_dir_path)
|
2491
|
+
excluded_list = storage_utils.get_excluded_files(src_dir_path)
|
2495
2492
|
excluded_list.append('.git/')
|
2496
2493
|
excludes_list = ';'.join(
|
2497
2494
|
[file_name.rstrip('*') for file_name in excluded_list])
|
@@ -2895,8 +2892,7 @@ class R2Store(AbstractStore):
|
|
2895
2892
|
|
2896
2893
|
def get_dir_sync_command(src_dir_path, dest_dir_name):
|
2897
2894
|
# we exclude .git directory from the sync
|
2898
|
-
excluded_list = storage_utils.
|
2899
|
-
src_dir_path)
|
2895
|
+
excluded_list = storage_utils.get_excluded_files(src_dir_path)
|
2900
2896
|
excluded_list.append('.git/*')
|
2901
2897
|
excludes = ' '.join([
|
2902
2898
|
f'--exclude {shlex.quote(file_name)}'
|
sky/data/storage_utils.py
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
"""Utility functions for the storage module."""
|
2
|
+
import glob
|
2
3
|
import os
|
3
4
|
import shlex
|
4
5
|
import subprocess
|
@@ -8,6 +9,8 @@ import colorama
|
|
8
9
|
|
9
10
|
from sky import exceptions
|
10
11
|
from sky import sky_logging
|
12
|
+
from sky.skylet import constants
|
13
|
+
from sky.utils import common_utils
|
11
14
|
from sky.utils import log_utils
|
12
15
|
from sky.utils.cli_utils import status_utils
|
13
16
|
|
@@ -63,6 +66,42 @@ def format_storage_table(storages: List[Dict[str, Any]],
|
|
63
66
|
return 'No existing storage.'
|
64
67
|
|
65
68
|
|
69
|
+
def get_excluded_files_from_skyignore(src_dir_path: str) -> List[str]:
|
70
|
+
"""List files and patterns ignored by the .skyignore file
|
71
|
+
in the given source directory.
|
72
|
+
"""
|
73
|
+
excluded_list: List[str] = []
|
74
|
+
expand_src_dir_path = os.path.expanduser(src_dir_path)
|
75
|
+
skyignore_path = os.path.join(expand_src_dir_path,
|
76
|
+
constants.SKY_IGNORE_FILE)
|
77
|
+
|
78
|
+
try:
|
79
|
+
with open(skyignore_path, 'r', encoding='utf-8') as f:
|
80
|
+
for line in f:
|
81
|
+
line = line.strip()
|
82
|
+
if line and not line.startswith('#'):
|
83
|
+
# Make parsing consistent with rsync.
|
84
|
+
# Rsync uses '/' as current directory.
|
85
|
+
if line.startswith('/'):
|
86
|
+
line = '.' + line
|
87
|
+
else:
|
88
|
+
line = '**/' + line
|
89
|
+
# Find all files matching the pattern.
|
90
|
+
matching_files = glob.glob(os.path.join(
|
91
|
+
expand_src_dir_path, line),
|
92
|
+
recursive=True)
|
93
|
+
# Process filenames to comply with cloud rsync format.
|
94
|
+
for i in range(len(matching_files)):
|
95
|
+
matching_files[i] = os.path.relpath(
|
96
|
+
matching_files[i], expand_src_dir_path)
|
97
|
+
excluded_list.extend(matching_files)
|
98
|
+
except IOError as e:
|
99
|
+
logger.warning(f'Error reading {skyignore_path}: '
|
100
|
+
f'{common_utils.format_exception(e, use_bracket=True)}')
|
101
|
+
|
102
|
+
return excluded_list
|
103
|
+
|
104
|
+
|
66
105
|
def get_excluded_files_from_gitignore(src_dir_path: str) -> List[str]:
|
67
106
|
""" Lists files and patterns ignored by git in the source directory
|
68
107
|
|
@@ -78,7 +117,8 @@ def get_excluded_files_from_gitignore(src_dir_path: str) -> List[str]:
|
|
78
117
|
expand_src_dir_path = os.path.expanduser(src_dir_path)
|
79
118
|
|
80
119
|
git_exclude_path = os.path.join(expand_src_dir_path, '.git/info/exclude')
|
81
|
-
gitignore_path = os.path.join(expand_src_dir_path,
|
120
|
+
gitignore_path = os.path.join(expand_src_dir_path,
|
121
|
+
constants.GIT_IGNORE_FILE)
|
82
122
|
|
83
123
|
git_exclude_exists = os.path.isfile(git_exclude_path)
|
84
124
|
gitignore_exists = os.path.isfile(gitignore_path)
|
@@ -162,3 +202,19 @@ def get_excluded_files_from_gitignore(src_dir_path: str) -> List[str]:
|
|
162
202
|
to_be_excluded += '*'
|
163
203
|
excluded_list.append(to_be_excluded)
|
164
204
|
return excluded_list
|
205
|
+
|
206
|
+
|
207
|
+
def get_excluded_files(src_dir_path: str) -> List[str]:
|
208
|
+
# TODO: this could return a huge list of files,
|
209
|
+
# should think of ways to optimize.
|
210
|
+
""" List files and directories to be excluded."""
|
211
|
+
expand_src_dir_path = os.path.expanduser(src_dir_path)
|
212
|
+
skyignore_path = os.path.join(expand_src_dir_path,
|
213
|
+
constants.SKY_IGNORE_FILE)
|
214
|
+
if os.path.exists(skyignore_path):
|
215
|
+
logger.info(f'Exclude files to sync to cluster based on '
|
216
|
+
f'{constants.SKY_IGNORE_FILE}.')
|
217
|
+
return get_excluded_files_from_skyignore(src_dir_path)
|
218
|
+
logger.info(f'Exclude files to sync to cluster based on '
|
219
|
+
f'{constants.GIT_IGNORE_FILE}.')
|
220
|
+
return get_excluded_files_from_gitignore(src_dir_path)
|
sky/serve/controller.py
CHANGED
@@ -10,6 +10,7 @@ import traceback
|
|
10
10
|
from typing import Any, Dict, List
|
11
11
|
|
12
12
|
import fastapi
|
13
|
+
from fastapi import responses
|
13
14
|
import uvicorn
|
14
15
|
|
15
16
|
from sky import serve
|
@@ -96,7 +97,8 @@ class SkyServeController:
|
|
96
97
|
def run(self) -> None:
|
97
98
|
|
98
99
|
@self._app.post('/controller/load_balancer_sync')
|
99
|
-
async def load_balancer_sync(
|
100
|
+
async def load_balancer_sync(
|
101
|
+
request: fastapi.Request) -> fastapi.Response:
|
100
102
|
request_data = await request.json()
|
101
103
|
# TODO(MaoZiming): Check aggregator type.
|
102
104
|
request_aggregator: Dict[str, Any] = request_data.get(
|
@@ -104,18 +106,21 @@ class SkyServeController:
|
|
104
106
|
timestamps: List[int] = request_aggregator.get('timestamps', [])
|
105
107
|
logger.info(f'Received {len(timestamps)} inflight requests.')
|
106
108
|
self._autoscaler.collect_request_information(request_aggregator)
|
107
|
-
return {
|
109
|
+
return responses.JSONResponse(content={
|
108
110
|
'ready_replica_urls':
|
109
111
|
self._replica_manager.get_active_replica_urls()
|
110
|
-
}
|
112
|
+
},
|
113
|
+
status_code=200)
|
111
114
|
|
112
115
|
@self._app.post('/controller/update_service')
|
113
|
-
async def update_service(request: fastapi.Request):
|
116
|
+
async def update_service(request: fastapi.Request) -> fastapi.Response:
|
114
117
|
request_data = await request.json()
|
115
118
|
try:
|
116
119
|
version = request_data.get('version', None)
|
117
120
|
if version is None:
|
118
|
-
return
|
121
|
+
return responses.JSONResponse(
|
122
|
+
content={'message': 'Error: version is not specified.'},
|
123
|
+
status_code=400)
|
119
124
|
update_mode_str = request_data.get(
|
120
125
|
'mode', serve_utils.DEFAULT_UPDATE_MODE.value)
|
121
126
|
update_mode = serve_utils.UpdateMode(update_mode_str)
|
@@ -144,11 +149,13 @@ class SkyServeController:
|
|
144
149
|
self._autoscaler.update_version(version,
|
145
150
|
service,
|
146
151
|
update_mode=update_mode)
|
147
|
-
return {'message': 'Success'}
|
152
|
+
return responses.JSONResponse(content={'message': 'Success'},
|
153
|
+
status_code=200)
|
148
154
|
except Exception as e: # pylint: disable=broad-except
|
149
155
|
logger.error(f'Error in update_service: '
|
150
156
|
f'{common_utils.format_exception(e)}')
|
151
|
-
return {'message': 'Error'}
|
157
|
+
return responses.JSONResponse(content={'message': 'Error'},
|
158
|
+
status_code=500)
|
152
159
|
|
153
160
|
threading.Thread(target=self._run_autoscaler).start()
|
154
161
|
|
sky/serve/serve_utils.py
CHANGED
@@ -302,6 +302,10 @@ def update_service_encoded(service_name: str, version: int, mode: str) -> str:
|
|
302
302
|
raise ValueError('The service is up-ed in an old version and does not '
|
303
303
|
'support update. Please `sky serve down` '
|
304
304
|
'it first and relaunch the service. ')
|
305
|
+
elif resp.status_code == 400:
|
306
|
+
raise ValueError(f'Client error during service update: {resp.text}')
|
307
|
+
elif resp.status_code == 500:
|
308
|
+
raise RuntimeError(f'Server error during service update: {resp.text}')
|
305
309
|
elif resp.status_code != 200:
|
306
310
|
raise ValueError(f'Failed to update service: {resp.text}')
|
307
311
|
|
sky/skylet/constants.py
CHANGED
sky/utils/command_runner.py
CHANGED
@@ -16,8 +16,6 @@ from sky.utils import timeline
|
|
16
16
|
|
17
17
|
logger = sky_logging.init_logger(__name__)
|
18
18
|
|
19
|
-
# The git exclude file to support.
|
20
|
-
GIT_EXCLUDE = '.git/info/exclude'
|
21
19
|
# Rsync options
|
22
20
|
# TODO(zhwu): This will print a per-file progress bar (with -P),
|
23
21
|
# shooting a lot of messages to the output. --info=progress2 is used
|
@@ -30,7 +28,10 @@ RSYNC_DISPLAY_OPTION = '-Pavz'
|
|
30
28
|
# Note that "-" is mandatory for rsync and means all patterns in the ignore
|
31
29
|
# files are treated as *exclude* patterns. Non-exclude patterns, e.g., "!
|
32
30
|
# do_not_exclude" doesn't work, even though git allows it.
|
33
|
-
|
31
|
+
RSYNC_FILTER_SKYIGNORE = f'--filter=\'dir-merge,- {constants.SKY_IGNORE_FILE}\''
|
32
|
+
RSYNC_FILTER_GITIGNORE = f'--filter=\'dir-merge,- {constants.GIT_IGNORE_FILE}\''
|
33
|
+
# The git exclude file to support.
|
34
|
+
GIT_EXCLUDE = '.git/info/exclude'
|
34
35
|
RSYNC_EXCLUDE_OPTION = '--exclude-from={}'
|
35
36
|
|
36
37
|
_HASH_MAX_LENGTH = 10
|
@@ -237,21 +238,23 @@ class CommandRunner:
|
|
237
238
|
rsync_command += ['rsync', RSYNC_DISPLAY_OPTION]
|
238
239
|
|
239
240
|
# --filter
|
240
|
-
|
241
|
-
|
242
|
-
if
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
if
|
247
|
-
#
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
241
|
+
# The source is a local path, so we need to resolve it.
|
242
|
+
resolved_source = pathlib.Path(source).expanduser().resolve()
|
243
|
+
if (resolved_source / constants.SKY_IGNORE_FILE).exists():
|
244
|
+
rsync_command.append(RSYNC_FILTER_SKYIGNORE)
|
245
|
+
else:
|
246
|
+
rsync_command.append(RSYNC_FILTER_GITIGNORE)
|
247
|
+
if up:
|
248
|
+
# Build --exclude-from argument.
|
249
|
+
if (resolved_source / GIT_EXCLUDE).exists():
|
250
|
+
# Ensure file exists; otherwise, rsync will error out.
|
251
|
+
#
|
252
|
+
# We shlex.quote() because the path may contain spaces:
|
253
|
+
# 'my dir/.git/info/exclude'
|
254
|
+
# Without quoting rsync fails.
|
255
|
+
rsync_command.append(
|
256
|
+
RSYNC_EXCLUDE_OPTION.format(
|
257
|
+
shlex.quote(str(resolved_source / GIT_EXCLUDE))))
|
255
258
|
|
256
259
|
rsync_command.append(f'-e {shlex.quote(rsh_option)}')
|
257
260
|
|
sky/utils/command_runner.pyi
CHANGED
@@ -16,7 +16,8 @@ from sky.utils import subprocess_utils as subprocess_utils
|
|
16
16
|
|
17
17
|
GIT_EXCLUDE: str
|
18
18
|
RSYNC_DISPLAY_OPTION: str
|
19
|
-
|
19
|
+
RSYNC_FILTER_GITIGNORE: str
|
20
|
+
RSYNC_FILTER_SKYIGNORE: str
|
20
21
|
RSYNC_EXCLUDE_OPTION: str
|
21
22
|
ALIAS_SUDO_TO_EMPTY_FOR_ROOT_CMD: str
|
22
23
|
|
sky/utils/subprocess_utils.py
CHANGED
@@ -77,6 +77,7 @@ def handle_returncode(returncode: int,
|
|
77
77
|
command: The command that was run.
|
78
78
|
error_msg: The error message to print.
|
79
79
|
stderr: The stderr of the command.
|
80
|
+
stream_logs: Whether to stream logs.
|
80
81
|
"""
|
81
82
|
echo = logger.error if stream_logs else logger.debug
|
82
83
|
if returncode != 0:
|
{skypilot_nightly-1.0.0.dev20241006.dist-info → skypilot_nightly-1.0.0.dev20241008.dist-info}/RECORD
RENAMED
@@ -1,4 +1,4 @@
|
|
1
|
-
sky/__init__.py,sha256=
|
1
|
+
sky/__init__.py,sha256=puRfdOGo9xpPZ1bJ_SID_s6We5Bb5xZwoWw_JHvZc8I,5854
|
2
2
|
sky/admin_policy.py,sha256=hPo02f_A32gCqhUueF0QYy1fMSSKqRwYEg_9FxScN_s,3248
|
3
3
|
sky/authentication.py,sha256=TfKkVnmRIetATSEVQFp-rOOIRGqVig2i8faSQQt_ixA,20974
|
4
4
|
sky/check.py,sha256=jLMIIJrseaZj1_o5WkbaD9XdyXIlCaT6pyAaIFdhdmA,9079
|
@@ -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=xtxR6boDv1o-uSCjbJhOMkKMnZvBZh3gExx4khFWPTI,5932
|
33
|
-
sky/backends/backend_utils.py,sha256=
|
34
|
-
sky/backends/cloud_vm_ray_backend.py,sha256=
|
33
|
+
sky/backends/backend_utils.py,sha256=_gp6nL4evexSoXUWdA4rI7mJ2XQt59bYQ0LRAD5QuKI,126826
|
34
|
+
sky/backends/cloud_vm_ray_backend.py,sha256=NUT8bp-mifTLGzZFsA9kXqFPue4ZhbX-5pX55evdeXI,233984
|
35
35
|
sky/backends/docker_utils.py,sha256=Hyw1YY20EyghhEbYx6O2FIMDcGkNzBzV9TM7LFynei8,8358
|
36
36
|
sky/backends/local_docker_backend.py,sha256=H4GBo0KFUC_EEf-ziv1OUbfAkOI5BrwkYs9fYOxSoNw,16741
|
37
37
|
sky/backends/wheel_utils.py,sha256=3QS4T_Ydvo4DbYhogtyADyNBEf04I6jUCL71M285shQ,7963
|
@@ -91,8 +91,8 @@ sky/data/__init__.py,sha256=Nhaf1NURisXpZuwWANa2IuCyppIuc720FRwqSE2oEwY,184
|
|
91
91
|
sky/data/data_transfer.py,sha256=MBmjey9_p2L3IKNKTi8um09SlZe32n4wK3CkVnlTVvo,7346
|
92
92
|
sky/data/data_utils.py,sha256=-P5GsDH_m4slrCz4vHdgiFezIys8ufzvhEKePJwfjFc,28597
|
93
93
|
sky/data/mounting_utils.py,sha256=44YkYIIgArEkyvxCtfmXXumybrU8bmn1TfLXWv_eldI,11480
|
94
|
-
sky/data/storage.py,sha256=
|
95
|
-
sky/data/storage_utils.py,sha256
|
94
|
+
sky/data/storage.py,sha256=SzO2GefxfoYbKuWO4iRt_9At33s--k4q8htN8xy-vrM,162395
|
95
|
+
sky/data/storage_utils.py,sha256=Rwj_Pt2Pl0e16dhHXyxiT500CYv1k7SWE_WE2jKepl0,9358
|
96
96
|
sky/jobs/__init__.py,sha256=9cqFutVlfjQb7t8hzG-ZlQmMlbmfMirn0KNBxIFnJYQ,1398
|
97
97
|
sky/jobs/constants.py,sha256=YLgcCg_RHSYr_rfsI_4UIdXk78KKKOK29Oem88t5j8I,1350
|
98
98
|
sky/jobs/controller.py,sha256=k28bbicxtML6p1YxSetk-1nhBHPCubpvLWJsh7TtU9c,26701
|
@@ -171,13 +171,13 @@ sky/provision/vsphere/common/vim_utils.py,sha256=EMWLS8ILpdx6XwUZ9I53y0B_1yFrRrl
|
|
171
171
|
sky/serve/__init__.py,sha256=Qg_XPOtQsUxiN-Q3njHZRfzoMcQ_KKU1QthkiTbESDw,1661
|
172
172
|
sky/serve/autoscalers.py,sha256=khY1oZ22PRaUQNsLCoNKH178X_NiJw0LSLOKr7_LNgY,30275
|
173
173
|
sky/serve/constants.py,sha256=OansIC7a0Pwat-Y5SF43T9phad_EvyjKO3peZgKFEHk,4367
|
174
|
-
sky/serve/controller.py,sha256=
|
174
|
+
sky/serve/controller.py,sha256=gfE_gB7wxE1VxvnYqw_-KcMGc6X2kufl-NLR7sWdzdY,8172
|
175
175
|
sky/serve/core.py,sha256=cW2SNMPMbGtOcqASHnL__B12BCIErUilGtFw3olQbjk,28947
|
176
176
|
sky/serve/load_balancer.py,sha256=aUfDsgUT_fYrchCwJCeunMPXmAkwJAY58BEu-IN2FaA,11571
|
177
177
|
sky/serve/load_balancing_policies.py,sha256=ExdwH_pxPYpJ6CkoTQCOPSa4lzwbq1LFFMKzmIu8ryk,2331
|
178
178
|
sky/serve/replica_managers.py,sha256=dO962WZ_6YWRDpyNemY7SzC7fZHlNfoL4kUS3MaKwDo,57405
|
179
179
|
sky/serve/serve_state.py,sha256=5BZSKKKxQRk-0mku17Ch4Veu4qOhaFvaOJY3zrZCkLw,19315
|
180
|
-
sky/serve/serve_utils.py,sha256=
|
180
|
+
sky/serve/serve_utils.py,sha256=im_1cJoJmufFxkBVnhK4nI6XlHvEXersQyIivNruJJc,38009
|
181
181
|
sky/serve/service.py,sha256=fkfJvNJ2BO6rfV0TblZG-QkOXaCyZlpkwbGgrsTzf2w,11872
|
182
182
|
sky/serve/service_spec.py,sha256=iRhW95SERvb4NWtV10uCuhgvW31HuSAmZZ55OX0WK8s,15309
|
183
183
|
sky/setup_files/MANIFEST.in,sha256=BAR1TfVIHwBFfV3najggE8HDXTJyO3fNN0Yhu5aTitI,634
|
@@ -187,7 +187,7 @@ sky/skylet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
187
187
|
sky/skylet/attempt_skylet.py,sha256=GZ6ITjjA0m-da3IxXXfoHR6n4pjp3X3TOXUqVvSrV0k,2136
|
188
188
|
sky/skylet/autostop_lib.py,sha256=JPDHmByuhoNYXSUHl-OnyeJUkOFWn7gDM1FrS7Kr3E8,4478
|
189
189
|
sky/skylet/configs.py,sha256=UtnpmEL0F9hH6PSjhsps7xgjGZ6qzPOfW1p2yj9tSng,1887
|
190
|
-
sky/skylet/constants.py,sha256=
|
190
|
+
sky/skylet/constants.py,sha256=txAK0602kGtaD42JUYECq5u4rLIZFhOIWz-fLUV1KgA,14652
|
191
191
|
sky/skylet/events.py,sha256=A09E7LmmwzcGrSG0n8K7d3EZ1ZJr1mmmzoGyhnArYJA,12303
|
192
192
|
sky/skylet/job_lib.py,sha256=1XTXLStPiHk8X2SHe6x4PNQ01Rj6Cwagr5lLWjzpj6E,35198
|
193
193
|
sky/skylet/log_lib.py,sha256=5akG6avIW5y9rO5pfgOCEtprPgasEo4vAj7I8Bbhxm4,19340
|
@@ -244,8 +244,8 @@ sky/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
244
244
|
sky/utils/accelerator_registry.py,sha256=BO4iYH5bV80Xyp4EPfO0n1D3LL0FvESCy7xm59Je3_o,3798
|
245
245
|
sky/utils/admin_policy_utils.py,sha256=zFCu1OFIrZRfQNY0JFRO1502WFfdqZhwAU_QgM4fO9U,5943
|
246
246
|
sky/utils/cluster_yaml_utils.py,sha256=1wRRYqI1kI-eFs1pMW4r_FFjHJ0zamq6v2RRI-Gtx5E,849
|
247
|
-
sky/utils/command_runner.py,sha256=
|
248
|
-
sky/utils/command_runner.pyi,sha256=
|
247
|
+
sky/utils/command_runner.py,sha256=9h2t1v6SpMv7ahsLyayE-Tm8TxgWEpCUJ9qiTw_VHtc,34142
|
248
|
+
sky/utils/command_runner.pyi,sha256=mJOzCgcYZAfHwnY_6Wf1YwlTEJGb9ihzc2f0rE0Kw98,7751
|
249
249
|
sky/utils/common_utils.py,sha256=O6PlZTCNhbuXOzjuV2DKw43niWE_qPfYZNGhnMtZzQg,24028
|
250
250
|
sky/utils/controller_utils.py,sha256=32pVORm2cd42tg0srxGvmYV0kYTl67IFsw2EdXbdoR8,38042
|
251
251
|
sky/utils/dag_utils.py,sha256=gjGZiJj4_GYsraXX67e6ElvbmOByJcyjSfvVgYZiXvs,5588
|
@@ -256,7 +256,7 @@ sky/utils/log_utils.py,sha256=yVu3etgKhiVYX8UG-JFPWZujxWBT4kwxZ5oAPIdjtGs,12054
|
|
256
256
|
sky/utils/resources_utils.py,sha256=snByBxgx3Hnjfch2uysdAA3D-OAwrnuzTDHug36s5H4,6515
|
257
257
|
sky/utils/rich_utils.py,sha256=5ZVhzlFx-nhqMXwv00eO9xC4rz7ibDlfD2lmGhZrJEY,1581
|
258
258
|
sky/utils/schemas.py,sha256=QT0Fxri2o0SiWkky1DlZhA1dzQRQoB5OdVaej0wJvhc,28787
|
259
|
-
sky/utils/subprocess_utils.py,sha256=
|
259
|
+
sky/utils/subprocess_utils.py,sha256=3R54Elc2n8DQeO6Y8MCDJ6N6v27HDGpbNMIfCquqXYQ,6552
|
260
260
|
sky/utils/timeline.py,sha256=ao_nm0y52ZQILfL7Y92c3pSEFRyPm_ElORC3DrI5BwQ,3936
|
261
261
|
sky/utils/ux_utils.py,sha256=318TRunQCyJpJXonfiJ1SVotNA-6K4F2XgMEYjvWvsk,3264
|
262
262
|
sky/utils/validator.py,sha256=cAFERCoC7jH0DFKepcU4x9SYmdrYL1iVmW9tXA18hvo,701
|
@@ -273,9 +273,9 @@ sky/utils/kubernetes/k8s_gpu_labeler_job.yaml,sha256=KPqp23B-zQ2SZK03jdHeF9fLTog
|
|
273
273
|
sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml,sha256=VLKT2KKimZu1GDg_4AIlIt488oMQvhRZWwsj9vBbPUg,3812
|
274
274
|
sky/utils/kubernetes/rsync_helper.sh,sha256=Ma-N9a271fTfdgP5-8XIQL7KPf8IPUo-uY004PCdUFo,747
|
275
275
|
sky/utils/kubernetes/ssh_jump_lifecycle_manager.py,sha256=RFLJ3k7MR5UN4SKHykQ0lV9SgXumoULpKYIAt1vh-HU,6560
|
276
|
-
skypilot_nightly-1.0.0.
|
277
|
-
skypilot_nightly-1.0.0.
|
278
|
-
skypilot_nightly-1.0.0.
|
279
|
-
skypilot_nightly-1.0.0.
|
280
|
-
skypilot_nightly-1.0.0.
|
281
|
-
skypilot_nightly-1.0.0.
|
276
|
+
skypilot_nightly-1.0.0.dev20241008.dist-info/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
|
277
|
+
skypilot_nightly-1.0.0.dev20241008.dist-info/METADATA,sha256=LUbjkD4tR608IWaOWZxDcDgGLHtQOjOdLp5yQ4FCts8,18945
|
278
|
+
skypilot_nightly-1.0.0.dev20241008.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
279
|
+
skypilot_nightly-1.0.0.dev20241008.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
|
280
|
+
skypilot_nightly-1.0.0.dev20241008.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
|
281
|
+
skypilot_nightly-1.0.0.dev20241008.dist-info/RECORD,,
|
File without changes
|
{skypilot_nightly-1.0.0.dev20241006.dist-info → skypilot_nightly-1.0.0.dev20241008.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|