skypilot-nightly 1.0.0.dev20250907__py3-none-any.whl → 1.0.0.dev20250909__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.
Potentially problematic release.
This version of skypilot-nightly might be problematic. Click here for more details.
- sky/__init__.py +2 -2
- sky/dashboard/out/404.html +1 -1
- sky/dashboard/out/_next/static/chunks/8969-0487dfbf149d9e53.js +1 -0
- sky/dashboard/out/_next/static/chunks/{webpack-6f5f27e9d7900777.js → webpack-d4fabc08788e14af.js} +1 -1
- sky/dashboard/out/_next/static/{i60KpqkwvB9QVScj-NeKo → eWytLgin5zvayQw3Xk46m}/_buildManifest.js +1 -1
- sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
- sky/dashboard/out/clusters/[cluster].html +1 -1
- sky/dashboard/out/clusters.html +1 -1
- sky/dashboard/out/config.html +1 -1
- sky/dashboard/out/index.html +1 -1
- sky/dashboard/out/infra/[context].html +1 -1
- sky/dashboard/out/infra.html +1 -1
- sky/dashboard/out/jobs/[job].html +1 -1
- sky/dashboard/out/jobs/pools/[pool].html +1 -1
- sky/dashboard/out/jobs.html +1 -1
- sky/dashboard/out/users.html +1 -1
- sky/dashboard/out/volumes.html +1 -1
- sky/dashboard/out/workspace/new.html +1 -1
- sky/dashboard/out/workspaces/[name].html +1 -1
- sky/dashboard/out/workspaces.html +1 -1
- sky/jobs/server/core.py +44 -2
- sky/jobs/server/server.py +17 -0
- sky/server/constants.py +1 -1
- sky/server/metrics.py +60 -9
- sky/server/requests/executor.py +33 -32
- sky/server/requests/payloads.py +8 -0
- sky/server/requests/serializers/decoders.py +7 -1
- sky/server/requests/serializers/encoders.py +10 -2
- sky/server/server.py +49 -3
- sky/server/uvicorn.py +4 -0
- sky/utils/common_utils.py +8 -6
- sky/utils/resource_checker.py +2 -3
- {skypilot_nightly-1.0.0.dev20250907.dist-info → skypilot_nightly-1.0.0.dev20250909.dist-info}/METADATA +32 -32
- {skypilot_nightly-1.0.0.dev20250907.dist-info → skypilot_nightly-1.0.0.dev20250909.dist-info}/RECORD +39 -39
- sky/dashboard/out/_next/static/chunks/8969-0be3036bf86f8256.js +0 -1
- /sky/dashboard/out/_next/static/{i60KpqkwvB9QVScj-NeKo → eWytLgin5zvayQw3Xk46m}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250907.dist-info → skypilot_nightly-1.0.0.dev20250909.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20250907.dist-info → skypilot_nightly-1.0.0.dev20250909.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250907.dist-info → skypilot_nightly-1.0.0.dev20250909.dist-info}/licenses/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250907.dist-info → skypilot_nightly-1.0.0.dev20250909.dist-info}/top_level.txt +0 -0
sky/server/requests/executor.py
CHANGED
|
@@ -130,6 +130,9 @@ queue_backend = server_config.QueueBackend.MULTIPROCESSING
|
|
|
130
130
|
def executor_initializer(proc_group: str):
|
|
131
131
|
setproctitle.setproctitle(f'SkyPilot:executor:{proc_group}:'
|
|
132
132
|
f'{multiprocessing.current_process().pid}')
|
|
133
|
+
threading.Thread(target=metrics_lib.process_monitor,
|
|
134
|
+
args=(f'worker:{proc_group}',),
|
|
135
|
+
daemon=True).start()
|
|
133
136
|
|
|
134
137
|
|
|
135
138
|
class RequestWorker:
|
|
@@ -281,34 +284,34 @@ def override_request_env_and_config(
|
|
|
281
284
|
request_id: str) -> Generator[None, None, None]:
|
|
282
285
|
"""Override the environment and SkyPilot config for a request."""
|
|
283
286
|
original_env = os.environ.copy()
|
|
284
|
-
# Unset SKYPILOT_DEBUG by default, to avoid the value set on the API server
|
|
285
|
-
# affecting client requests. If set on the client side, it will be
|
|
286
|
-
# overridden by the request body.
|
|
287
|
-
os.environ.pop('SKYPILOT_DEBUG', None)
|
|
288
|
-
# Remove the db connection uri from client supplied env vars, as the
|
|
289
|
-
# client should not set the db string on server side.
|
|
290
|
-
request_body.env_vars.pop(constants.ENV_VAR_DB_CONNECTION_URI, None)
|
|
291
|
-
os.environ.update(request_body.env_vars)
|
|
292
|
-
# Note: may be overridden by AuthProxyMiddleware.
|
|
293
|
-
# TODO(zhwu): we need to make the entire request a context available to the
|
|
294
|
-
# entire request execution, so that we can access info like user through
|
|
295
|
-
# the execution.
|
|
296
|
-
user = models.User(id=request_body.env_vars[constants.USER_ID_ENV_VAR],
|
|
297
|
-
name=request_body.env_vars[constants.USER_ENV_VAR])
|
|
298
|
-
global_user_state.add_or_update_user(user)
|
|
299
|
-
# Refetch the user to get the latest user info, including the created_at
|
|
300
|
-
# field.
|
|
301
|
-
user = global_user_state.get_user(user.id)
|
|
302
|
-
|
|
303
|
-
# Force color to be enabled.
|
|
304
|
-
os.environ['CLICOLOR_FORCE'] = '1'
|
|
305
|
-
server_common.reload_for_new_request(
|
|
306
|
-
client_entrypoint=request_body.entrypoint,
|
|
307
|
-
client_command=request_body.entrypoint_command,
|
|
308
|
-
using_remote_api_server=request_body.using_remote_api_server,
|
|
309
|
-
user=user,
|
|
310
|
-
request_id=request_id)
|
|
311
287
|
try:
|
|
288
|
+
# Unset SKYPILOT_DEBUG by default, to avoid the value set on the API
|
|
289
|
+
# server affecting client requests. If set on the client side, it will
|
|
290
|
+
# be overridden by the request body.
|
|
291
|
+
os.environ.pop('SKYPILOT_DEBUG', None)
|
|
292
|
+
# Remove the db connection uri from client supplied env vars, as the
|
|
293
|
+
# client should not set the db string on server side.
|
|
294
|
+
request_body.env_vars.pop(constants.ENV_VAR_DB_CONNECTION_URI, None)
|
|
295
|
+
os.environ.update(request_body.env_vars)
|
|
296
|
+
# Note: may be overridden by AuthProxyMiddleware.
|
|
297
|
+
# TODO(zhwu): we need to make the entire request a context available to
|
|
298
|
+
# the entire request execution, so that we can access info like user
|
|
299
|
+
# through the execution.
|
|
300
|
+
user = models.User(id=request_body.env_vars[constants.USER_ID_ENV_VAR],
|
|
301
|
+
name=request_body.env_vars[constants.USER_ENV_VAR])
|
|
302
|
+
global_user_state.add_or_update_user(user)
|
|
303
|
+
# Refetch the user to get the latest user info, including the created_at
|
|
304
|
+
# field.
|
|
305
|
+
user = global_user_state.get_user(user.id)
|
|
306
|
+
|
|
307
|
+
# Force color to be enabled.
|
|
308
|
+
os.environ['CLICOLOR_FORCE'] = '1'
|
|
309
|
+
server_common.reload_for_new_request(
|
|
310
|
+
client_entrypoint=request_body.entrypoint,
|
|
311
|
+
client_command=request_body.entrypoint_command,
|
|
312
|
+
using_remote_api_server=request_body.using_remote_api_server,
|
|
313
|
+
user=user,
|
|
314
|
+
request_id=request_id)
|
|
312
315
|
logger.debug(
|
|
313
316
|
f'override path: {request_body.override_skypilot_config_path}')
|
|
314
317
|
with skypilot_config.override_skypilot_config(
|
|
@@ -401,6 +404,8 @@ def _request_execution_wrapper(request_id: str,
|
|
|
401
404
|
config = skypilot_config.to_dict()
|
|
402
405
|
logger.debug(f'request config: \n'
|
|
403
406
|
f'{yaml_utils.dump_yaml_str(dict(config))}')
|
|
407
|
+
metrics_lib.SKY_APISERVER_PROCESS_EXECUTION_START_TOTAL.labels(
|
|
408
|
+
request=request_name, pid=pid).inc()
|
|
404
409
|
with metrics_lib.time_it(name=request_name,
|
|
405
410
|
group='request_execution'):
|
|
406
411
|
return_value = func(**request_body.to_kwargs())
|
|
@@ -439,11 +444,7 @@ def _request_execution_wrapper(request_id: str,
|
|
|
439
444
|
logger.info(f'Request {request_id} finished')
|
|
440
445
|
finally:
|
|
441
446
|
with metrics_lib.time_it(name='release_memory', group='internal'):
|
|
442
|
-
|
|
443
|
-
common_utils.release_memory()
|
|
444
|
-
except Exception as e: # pylint: disable=broad-except
|
|
445
|
-
logger.error(f'Failed to release memory: '
|
|
446
|
-
f'{common_utils.format_exception(e)}')
|
|
447
|
+
common_utils.release_memory()
|
|
447
448
|
|
|
448
449
|
|
|
449
450
|
async def execute_request_coroutine(request: api_requests.Request):
|
sky/server/requests/payloads.py
CHANGED
|
@@ -512,6 +512,14 @@ class JobsQueueBody(RequestBody):
|
|
|
512
512
|
skip_finished: bool = False
|
|
513
513
|
all_users: bool = False
|
|
514
514
|
job_ids: Optional[List[int]] = None
|
|
515
|
+
|
|
516
|
+
|
|
517
|
+
class JobsQueueV2Body(RequestBody):
|
|
518
|
+
"""The request body for the jobs queue endpoint."""
|
|
519
|
+
refresh: bool = False
|
|
520
|
+
skip_finished: bool = False
|
|
521
|
+
all_users: bool = False
|
|
522
|
+
job_ids: Optional[List[int]] = None
|
|
515
523
|
user_match: Optional[str] = None
|
|
516
524
|
workspace_match: Optional[str] = None
|
|
517
525
|
name_match: Optional[str] = None
|
|
@@ -109,7 +109,13 @@ def decode_queue(return_value: List[dict],) -> List[Dict[str, Any]]:
|
|
|
109
109
|
|
|
110
110
|
|
|
111
111
|
@register_decoders('jobs.queue')
|
|
112
|
-
def decode_jobs_queue(return_value):
|
|
112
|
+
def decode_jobs_queue(return_value: List[dict],) -> List[Dict[str, Any]]:
|
|
113
|
+
# To keep backward compatibility with v0.10.2
|
|
114
|
+
return decode_jobs_queue_v2(return_value)
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
@register_decoders('jobs.queue_v2')
|
|
118
|
+
def decode_jobs_queue_v2(return_value) -> List[Dict[str, Any]]:
|
|
113
119
|
"""Decode jobs queue response.
|
|
114
120
|
|
|
115
121
|
Supports legacy list, or a dict {jobs, total}.
|
|
@@ -6,7 +6,7 @@ import base64
|
|
|
6
6
|
import dataclasses
|
|
7
7
|
import pickle
|
|
8
8
|
import typing
|
|
9
|
-
from typing import Any, Dict, List, Optional, Tuple
|
|
9
|
+
from typing import Any, Dict, List, Optional, Tuple, Union
|
|
10
10
|
|
|
11
11
|
from sky.schemas.api import responses
|
|
12
12
|
from sky.server import constants as server_constants
|
|
@@ -121,7 +121,15 @@ def encode_status_kubernetes(
|
|
|
121
121
|
|
|
122
122
|
|
|
123
123
|
@register_encoder('jobs.queue')
|
|
124
|
-
def encode_jobs_queue(
|
|
124
|
+
def encode_jobs_queue(jobs: List[dict],) -> List[Dict[str, Any]]:
|
|
125
|
+
for job in jobs:
|
|
126
|
+
job['status'] = job['status'].value
|
|
127
|
+
return jobs
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
@register_encoder('jobs.queue_v2')
|
|
131
|
+
def encode_jobs_queue_v2(
|
|
132
|
+
jobs_or_tuple) -> Union[List[Dict[str, Any]], Dict[str, Any]]:
|
|
125
133
|
# Support returning either a plain jobs list or a (jobs, total) tuple
|
|
126
134
|
status_counts = {}
|
|
127
135
|
if isinstance(jobs_or_tuple, tuple):
|
sky/server/server.py
CHANGED
|
@@ -1734,7 +1734,12 @@ async def kubernetes_pod_ssh_proxy(websocket: fastapi.WebSocket,
|
|
|
1734
1734
|
return
|
|
1735
1735
|
|
|
1736
1736
|
logger.info(f'Starting port-forward to local port: {local_port}')
|
|
1737
|
+
conn_gauge = metrics.SKY_APISERVER_WEBSOCKET_CONNECTIONS.labels(
|
|
1738
|
+
pid=os.getpid())
|
|
1739
|
+
ssh_failed = False
|
|
1740
|
+
websocket_closed = False
|
|
1737
1741
|
try:
|
|
1742
|
+
conn_gauge.inc()
|
|
1738
1743
|
# Connect to the local port
|
|
1739
1744
|
reader, writer = await asyncio.open_connection('127.0.0.1', local_port)
|
|
1740
1745
|
|
|
@@ -1742,9 +1747,21 @@ async def kubernetes_pod_ssh_proxy(websocket: fastapi.WebSocket,
|
|
|
1742
1747
|
try:
|
|
1743
1748
|
async for message in websocket.iter_bytes():
|
|
1744
1749
|
writer.write(message)
|
|
1745
|
-
|
|
1750
|
+
try:
|
|
1751
|
+
await writer.drain()
|
|
1752
|
+
except Exception as e: # pylint: disable=broad-except
|
|
1753
|
+
# Typically we will not reach here, if the ssh to pod
|
|
1754
|
+
# is disconnected, ssh_to_websocket will exit first.
|
|
1755
|
+
# But just in case.
|
|
1756
|
+
logger.error('Failed to write to pod through '
|
|
1757
|
+
f'port-forward connection: {e}')
|
|
1758
|
+
nonlocal ssh_failed
|
|
1759
|
+
ssh_failed = True
|
|
1760
|
+
break
|
|
1746
1761
|
except fastapi.WebSocketDisconnect:
|
|
1747
1762
|
pass
|
|
1763
|
+
nonlocal websocket_closed
|
|
1764
|
+
websocket_closed = True
|
|
1748
1765
|
writer.close()
|
|
1749
1766
|
|
|
1750
1767
|
async def ssh_to_websocket():
|
|
@@ -1752,15 +1769,44 @@ async def kubernetes_pod_ssh_proxy(websocket: fastapi.WebSocket,
|
|
|
1752
1769
|
while True:
|
|
1753
1770
|
data = await reader.read(1024)
|
|
1754
1771
|
if not data:
|
|
1772
|
+
if not websocket_closed:
|
|
1773
|
+
logger.warning('SSH connection to pod is '
|
|
1774
|
+
'disconnected before websocket '
|
|
1775
|
+
'connection is closed')
|
|
1776
|
+
nonlocal ssh_failed
|
|
1777
|
+
ssh_failed = True
|
|
1755
1778
|
break
|
|
1756
1779
|
await websocket.send_bytes(data)
|
|
1757
1780
|
except Exception: # pylint: disable=broad-except
|
|
1758
1781
|
pass
|
|
1759
|
-
|
|
1782
|
+
try:
|
|
1783
|
+
await websocket.close()
|
|
1784
|
+
except Exception: # pylint: disable=broad-except
|
|
1785
|
+
# The websocket might has been closed by the client.
|
|
1786
|
+
pass
|
|
1760
1787
|
|
|
1761
1788
|
await asyncio.gather(websocket_to_ssh(), ssh_to_websocket())
|
|
1762
1789
|
finally:
|
|
1763
|
-
|
|
1790
|
+
conn_gauge.dec()
|
|
1791
|
+
reason = ''
|
|
1792
|
+
try:
|
|
1793
|
+
logger.info('Terminating kubectl port-forward process')
|
|
1794
|
+
proc.terminate()
|
|
1795
|
+
except ProcessLookupError:
|
|
1796
|
+
stdout = await proc.stdout.read()
|
|
1797
|
+
logger.error('kubectl port-forward was terminated before the '
|
|
1798
|
+
'ssh websocket connection was closed. Remaining '
|
|
1799
|
+
f'output: {str(stdout)}')
|
|
1800
|
+
reason = 'KubectlPortForwardExit'
|
|
1801
|
+
metrics.SKY_APISERVER_WEBSOCKET_CLOSED_TOTAL.labels(
|
|
1802
|
+
pid=os.getpid(), reason='KubectlPortForwardExit').inc()
|
|
1803
|
+
else:
|
|
1804
|
+
if ssh_failed:
|
|
1805
|
+
reason = 'SSHToPodDisconnected'
|
|
1806
|
+
else:
|
|
1807
|
+
reason = 'ClientClosed'
|
|
1808
|
+
metrics.SKY_APISERVER_WEBSOCKET_CLOSED_TOTAL.labels(
|
|
1809
|
+
pid=os.getpid(), reason=reason).inc()
|
|
1764
1810
|
|
|
1765
1811
|
|
|
1766
1812
|
@app.get('/all_contexts')
|
sky/server/uvicorn.py
CHANGED
|
@@ -19,6 +19,7 @@ from uvicorn.supervisors import multiprocess
|
|
|
19
19
|
|
|
20
20
|
from sky import sky_logging
|
|
21
21
|
from sky.server import daemons
|
|
22
|
+
from sky.server import metrics as metrics_lib
|
|
22
23
|
from sky.server import state
|
|
23
24
|
from sky.server.requests import requests as requests_lib
|
|
24
25
|
from sky.skylet import constants
|
|
@@ -212,6 +213,9 @@ class Server(uvicorn.Server):
|
|
|
212
213
|
# Same as set PYTHONASYNCIODEBUG=1, but with custom threshold.
|
|
213
214
|
event_loop.set_debug(True)
|
|
214
215
|
event_loop.slow_callback_duration = lag_threshold
|
|
216
|
+
threading.Thread(target=metrics_lib.process_monitor,
|
|
217
|
+
args=('server',),
|
|
218
|
+
daemon=True).start()
|
|
215
219
|
with self.capture_signals():
|
|
216
220
|
asyncio.run(self.serve(*args, **kwargs))
|
|
217
221
|
|
sky/utils/common_utils.py
CHANGED
|
@@ -1098,13 +1098,15 @@ def release_memory():
|
|
|
1098
1098
|
"""Release the process memory"""
|
|
1099
1099
|
# Do the best effort to release the python heap and let malloc_trim
|
|
1100
1100
|
# be more efficient.
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1101
|
+
try:
|
|
1102
|
+
gc.collect()
|
|
1103
|
+
if sys.platform.startswith('linux'):
|
|
1104
1104
|
# Will fail on musl (alpine), but at least it works on our
|
|
1105
1105
|
# offical docker images.
|
|
1106
1106
|
libc = ctypes.CDLL('libc.so.6')
|
|
1107
1107
|
return libc.malloc_trim(0)
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1108
|
+
return 0
|
|
1109
|
+
except Exception as e: # pylint: disable=broad-except
|
|
1110
|
+
logger.error(f'Failed to release memory: '
|
|
1111
|
+
f'{format_exception(e)}')
|
|
1112
|
+
return 0
|
sky/utils/resource_checker.py
CHANGED
|
@@ -276,9 +276,8 @@ def _get_active_resources(
|
|
|
276
276
|
# pylint: disable=import-outside-toplevel
|
|
277
277
|
from sky.jobs.server import core as managed_jobs_core
|
|
278
278
|
try:
|
|
279
|
-
filtered_jobs, _, _, _ = managed_jobs_core.
|
|
280
|
-
|
|
281
|
-
all_users=True)
|
|
279
|
+
filtered_jobs, _, _, _ = managed_jobs_core.queue_v2(
|
|
280
|
+
refresh=False, skip_finished=True, all_users=True)
|
|
282
281
|
return filtered_jobs
|
|
283
282
|
except exceptions.ClusterNotUpError:
|
|
284
283
|
logger.warning('All jobs should be finished.')
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: skypilot-nightly
|
|
3
|
-
Version: 1.0.0.
|
|
3
|
+
Version: 1.0.0.dev20250909
|
|
4
4
|
Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
|
|
5
5
|
Author: SkyPilot Team
|
|
6
6
|
License: Apache 2.0
|
|
@@ -145,48 +145,48 @@ Requires-Dist: grpcio>=1.63.0; extra == "server"
|
|
|
145
145
|
Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "server"
|
|
146
146
|
Requires-Dist: aiosqlite; extra == "server"
|
|
147
147
|
Provides-Extra: all
|
|
148
|
-
Requires-Dist:
|
|
149
|
-
Requires-Dist:
|
|
150
|
-
Requires-Dist:
|
|
151
|
-
Requires-Dist:
|
|
148
|
+
Requires-Dist: passlib; extra == "all"
|
|
149
|
+
Requires-Dist: boto3>=1.26.1; extra == "all"
|
|
150
|
+
Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
|
|
151
|
+
Requires-Dist: awscli>=1.27.10; extra == "all"
|
|
152
|
+
Requires-Dist: runpod>=1.6.1; extra == "all"
|
|
152
153
|
Requires-Dist: python-dateutil; extra == "all"
|
|
153
|
-
Requires-Dist:
|
|
154
|
-
Requires-Dist:
|
|
155
|
-
Requires-Dist: ibm-
|
|
154
|
+
Requires-Dist: anyio; extra == "all"
|
|
155
|
+
Requires-Dist: oci; extra == "all"
|
|
156
|
+
Requires-Dist: ibm-vpc; extra == "all"
|
|
157
|
+
Requires-Dist: pyjwt; extra == "all"
|
|
158
|
+
Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
|
|
159
|
+
Requires-Dist: casbin; extra == "all"
|
|
160
|
+
Requires-Dist: nebius>=0.2.47; extra == "all"
|
|
161
|
+
Requires-Dist: azure-common; extra == "all"
|
|
162
|
+
Requires-Dist: azure-core>=1.31.0; extra == "all"
|
|
163
|
+
Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
|
|
156
164
|
Requires-Dist: pydo>=0.3.0; extra == "all"
|
|
157
165
|
Requires-Dist: aiosqlite; extra == "all"
|
|
158
|
-
Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
|
|
159
|
-
Requires-Dist: azure-core>=1.31.0; extra == "all"
|
|
160
166
|
Requires-Dist: google-cloud-storage; extra == "all"
|
|
161
|
-
Requires-Dist:
|
|
162
|
-
Requires-Dist:
|
|
163
|
-
Requires-Dist: azure-
|
|
164
|
-
Requires-Dist:
|
|
167
|
+
Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
|
|
168
|
+
Requires-Dist: colorama<0.4.5; extra == "all"
|
|
169
|
+
Requires-Dist: azure-cli>=2.65.0; extra == "all"
|
|
170
|
+
Requires-Dist: grpcio>=1.63.0; extra == "all"
|
|
165
171
|
Requires-Dist: ibm-cloud-sdk-core; extra == "all"
|
|
172
|
+
Requires-Dist: msrestazure; extra == "all"
|
|
173
|
+
Requires-Dist: azure-identity>=1.19.0; extra == "all"
|
|
174
|
+
Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
|
|
175
|
+
Requires-Dist: msgraph-sdk; extra == "all"
|
|
176
|
+
Requires-Dist: ibm-platform-services>=0.48.0; extra == "all"
|
|
177
|
+
Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "all"
|
|
178
|
+
Requires-Dist: docker; extra == "all"
|
|
179
|
+
Requires-Dist: ibm-cos-sdk; extra == "all"
|
|
166
180
|
Requires-Dist: aiohttp; extra == "all"
|
|
167
181
|
Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
|
|
168
|
-
Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
|
|
169
|
-
Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
|
|
170
|
-
Requires-Dist: docker; extra == "all"
|
|
171
|
-
Requires-Dist: oci; extra == "all"
|
|
172
182
|
Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
|
|
173
|
-
Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
|
|
174
|
-
Requires-Dist: ibm-cos-sdk; extra == "all"
|
|
175
|
-
Requires-Dist: azure-cli>=2.65.0; extra == "all"
|
|
176
|
-
Requires-Dist: awscli>=1.27.10; extra == "all"
|
|
177
|
-
Requires-Dist: msgraph-sdk; extra == "all"
|
|
178
|
-
Requires-Dist: botocore>=1.29.10; extra == "all"
|
|
179
|
-
Requires-Dist: boto3>=1.26.1; extra == "all"
|
|
180
183
|
Requires-Dist: websockets; extra == "all"
|
|
184
|
+
Requires-Dist: botocore>=1.29.10; extra == "all"
|
|
185
|
+
Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
|
|
181
186
|
Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
|
|
182
|
-
Requires-Dist: pyjwt; extra == "all"
|
|
183
|
-
Requires-Dist: passlib; extra == "all"
|
|
184
|
-
Requires-Dist: grpcio>=1.63.0; extra == "all"
|
|
185
|
-
Requires-Dist: ibm-vpc; extra == "all"
|
|
186
|
-
Requires-Dist: runpod>=1.6.1; extra == "all"
|
|
187
|
-
Requires-Dist: anyio; extra == "all"
|
|
188
|
-
Requires-Dist: msrestazure; extra == "all"
|
|
189
187
|
Requires-Dist: sqlalchemy_adapter; extra == "all"
|
|
188
|
+
Requires-Dist: azure-core>=1.24.0; extra == "all"
|
|
189
|
+
Requires-Dist: cudo-compute>=0.1.10; extra == "all"
|
|
190
190
|
Dynamic: author
|
|
191
191
|
Dynamic: classifier
|
|
192
192
|
Dynamic: description
|
{skypilot_nightly-1.0.0.dev20250907.dist-info → skypilot_nightly-1.0.0.dev20250909.dist-info}/RECORD
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
sky/__init__.py,sha256=
|
|
1
|
+
sky/__init__.py,sha256=PTHcPbPbGXk41qFTxFhNt-HhL2aYCzetMtthyF3mdWY,6615
|
|
2
2
|
sky/admin_policy.py,sha256=XdcJnYqmude-LGGop-8U-FeiJcqtfYsYtIy4rmoCJnM,9799
|
|
3
3
|
sky/authentication.py,sha256=00EHVELI7nuW7JQ_74t1RKIc7iohKnwdvlw6h2gXRmg,25487
|
|
4
4
|
sky/check.py,sha256=Z7D6txaOAEL7fyEQ8q-Zxk1aWaHpEcl412Rj2mThbQ0,31025
|
|
@@ -112,17 +112,17 @@ sky/clouds/utils/azure_utils.py,sha256=NToRBnhEyuUvb-nBnsKTxjhOBRkMcrelL8LK4w6s4
|
|
|
112
112
|
sky/clouds/utils/gcp_utils.py,sha256=09MF4Vx0EW7S-GXGpyxpl2aQlHrqeu9ioV0nyionAyk,9890
|
|
113
113
|
sky/clouds/utils/oci_utils.py,sha256=TFqAqRLggg4Z0bhxrrq8nouSSomZy-ub1frHXEkud2M,7302
|
|
114
114
|
sky/clouds/utils/scp_utils.py,sha256=VGuccVO5uFGr8-yolWSoYrgr11z6cIeDBGcqkBzAyOs,18409
|
|
115
|
-
sky/dashboard/out/404.html,sha256
|
|
116
|
-
sky/dashboard/out/clusters.html,sha256=
|
|
117
|
-
sky/dashboard/out/config.html,sha256=
|
|
115
|
+
sky/dashboard/out/404.html,sha256=MLplBIsJvaFVUZHG4y7TNGcnWQGolYSa9nI3oocaKCU,1423
|
|
116
|
+
sky/dashboard/out/clusters.html,sha256=cqWoDJjiCh93xNnVzj4Q_MomcTPOnyTxeDAv2bzKBb4,1418
|
|
117
|
+
sky/dashboard/out/config.html,sha256=a1wGX5kpO3zKWSIeiXyJFQoNufvwcOun5V48MWHrO6A,1414
|
|
118
118
|
sky/dashboard/out/favicon.ico,sha256=XilUZZglAl_1zRsg85QsbQgmQAzGPQjcUIJ-A3AzYn8,93590
|
|
119
|
-
sky/dashboard/out/index.html,sha256=
|
|
120
|
-
sky/dashboard/out/infra.html,sha256=
|
|
121
|
-
sky/dashboard/out/jobs.html,sha256=
|
|
119
|
+
sky/dashboard/out/index.html,sha256=xcy1QqtcsSvLy2oUiFxNLOo1CP5GwaHEv1NYkw3_jYE,1407
|
|
120
|
+
sky/dashboard/out/infra.html,sha256=5KTE3zlrDcGMWriaPStrqTGsfZEFjZRgSY6_4iMjmRg,1412
|
|
121
|
+
sky/dashboard/out/jobs.html,sha256=Qt4ukh0c8mI5TiVHbLlfWqyXdUGS6oeRjWgVMicvtXI,1410
|
|
122
122
|
sky/dashboard/out/skypilot.svg,sha256=c0iRtlfLlaUm2p0rG9NFmo5FN0Qhf3pq5Xph-AeMPJw,5064
|
|
123
|
-
sky/dashboard/out/users.html,sha256=
|
|
124
|
-
sky/dashboard/out/volumes.html,sha256=
|
|
125
|
-
sky/dashboard/out/workspaces.html,sha256=
|
|
123
|
+
sky/dashboard/out/users.html,sha256=ZLPwoOCGNClLy9hRAyGuNORs5lJfLGv0pgZVbxBHrm0,1412
|
|
124
|
+
sky/dashboard/out/volumes.html,sha256=iDx52IfW3pqumrguMMICJRDIJAZtrrwuKtx976m0xAc,1416
|
|
125
|
+
sky/dashboard/out/workspaces.html,sha256=NZhbwJp7srM8bdoBKbrclgr7l7MjaEyXAkAqGGSISbw,1422
|
|
126
126
|
sky/dashboard/out/_next/static/chunks/1121-408ed10b2f9fce17.js,sha256=WRuwuuT4OiOBZc-c8VIS-vO9wtyRdKvGN51obQLfxwA,8596
|
|
127
127
|
sky/dashboard/out/_next/static/chunks/1141-943efc7aff0f0c06.js,sha256=tUOoU0nIEShZeD5pBiOWrl8-czHc6PpnxxJilnDplHM,17330
|
|
128
128
|
sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js,sha256=VJ6y-Z6Eg2T93hQIRfWAbjAkQ7nQhglmIaVbEpKSILY,38451
|
|
@@ -150,7 +150,7 @@ sky/dashboard/out/_next/static/chunks/7325.b4bc99ce0892dcd5.js,sha256=5x42A-PEZA
|
|
|
150
150
|
sky/dashboard/out/_next/static/chunks/7411-b15471acd2cba716.js,sha256=Dnmr9e-yZQbnkjwzqIZU3aK-3u1Tqr8STF-ODYWLkaw,13304
|
|
151
151
|
sky/dashboard/out/_next/static/chunks/754-d0da8ab45f9509e9.js,sha256=R6UUmK1P1PfVx9zOU0jlBsVSk5ZchuPwWObAeVkkhU0,785694
|
|
152
152
|
sky/dashboard/out/_next/static/chunks/7669.1f5d9a402bf5cc42.js,sha256=FbppLXkHKPxzVKrJg15FwCoqLU18yn5jBgYgDkjqDGM,52179
|
|
153
|
-
sky/dashboard/out/_next/static/chunks/8969-
|
|
153
|
+
sky/dashboard/out/_next/static/chunks/8969-0487dfbf149d9e53.js,sha256=1fKTpI3ZpW-xmd4nvUTN743Q7jMsKF0tdyMcux_gxrI,13417
|
|
154
154
|
sky/dashboard/out/_next/static/chunks/9025.c12318fb6a1a9093.js,sha256=1Txv8nMuBYtB0UoWdwmFbkA2iB85jgKB1EJJrE1ETDo,10605
|
|
155
155
|
sky/dashboard/out/_next/static/chunks/9037-fa1737818d0a0969.js,sha256=rsXWKdY-05Xc4ep2dfVHVodlKTecr-SZUHrnqfB1SXU,18931
|
|
156
156
|
sky/dashboard/out/_next/static/chunks/fd9d1056-86323a29a8f7e46a.js,sha256=2lquiZSfbI-gX4j4TW4JSMLL_D5ShqwydgWpFyXrTy8,172834
|
|
@@ -158,7 +158,7 @@ sky/dashboard/out/_next/static/chunks/framework-cf60a09ccd051a10.js,sha256=_Qbam
|
|
|
158
158
|
sky/dashboard/out/_next/static/chunks/main-app-587214043926b3cc.js,sha256=t7glRfataAjNw691Wni-ZU4a3BsygRzPKoI8NOm-lsY,116244
|
|
159
159
|
sky/dashboard/out/_next/static/chunks/main-f15ccb73239a3bf1.js,sha256=jxOPLDVX3rkMc_jvGx2a-N2v6mvfOa8O6V0o-sLT0tI,110208
|
|
160
160
|
sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js,sha256=6QPOwdWeAVe8x-SsiDrm-Ga6u2DkqgG5SFqglrlyIgA,91381
|
|
161
|
-
sky/dashboard/out/_next/static/chunks/webpack-
|
|
161
|
+
sky/dashboard/out/_next/static/chunks/webpack-d4fabc08788e14af.js,sha256=8CNpV3gDKr3NEsOm7T9gsbDzMM5DdX6BiV4NGcYEsvo,4742
|
|
162
162
|
sky/dashboard/out/_next/static/chunks/pages/_app-ce361c6959bc2001.js,sha256=mllo4Yasw61zRtEO49uE_MrAutg9josSJShD0DNSjf0,95518
|
|
163
163
|
sky/dashboard/out/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js,sha256=vjERjtMAbVk-19LyPf1Jc-H6TMcrSznSz6brzNqbqf8,253
|
|
164
164
|
sky/dashboard/out/_next/static/chunks/pages/clusters-469814d711d63b1b.js,sha256=p8CQtv5n745WbV7QdyCapmglI2s_2UBB-f_KZE4RAZg,879
|
|
@@ -177,16 +177,16 @@ sky/dashboard/out/_next/static/chunks/pages/jobs/pools/[pool]-07349868f7905d37.j
|
|
|
177
177
|
sky/dashboard/out/_next/static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js,sha256=83s5N5CZwIaRcmYMfqn2we60n2VRmgFw6Tbx18b8-e0,762
|
|
178
178
|
sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-af76bb06dbb3954f.js,sha256=cGCpDszMI6ckUHVelwAh9ZVk1erfz_UXSLz9GCqGUAE,1495
|
|
179
179
|
sky/dashboard/out/_next/static/css/4614e06482d7309e.css,sha256=nk6GriyGVd1aGXrLd7BcMibnN4v0z-Q_mXGxrHFWqrE,56126
|
|
180
|
-
sky/dashboard/out/_next/static/
|
|
181
|
-
sky/dashboard/out/_next/static/
|
|
182
|
-
sky/dashboard/out/clusters/[cluster].html,sha256=
|
|
183
|
-
sky/dashboard/out/clusters/[cluster]/[job].html,sha256=
|
|
184
|
-
sky/dashboard/out/infra/[context].html,sha256=
|
|
185
|
-
sky/dashboard/out/jobs/[job].html,sha256=
|
|
186
|
-
sky/dashboard/out/jobs/pools/[pool].html,sha256=
|
|
180
|
+
sky/dashboard/out/_next/static/eWytLgin5zvayQw3Xk46m/_buildManifest.js,sha256=M3g5SFf5NsLbAYOrUJIT6OE-W3rho8hzm5UG4KhH71I,2428
|
|
181
|
+
sky/dashboard/out/_next/static/eWytLgin5zvayQw3Xk46m/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
|
182
|
+
sky/dashboard/out/clusters/[cluster].html,sha256=v8rFPYkOaTeHQKbBF9UbQoxiFkXGOVxo0IpAsGp2qLg,2936
|
|
183
|
+
sky/dashboard/out/clusters/[cluster]/[job].html,sha256=vkKslFQPHPaemEGBNksXSh-co_r8-9kHUDBzY5Zl2Tg,2073
|
|
184
|
+
sky/dashboard/out/infra/[context].html,sha256=6IEdnB79klHKBt4TwtwGz5cMGHJo5XmlDUloTTpY_lU,1436
|
|
185
|
+
sky/dashboard/out/jobs/[job].html,sha256=xBRE5DmSsKY1KWAntjtE4V5Dg5xEU0sr1SjURwjfCCw,2304
|
|
186
|
+
sky/dashboard/out/jobs/pools/[pool].html,sha256=gQdqHtX4PfaPkoTQ-x5KvGzxeVG7wGa0e8Pk5nUt55s,2142
|
|
187
187
|
sky/dashboard/out/videos/cursor-small.mp4,sha256=8tRdp1vjawOrXUar1cfjOc-nkaKmcwCPZx_LO0XlCvQ,203285
|
|
188
|
-
sky/dashboard/out/workspace/new.html,sha256=
|
|
189
|
-
sky/dashboard/out/workspaces/[name].html,sha256=
|
|
188
|
+
sky/dashboard/out/workspace/new.html,sha256=SrQb6BrGPh2yQK6mVxM-Jy25pSCgMdnSsBAX1oPRdLY,1428
|
|
189
|
+
sky/dashboard/out/workspaces/[name].html,sha256=W0R-FHXQomNpC5aTHkZrW8JF6ofMJ-pPHOtJ6yhCFIo,2759
|
|
190
190
|
sky/data/__init__.py,sha256=Nhaf1NURisXpZuwWANa2IuCyppIuc720FRwqSE2oEwY,184
|
|
191
191
|
sky/data/data_transfer.py,sha256=N8b0CQebDuHieXjvEVwlYmK6DbQxUGG1RQJEyTbh3dU,12040
|
|
192
192
|
sky/data/data_utils.py,sha256=AjEA_JRjo9NBMlv-Lq5iV4lBED_YZ1VqBR9pG6fGVWE,35179
|
|
@@ -204,8 +204,8 @@ sky/jobs/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
204
204
|
sky/jobs/client/sdk.py,sha256=ypSb8iRHWI7WEwai5ngBeShgBNTJf_0iehdGx-xyASA,16566
|
|
205
205
|
sky/jobs/client/sdk_async.py,sha256=qOI5TB5FDdX36R9rZ1lL9ouzQtJ6qnZxuK9uoKF86oU,4791
|
|
206
206
|
sky/jobs/server/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
207
|
-
sky/jobs/server/core.py,sha256=
|
|
208
|
-
sky/jobs/server/server.py,sha256=
|
|
207
|
+
sky/jobs/server/core.py,sha256=NzHZxkgRqJQWzBThcluPeLa9EK0GcKnC60eSyJGEVDs,42613
|
|
208
|
+
sky/jobs/server/server.py,sha256=tv2FiYOC-kDibLC_fA--7KZhAfdy-h6ul0KfrK2elLs,7894
|
|
209
209
|
sky/jobs/server/utils.py,sha256=7YRZNF8BGTQwWRiY7P40n4hQpCCOkp9gBiapd5rVFaI,3517
|
|
210
210
|
sky/logs/__init__.py,sha256=zW4gAEvWDz5S53FlLp3krAuKrmTSJ0e3kZDnhxSbW4E,722
|
|
211
211
|
sky/logs/agent.py,sha256=qtH56xbnKYLPrepSIX63or5YBLaAEMh8atTGl77BUck,2767
|
|
@@ -357,14 +357,14 @@ sky/serve/server/server.py,sha256=zzHQdsFWdSzoAIgPw-SQsxem559psu31X6BG0sSWSxw,44
|
|
|
357
357
|
sky/server/__init__.py,sha256=MPPBqFzXz6Jv5QSk6td_IcvnfXfNErDZVcizu4MLRow,27
|
|
358
358
|
sky/server/common.py,sha256=0sXjJqrAg1G1oZKg3492RzYuBjzCgXp8JXqyRIf3ysk,39410
|
|
359
359
|
sky/server/config.py,sha256=lWggVysR8dFn5gxk1Xab9abyCyDBcA6kehEWFmWU97I,9916
|
|
360
|
-
sky/server/constants.py,sha256=
|
|
360
|
+
sky/server/constants.py,sha256=AMYqrvIziaAX65Yg39CSXZuCFf-lLuYSgM3APayDCB0,2321
|
|
361
361
|
sky/server/daemons.py,sha256=ig0AAJzDdq7lOq5psyfk1yQ8GFl0XQFnKd0qKzzGxY4,9287
|
|
362
|
-
sky/server/metrics.py,sha256=
|
|
362
|
+
sky/server/metrics.py,sha256=gAmSQuPvIH8KEvyofQ2uUvEKcVCWLUhFArjAxaOJdeA,7971
|
|
363
363
|
sky/server/rest.py,sha256=6Qcn6fjypP3j9UHdKRgvt2-PU1LKz2VU2aVQEA1D6EI,14354
|
|
364
|
-
sky/server/server.py,sha256=
|
|
364
|
+
sky/server/server.py,sha256=BR3BsUpJuOukfLaxEdZfUvYXxjLZQDBnI7ztW3bTtko,83215
|
|
365
365
|
sky/server/state.py,sha256=YbVOMJ1JipQQv17gLIGyiGN7MKfnP83qlUa5MB1z0Yk,747
|
|
366
366
|
sky/server/stream_utils.py,sha256=RrxRjZR0623A_ITjSMgUmDlXcSkT8NnNjb4f24OLiAE,9613
|
|
367
|
-
sky/server/uvicorn.py,sha256=
|
|
367
|
+
sky/server/uvicorn.py,sha256=qC2eNUCmI8wetewC1RHn5VCfTUX4vxc_ZWsyXJfc5zw,11636
|
|
368
368
|
sky/server/versions.py,sha256=3atZzUa7y1XeKNcrfVxKWAo_5ZyCOnbY7DKpIqed7Do,10011
|
|
369
369
|
sky/server/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
370
370
|
sky/server/auth/authn.py,sha256=zvabLsEAf9Ql6AbXJuWZ54uaiOr1mwFGGvQn84v66H4,2037
|
|
@@ -373,8 +373,8 @@ sky/server/html/log.html,sha256=TSGZktua9Ysl_ysg3w60rjxAxhH61AJnsYDHdtqrjmI,6929
|
|
|
373
373
|
sky/server/html/token_page.html,sha256=eUndS5u1foL9vaWGPRTLMt7lCzD1g0wYJ2v_EeeFzlc,7046
|
|
374
374
|
sky/server/requests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
375
375
|
sky/server/requests/event_loop.py,sha256=OhpPbuce65bbjpGRlcJa78AVnYSm08SzFKt70ypCUuQ,1211
|
|
376
|
-
sky/server/requests/executor.py,sha256=
|
|
377
|
-
sky/server/requests/payloads.py,sha256=
|
|
376
|
+
sky/server/requests/executor.py,sha256=taUZgDX7pG5X_daEa8nGbKKNAeZjAjyL1IN5L3G7ZWs,28761
|
|
377
|
+
sky/server/requests/payloads.py,sha256=ftoUNiBDRPBOQw8nSRXW6zQv8uI9SICdznarh701Brs,27032
|
|
378
378
|
sky/server/requests/preconditions.py,sha256=KxTAoYqpJU96Ot36NHtRq3PC3f_BXk_cHI0b2eA8U6A,7323
|
|
379
379
|
sky/server/requests/process.py,sha256=UpJp5rZizNMFRCNRtudFSjbcJhFarFbtAGDWI9x_ZyE,13197
|
|
380
380
|
sky/server/requests/requests.py,sha256=T6-cYE5h3qGiPadt7jQV8t0UTQXAEGK1Ejx5XThEYIE,30147
|
|
@@ -382,8 +382,8 @@ sky/server/requests/queues/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
|
|
|
382
382
|
sky/server/requests/queues/local_queue.py,sha256=X6VkBiUmgd_kfqIK1hCtMWG1b8GiZbY70TBiBR6c6GY,416
|
|
383
383
|
sky/server/requests/queues/mp_queue.py,sha256=jDqP4Jd28U3ibSFyMR1DF9I2OWZrPZqFJrG5S6RFpyw,3403
|
|
384
384
|
sky/server/requests/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
385
|
-
sky/server/requests/serializers/decoders.py,sha256=
|
|
386
|
-
sky/server/requests/serializers/encoders.py,sha256=
|
|
385
|
+
sky/server/requests/serializers/decoders.py,sha256=3SSfn1S1H0zEwncMRw3D8pfyqz_sWkWweBqnX-8Lr3I,7652
|
|
386
|
+
sky/server/requests/serializers/encoders.py,sha256=vBY1j7ZzthUqhm0rPQsj0LC89wvsugljnq_JE06OZOA,7834
|
|
387
387
|
sky/setup_files/MANIFEST.in,sha256=4gbgHHwSdP6BbMJv5XOt-2K6wUVWF_T9CGsdESvh918,776
|
|
388
388
|
sky/setup_files/alembic.ini,sha256=854_UKvCaFmZ8vI16tSHbGgP9IMFQ42Td6c9Zmn2Oxs,5079
|
|
389
389
|
sky/setup_files/dependencies.py,sha256=rNs8UXu6gbWiOWh9WC3_fZu5MIaiep6eRH65GbqAb34,7963
|
|
@@ -470,7 +470,7 @@ sky/utils/cluster_utils.py,sha256=S8qjky9x1vkLAN4fhLkA8atJVtjdpvueqnZLEiuD5YQ,14
|
|
|
470
470
|
sky/utils/command_runner.py,sha256=nLOynQUqKpxqpxHcqEw34X5P24e8parWlluvziRFx2A,48779
|
|
471
471
|
sky/utils/command_runner.pyi,sha256=IS3qeCTgWys94KhaHx3S2Pty8qDWn_zFht7bgDLJFcw,9593
|
|
472
472
|
sky/utils/common.py,sha256=yJc110y8rwcBIKEJgb8kUD4e1OeolFEVtonwmqtAxCM,2729
|
|
473
|
-
sky/utils/common_utils.py,sha256=
|
|
473
|
+
sky/utils/common_utils.py,sha256=RWR8KDQUBM7Pp2OJb0YgXugf8G10pNsnI7vXLIPLW94,38654
|
|
474
474
|
sky/utils/config_utils.py,sha256=agfDWJi79DH5XKD_GBvUwhRwmB0-ZkYbKCjcEgV6gP4,13861
|
|
475
475
|
sky/utils/context.py,sha256=yEGvcKr9fKEeoAnNKiXDiky7dlLOChFdZYXGr0EeQ9g,9997
|
|
476
476
|
sky/utils/context_utils.py,sha256=cby-QPmnGObjIE4K7eZ_dkWZdUo7YJUmnJr5oKf_v54,6712
|
|
@@ -489,7 +489,7 @@ sky/utils/log_utils.py,sha256=RB5n58CAWmVepd_RAf-mjL2EViBFbtkPtSB5jJT6pLY,29684
|
|
|
489
489
|
sky/utils/message_utils.py,sha256=zi2Z7PEX6Xq_zvho-aEZe_J7UvpKOLdVDdGAcipRQPU,2662
|
|
490
490
|
sky/utils/perf_utils.py,sha256=HxmTmVQc5DSfqJwISPxdVLWmUxNZHbibJg1kKVI-1Cg,700
|
|
491
491
|
sky/utils/registry.py,sha256=I08nS0rvCF-xR5GEZoHEVgN1jcOeglz77h7xPpBCIjU,4179
|
|
492
|
-
sky/utils/resource_checker.py,sha256=
|
|
492
|
+
sky/utils/resource_checker.py,sha256=Cy-pWbkzoBJG5Ny5YK71cr7VHhR-pGBHb3Tk13POUB8,10531
|
|
493
493
|
sky/utils/resources_utils.py,sha256=3wnzmSIldFS5NmHTx6r2viS8zaP1q20noQolgQqucUU,16722
|
|
494
494
|
sky/utils/rich_console_utils.py,sha256=wPvAlshaFHuMZSjiDnaK3OSBppZLBjAn-lj7AvxNBQk,553
|
|
495
495
|
sky/utils/rich_utils.py,sha256=Q-N5bZGfvqciU5cuQacInoNpldZcaMKCdBX2368KIDA,19971
|
|
@@ -539,9 +539,9 @@ sky/workspaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
539
539
|
sky/workspaces/core.py,sha256=AjwbbRwk0glzCnqICJk4sQzMoUcawixbXoQWKLB3-aQ,25372
|
|
540
540
|
sky/workspaces/server.py,sha256=Box45DS54xXGHy7I3tGKGy-JP0a8G_z6IhfvGlEXtsA,3439
|
|
541
541
|
sky/workspaces/utils.py,sha256=IIAiFoS6sdb2t0X5YoX9AietpTanZUQNTK8cePun-sY,2143
|
|
542
|
-
skypilot_nightly-1.0.0.
|
|
543
|
-
skypilot_nightly-1.0.0.
|
|
544
|
-
skypilot_nightly-1.0.0.
|
|
545
|
-
skypilot_nightly-1.0.0.
|
|
546
|
-
skypilot_nightly-1.0.0.
|
|
547
|
-
skypilot_nightly-1.0.0.
|
|
542
|
+
skypilot_nightly-1.0.0.dev20250909.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
|
|
543
|
+
skypilot_nightly-1.0.0.dev20250909.dist-info/METADATA,sha256=EUCUP5bv9ecGDastrWIPB8aMOozU_qLy_ZwlGrEr6yA,19793
|
|
544
|
+
skypilot_nightly-1.0.0.dev20250909.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
545
|
+
skypilot_nightly-1.0.0.dev20250909.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
|
|
546
|
+
skypilot_nightly-1.0.0.dev20250909.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
|
|
547
|
+
skypilot_nightly-1.0.0.dev20250909.dist-info/RECORD,,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8969],{68969:function(e,t,o){o.d(t,{Ce:function(){return p},NJ:function(){return h},UA:function(){return u},aT:function(){return i},getManagedJobs:function(){return l},jh:function(){return b},vs:function(){return d}});var r=o(67294),a=o(15821),n=o(93225),c=o(6378),s=o(47145);async function l(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{var t;let{allUsers:o=!0,nameMatch:r,userMatch:a,workspaceMatch:c,poolMatch:l,page:i,limit:d,statuses:u}=e,h={all_users:o,verbose:!0};void 0!==r&&(h.name_match=r),void 0!==a&&(h.user_match=a),void 0!==c&&(h.workspace_match=c),void 0!==l&&(h.pool_match=l),void 0!==i&&(h.page=i),void 0!==d&&(h.limit=d),void 0!==u&&u.length>0&&(h.statuses=u);let p=(await s.x.post("/jobs/queue",h)).headers.get("X-Skypilot-Request-ID"),b=await s.x.get("/api/get?request_id=".concat(p));if(500===b.status){try{let e=await b.json();if(e.detail&&e.detail.error)try{let t=JSON.parse(e.detail.error);if(t.type&&t.type===n.iW)return{jobs:[],total:0,controllerStopped:!0}}catch(e){console.error("Error parsing JSON:",e)}}catch(e){console.error("Error parsing JSON:",e)}return{jobs:[],total:0,controllerStopped:!1}}let g=await b.json(),f=g.return_value?JSON.parse(g.return_value):[],m=Array.isArray(f)?f:(null==f?void 0:f.jobs)||[],_=Array.isArray(f)?m.length:null!==(t=null==f?void 0:f.total)&&void 0!==t?t:m.length,y=(null==f?void 0:f.total_no_filter)||_,w=(null==f?void 0:f.status_counts)||{};return{jobs:m.map(e=>{var t;let o=0;e.end_at&&e.submitted_at?o=e.end_at-e.submitted_at:e.submitted_at&&(o=Date.now()/1e3-e.submitted_at);let r=[];e.submitted_at&&r.push({type:"PENDING",timestamp:e.submitted_at}),e.start_at&&r.push({type:"RUNNING",timestamp:e.start_at}),e.end_at&&r.push({type:e.status,timestamp:e.end_at});let a="",n="",c="",s="",l="";try{if(a=e.cloud||"",c=e.cluster_resources,n=e.region||"",a&&(s=a,n&&(s+="/".concat(n))),l=s,e.accelerators){let t=Object.entries(e.accelerators).map(e=>{let[t,o]=e;return"".concat(o,"x").concat(t)}).join(", ");t&&(l+=" (".concat(t,")"))}}catch(t){c=e.cluster_resources}return{id:e.job_id,task_job_id:e._job_id,task:e.task_name,name:e.job_name,job_duration:e.job_duration,total_duration:o,workspace:e.workspace,status:e.status,requested_resources:e.resources,resources_str:c,resources_str_full:e.cluster_resources_full||c,cloud:a,region:e.region,infra:s,full_infra:l,recoveries:e.recovery_count,details:e.details||e.failure_reason,user:e.user_name,user_hash:e.user_hash,submitted_at:e.submitted_at?new Date(1e3*e.submitted_at):null,events:r,dag_yaml:e.user_yaml,entrypoint:e.entrypoint,git_commit:(null===(t=e.metadata)||void 0===t?void 0:t.git_commit)||"-",pool:e.pool,pool_hash:e.pool_hash,current_cluster_name:e.current_cluster_name,job_id_on_pool_cluster:e.job_id_on_pool_cluster}}),total:_,totalNoFilter:y,controllerStopped:!1,statusCounts:w}}catch(e){return console.error("Error fetching managed job data:",e),{jobs:[],total:0,totalNoFilter:0,controllerStopped:!1,statusCounts:{}}}}async function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{allUsers:t=!0,nameMatch:o,userMatch:r,workspaceMatch:a,poolMatch:n,page:c=1,limit:s=10,useClientPagination:i=!0}=e;try{if(!i)return await l(e);let d=await l({allUsers:t,nameMatch:o,userMatch:r,workspaceMatch:a,poolMatch:n});if(d.controllerStopped||!d.jobs)return d;let u=d.jobs,h=u.length,p=(c-1)*s;return{jobs:u.slice(p,p+s),total:h,controllerStopped:!1}}catch(e){return console.error("Error fetching managed job data with client pagination:",e),{jobs:[],total:0,controllerStopped:!1}}}async function d(){try{let e=(await s.x.post("/jobs/pool_status",{pool_names:null})).headers.get("X-Skypilot-Request-ID"),t=await s.x.get("/api/get?request_id=".concat(e));if(500===t.status){try{let e=await t.json();if(e.detail&&e.detail.error)try{let t=JSON.parse(e.detail.error);if(t.type&&t.type===n.iW)return{pools:[],controllerStopped:!0}}catch(e){console.error("Failed to parse error JSON:",e)}}catch(e){console.error("Failed to parse response JSON:",e)}throw Error("Server error")}let o=await t.json(),r=o.return_value?JSON.parse(o.return_value):[],a={jobs:[]};try{let e=await l({allUsers:!0});e.controllerStopped||(a=e)}catch(e){console.warn("Failed to fetch jobs for pool job counts:",e)}let c={},i=["SUCCEEDED","FAILED","FAILED_SETUP","FAILED_PRECHECKS","FAILED_NO_RESOURCE","FAILED_CONTROLLER","CANCELLED"];return a.jobs&&Array.isArray(a.jobs)&&a.jobs.forEach(e=>{let t=e.pool,o=e.status;t&&!i.includes(o)&&(c[t]||(c[t]={}),c[t][o]=(c[t][o]||0)+1)}),{pools:r.map(e=>({...e,jobCounts:c[e.name]||{}})),controllerStopped:!1}}catch(e){throw console.error("Error fetching pools:",e),e}}function u(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,[o,a]=(0,r.useState)(null),[n,s]=(0,r.useState)(!0);return(0,r.useEffect)(()=>{(async function(){if(e)try{var t;s(!0);let o=await c.default.get(l,[{allUsers:!0}]),r=null==o?void 0:null===(t=o.jobs)||void 0===t?void 0:t.find(t=>String(t.id)===String(e));r?a({jobs:[r],controllerStopped:o.controllerStopped||!1}):a({jobs:[],controllerStopped:o.controllerStopped||!1})}catch(e){console.error("Error fetching single managed job data:",e),a({jobs:[],controllerStopped:!1})}finally{s(!1)}})()},[e,t]),{jobData:o,loading:n}}async function h(e){let t,{jobId:o,controller:r=!1,signal:c,onNewLog:s}=e,l=Date.now(),i=new Promise(e=>{let o=()=>{let r=Date.now()-l;r>=3e4?e({timeout:!0}):t=setTimeout(o,3e4-r)};t=setTimeout(o,3e4)}),d=window.location.origin,u="".concat(d).concat(n.f4),h=(async()=>{try{let e=(await fetch("".concat(u,"/jobs/logs"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({controller:r,follow:!1,job_id:o,tail:1e4}),...c?{signal:c}:{}})).body.getReader();try{for(;;){let{done:t,value:o}=await e.read();if(t)break;l=Date.now();let r=new TextDecoder().decode(o);s(r)}}finally{if(!c||!c.aborted)try{e.cancel()}catch(e){"AbortError"!==e.name&&console.warn("Error canceling reader:",e)}t&&clearTimeout(t)}return{timeout:!1}}catch(e){if(t&&clearTimeout(t),"AbortError"===e.name)return{timeout:!1};throw e}})(),p=await Promise.race([h,i]);if(t&&clearTimeout(t),p.timeout){(0,a.C)("Log request for job ".concat(o," timed out after ").concat(30,"s of inactivity"),"warning");return}}async function p(e,t,o){let r="",c="",s="",l={};if("restartcontroller"===e)r="Restarting",c="restarted",s="jobs/queue",l={all_users:!0,refresh:!0},t="controller";else throw Error("Invalid action: ".concat(e));(0,a.C)("".concat(r," job ").concat(t,"..."),"info");let i=window.location.origin,d="".concat(i).concat(n.f4);try{try{let e=(await fetch("".concat(d,"/").concat(s),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)})).headers.get("X-Skypilot-Request-ID"),i=await fetch("".concat(d,"/api/get?request_id=").concat(e));if(200===i.status)(0,a.C)("Job ".concat(t," ").concat(c," successfully."),"success");else if(500===i.status)try{let e=await i.json();if(e.detail&&e.detail.error)try{let c=JSON.parse(e.detail.error);c.type&&c.type===n.Bo?(0,a.C)("".concat(r," job ").concat(t," is not supported!"),"error",1e4):c.type&&c.type===n.mF?(0,a.C)("Cluster ".concat(o," does not exist."),"error"):c.type&&c.type===n.iW?(0,a.C)("Cluster ".concat(o," is not up."),"error"):(0,a.C)("".concat(r," job ").concat(t," failed: ").concat(c.type),"error")}catch(o){(0,a.C)("".concat(r," job ").concat(t," failed: ").concat(e.detail.error),"error")}else(0,a.C)("".concat(r," job ").concat(t," failed with no details."),"error")}catch(e){(0,a.C)("".concat(r," job ").concat(t," failed with parse error."),"error")}else(0,a.C)("".concat(r," job ").concat(t," failed with status ").concat(i.status,"."),"error")}catch(e){console.error("Fetch error:",e),(0,a.C)("Network error ".concat(r," job ").concat(t,": ").concat(e.message),"error")}}catch(e){console.error("Error in handleStop:",e),(0,a.C)("Critical error ".concat(r," job ").concat(t,": ").concat(e.message),"error")}}async function b(e){let{jobId:t=null,name:o=null,controller:r=!1}=e;try{let e=await s.x.fetch("/jobs/download_logs",{job_id:t,name:o,controller:r,refresh:!1}),c=Object.values(e||{});if(!c.length){(0,a.C)("No logs found to download.","warning");return}let l=window.location.origin,i="".concat(l).concat(n.f4,"/download"),d=await fetch("".concat(i,"?relative=items"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({folder_paths:c})});if(!d.ok){let e=await d.text();throw Error("Download failed: ".concat(d.status," ").concat(e))}let u=await d.blob(),h=window.URL.createObjectURL(u),p=document.createElement("a"),b=new Date().toISOString().replace(/[:.]/g,"-"),g=t?"job-".concat(t):o?"job-".concat(o):"job";p.href=h,p.download="managed-".concat(g,"-").concat(r?"controller-logs":"logs","-").concat(b,".zip"),document.body.appendChild(p),p.click(),p.remove(),window.URL.revokeObjectURL(h)}catch(e){console.error("Error downloading managed job logs:",e),(0,a.C)("Error downloading managed job logs: ".concat(e.message),"error")}}},15821:function(e,t,o){o.d(t,{C:function(){return r}});function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"info",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5e3,r=document.getElementById("toast-container");r||((r=document.createElement("div")).id="toast-container",r.className="fixed top-0 right-0 p-4 z-[9999] flex flex-col items-end space-y-2",document.body.appendChild(r));let a=document.createElement("div");switch(a.className="rounded-md border-l-4 p-4 shadow-md flex items-center justify-between max-w-md w-full mb-2 pointer-events-auto",t){case"success":a.className+=" bg-green-100 border-green-500 text-green-800";break;case"error":a.className+=" bg-red-100 border-red-500 text-red-800";break;case"warning":a.className+=" bg-yellow-100 border-yellow-500 text-yellow-800";break;default:a.className+=" bg-blue-100 border-blue-500 text-blue-800"}return a.innerHTML='\n <div class="flex-1 mr-2">\n <p class="text-sm font-medium">'.concat(e,'</p>\n </div>\n <button class="text-gray-500 hover:text-gray-700 focus:outline-none" aria-label="Close toast">\n <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <line x1="18" y1="6" x2="6" y2="18"></line>\n <line x1="6" y1="6" x2="18" y2="18"></line>\n </svg>\n </button>\n '),r.appendChild(a),a.querySelector("button").addEventListener("click",()=>{r.removeChild(a)}),setTimeout(()=>{r.contains(a)&&r.removeChild(a)},o),a}},6378:function(e,t,o){o.r(t),o.d(t,{DashboardCache:function(){return a},dashboardCache:function(){return n}});let r=o(51214).ej.DEFAULT_TTL;class a{setPreloader(e){this.preloader=e}async get(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=o.ttl||r,n=!1!==o.refreshOnAccess,c=this._generateKey(e,t),s=e.name||"anonymous",l=this.cache.get(c),i=Date.now();if(l&&i-l.lastUpdated<a){let o=Math.round((i-l.lastUpdated)/1e3);if(this._debug("Cache HIT for ".concat(s," (age: ").concat(o,"s, TTL: ").concat(Math.round(a/1e3),"s)")),n&&(this.cache.set(c,{data:l.data,lastUpdated:i}),this._debug("Cache TTL refreshed for ".concat(s))),!this.backgroundJobs.has(c)){var d;(null===(d=this.preloader)||void 0===d?void 0:d.wasRecentlyPreloaded(e,t))?this._debug("Skipping background refresh for ".concat(s," - recently preloaded")):this._refreshInBackground(e,t,c)}return l.data}try{let o=await e(...t);return this.cache.set(c,{data:o,lastUpdated:i}),o}catch(e){if(l)return console.warn("Failed to fetch fresh data for ".concat(c,", returning stale data:"),e),l.data;throw e}}invalidate(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=this._generateKey(e,t);this.cache.delete(o),this.backgroundJobs.delete(o)}invalidateFunction(e){let t=e.name||"anonymous",o=[];for(let e of this.cache.keys())e.startsWith("".concat(t,"_"))&&o.push(e);o.forEach(e=>{this.cache.delete(e),this.backgroundJobs.delete(e)})}clear(){this.cache.clear(),this.backgroundJobs.clear()}getStats(){return{cacheSize:this.cache.size,backgroundJobs:this.backgroundJobs.size,keys:Array.from(this.cache.keys())}}getDetailedStats(){let e=Date.now(),t=[];for(let[o,r]of this.cache.entries()){let a=e-r.lastUpdated;t.push({key:o,age:Math.round(a/1e3),lastUpdated:new Date(r.lastUpdated).toISOString(),hasBackgroundJob:this.backgroundJobs.has(o)})}return{cacheSize:this.cache.size,backgroundJobs:this.backgroundJobs.size,entries:t.sort((e,t)=>e.age-t.age)}}setDebugMode(e){this.debugMode=e}_debug(e){for(var t=arguments.length,o=Array(t>1?t-1:0),r=1;r<t;r++)o[r-1]=arguments[r];this.debugMode&&console.log("[DashboardCache] ".concat(e),...o)}_refreshInBackground(e,t,o){this.backgroundJobs.set(o,!0),e(...t).then(e=>{this.cache.set(o,{data:e,lastUpdated:Date.now()})}).catch(e=>{console.warn("Background refresh failed for ".concat(o,":"),e)}).finally(()=>{this.backgroundJobs.delete(o)})}_generateKey(e,t){let o=function(e){let t=5381;for(let o=0;o<e.length;o++)t=(t<<5)+t+e.charCodeAt(o);return t>>>0}(e.toString()),r=t.length>0?JSON.stringify(t):"";return"".concat(o,"_").concat(r)}constructor(){this.cache=new Map,this.backgroundJobs=new Map,this.debugMode=!1,this.preloader=null}}let n=new a;t.default=n}}]);
|
/sky/dashboard/out/_next/static/{i60KpqkwvB9QVScj-NeKo → eWytLgin5zvayQw3Xk46m}/_ssgManifest.js
RENAMED
|
File without changes
|
{skypilot_nightly-1.0.0.dev20250907.dist-info → skypilot_nightly-1.0.0.dev20250909.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|