skypilot-nightly 1.0.0.dev20250228__py3-none-any.whl → 1.0.0.dev2025022801__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/cli.py +11 -2
- sky/client/cli.py +11 -2
- sky/client/sdk.py +7 -2
- sky/server/common.py +62 -57
- sky/server/requests/executor.py +7 -6
- sky/server/server.py +5 -4
- {skypilot_nightly-1.0.0.dev20250228.dist-info → skypilot_nightly-1.0.0.dev2025022801.dist-info}/METADATA +1 -1
- {skypilot_nightly-1.0.0.dev20250228.dist-info → skypilot_nightly-1.0.0.dev2025022801.dist-info}/RECORD +13 -13
- {skypilot_nightly-1.0.0.dev20250228.dist-info → skypilot_nightly-1.0.0.dev2025022801.dist-info}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250228.dist-info → skypilot_nightly-1.0.0.dev2025022801.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20250228.dist-info → skypilot_nightly-1.0.0.dev2025022801.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250228.dist-info → skypilot_nightly-1.0.0.dev2025022801.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 = '2619dc8f63f271852a6b00f91381b27428ff1780'
|
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.dev2025022801'
|
39
39
|
__root_dir__ = os.path.dirname(os.path.abspath(__file__))
|
40
40
|
|
41
41
|
|
sky/cli.py
CHANGED
@@ -5504,10 +5504,19 @@ def api():
|
|
5504
5504
|
required=False,
|
5505
5505
|
help=('The host to deploy the SkyPilot API server. To allow '
|
5506
5506
|
'remote access, set this to 0.0.0.0'))
|
5507
|
+
@click.option('--foreground',
|
5508
|
+
is_flag=True,
|
5509
|
+
default=False,
|
5510
|
+
required=False,
|
5511
|
+
help='Run the SkyPilot API server in the foreground and output '
|
5512
|
+
'its logs to stdout/stderr. Allowing external systems '
|
5513
|
+
'to manage the process lifecycle and collect logs directly. '
|
5514
|
+
'This is useful when the API server is managed by systems '
|
5515
|
+
'like systemd and Kubernetes.')
|
5507
5516
|
@usage_lib.entrypoint
|
5508
|
-
def api_start(deploy: bool, host: Optional[str]):
|
5517
|
+
def api_start(deploy: bool, host: Optional[str], foreground: bool):
|
5509
5518
|
"""Starts the SkyPilot API server locally."""
|
5510
|
-
sdk.api_start(deploy=deploy, host=host)
|
5519
|
+
sdk.api_start(deploy=deploy, host=host, foreground=foreground)
|
5511
5520
|
|
5512
5521
|
|
5513
5522
|
@api.command('stop', cls=_DocumentedCodeCommand)
|
sky/client/cli.py
CHANGED
@@ -5504,10 +5504,19 @@ def api():
|
|
5504
5504
|
required=False,
|
5505
5505
|
help=('The host to deploy the SkyPilot API server. To allow '
|
5506
5506
|
'remote access, set this to 0.0.0.0'))
|
5507
|
+
@click.option('--foreground',
|
5508
|
+
is_flag=True,
|
5509
|
+
default=False,
|
5510
|
+
required=False,
|
5511
|
+
help='Run the SkyPilot API server in the foreground and output '
|
5512
|
+
'its logs to stdout/stderr. Allowing external systems '
|
5513
|
+
'to manage the process lifecycle and collect logs directly. '
|
5514
|
+
'This is useful when the API server is managed by systems '
|
5515
|
+
'like systemd and Kubernetes.')
|
5507
5516
|
@usage_lib.entrypoint
|
5508
|
-
def api_start(deploy: bool, host: Optional[str]):
|
5517
|
+
def api_start(deploy: bool, host: Optional[str], foreground: bool):
|
5509
5518
|
"""Starts the SkyPilot API server locally."""
|
5510
|
-
sdk.api_start(deploy=deploy, host=host)
|
5519
|
+
sdk.api_start(deploy=deploy, host=host, foreground=foreground)
|
5511
5520
|
|
5512
5521
|
|
5513
5522
|
@api.command('stop', cls=_DocumentedCodeCommand)
|
sky/client/sdk.py
CHANGED
@@ -1611,6 +1611,7 @@ def api_start(
|
|
1611
1611
|
*,
|
1612
1612
|
deploy: bool = False,
|
1613
1613
|
host: str = '127.0.0.1',
|
1614
|
+
foreground: bool = False,
|
1614
1615
|
) -> None:
|
1615
1616
|
"""Starts the API server.
|
1616
1617
|
|
@@ -1622,7 +1623,8 @@ def api_start(
|
|
1622
1623
|
resources of the machine.
|
1623
1624
|
host: The host to deploy the API server. It will be set to 0.0.0.0
|
1624
1625
|
if deploy is True, to allow remote access.
|
1625
|
-
|
1626
|
+
foreground: Whether to run the API server in the foreground (run in
|
1627
|
+
the current process).
|
1626
1628
|
Returns:
|
1627
1629
|
None
|
1628
1630
|
"""
|
@@ -1641,7 +1643,10 @@ def api_start(
|
|
1641
1643
|
'from the config file and/or unset the '
|
1642
1644
|
'SKYPILOT_API_SERVER_ENDPOINT environment '
|
1643
1645
|
'variable.')
|
1644
|
-
server_common.check_server_healthy_or_start_fn(deploy, host)
|
1646
|
+
server_common.check_server_healthy_or_start_fn(deploy, host, foreground)
|
1647
|
+
if foreground:
|
1648
|
+
# Explain why current process exited
|
1649
|
+
logger.info('API server is already running:')
|
1645
1650
|
logger.info(f'{ux_utils.INDENT_SYMBOL}SkyPilot API server: '
|
1646
1651
|
f'{server_common.get_server_url(host)}\n'
|
1647
1652
|
f'{ux_utils.INDENT_LAST_SYMBOL}'
|
sky/server/common.py
CHANGED
@@ -145,57 +145,6 @@ def get_api_server_status(endpoint: Optional[str] = None) -> ApiServerInfo:
|
|
145
145
|
return ApiServerInfo(status=ApiServerStatus.UNHEALTHY, api_version=None)
|
146
146
|
|
147
147
|
|
148
|
-
def start_api_server_in_background(deploy: bool = False,
|
149
|
-
host: str = '127.0.0.1'):
|
150
|
-
if not is_api_server_local():
|
151
|
-
raise RuntimeError(
|
152
|
-
f'Cannot start API server: {get_server_url()} is not a local URL')
|
153
|
-
|
154
|
-
# Check available memory before starting the server.
|
155
|
-
avail_mem_size_gb: float = common_utils.get_mem_size_gb()
|
156
|
-
if avail_mem_size_gb <= server_constants.MIN_AVAIL_MEM_GB:
|
157
|
-
logger.warning(
|
158
|
-
f'{colorama.Fore.YELLOW}Your SkyPilot API server machine only has '
|
159
|
-
f'{avail_mem_size_gb:.1f}GB memory available. '
|
160
|
-
f'At least {server_constants.MIN_AVAIL_MEM_GB}GB is recommended to '
|
161
|
-
f'support higher load with better performance.'
|
162
|
-
f'{colorama.Style.RESET_ALL}')
|
163
|
-
log_path = os.path.expanduser(constants.API_SERVER_LOGS)
|
164
|
-
os.makedirs(os.path.dirname(log_path), exist_ok=True)
|
165
|
-
|
166
|
-
api_server_cmd = API_SERVER_CMD
|
167
|
-
if deploy:
|
168
|
-
api_server_cmd += ' --deploy'
|
169
|
-
if host is not None:
|
170
|
-
api_server_cmd += f' --host {host}'
|
171
|
-
cmd = f'{sys.executable} {api_server_cmd} > {log_path} 2>&1 < /dev/null'
|
172
|
-
|
173
|
-
# Start the API server process in the background and don't wait for it.
|
174
|
-
# If this is called from a CLI invocation, we need start_new_session=True so
|
175
|
-
# that SIGINT on the CLI will not also kill the API server.
|
176
|
-
subprocess.Popen(cmd, shell=True, start_new_session=True)
|
177
|
-
|
178
|
-
# Wait for the server to start until timeout.
|
179
|
-
# Conservative upper time bound for starting the server based on profiling.
|
180
|
-
timeout_sec = 12
|
181
|
-
start_time = time.time()
|
182
|
-
while True:
|
183
|
-
api_server_info = get_api_server_status()
|
184
|
-
assert api_server_info.status != ApiServerStatus.VERSION_MISMATCH, (
|
185
|
-
f'API server version mismatch when starting the server. '
|
186
|
-
f'Server version: {api_server_info.api_version} '
|
187
|
-
f'Client version: {server_constants.API_VERSION}')
|
188
|
-
if api_server_info.status == ApiServerStatus.HEALTHY:
|
189
|
-
break
|
190
|
-
elif time.time() - start_time >= timeout_sec:
|
191
|
-
with ux_utils.print_exception_no_traceback():
|
192
|
-
raise RuntimeError(
|
193
|
-
'Failed to start SkyPilot API server at '
|
194
|
-
f'{get_server_url(host)}'
|
195
|
-
f'\nView logs at: {constants.API_SERVER_LOGS}')
|
196
|
-
time.sleep(0.5)
|
197
|
-
|
198
|
-
|
199
148
|
def handle_request_error(response: requests.Response) -> None:
|
200
149
|
if response.status_code != 200:
|
201
150
|
with ux_utils.print_exception_no_traceback():
|
@@ -218,10 +167,10 @@ def get_request_id(response: requests.Response) -> RequestId:
|
|
218
167
|
return request_id
|
219
168
|
|
220
169
|
|
221
|
-
def _start_api_server(deploy: bool = False,
|
170
|
+
def _start_api_server(deploy: bool = False,
|
171
|
+
host: str = '127.0.0.1',
|
172
|
+
foreground: bool = False):
|
222
173
|
"""Starts a SkyPilot API server locally."""
|
223
|
-
# Lock to prevent multiple processes from starting the server at the
|
224
|
-
# same time, causing issues with database initialization.
|
225
174
|
server_url = get_server_url(host)
|
226
175
|
assert server_url in AVAILABLE_LOCAL_API_SERVER_URLS, (
|
227
176
|
f'server url {server_url} is not a local url')
|
@@ -230,7 +179,60 @@ def _start_api_server(deploy: bool = False, host: str = '127.0.0.1'):
|
|
230
179
|
f'SkyPilot API server at {server_url}. '
|
231
180
|
'Starting a local server.'
|
232
181
|
f'{colorama.Style.RESET_ALL}')
|
233
|
-
|
182
|
+
if not is_api_server_local():
|
183
|
+
raise RuntimeError(f'Cannot start API server: {get_server_url()} '
|
184
|
+
'is not a local URL')
|
185
|
+
|
186
|
+
# Check available memory before starting the server.
|
187
|
+
avail_mem_size_gb: float = common_utils.get_mem_size_gb()
|
188
|
+
if avail_mem_size_gb <= server_constants.MIN_AVAIL_MEM_GB:
|
189
|
+
logger.warning(
|
190
|
+
f'{colorama.Fore.YELLOW}Your SkyPilot API server machine only '
|
191
|
+
f'has {avail_mem_size_gb:.1f}GB memory available. '
|
192
|
+
f'At least {server_constants.MIN_AVAIL_MEM_GB}GB is '
|
193
|
+
'recommended to support higher load with better performance.'
|
194
|
+
f'{colorama.Style.RESET_ALL}')
|
195
|
+
|
196
|
+
args = [sys.executable, *API_SERVER_CMD.split()]
|
197
|
+
if deploy:
|
198
|
+
args += ['--deploy']
|
199
|
+
if host is not None:
|
200
|
+
args += [f'--host={host}']
|
201
|
+
|
202
|
+
if foreground:
|
203
|
+
# Replaces the current process with the API server
|
204
|
+
os.execvp(args[0], args)
|
205
|
+
|
206
|
+
log_path = os.path.expanduser(constants.API_SERVER_LOGS)
|
207
|
+
os.makedirs(os.path.dirname(log_path), exist_ok=True)
|
208
|
+
cmd = f'{" ".join(args)} > {log_path} 2>&1 < /dev/null'
|
209
|
+
|
210
|
+
# Start the API server process in the background and don't wait for it.
|
211
|
+
# If this is called from a CLI invocation, we need
|
212
|
+
# start_new_session=True so that SIGINT on the CLI will not also kill
|
213
|
+
# the API server.
|
214
|
+
subprocess.Popen(cmd, shell=True, start_new_session=True)
|
215
|
+
|
216
|
+
# Wait for the server to start until timeout.
|
217
|
+
# Conservative upper time bound for starting the server based on
|
218
|
+
# profiling.
|
219
|
+
timeout_sec = 12
|
220
|
+
start_time = time.time()
|
221
|
+
while True:
|
222
|
+
api_server_info = get_api_server_status()
|
223
|
+
assert api_server_info.status != ApiServerStatus.VERSION_MISMATCH, (
|
224
|
+
f'API server version mismatch when starting the server. '
|
225
|
+
f'Server version: {api_server_info.api_version} '
|
226
|
+
f'Client version: {server_constants.API_VERSION}')
|
227
|
+
if api_server_info.status == ApiServerStatus.HEALTHY:
|
228
|
+
break
|
229
|
+
elif time.time() - start_time >= timeout_sec:
|
230
|
+
with ux_utils.print_exception_no_traceback():
|
231
|
+
raise RuntimeError(
|
232
|
+
'Failed to start SkyPilot API server at '
|
233
|
+
f'{get_server_url(host)}'
|
234
|
+
f'\nView logs at: {constants.API_SERVER_LOGS}')
|
235
|
+
time.sleep(0.5)
|
234
236
|
logger.info(ux_utils.finishing_message('SkyPilot API server started.'))
|
235
237
|
|
236
238
|
|
@@ -260,7 +262,8 @@ def check_server_healthy(endpoint: Optional[str] = None,) -> None:
|
|
260
262
|
|
261
263
|
|
262
264
|
def check_server_healthy_or_start_fn(deploy: bool = False,
|
263
|
-
host: str = '127.0.0.1'
|
265
|
+
host: str = '127.0.0.1',
|
266
|
+
foreground: bool = False):
|
264
267
|
try:
|
265
268
|
check_server_healthy()
|
266
269
|
except exceptions.ApiServerConnectionError as exc:
|
@@ -268,13 +271,15 @@ def check_server_healthy_or_start_fn(deploy: bool = False,
|
|
268
271
|
if not is_api_server_local():
|
269
272
|
with ux_utils.print_exception_no_traceback():
|
270
273
|
raise exceptions.ApiServerConnectionError(endpoint) from exc
|
274
|
+
# Lock to prevent multiple processes from starting the server at the
|
275
|
+
# same time, causing issues with database initialization.
|
271
276
|
with filelock.FileLock(
|
272
277
|
os.path.expanduser(constants.API_SERVER_CREATION_LOCK_PATH)):
|
273
278
|
# Check again if server is already running. Other processes may
|
274
279
|
# have started the server while we were waiting for the lock.
|
275
280
|
api_server_info = get_api_server_status(endpoint)
|
276
281
|
if api_server_info.status == ApiServerStatus.UNHEALTHY:
|
277
|
-
_start_api_server(deploy, host)
|
282
|
+
_start_api_server(deploy, host, foreground)
|
278
283
|
|
279
284
|
|
280
285
|
def check_server_healthy_or_start(func):
|
sky/server/requests/executor.py
CHANGED
@@ -371,7 +371,8 @@ def request_worker(worker: RequestWorker, max_parallel_size: int) -> None:
|
|
371
371
|
# TODO(aylei): crash the API server or recreate the worker process
|
372
372
|
# to avoid broken state.
|
373
373
|
logger.error(f'[{worker}] Worker process interrupted')
|
374
|
-
|
374
|
+
with ux_utils.print_exception_no_traceback():
|
375
|
+
raise
|
375
376
|
except (Exception, SystemExit) as e: # pylint: disable=broad-except
|
376
377
|
# Catch any other exceptions to avoid crashing the worker process.
|
377
378
|
logger.error(
|
@@ -408,6 +409,7 @@ def start(deploy: bool) -> List[multiprocessing.Process]:
|
|
408
409
|
f'long requests and will allow at max '
|
409
410
|
f'{max_parallel_for_short} short requests in parallel.')
|
410
411
|
|
412
|
+
sub_procs = []
|
411
413
|
# Setup the queues.
|
412
414
|
if queue_backend == QueueBackend.MULTIPROCESSING:
|
413
415
|
logger.info('Creating shared request queues')
|
@@ -424,27 +426,26 @@ def start(deploy: bool) -> List[multiprocessing.Process]:
|
|
424
426
|
queue_server = multiprocessing.Process(
|
425
427
|
target=mp_queue.start_queue_manager, args=(queue_names, port))
|
426
428
|
queue_server.start()
|
427
|
-
|
429
|
+
sub_procs.append(queue_server)
|
428
430
|
mp_queue.wait_for_queues_to_be_ready(queue_names, port=port)
|
429
431
|
|
430
432
|
logger.info('Request queues created')
|
431
433
|
|
432
|
-
worker_procs = []
|
433
434
|
for worker_id in range(max_parallel_for_long):
|
434
435
|
worker = RequestWorker(id=worker_id,
|
435
436
|
schedule_type=api_requests.ScheduleType.LONG)
|
436
437
|
worker_proc = multiprocessing.Process(target=request_worker,
|
437
438
|
args=(worker, 1))
|
438
439
|
worker_proc.start()
|
439
|
-
|
440
|
+
sub_procs.append(worker_proc)
|
440
441
|
|
441
442
|
# Start a worker for short requests.
|
442
443
|
worker = RequestWorker(id=1, schedule_type=api_requests.ScheduleType.SHORT)
|
443
444
|
worker_proc = multiprocessing.Process(target=request_worker,
|
444
445
|
args=(worker, max_parallel_for_short))
|
445
446
|
worker_proc.start()
|
446
|
-
|
447
|
-
return
|
447
|
+
sub_procs.append(worker_proc)
|
448
|
+
return sub_procs
|
448
449
|
|
449
450
|
|
450
451
|
@annotations.lru_cache(scope='global', maxsize=1)
|
sky/server/server.py
CHANGED
@@ -1085,9 +1085,9 @@ if __name__ == '__main__':
|
|
1085
1085
|
if cmd_args.deploy:
|
1086
1086
|
num_workers = os.cpu_count()
|
1087
1087
|
|
1088
|
-
|
1088
|
+
sub_procs = []
|
1089
1089
|
try:
|
1090
|
-
|
1090
|
+
sub_procs = executor.start(cmd_args.deploy)
|
1091
1091
|
logger.info('Starting SkyPilot API server')
|
1092
1092
|
# We don't support reload for now, since it may cause leakage of request
|
1093
1093
|
# workers or interrupt running requests.
|
@@ -1101,5 +1101,6 @@ if __name__ == '__main__':
|
|
1101
1101
|
raise
|
1102
1102
|
finally:
|
1103
1103
|
logger.info('Shutting down SkyPilot API server...')
|
1104
|
-
for
|
1105
|
-
|
1104
|
+
for sub_proc in sub_procs:
|
1105
|
+
sub_proc.terminate()
|
1106
|
+
sub_proc.join()
|
@@ -1,8 +1,8 @@
|
|
1
|
-
sky/__init__.py,sha256=
|
1
|
+
sky/__init__.py,sha256=ePkgbQbrblshpx26zEL8mRs6JSmXHiMsiSEZlh_wg3w,6430
|
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=
|
5
|
+
sky/cli.py,sha256=pdnOEBu-YjiyZCYeQnAsjUk40ETiGdBKiKk2cZgNe8k,220432
|
6
6
|
sky/cloud_stores.py,sha256=-95XIqi_ouo7hvoN5mQNP6bGm07MyF6Yk-YP4Txb5wg,24034
|
7
7
|
sky/core.py,sha256=X83hdpPTiWyEJLamrguCd03PUjkRiGgqTFfEBEQkzWc,45471
|
8
8
|
sky/dag.py,sha256=Yl7Ry26Vql5cv4YMz8g9kOUgtoCihJnw7c8NgZYakMY,3242
|
@@ -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=
|
46
|
+
sky/client/cli.py,sha256=pdnOEBu-YjiyZCYeQnAsjUk40ETiGdBKiKk2cZgNe8k,220432
|
47
47
|
sky/client/common.py,sha256=axDic7WOG1e78SdFm5XIwdhX7YNvf3g4k7INrsW3X4s,14611
|
48
|
-
sky/client/sdk.py,sha256=
|
48
|
+
sky/client/sdk.py,sha256=YPDsrHLBfSjAi2ufDmlYVOTivoDG_Qj1sWq22KdYgJI,67259
|
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
|
@@ -228,13 +228,13 @@ 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=
|
231
|
+
sky/server/common.py,sha256=pEa-q3P5aOm6RMlit0pVzlDoJnZU_6zViO7aK_7htn0,17843
|
232
232
|
sky/server/constants.py,sha256=89jKE3SIe1T3_7j6ECTy4pZnhZZD7fBwsWOCOkTban8,770
|
233
|
-
sky/server/server.py,sha256=
|
233
|
+
sky/server/server.py,sha256=BPJCsfHy0mZHiwpO_15CgeE1a2VPv3JM5M2HLsy-q3M,42476
|
234
234
|
sky/server/stream_utils.py,sha256=-3IX1YCgxAFfcvQIV0TCvOn1wbRLWovAx3ckCrsExWU,5651
|
235
235
|
sky/server/html/log.html,sha256=TSGZktua9Ysl_ysg3w60rjxAxhH61AJnsYDHdtqrjmI,6929
|
236
236
|
sky/server/requests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
237
|
-
sky/server/requests/executor.py,sha256=
|
237
|
+
sky/server/requests/executor.py,sha256=Jk8RJoQlicDqaHhgVWMH3UiL-dJS7lGSGd05GPv-Lrc,19781
|
238
238
|
sky/server/requests/payloads.py,sha256=QYgEz85jswXkEYxO1mkwPA8MWXD_pETs-g_JH_Tlm_w,16038
|
239
239
|
sky/server/requests/requests.py,sha256=aMdjiK5kjSYP36pxdXFU6qgKOXcOmtViHbFm3V8Dvf8,19590
|
240
240
|
sky/server/requests/queues/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -344,9 +344,9 @@ sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml,sha256=VLKT2KKimZu1GDg_4AIlIt488
|
|
344
344
|
sky/utils/kubernetes/kubernetes_deploy_utils.py,sha256=iAjfyPclOs8qlALACcfxLpRAO9CZ-h16leFqXZ6tNaY,10096
|
345
345
|
sky/utils/kubernetes/rsync_helper.sh,sha256=h4YwrPFf9727CACnMJvF3EyK_0OeOYKKt4su_daKekw,1256
|
346
346
|
sky/utils/kubernetes/ssh_jump_lifecycle_manager.py,sha256=Kq1MDygF2IxFmu9FXpCxqucXLmeUrvs6OtRij6XTQbo,6554
|
347
|
-
skypilot_nightly-1.0.0.
|
348
|
-
skypilot_nightly-1.0.0.
|
349
|
-
skypilot_nightly-1.0.0.
|
350
|
-
skypilot_nightly-1.0.0.
|
351
|
-
skypilot_nightly-1.0.0.
|
352
|
-
skypilot_nightly-1.0.0.
|
347
|
+
skypilot_nightly-1.0.0.dev2025022801.dist-info/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
|
348
|
+
skypilot_nightly-1.0.0.dev2025022801.dist-info/METADATA,sha256=Kqe348n5KCVwF_hEOLzUTML-yW7aEwEeVUhO8YsDC_s,19238
|
349
|
+
skypilot_nightly-1.0.0.dev2025022801.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
350
|
+
skypilot_nightly-1.0.0.dev2025022801.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
|
351
|
+
skypilot_nightly-1.0.0.dev2025022801.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
|
352
|
+
skypilot_nightly-1.0.0.dev2025022801.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|