skypilot-nightly 1.0.0.dev20250918__py3-none-any.whl → 1.0.0.dev20250919__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/core.py +67 -45
- sky/dashboard/out/404.html +1 -1
- sky/dashboard/out/_next/static/{k1mo5xWZrV9djgjd0moOT → VvaUqYDvHOcHZRnvMBmax}/_buildManifest.js +1 -1
- sky/dashboard/out/_next/static/chunks/1121-4ff1ec0dbc5792ab.js +1 -0
- sky/dashboard/out/_next/static/chunks/3015-88c7c8d69b0b6dba.js +1 -0
- sky/dashboard/out/_next/static/chunks/8969-a39efbadcd9fde80.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-1e9248ddbddcd122.js +16 -0
- sky/dashboard/out/_next/static/chunks/pages/clusters/{[cluster]-0b4b35dc1dfe046c.js → [cluster]-9525660179df3605.js} +1 -1
- sky/dashboard/out/_next/static/chunks/{webpack-487697b47d8c5e50.js → webpack-b2a3938c22b6647b.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/global_user_state.py +83 -54
- sky/metrics/utils.py +174 -8
- sky/schemas/generated/jobsv1_pb2.py +40 -40
- sky/server/metrics.py +52 -158
- sky/server/requests/executor.py +9 -8
- sky/server/requests/payloads.py +6 -0
- sky/server/requests/requests.py +1 -1
- sky/server/requests/serializers/encoders.py +3 -2
- sky/server/server.py +5 -41
- sky/skylet/constants.py +6 -3
- sky/skylet/job_lib.py +14 -15
- sky/utils/locks.py +41 -10
- {skypilot_nightly-1.0.0.dev20250918.dist-info → skypilot_nightly-1.0.0.dev20250919.dist-info}/METADATA +32 -32
- {skypilot_nightly-1.0.0.dev20250918.dist-info → skypilot_nightly-1.0.0.dev20250919.dist-info}/RECORD +44 -44
- sky/dashboard/out/_next/static/chunks/1121-408ed10b2f9fce17.js +0 -1
- sky/dashboard/out/_next/static/chunks/3015-ba5be550eb80fd8c.js +0 -1
- sky/dashboard/out/_next/static/chunks/8969-a3e3f0683e19d340.js +0 -1
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-1cbba24bd1bd35f8.js +0 -16
- /sky/dashboard/out/_next/static/{k1mo5xWZrV9djgjd0moOT → VvaUqYDvHOcHZRnvMBmax}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250918.dist-info → skypilot_nightly-1.0.0.dev20250919.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20250918.dist-info → skypilot_nightly-1.0.0.dev20250919.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250918.dist-info → skypilot_nightly-1.0.0.dev20250919.dist-info}/licenses/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250918.dist-info → skypilot_nightly-1.0.0.dev20250919.dist-info}/top_level.txt +0 -0
sky/server/requests/requests.py
CHANGED
|
@@ -25,10 +25,10 @@ from sky import exceptions
|
|
|
25
25
|
from sky import global_user_state
|
|
26
26
|
from sky import sky_logging
|
|
27
27
|
from sky import skypilot_config
|
|
28
|
+
from sky.metrics import utils as metrics_lib
|
|
28
29
|
from sky.server import common as server_common
|
|
29
30
|
from sky.server import constants as server_constants
|
|
30
31
|
from sky.server import daemons
|
|
31
|
-
from sky.server import metrics as metrics_lib
|
|
32
32
|
from sky.server.requests import payloads
|
|
33
33
|
from sky.server.requests.serializers import decoders
|
|
34
34
|
from sky.server.requests.serializers import encoders
|
|
@@ -185,8 +185,9 @@ def encode_cost_report(
|
|
|
185
185
|
for cluster_report in cost_report:
|
|
186
186
|
if cluster_report['status'] is not None:
|
|
187
187
|
cluster_report['status'] = cluster_report['status'].value
|
|
188
|
-
|
|
189
|
-
cluster_report['resources']
|
|
188
|
+
if 'resources' in cluster_report:
|
|
189
|
+
cluster_report['resources'] = pickle_and_encode(
|
|
190
|
+
cluster_report['resources'])
|
|
190
191
|
return cost_report
|
|
191
192
|
|
|
192
193
|
|
sky/server/server.py
CHANGED
|
@@ -437,7 +437,7 @@ async def loop_lag_monitor(loop: asyncio.AbstractEventLoop,
|
|
|
437
437
|
if lag_threshold is not None and lag > lag_threshold:
|
|
438
438
|
logger.warning(f'Event loop lag {lag} seconds exceeds threshold '
|
|
439
439
|
f'{lag_threshold} seconds.')
|
|
440
|
-
|
|
440
|
+
metrics_utils.SKY_APISERVER_EVENT_LOOP_LAG_SECONDS.labels(
|
|
441
441
|
pid=pid).observe(lag)
|
|
442
442
|
target = now + interval
|
|
443
443
|
loop.call_at(target, tick)
|
|
@@ -470,7 +470,7 @@ async def lifespan(app: fastapi.FastAPI): # pylint: disable=redefined-outer-nam
|
|
|
470
470
|
# can safely ignore the error if the task is already scheduled.
|
|
471
471
|
logger.debug(f'Request {event.id} already exists.')
|
|
472
472
|
asyncio.create_task(cleanup_upload_ids())
|
|
473
|
-
if
|
|
473
|
+
if metrics_utils.METRICS_ENABLED:
|
|
474
474
|
# Start monitoring the event loop lag in each server worker
|
|
475
475
|
# event loop (process).
|
|
476
476
|
asyncio.create_task(loop_lag_monitor(asyncio.get_event_loop()))
|
|
@@ -1743,7 +1743,7 @@ async def kubernetes_pod_ssh_proxy(websocket: fastapi.WebSocket,
|
|
|
1743
1743
|
return
|
|
1744
1744
|
|
|
1745
1745
|
logger.info(f'Starting port-forward to local port: {local_port}')
|
|
1746
|
-
conn_gauge =
|
|
1746
|
+
conn_gauge = metrics_utils.SKY_APISERVER_WEBSOCKET_CONNECTIONS.labels(
|
|
1747
1747
|
pid=os.getpid())
|
|
1748
1748
|
ssh_failed = False
|
|
1749
1749
|
websocket_closed = False
|
|
@@ -1807,14 +1807,14 @@ async def kubernetes_pod_ssh_proxy(websocket: fastapi.WebSocket,
|
|
|
1807
1807
|
'ssh websocket connection was closed. Remaining '
|
|
1808
1808
|
f'output: {str(stdout)}')
|
|
1809
1809
|
reason = 'KubectlPortForwardExit'
|
|
1810
|
-
|
|
1810
|
+
metrics_utils.SKY_APISERVER_WEBSOCKET_CLOSED_TOTAL.labels(
|
|
1811
1811
|
pid=os.getpid(), reason='KubectlPortForwardExit').inc()
|
|
1812
1812
|
else:
|
|
1813
1813
|
if ssh_failed:
|
|
1814
1814
|
reason = 'SSHToPodDisconnected'
|
|
1815
1815
|
else:
|
|
1816
1816
|
reason = 'ClientClosed'
|
|
1817
|
-
|
|
1817
|
+
metrics_utils.SKY_APISERVER_WEBSOCKET_CLOSED_TOTAL.labels(
|
|
1818
1818
|
pid=os.getpid(), reason=reason).inc()
|
|
1819
1819
|
|
|
1820
1820
|
|
|
@@ -1831,42 +1831,6 @@ async def all_contexts(request: fastapi.Request) -> None:
|
|
|
1831
1831
|
)
|
|
1832
1832
|
|
|
1833
1833
|
|
|
1834
|
-
@app.get('/gpu-metrics')
|
|
1835
|
-
async def gpu_metrics() -> fastapi.Response:
|
|
1836
|
-
"""Gets the GPU metrics from multiple external k8s clusters"""
|
|
1837
|
-
contexts = core.get_all_contexts()
|
|
1838
|
-
all_metrics: List[str] = []
|
|
1839
|
-
successful_contexts = 0
|
|
1840
|
-
|
|
1841
|
-
tasks = [
|
|
1842
|
-
asyncio.create_task(metrics_utils.get_metrics_for_context(context))
|
|
1843
|
-
for context in contexts
|
|
1844
|
-
if context != 'in-cluster'
|
|
1845
|
-
]
|
|
1846
|
-
|
|
1847
|
-
results = await asyncio.gather(*tasks, return_exceptions=True)
|
|
1848
|
-
|
|
1849
|
-
for i, result in enumerate(results):
|
|
1850
|
-
if isinstance(result, Exception):
|
|
1851
|
-
logger.error(
|
|
1852
|
-
f'Failed to get metrics for context {contexts[i]}: {result}')
|
|
1853
|
-
elif isinstance(result, BaseException):
|
|
1854
|
-
# Avoid changing behavior for non-Exception BaseExceptions
|
|
1855
|
-
# like KeyboardInterrupt/SystemExit: re-raise them.
|
|
1856
|
-
raise result
|
|
1857
|
-
else:
|
|
1858
|
-
metrics_text = result
|
|
1859
|
-
all_metrics.append(metrics_text)
|
|
1860
|
-
successful_contexts += 1
|
|
1861
|
-
|
|
1862
|
-
combined_metrics = '\n\n'.join(all_metrics)
|
|
1863
|
-
|
|
1864
|
-
# Return as plain text for Prometheus compatibility
|
|
1865
|
-
return fastapi.Response(
|
|
1866
|
-
content=combined_metrics,
|
|
1867
|
-
media_type='text/plain; version=0.0.4; charset=utf-8')
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
1834
|
# === Internal APIs ===
|
|
1871
1835
|
@app.get('/api/completion/cluster_name')
|
|
1872
1836
|
async def complete_cluster_name(incomplete: str,) -> List[str]:
|
sky/skylet/constants.py
CHANGED
|
@@ -29,6 +29,7 @@ SKY_REMOTE_RAY_PORT_FILE = '~/.sky/ray_port.json'
|
|
|
29
29
|
SKY_REMOTE_RAY_TEMPDIR = '/tmp/ray_skypilot'
|
|
30
30
|
SKY_REMOTE_RAY_VERSION = '2.9.3'
|
|
31
31
|
|
|
32
|
+
SKY_UNSET_PYTHONPATH = 'env -u PYTHONPATH'
|
|
32
33
|
# We store the absolute path of the python executable (/opt/conda/bin/python3)
|
|
33
34
|
# in this file, so that any future internal commands that need to use python
|
|
34
35
|
# can use this path. This is useful for the case where the user has a custom
|
|
@@ -40,7 +41,7 @@ SKY_GET_PYTHON_PATH_CMD = (f'[ -s {SKY_PYTHON_PATH_FILE} ] && '
|
|
|
40
41
|
f'cat {SKY_PYTHON_PATH_FILE} 2> /dev/null || '
|
|
41
42
|
'which python3')
|
|
42
43
|
# Python executable, e.g., /opt/conda/bin/python3
|
|
43
|
-
SKY_PYTHON_CMD = f'$({SKY_GET_PYTHON_PATH_CMD})'
|
|
44
|
+
SKY_PYTHON_CMD = f'{SKY_UNSET_PYTHONPATH} $({SKY_GET_PYTHON_PATH_CMD})'
|
|
44
45
|
# Prefer SKY_UV_PIP_CMD, which is faster.
|
|
45
46
|
# TODO(cooperc): remove remaining usage (GCP TPU setup).
|
|
46
47
|
SKY_PIP_CMD = f'{SKY_PYTHON_CMD} -m pip'
|
|
@@ -56,14 +57,16 @@ SKY_REMOTE_PYTHON_ENV: str = f'~/{SKY_REMOTE_PYTHON_ENV_NAME}'
|
|
|
56
57
|
ACTIVATE_SKY_REMOTE_PYTHON_ENV = f'source {SKY_REMOTE_PYTHON_ENV}/bin/activate'
|
|
57
58
|
# uv is used for venv and pip, much faster than python implementations.
|
|
58
59
|
SKY_UV_INSTALL_DIR = '"$HOME/.local/bin"'
|
|
59
|
-
SKY_UV_CMD =
|
|
60
|
+
SKY_UV_CMD = ('UV_SYSTEM_PYTHON=false '
|
|
61
|
+
f'{SKY_UNSET_PYTHONPATH} {SKY_UV_INSTALL_DIR}/uv')
|
|
60
62
|
# This won't reinstall uv if it's already installed, so it's safe to re-run.
|
|
61
63
|
SKY_UV_INSTALL_CMD = (f'{SKY_UV_CMD} -V >/dev/null 2>&1 || '
|
|
62
64
|
'curl -LsSf https://astral.sh/uv/install.sh '
|
|
63
65
|
f'| UV_INSTALL_DIR={SKY_UV_INSTALL_DIR} sh')
|
|
64
66
|
SKY_UV_PIP_CMD: str = (f'VIRTUAL_ENV={SKY_REMOTE_PYTHON_ENV} {SKY_UV_CMD} pip')
|
|
65
67
|
SKY_UV_RUN_CMD: str = (
|
|
66
|
-
f'VIRTUAL_ENV={SKY_REMOTE_PYTHON_ENV} {SKY_UV_CMD} run --active'
|
|
68
|
+
f'VIRTUAL_ENV={SKY_REMOTE_PYTHON_ENV} {SKY_UV_CMD} run --active '
|
|
69
|
+
'--no-project --no-config')
|
|
67
70
|
# Deleting the SKY_REMOTE_PYTHON_ENV_NAME from the PATH and unsetting relevant
|
|
68
71
|
# VIRTUAL_ENV envvars to deactivate the environment. `deactivate` command does
|
|
69
72
|
# not work when conda is used.
|
sky/skylet/job_lib.py
CHANGED
|
@@ -559,21 +559,20 @@ def get_jobs_info(user_hash: Optional[str] = None,
|
|
|
559
559
|
jobs_info = []
|
|
560
560
|
for job in jobs:
|
|
561
561
|
jobs_info.append(
|
|
562
|
-
jobsv1_pb2.JobInfo(
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
metadata=json.dumps(job['metadata'])))
|
|
562
|
+
jobsv1_pb2.JobInfo(job_id=job['job_id'],
|
|
563
|
+
job_name=job['job_name'],
|
|
564
|
+
username=job['username'],
|
|
565
|
+
submitted_at=job['submitted_at'],
|
|
566
|
+
status=job['status'].to_protobuf(),
|
|
567
|
+
run_timestamp=job['run_timestamp'],
|
|
568
|
+
start_at=job['start_at'],
|
|
569
|
+
end_at=job['end_at'],
|
|
570
|
+
resources=job['resources'],
|
|
571
|
+
pid=job['pid'],
|
|
572
|
+
log_path=os.path.join(
|
|
573
|
+
constants.SKY_LOGS_DIRECTORY,
|
|
574
|
+
job['run_timestamp']),
|
|
575
|
+
metadata=json.dumps(job['metadata'])))
|
|
577
576
|
return jobs_info
|
|
578
577
|
|
|
579
578
|
|
sky/utils/locks.py
CHANGED
|
@@ -11,6 +11,7 @@ import time
|
|
|
11
11
|
from typing import Any, Optional
|
|
12
12
|
|
|
13
13
|
import filelock
|
|
14
|
+
import psycopg2
|
|
14
15
|
import sqlalchemy
|
|
15
16
|
|
|
16
17
|
from sky import global_user_state
|
|
@@ -197,6 +198,7 @@ class PostgresLock(DistributedLock):
|
|
|
197
198
|
if engine.dialect.name != db_utils.SQLAlchemyDialect.POSTGRESQL.value:
|
|
198
199
|
raise ValueError('PostgresLock requires PostgreSQL database. '
|
|
199
200
|
f'Current dialect: {engine.dialect.name}')
|
|
201
|
+
# Borrow a dedicated connection from the pool.
|
|
200
202
|
return engine.raw_connection()
|
|
201
203
|
|
|
202
204
|
def acquire(self, blocking: bool = True) -> AcquireReturnProxy:
|
|
@@ -233,9 +235,7 @@ class PostgresLock(DistributedLock):
|
|
|
233
235
|
time.sleep(self.poll_interval)
|
|
234
236
|
|
|
235
237
|
except Exception:
|
|
236
|
-
|
|
237
|
-
self._connection.close()
|
|
238
|
-
self._connection = None
|
|
238
|
+
self._close_connection()
|
|
239
239
|
raise
|
|
240
240
|
|
|
241
241
|
def release(self) -> None:
|
|
@@ -248,27 +248,58 @@ class PostgresLock(DistributedLock):
|
|
|
248
248
|
cursor.execute('SELECT pg_advisory_unlock(%s)', (self._lock_key,))
|
|
249
249
|
self._connection.commit()
|
|
250
250
|
self._acquired = False
|
|
251
|
+
except psycopg2.OperationalError as e:
|
|
252
|
+
# Lost connection to the database, likely the lock is force unlocked
|
|
253
|
+
# by other routines.
|
|
254
|
+
logger.debug(f'Failed to release postgres lock {self.lock_id}: {e}')
|
|
251
255
|
finally:
|
|
252
|
-
|
|
253
|
-
self._connection.close()
|
|
254
|
-
self._connection = None
|
|
256
|
+
self._close_connection()
|
|
255
257
|
|
|
256
258
|
def force_unlock(self) -> None:
|
|
257
259
|
"""Force unlock the postgres advisory lock."""
|
|
258
260
|
try:
|
|
259
|
-
|
|
261
|
+
# The lock is held by current routine, gracefully unlock it
|
|
262
|
+
if self._acquired:
|
|
263
|
+
self.release()
|
|
264
|
+
return
|
|
265
|
+
|
|
266
|
+
# The lock is held by another routine, force unlock it.
|
|
267
|
+
if self._connection is None:
|
|
260
268
|
self._connection = self._get_connection()
|
|
261
269
|
cursor = self._connection.cursor()
|
|
262
270
|
cursor.execute('SELECT pg_advisory_unlock(%s)', (self._lock_key,))
|
|
263
|
-
|
|
271
|
+
result = cursor.fetchone()[0]
|
|
272
|
+
if result:
|
|
273
|
+
# The lock is held by current routine and unlock suceed
|
|
274
|
+
self._connection.commit()
|
|
275
|
+
self._acquired = False
|
|
276
|
+
return
|
|
277
|
+
cursor.execute(
|
|
278
|
+
('SELECT pid FROM pg_locks WHERE locktype = \'advisory\' '
|
|
279
|
+
'AND ((classid::bigint << 32) | objid::bigint) = %s'),
|
|
280
|
+
(self._lock_key,))
|
|
281
|
+
row = cursor.fetchone()
|
|
282
|
+
if row:
|
|
283
|
+
# The lock is still held by another routine, false unlock it
|
|
284
|
+
# by killing the PG connection of that routine.
|
|
285
|
+
cursor.execute('SELECT pg_terminate_backend(%s)', (row[0],))
|
|
286
|
+
self._connection.commit()
|
|
287
|
+
return
|
|
264
288
|
except Exception as e:
|
|
265
289
|
raise RuntimeError(
|
|
266
290
|
f'Failed to force unlock postgres lock {self.lock_id}: {e}'
|
|
267
291
|
) from e
|
|
268
292
|
finally:
|
|
269
|
-
|
|
293
|
+
self._close_connection()
|
|
294
|
+
|
|
295
|
+
def _close_connection(self) -> None:
|
|
296
|
+
"""Close the postgres connection."""
|
|
297
|
+
if self._connection:
|
|
298
|
+
try:
|
|
270
299
|
self._connection.close()
|
|
271
|
-
|
|
300
|
+
except Exception as e: # pylint: disable=broad-except
|
|
301
|
+
logger.debug(f'Failed to close postgres connection: {e}')
|
|
302
|
+
self._connection = None
|
|
272
303
|
|
|
273
304
|
def is_locked(self) -> bool:
|
|
274
305
|
"""Check if the postgres advisory lock is acquired."""
|
|
@@ -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.dev20250919
|
|
4
4
|
Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
|
|
5
5
|
Author: SkyPilot Team
|
|
6
6
|
License: Apache 2.0
|
|
@@ -152,49 +152,49 @@ Requires-Dist: grpcio>=1.63.0; extra == "server"
|
|
|
152
152
|
Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "server"
|
|
153
153
|
Requires-Dist: aiosqlite; extra == "server"
|
|
154
154
|
Provides-Extra: all
|
|
155
|
-
Requires-Dist:
|
|
155
|
+
Requires-Dist: docker; extra == "all"
|
|
156
|
+
Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
|
|
157
|
+
Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
|
|
158
|
+
Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
|
|
156
159
|
Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
|
|
157
160
|
Requires-Dist: nebius>=0.2.47; extra == "all"
|
|
158
|
-
Requires-Dist:
|
|
159
|
-
Requires-Dist:
|
|
160
|
-
Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "all"
|
|
161
|
-
Requires-Dist: awscli>=1.27.10; extra == "all"
|
|
162
|
-
Requires-Dist: docker; extra == "all"
|
|
163
|
-
Requires-Dist: google-cloud-storage; extra == "all"
|
|
164
|
-
Requires-Dist: azure-common; extra == "all"
|
|
165
|
-
Requires-Dist: ray[default]>=2.6.1; extra == "all"
|
|
166
|
-
Requires-Dist: ibm-cloud-sdk-core; extra == "all"
|
|
167
|
-
Requires-Dist: python-dateutil; extra == "all"
|
|
161
|
+
Requires-Dist: azure-core>=1.24.0; extra == "all"
|
|
162
|
+
Requires-Dist: ibm-cos-sdk; extra == "all"
|
|
168
163
|
Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
|
|
169
|
-
Requires-Dist: anyio; extra == "all"
|
|
170
|
-
Requires-Dist: azure-identity>=1.19.0; extra == "all"
|
|
171
|
-
Requires-Dist: sqlalchemy_adapter; extra == "all"
|
|
172
164
|
Requires-Dist: boto3>=1.26.1; extra == "all"
|
|
173
|
-
Requires-Dist: pydo>=0.3.0; extra == "all"
|
|
174
|
-
Requires-Dist: aiohttp; extra == "all"
|
|
175
165
|
Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
|
|
176
|
-
Requires-Dist: colorama<0.4.5; extra == "all"
|
|
177
166
|
Requires-Dist: azure-core>=1.31.0; extra == "all"
|
|
178
|
-
Requires-Dist:
|
|
179
|
-
Requires-Dist:
|
|
167
|
+
Requires-Dist: passlib; extra == "all"
|
|
168
|
+
Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "all"
|
|
180
169
|
Requires-Dist: oci; extra == "all"
|
|
181
|
-
Requires-Dist: azure-core>=1.24.0; extra == "all"
|
|
182
|
-
Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
|
|
183
|
-
Requires-Dist: ibm-vpc; extra == "all"
|
|
184
|
-
Requires-Dist: botocore>=1.29.10; extra == "all"
|
|
185
|
-
Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
|
|
186
170
|
Requires-Dist: ibm-platform-services>=0.48.0; extra == "all"
|
|
171
|
+
Requires-Dist: google-cloud-storage; extra == "all"
|
|
172
|
+
Requires-Dist: sqlalchemy_adapter; extra == "all"
|
|
173
|
+
Requires-Dist: runpod>=1.6.1; extra == "all"
|
|
174
|
+
Requires-Dist: azure-common; extra == "all"
|
|
175
|
+
Requires-Dist: ibm-cloud-sdk-core; extra == "all"
|
|
176
|
+
Requires-Dist: awscli>=1.27.10; extra == "all"
|
|
177
|
+
Requires-Dist: ray[default]>=2.6.1; extra == "all"
|
|
187
178
|
Requires-Dist: msgraph-sdk; extra == "all"
|
|
188
|
-
Requires-Dist:
|
|
189
|
-
Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
|
|
190
|
-
Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
|
|
179
|
+
Requires-Dist: ecsapi>=0.2.0; extra == "all"
|
|
191
180
|
Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
|
|
192
|
-
Requires-Dist:
|
|
181
|
+
Requires-Dist: botocore>=1.29.10; extra == "all"
|
|
182
|
+
Requires-Dist: ibm-vpc; extra == "all"
|
|
183
|
+
Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
|
|
184
|
+
Requires-Dist: cudo-compute>=0.1.10; extra == "all"
|
|
185
|
+
Requires-Dist: colorama<0.4.5; extra == "all"
|
|
186
|
+
Requires-Dist: azure-cli>=2.65.0; extra == "all"
|
|
187
|
+
Requires-Dist: python-dateutil; extra == "all"
|
|
188
|
+
Requires-Dist: aiohttp; extra == "all"
|
|
189
|
+
Requires-Dist: aiosqlite; extra == "all"
|
|
190
|
+
Requires-Dist: anyio; extra == "all"
|
|
193
191
|
Requires-Dist: pyjwt; extra == "all"
|
|
194
192
|
Requires-Dist: websockets; extra == "all"
|
|
195
|
-
Requires-Dist:
|
|
196
|
-
Requires-Dist:
|
|
197
|
-
Requires-Dist:
|
|
193
|
+
Requires-Dist: azure-identity>=1.19.0; extra == "all"
|
|
194
|
+
Requires-Dist: grpcio>=1.63.0; extra == "all"
|
|
195
|
+
Requires-Dist: msrestazure; extra == "all"
|
|
196
|
+
Requires-Dist: casbin; extra == "all"
|
|
197
|
+
Requires-Dist: pydo>=0.3.0; extra == "all"
|
|
198
198
|
Dynamic: author
|
|
199
199
|
Dynamic: classifier
|
|
200
200
|
Dynamic: description
|
{skypilot_nightly-1.0.0.dev20250918.dist-info → skypilot_nightly-1.0.0.dev20250919.dist-info}/RECORD
RENAMED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
sky/__init__.py,sha256=
|
|
1
|
+
sky/__init__.py,sha256=hfSFhSEtc3jWukybx_t0ZIp2z-SF3JFTtTVKdxXm__g,6713
|
|
2
2
|
sky/admin_policy.py,sha256=XdcJnYqmude-LGGop-8U-FeiJcqtfYsYtIy4rmoCJnM,9799
|
|
3
3
|
sky/authentication.py,sha256=xWdnHD4b172-FPTcVFmRhYvt_JNVLYvgFkaFS5qvs-k,28210
|
|
4
4
|
sky/check.py,sha256=Z7D6txaOAEL7fyEQ8q-Zxk1aWaHpEcl412Rj2mThbQ0,31025
|
|
5
5
|
sky/cli.py,sha256=VXIZryeTtJPYpPTBKymVPmuOCyh8knfWrq-qnkr6R-4,178
|
|
6
6
|
sky/cloud_stores.py,sha256=Ln5GBpel-sEs7rVx7bBrMkfLwA_bctI05Rox2uoz7Lo,26388
|
|
7
|
-
sky/core.py,sha256=
|
|
7
|
+
sky/core.py,sha256=3qw6-UgdLi7I4eyvPubJ9aWr-MPVJr7TIJWujlSGhO8,60163
|
|
8
8
|
sky/dag.py,sha256=0ZpAEDXuIFo1SP7YJpF9vXiFxpRwqP8od-UXMg95td8,3929
|
|
9
9
|
sky/exceptions.py,sha256=IprWNwo6z5cHE-vTuQ5bMcjCfE2kgwZ3PRuawLPucXY,20466
|
|
10
10
|
sky/execution.py,sha256=UyxO73HWUXW5gJwBiSMcQ6_dwSJm8vEh0xz7SXqhW9w,34992
|
|
11
|
-
sky/global_user_state.py,sha256=
|
|
11
|
+
sky/global_user_state.py,sha256=11_ho8gFV1SrwyVl3kq6JDQ0zRjg4mJ4zekIDDnJ6VQ,94004
|
|
12
12
|
sky/models.py,sha256=ZKisLai7vqUr6_BPev6Oziu5N23WLzTh9nRtHSlRchw,3999
|
|
13
13
|
sky/optimizer.py,sha256=iR57bL_8BeG6bh1sH3J6n6i65EBFjmyftezYM4nnDZA,64150
|
|
14
14
|
sky/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -118,23 +118,25 @@ sky/clouds/utils/azure_utils.py,sha256=NToRBnhEyuUvb-nBnsKTxjhOBRkMcrelL8LK4w6s4
|
|
|
118
118
|
sky/clouds/utils/gcp_utils.py,sha256=09MF4Vx0EW7S-GXGpyxpl2aQlHrqeu9ioV0nyionAyk,9890
|
|
119
119
|
sky/clouds/utils/oci_utils.py,sha256=TFqAqRLggg4Z0bhxrrq8nouSSomZy-ub1frHXEkud2M,7302
|
|
120
120
|
sky/clouds/utils/scp_utils.py,sha256=VGuccVO5uFGr8-yolWSoYrgr11z6cIeDBGcqkBzAyOs,18409
|
|
121
|
-
sky/dashboard/out/404.html,sha256=
|
|
122
|
-
sky/dashboard/out/clusters.html,sha256=
|
|
123
|
-
sky/dashboard/out/config.html,sha256=
|
|
121
|
+
sky/dashboard/out/404.html,sha256=9rjJLfta-90vi69dfPEJxy6yv9zIUdZMi9eiu2xElng,1423
|
|
122
|
+
sky/dashboard/out/clusters.html,sha256=aLf8LqlQZToT6ofHZEIv-9YOY3C05VoOoT_tWA7Xibo,1418
|
|
123
|
+
sky/dashboard/out/config.html,sha256=1Tl0Ld_A24LFG9mbDAc_-6rnvD_ya00rAHBtKnK1I8A,1414
|
|
124
124
|
sky/dashboard/out/favicon.ico,sha256=XilUZZglAl_1zRsg85QsbQgmQAzGPQjcUIJ-A3AzYn8,93590
|
|
125
|
-
sky/dashboard/out/index.html,sha256=
|
|
126
|
-
sky/dashboard/out/infra.html,sha256=
|
|
127
|
-
sky/dashboard/out/jobs.html,sha256=
|
|
125
|
+
sky/dashboard/out/index.html,sha256=zeSB_JVz1a9CcfyYOnxeUqvbcC9yA8hNasrpsq-Su-M,1407
|
|
126
|
+
sky/dashboard/out/infra.html,sha256=6cgz733OfxJb9RGujgrl13aCjN6FlZFgjMW7vc6jEG0,1412
|
|
127
|
+
sky/dashboard/out/jobs.html,sha256=5e1O6_xAfc-H6L_cETw6RCM8wjG7mWyKUaSMPdbNNpE,1410
|
|
128
128
|
sky/dashboard/out/skypilot.svg,sha256=c0iRtlfLlaUm2p0rG9NFmo5FN0Qhf3pq5Xph-AeMPJw,5064
|
|
129
|
-
sky/dashboard/out/users.html,sha256=
|
|
130
|
-
sky/dashboard/out/volumes.html,sha256=
|
|
131
|
-
sky/dashboard/out/workspaces.html,sha256=
|
|
132
|
-
sky/dashboard/out/_next/static/
|
|
129
|
+
sky/dashboard/out/users.html,sha256=YiVDRAE81pzuJ6NmVYIqVHYWopKkunn2d9dCBqvrRz0,1412
|
|
130
|
+
sky/dashboard/out/volumes.html,sha256=N_hKAT1SUPCZQSNybs2etU-06o6QxkepQTNEqgfIztA,1416
|
|
131
|
+
sky/dashboard/out/workspaces.html,sha256=7HNm-o2bB44r9yl3P9Y7S7VX2zoEyM4EqmTiTtkZotk,1422
|
|
132
|
+
sky/dashboard/out/_next/static/VvaUqYDvHOcHZRnvMBmax/_buildManifest.js,sha256=nhkFf4m1QrifP1px49lr0PSmeYWVtOW7tYuUAwVnnAo,2428
|
|
133
|
+
sky/dashboard/out/_next/static/VvaUqYDvHOcHZRnvMBmax/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
|
134
|
+
sky/dashboard/out/_next/static/chunks/1121-4ff1ec0dbc5792ab.js,sha256=1fadKcg_cxgxKqSPoMpMwePAvp31R1NdAUuMC3ZxKD4,8726
|
|
133
135
|
sky/dashboard/out/_next/static/chunks/1141-159df2d4c441a9d1.js,sha256=kdYh_Ek9hdib5emC7Iezojh3qASBnOIUHH5zX_ScR0U,17355
|
|
134
136
|
sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js,sha256=VJ6y-Z6Eg2T93hQIRfWAbjAkQ7nQhglmIaVbEpKSILY,38451
|
|
135
137
|
sky/dashboard/out/_next/static/chunks/1836-37fede578e2da5f8.js,sha256=2ibdKVUjO2N62T4dtfY0xsRFwG-IJh41sK450Dv0_48,10554
|
|
136
138
|
sky/dashboard/out/_next/static/chunks/2350.fab69e61bac57b23.js,sha256=TQCHO4AUL9MZo1e_8GOiL8y6vjQpj5tdXZ8oCKwM1LA,271
|
|
137
|
-
sky/dashboard/out/_next/static/chunks/3015-
|
|
139
|
+
sky/dashboard/out/_next/static/chunks/3015-88c7c8d69b0b6dba.js,sha256=vLsGnavwf14nRl-XTDt9f1vaktbXDWH6YiJfUEzvLYk,39337
|
|
138
140
|
sky/dashboard/out/_next/static/chunks/3294.03e02ae73455f48e.js,sha256=33v3Ywgcb0D2efUW5vg3z58jIGPoMjJYd5z2Mm5D144,43101
|
|
139
141
|
sky/dashboard/out/_next/static/chunks/3785.0fa442e16dd3f00e.js,sha256=4jP00x0jORTUAIGFUlQu_Ut-T07_OmfH46D5Nut_crQ,4438
|
|
140
142
|
sky/dashboard/out/_next/static/chunks/3850-ff4a9a69d978632b.js,sha256=XphBY9psNzmvGD28zgDunQEb-TX0_eOVaElmcuOjD1g,7455
|
|
@@ -156,7 +158,7 @@ sky/dashboard/out/_next/static/chunks/7325.b4bc99ce0892dcd5.js,sha256=5x42A-PEZA
|
|
|
156
158
|
sky/dashboard/out/_next/static/chunks/7411-b15471acd2cba716.js,sha256=Dnmr9e-yZQbnkjwzqIZU3aK-3u1Tqr8STF-ODYWLkaw,13304
|
|
157
159
|
sky/dashboard/out/_next/static/chunks/754-d0da8ab45f9509e9.js,sha256=R6UUmK1P1PfVx9zOU0jlBsVSk5ZchuPwWObAeVkkhU0,785694
|
|
158
160
|
sky/dashboard/out/_next/static/chunks/7669.1f5d9a402bf5cc42.js,sha256=FbppLXkHKPxzVKrJg15FwCoqLU18yn5jBgYgDkjqDGM,52179
|
|
159
|
-
sky/dashboard/out/_next/static/chunks/8969-
|
|
161
|
+
sky/dashboard/out/_next/static/chunks/8969-a39efbadcd9fde80.js,sha256=4HT_stPoASUeaJ7Ftg-ZuZ__5AP0IfCThDq8r6t0BDY,13298
|
|
160
162
|
sky/dashboard/out/_next/static/chunks/9025.c12318fb6a1a9093.js,sha256=1Txv8nMuBYtB0UoWdwmFbkA2iB85jgKB1EJJrE1ETDo,10605
|
|
161
163
|
sky/dashboard/out/_next/static/chunks/9037-472ee1222cb1e158.js,sha256=dM8Nxccil5uKAum598vcOVEfbnuoC41dSKyuxT3S3cs,18957
|
|
162
164
|
sky/dashboard/out/_next/static/chunks/fd9d1056-86323a29a8f7e46a.js,sha256=2lquiZSfbI-gX4j4TW4JSMLL_D5ShqwydgWpFyXrTy8,172834
|
|
@@ -164,7 +166,7 @@ sky/dashboard/out/_next/static/chunks/framework-cf60a09ccd051a10.js,sha256=_Qbam
|
|
|
164
166
|
sky/dashboard/out/_next/static/chunks/main-app-587214043926b3cc.js,sha256=t7glRfataAjNw691Wni-ZU4a3BsygRzPKoI8NOm-lsY,116244
|
|
165
167
|
sky/dashboard/out/_next/static/chunks/main-f15ccb73239a3bf1.js,sha256=jxOPLDVX3rkMc_jvGx2a-N2v6mvfOa8O6V0o-sLT0tI,110208
|
|
166
168
|
sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js,sha256=6QPOwdWeAVe8x-SsiDrm-Ga6u2DkqgG5SFqglrlyIgA,91381
|
|
167
|
-
sky/dashboard/out/_next/static/chunks/webpack-
|
|
169
|
+
sky/dashboard/out/_next/static/chunks/webpack-b2a3938c22b6647b.js,sha256=lad41ZPnWDm8MAZ6Baa84QU3iOIFu6ulB4299DQI_d4,4742
|
|
168
170
|
sky/dashboard/out/_next/static/chunks/pages/_app-ce361c6959bc2001.js,sha256=mllo4Yasw61zRtEO49uE_MrAutg9josSJShD0DNSjf0,95518
|
|
169
171
|
sky/dashboard/out/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js,sha256=vjERjtMAbVk-19LyPf1Jc-H6TMcrSznSz6brzNqbqf8,253
|
|
170
172
|
sky/dashboard/out/_next/static/chunks/pages/clusters-469814d711d63b1b.js,sha256=p8CQtv5n745WbV7QdyCapmglI2s_2UBB-f_KZE4RAZg,879
|
|
@@ -175,24 +177,22 @@ sky/dashboard/out/_next/static/chunks/pages/jobs-1f70d9faa564804f.js,sha256=Jru6
|
|
|
175
177
|
sky/dashboard/out/_next/static/chunks/pages/users-018bf31cda52e11b.js,sha256=mZuU1XexJy9ix9hAMnH0l2btGQHJPxohZg4K7NY8faA,838
|
|
176
178
|
sky/dashboard/out/_next/static/chunks/pages/volumes-739726d6b823f532.js,sha256=URJ4PMHh15XCXB6os2a7ymR3mG3MfTNrKyizYEhW2OE,836
|
|
177
179
|
sky/dashboard/out/_next/static/chunks/pages/workspaces-7528cc0ef8c522c5.js,sha256=y_qEXM9YPRja20D8IVLj8mgIEHQPQr2Le733bVrsXJw,863
|
|
178
|
-
sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-
|
|
179
|
-
sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-
|
|
180
|
+
sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-9525660179df3605.js,sha256=ij1iAF5yZv1ujW5rVTit7sx8bLN8kgypdR-us_4YLv8,19558
|
|
181
|
+
sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-1e9248ddbddcd122.js,sha256=ijuYtXDa5gL2aZcPObamRHV030uPT5pPwKrL9oOTsXQ,25929
|
|
180
182
|
sky/dashboard/out/_next/static/chunks/pages/infra/[context]-6563820e094f68ca.js,sha256=P3fWbG3DX-Q1SusyuaCuJILvs9suIxNsdo1SRAenZpc,847
|
|
181
183
|
sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-dd64309c3fe67ed2.js,sha256=pDCMgJauG-gMgWzCSTF3CBcc_WduZw75NhuyRBbm8bg,29203
|
|
182
184
|
sky/dashboard/out/_next/static/chunks/pages/jobs/pools/[pool]-07349868f7905d37.js,sha256=Q0LIzBnqZxcH4wL87way-kjcfK74u2K75ytBzz4W0PY,25590
|
|
183
185
|
sky/dashboard/out/_next/static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js,sha256=83s5N5CZwIaRcmYMfqn2we60n2VRmgFw6Tbx18b8-e0,762
|
|
184
186
|
sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-af76bb06dbb3954f.js,sha256=cGCpDszMI6ckUHVelwAh9ZVk1erfz_UXSLz9GCqGUAE,1495
|
|
185
187
|
sky/dashboard/out/_next/static/css/4614e06482d7309e.css,sha256=nk6GriyGVd1aGXrLd7BcMibnN4v0z-Q_mXGxrHFWqrE,56126
|
|
186
|
-
sky/dashboard/out/
|
|
187
|
-
sky/dashboard/out/
|
|
188
|
-
sky/dashboard/out/
|
|
189
|
-
sky/dashboard/out/
|
|
190
|
-
sky/dashboard/out/
|
|
191
|
-
sky/dashboard/out/jobs/[job].html,sha256=YeKXR6Q8V1arQarvlGPYEggfRKuaSa5kmiZkhFcpIBA,2304
|
|
192
|
-
sky/dashboard/out/jobs/pools/[pool].html,sha256=bB0Hjgnae_aI7-PDiQJAT-ZHvHovCwf2GtP5PrhIgzU,2142
|
|
188
|
+
sky/dashboard/out/clusters/[cluster].html,sha256=vMWkqwtoNc12xcvH1Nx7ysMHUj58JQwRTxDFDzvazyk,2936
|
|
189
|
+
sky/dashboard/out/clusters/[cluster]/[job].html,sha256=Oq-R0pV-3TNIAUZ2K72yH69PwpSEOooRqKbx3utEVwQ,2073
|
|
190
|
+
sky/dashboard/out/infra/[context].html,sha256=Xm-H0s_cjyfChCxSN7W1blW_7fvES5n-n5Dck6V2wMY,1436
|
|
191
|
+
sky/dashboard/out/jobs/[job].html,sha256=oIE4Hka05dC9fw8J7rsQ6jJiry7lqzHRhghsSDyjFA0,2304
|
|
192
|
+
sky/dashboard/out/jobs/pools/[pool].html,sha256=PgESiYITjomyMFG0rWj1R581IRAsbRJJBtmtKCgO9Lk,2142
|
|
193
193
|
sky/dashboard/out/videos/cursor-small.mp4,sha256=8tRdp1vjawOrXUar1cfjOc-nkaKmcwCPZx_LO0XlCvQ,203285
|
|
194
|
-
sky/dashboard/out/workspace/new.html,sha256=
|
|
195
|
-
sky/dashboard/out/workspaces/[name].html,sha256=
|
|
194
|
+
sky/dashboard/out/workspace/new.html,sha256=IjNk4cc53KLRm5WV94HaSsCyRy-a7tc-LChWGxmWJQQ,1428
|
|
195
|
+
sky/dashboard/out/workspaces/[name].html,sha256=a-OJSufbfpCKyfqqhtkrMufJ5YQ8ohgL6K5nmyaHbFE,2759
|
|
196
196
|
sky/data/__init__.py,sha256=Nhaf1NURisXpZuwWANa2IuCyppIuc720FRwqSE2oEwY,184
|
|
197
197
|
sky/data/data_transfer.py,sha256=N8b0CQebDuHieXjvEVwlYmK6DbQxUGG1RQJEyTbh3dU,12040
|
|
198
198
|
sky/data/data_utils.py,sha256=AjEA_JRjo9NBMlv-Lq5iV4lBED_YZ1VqBR9pG6fGVWE,35179
|
|
@@ -218,7 +218,7 @@ sky/logs/agent.py,sha256=8xbfGZq5EnOCaJarIHnrd_TEf5Km0dcr5mcJbdgxxhc,3512
|
|
|
218
218
|
sky/logs/aws.py,sha256=zMwFXltxhhrigPLWGLD4bIWs2XnsLvabgGI12MoS1nE,9938
|
|
219
219
|
sky/logs/gcp.py,sha256=eKVEcHO3FJRg_YTcE9omE8uAIF6AdBWWpkEPqWFAqXg,3857
|
|
220
220
|
sky/metrics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
221
|
-
sky/metrics/utils.py,sha256=
|
|
221
|
+
sky/metrics/utils.py,sha256=CKO4utSdYE--ND4PrM2WJUIoA33HT0jDe7-lqVeSrZA,12860
|
|
222
222
|
sky/provision/__init__.py,sha256=nPs7xjsP-phhvkmEjvx7KEE3FeoYrjalZSr_88yDYyk,8938
|
|
223
223
|
sky/provision/common.py,sha256=LdjM9SL9NDtsARom12tVv_WoUNL3PTlU5RoLfeWGGgM,10807
|
|
224
224
|
sky/provision/constants.py,sha256=oc_XDUkcoLQ_lwDy5yMeMSWviKS0j0s1c0pjlvpNeWY,800
|
|
@@ -348,7 +348,7 @@ sky/schemas/generated/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
|
|
|
348
348
|
sky/schemas/generated/autostopv1_pb2.py,sha256=3w4k0woHFxK0qXvYGljLtqpp3IB-oGV15ouKWCUI3l4,2464
|
|
349
349
|
sky/schemas/generated/autostopv1_pb2.pyi,sha256=1slXiAfgnh-Ds-yHJglvhGddatmlOPfh3AAOCheipCk,1772
|
|
350
350
|
sky/schemas/generated/autostopv1_pb2_grpc.py,sha256=sUoHZNUNjxpsiYzJhSchC7p-uvigYuh8DwhhyhgfPcE,5921
|
|
351
|
-
sky/schemas/generated/jobsv1_pb2.py,sha256=
|
|
351
|
+
sky/schemas/generated/jobsv1_pb2.py,sha256=GZ4gVESMl2qxihQJLUZNTlTS6AjC1n4031z1-DwLVG0,10092
|
|
352
352
|
sky/schemas/generated/jobsv1_pb2.pyi,sha256=qNQlJ2NAR1V6HrtLO8bZWc5PhEcUrbVZri4VuoZm2es,10675
|
|
353
353
|
sky/schemas/generated/jobsv1_pb2_grpc.py,sha256=1QPd4wx09Hxjot3VpO3TPEbzouMA_cLG4cc-gZFYSSA,22959
|
|
354
354
|
sky/schemas/generated/servev1_pb2.py,sha256=1mNJoOB8N-c26WJCRvtk5Q4bkLYGjSKhVAo5ywufZbs,5263
|
|
@@ -380,9 +380,9 @@ sky/server/common.py,sha256=V3n_-8im0vpnYHr4AJRye_yiYxsu8xedYcs2xMPUPWw,40191
|
|
|
380
380
|
sky/server/config.py,sha256=Ivim-8YmFzNJpOub0QrEMfhK88hI3jap2vuEpPg4vNM,11049
|
|
381
381
|
sky/server/constants.py,sha256=1kIHuD-8T6KMNFpLgt4Urx9qVUvgdzmmlLfc4kmdQCM,2456
|
|
382
382
|
sky/server/daemons.py,sha256=THVc5GgF4jCqhhanNVH4iBOUPU5TKlCi7VSWeQyqVTU,9131
|
|
383
|
-
sky/server/metrics.py,sha256=
|
|
383
|
+
sky/server/metrics.py,sha256=Aa7ZIPGpK3IZXicliX32_EIjY6ejcR_kr8C1p1yvuC8,5696
|
|
384
384
|
sky/server/rest.py,sha256=6Qcn6fjypP3j9UHdKRgvt2-PU1LKz2VU2aVQEA1D6EI,14354
|
|
385
|
-
sky/server/server.py,sha256=
|
|
385
|
+
sky/server/server.py,sha256=tO7v41L0MhQmqrT05KD0ODIbZ2W9BuZ3V6a3SQD3fGs,82562
|
|
386
386
|
sky/server/state.py,sha256=YbVOMJ1JipQQv17gLIGyiGN7MKfnP83qlUa5MB1z0Yk,747
|
|
387
387
|
sky/server/stream_utils.py,sha256=RrxRjZR0623A_ITjSMgUmDlXcSkT8NnNjb4f24OLiAE,9613
|
|
388
388
|
sky/server/uvicorn.py,sha256=lJROnpJqoZr59zGwYa_pUniV7rEwmZn0PV4t-YYY-yo,11832
|
|
@@ -394,17 +394,17 @@ sky/server/html/log.html,sha256=TSGZktua9Ysl_ysg3w60rjxAxhH61AJnsYDHdtqrjmI,6929
|
|
|
394
394
|
sky/server/html/token_page.html,sha256=eUndS5u1foL9vaWGPRTLMt7lCzD1g0wYJ2v_EeeFzlc,7046
|
|
395
395
|
sky/server/requests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
396
396
|
sky/server/requests/event_loop.py,sha256=OhpPbuce65bbjpGRlcJa78AVnYSm08SzFKt70ypCUuQ,1211
|
|
397
|
-
sky/server/requests/executor.py,sha256=
|
|
398
|
-
sky/server/requests/payloads.py,sha256=
|
|
397
|
+
sky/server/requests/executor.py,sha256=amcxgJKg6_LrKhpkf9FIRaMYHhyYlFTd_BVg7aD8gKY,31288
|
|
398
|
+
sky/server/requests/payloads.py,sha256=4c188kudguRYnifUdrG7sYPZTkBH9aelFcaXdN3UyiY,27292
|
|
399
399
|
sky/server/requests/preconditions.py,sha256=KxTAoYqpJU96Ot36NHtRq3PC3f_BXk_cHI0b2eA8U6A,7323
|
|
400
400
|
sky/server/requests/process.py,sha256=UpJp5rZizNMFRCNRtudFSjbcJhFarFbtAGDWI9x_ZyE,13197
|
|
401
|
-
sky/server/requests/requests.py,sha256=
|
|
401
|
+
sky/server/requests/requests.py,sha256=wqiAiH4miFz3C2ZC5tDK-YQgAVMnpbE0wBiKx0nI39c,30146
|
|
402
402
|
sky/server/requests/queues/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
403
403
|
sky/server/requests/queues/local_queue.py,sha256=X6VkBiUmgd_kfqIK1hCtMWG1b8GiZbY70TBiBR6c6GY,416
|
|
404
404
|
sky/server/requests/queues/mp_queue.py,sha256=jDqP4Jd28U3ibSFyMR1DF9I2OWZrPZqFJrG5S6RFpyw,3403
|
|
405
405
|
sky/server/requests/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
406
406
|
sky/server/requests/serializers/decoders.py,sha256=3SSfn1S1H0zEwncMRw3D8pfyqz_sWkWweBqnX-8Lr3I,7652
|
|
407
|
-
sky/server/requests/serializers/encoders.py,sha256=
|
|
407
|
+
sky/server/requests/serializers/encoders.py,sha256=nAiFssF3UD6dt0LdiGVpvpod90HmnyXZVZ2fO-UE8iA,7900
|
|
408
408
|
sky/setup_files/MANIFEST.in,sha256=4gbgHHwSdP6BbMJv5XOt-2K6wUVWF_T9CGsdESvh918,776
|
|
409
409
|
sky/setup_files/alembic.ini,sha256=854_UKvCaFmZ8vI16tSHbGgP9IMFQ42Td6c9Zmn2Oxs,5079
|
|
410
410
|
sky/setup_files/dependencies.py,sha256=-ItE3MpA_0SoKYcvD8D-DLLcNnNjoQBC4tY4V136Ay8,8286
|
|
@@ -414,9 +414,9 @@ sky/skylet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
414
414
|
sky/skylet/attempt_skylet.py,sha256=BbnCgMDGc1wxZx6Olp7ezhsXC0E1aYhmfug-9NrJ00g,2137
|
|
415
415
|
sky/skylet/autostop_lib.py,sha256=2eab980ckQ5dA2DFAJlI5bAJ6EI7YI-JSlzFoTA9XwU,9698
|
|
416
416
|
sky/skylet/configs.py,sha256=nNBnpuzoU696FbC3Nv0qKVSDuTw4GAbr7eCcg0_Sldo,2135
|
|
417
|
-
sky/skylet/constants.py,sha256=
|
|
417
|
+
sky/skylet/constants.py,sha256=9ji_rgzsj2gyUsx2R6RDZSQ3y1mM7mMBvZiTjuU2cog,24663
|
|
418
418
|
sky/skylet/events.py,sha256=2BX2fr-vLpu2kAP3D4W6DmLPVa0jmZAotZ7g_cTIwqg,13558
|
|
419
|
-
sky/skylet/job_lib.py,sha256
|
|
419
|
+
sky/skylet/job_lib.py,sha256=-qzv1nCGrrN5zB8ZueBFlLDOlmQtP7DRuCu62GrJQus,54232
|
|
420
420
|
sky/skylet/log_lib.py,sha256=EC-Vmnz86Uz5SLpiz9p14J3owBaF-GbFkyixQ3KfPqg,23775
|
|
421
421
|
sky/skylet/log_lib.pyi,sha256=OI4izel66u3Rr3H6OFXRIJfmM8HJD30VPpdlfwqM3IU,4762
|
|
422
422
|
sky/skylet/services.py,sha256=CKtdnWDbb4eOKVGIZ7MvSJqR13YaJoP2kvBHsN64GDA,16530
|
|
@@ -507,7 +507,7 @@ sky/utils/git_clone.sh,sha256=hXOz7i1MCYl2IwMdKnFYhinhh8Jaf5a1Qwd65cePQYc,17790
|
|
|
507
507
|
sky/utils/infra_utils.py,sha256=WkkB4Hj6CX-3eV029fPYqydNVyFZ8ZwRAVA_GCLJ9QU,6981
|
|
508
508
|
sky/utils/kubernetes_enums.py,sha256=t0OIohiphgyo78RG4MUg0gOjRea5l6ZMRXlS34J-NaA,1412
|
|
509
509
|
sky/utils/lock_events.py,sha256=qX4-Nlzm4S9bTD4e2eg2Vgn4AOlTjy7rhzLS_0B1IdA,2827
|
|
510
|
-
sky/utils/locks.py,sha256=
|
|
510
|
+
sky/utils/locks.py,sha256=qGxjEJXOyobhiHkeEn1LEFM2mBDhkWUhleLvWMoYb2A,12144
|
|
511
511
|
sky/utils/log_utils.py,sha256=RB5n58CAWmVepd_RAf-mjL2EViBFbtkPtSB5jJT6pLY,29684
|
|
512
512
|
sky/utils/message_utils.py,sha256=zi2Z7PEX6Xq_zvho-aEZe_J7UvpKOLdVDdGAcipRQPU,2662
|
|
513
513
|
sky/utils/perf_utils.py,sha256=HxmTmVQc5DSfqJwISPxdVLWmUxNZHbibJg1kKVI-1Cg,700
|
|
@@ -562,9 +562,9 @@ sky/workspaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
562
562
|
sky/workspaces/core.py,sha256=kRrdh-8MhX1953pML1B_DoStnDuNrsmHcZlnWoAxVo0,27218
|
|
563
563
|
sky/workspaces/server.py,sha256=Box45DS54xXGHy7I3tGKGy-JP0a8G_z6IhfvGlEXtsA,3439
|
|
564
564
|
sky/workspaces/utils.py,sha256=IIAiFoS6sdb2t0X5YoX9AietpTanZUQNTK8cePun-sY,2143
|
|
565
|
-
skypilot_nightly-1.0.0.
|
|
566
|
-
skypilot_nightly-1.0.0.
|
|
567
|
-
skypilot_nightly-1.0.0.
|
|
568
|
-
skypilot_nightly-1.0.0.
|
|
569
|
-
skypilot_nightly-1.0.0.
|
|
570
|
-
skypilot_nightly-1.0.0.
|
|
565
|
+
skypilot_nightly-1.0.0.dev20250919.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
|
|
566
|
+
skypilot_nightly-1.0.0.dev20250919.dist-info/METADATA,sha256=4we6fq-E56Mu-nGaMAhldjIkzlgJoLnTjc-POxGHkvU,20085
|
|
567
|
+
skypilot_nightly-1.0.0.dev20250919.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
568
|
+
skypilot_nightly-1.0.0.dev20250919.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
|
|
569
|
+
skypilot_nightly-1.0.0.dev20250919.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
|
|
570
|
+
skypilot_nightly-1.0.0.dev20250919.dist-info/RECORD,,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1121],{50326:function(e,t,a){a.d(t,{$N:function(){return _},Be:function(){return g},Vq:function(){return c},cN:function(){return m},cZ:function(){return d},fK:function(){return f}});var r=a(85893),s=a(67294),o=a(6327),n=a(32350),l=a(43767);let c=o.fC;o.xz;let u=o.h_;o.x8;let i=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.aV,{ref:t,className:(0,n.cn)("fixed inset-0 z-50 bg-black/50 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...s})});i.displayName=o.aV.displayName;let d=s.forwardRef((e,t)=>{let{className:a,children:s,...c}=e;return(0,r.jsxs)(u,{children:[(0,r.jsx)(i,{}),(0,r.jsxs)(o.VY,{ref:t,className:(0,n.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-gray-200 bg-white p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",a),...c,children:[s,(0,r.jsxs)(o.x8,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-gray-400 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-gray-100 data-[state=open]:text-gray-500",children:[(0,r.jsx)(l.Z,{className:"h-4 w-4"}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});d.displayName=o.VY.displayName;let f=e=>{let{className:t,...a}=e;return(0,r.jsx)("div",{className:(0,n.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...a})};f.displayName="DialogHeader";let m=e=>{let{className:t,...a}=e;return(0,r.jsx)("div",{className:(0,n.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...a})};m.displayName="DialogFooter";let _=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.Dx,{ref:t,className:(0,n.cn)("text-lg font-semibold leading-none tracking-tight",a),...s})});_.displayName=o.Dx.displayName;let g=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.dk,{ref:t,className:(0,n.cn)("text-sm text-gray-500",a),...s})});g.displayName=o.dk.displayName},23266:function(e,t,a){a.d(t,{GH:function(){return f},QL:function(){return _},Sl:function(){return d},getClusters:function(){return u},uR:function(){return i}});var r=a(67294),s=a(15821),o=a(47145),n=a(93225),l=a(6378);let c={UP:"RUNNING",STOPPED:"STOPPED",INIT:"LAUNCHING",null:"TERMINATED"};async function u(){let{clusterNames:e=null}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{return(await o.x.fetch("/status",{cluster_names:e,all_users:!0,include_credentials:!1})).map(e=>{let t="",a=t=e.zone?e.zone:e.region;return t&&t.length>25&&(t=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:15;if(!e||e.length<=t)return e;if(t<=3)return"...";let a=Math.floor((t-3)/2),r=a+(t-3)%2;return 0===a?e.substring(0,r)+"...":e.substring(0,r)+"..."+e.substring(e.length-a)}(t,25)),{status:c[e.status],cluster:e.name,user:e.user_name,user_hash:e.user_hash,cluster_hash:e.cluster_hash,cloud:e.cloud,region:e.region,infra:t?e.cloud+" ("+t+")":e.cloud,full_infra:a?"".concat(e.cloud," (").concat(a,")"):e.cloud,cpus:e.cpus,mem:e.memory,gpus:e.accelerators,resources_str:e.resources_str,resources_str_full:e.resources_str_full,time:new Date(1e3*e.launched_at),num_nodes:e.nodes,workspace:e.workspace,autostop:e.autostop,last_event:e.last_event,to_down:e.to_down,jobs:[],command:e.last_creation_command||e.last_use,task_yaml:e.last_creation_yaml||"{}",events:[{time:new Date(1e3*e.launched_at),event:"Cluster created."}]}})}catch(e){return console.error("Error fetching clusters:",e),[]}}async function i(){try{let e=await o.x.fetch("/cost_report",{days:30});console.log("Raw cluster history data:",e);let t=e.map(e=>{let t="Unknown";e.cloud?t=e.cloud:e.resources&&e.resources.cloud&&(t=e.resources.cloud);let a=e.user_name||"-";return{status:e.status?c[e.status]:"TERMINATED",cluster:e.name,user:a,user_hash:e.user_hash,cluster_hash:e.cluster_hash,cloud:t,region:"",infra:t,full_infra:t,resources_str:e.resources_str,resources_str_full:e.resources_str_full,time:e.launched_at?new Date(1e3*e.launched_at):null,num_nodes:e.num_nodes||1,duration:e.duration,total_cost:e.total_cost,workspace:e.workspace||"default",autostop:-1,last_event:e.last_event,to_down:!1,usage_intervals:e.usage_intervals,command:e.last_creation_command||"",task_yaml:e.last_creation_yaml||"{}",events:[{time:e.launched_at?new Date(1e3*e.launched_at):new Date,event:"Cluster created."}]}});return console.log("Processed cluster history data:",t),t}catch(e){return console.error("Error fetching cluster history:",e),[]}}async function d(e){let{clusterName:t,jobId:a,onNewLog:r,workspace:n}=e;try{await o.x.stream("/logs",{follow:!1,cluster_name:t,job_id:a,tail:1e4,override_skypilot_config:{active_workspace:n||"default"}},r)}catch(e){console.error("Error in streamClusterJobLogs:",e),(0,s.C)("Error in streamClusterJobLogs: ".concat(e.message),"error")}}async function f(e){let{clusterName:t,jobIds:a=null,workspace:r}=e;try{let e=await o.x.fetch("/download_logs",{cluster_name:t,job_ids:a?a.map(String):null,override_skypilot_config:{active_workspace:r||"default"}}),l=Object.values(e||{});if(!l.length){(0,s.C)("No logs found to download.","warning");return}let c=window.location.origin,u="".concat(c).concat(n.f4,"/download"),i=await fetch("".concat(u,"?relative=items"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({folder_paths:l})});if(!i.ok){let e=await i.text();throw Error("Download failed: ".concat(i.status," ").concat(e))}let d=await i.blob(),f=window.URL.createObjectURL(d),m=document.createElement("a"),_=new Date().toISOString().replace(/[:.]/g,"-"),g=a&&1===a.length?"job-".concat(a[0]):"jobs";m.href=f,m.download="".concat(t,"-").concat(g,"-logs-").concat(_,".zip"),document.body.appendChild(m),m.click(),m.remove(),window.URL.revokeObjectURL(f)}catch(e){console.error("Error downloading logs:",e),(0,s.C)("Error downloading logs: ".concat(e.message),"error")}}async function m(e){let{clusterName:t,workspace:a}=e;try{return(await o.x.fetch("/queue",{cluster_name:t,all_users:!0,override_skypilot_config:{active_workspace:a}})).map(e=>{var r;let s=e.end_at?e.end_at:Date.now()/1e3,o=0,n=0;return e.submitted_at&&(o=s-e.submitted_at),e.start_at&&(n=s-e.start_at),{id:e.job_id,status:e.status,job:e.job_name,user:e.username,user_hash:e.user_hash,gpus:e.accelerators||{},submitted_at:e.submitted_at?new Date(1e3*e.submitted_at):null,resources:e.resources,cluster:t,total_duration:o,job_duration:n,infra:"",logs:"",workspace:a||"default",git_commit:(null===(r=e.metadata)||void 0===r?void 0:r.git_commit)||"-"}})}catch(e){return console.error("Error fetching cluster jobs:",e),[]}}function _(e){let{cluster:t,job:a=null}=e,[s,o]=(0,r.useState)(null),[n,c]=(0,r.useState)(null),[i,d]=(0,r.useState)(!0),[f,_]=(0,r.useState)(!0),g=(0,r.useCallback)(async()=>{if(t)try{d(!0);let e=await l.default.get(u,[{clusterNames:[t]}]);return o(e[0]),e[0]}catch(e){console.error("Error fetching cluster data:",e)}finally{d(!1)}return null},[t]),h=(0,r.useCallback)(async e=>{if(t)try{_(!0);let a=await l.default.get(m,[{clusterName:t,workspace:e||"default"}]);c(a)}catch(e){console.error("Error fetching cluster job data:",e)}finally{_(!1)}},[t]),p=(0,r.useCallback)(async()=>{l.default.invalidate(u,[{clusterNames:[t]}]);let e=await g();e&&(l.default.invalidate(m,[{clusterName:t,workspace:e.workspace||"default"}]),await h(e.workspace))},[g,h,t]),w=(0,r.useCallback)(async()=>{s&&(l.default.invalidate(m,[{clusterName:t,workspace:s.workspace||"default"}]),await h(s.workspace))},[h,s,t]);return(0,r.useEffect)(()=>{(async()=>{let e=await g();e&&h(e.workspace)})()},[t,a,g,h]),{clusterData:s,clusterJobData:n,loading:i,clusterDetailsLoading:i,clusterJobsLoading:f,refreshData:p,refreshClusterJobsOnly:w}}},53081:function(e,t,a){a.d(t,{R:function(){return s}}),a(23266),a(68969);var r=a(47145);async function s(){try{let e=await r.x.get("/users");if(!e.ok)throw Error("HTTP error! status: ".concat(e.status));return(await e.json()).map(e=>({userId:e.id,username:e.name,role:e.role,created_at:e.created_at}))||[]}catch(e){return console.error("Failed to fetch users:",e),[]}}}}]);
|