dstack 0.19.9__py3-none-any.whl → 0.19.10__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 dstack might be problematic. Click here for more details.

Files changed (29) hide show
  1. dstack/_internal/cli/commands/config.py +1 -1
  2. dstack/_internal/cli/commands/project.py +161 -0
  3. dstack/_internal/cli/commands/ps.py +9 -2
  4. dstack/_internal/cli/main.py +2 -0
  5. dstack/_internal/core/backends/azure/compute.py +5 -2
  6. dstack/_internal/core/models/configurations.py +19 -3
  7. dstack/_internal/server/background/tasks/process_metrics.py +23 -21
  8. dstack/_internal/server/background/tasks/process_submitted_jobs.py +21 -12
  9. dstack/_internal/server/migrations/versions/bca2fdf130bf_add_runmodel_priority.py +34 -0
  10. dstack/_internal/server/models.py +1 -0
  11. dstack/_internal/server/routers/repos.py +8 -4
  12. dstack/_internal/server/services/instances.py +6 -2
  13. dstack/_internal/server/services/jobs/configurators/base.py +3 -3
  14. dstack/_internal/server/services/runs.py +31 -18
  15. dstack/_internal/server/settings.py +1 -0
  16. dstack/_internal/server/statics/index.html +1 -1
  17. dstack/_internal/server/statics/{main-b4f65323f5df007e1664.js → main-b4803049eac16aea9a49.js} +4 -4
  18. dstack/_internal/server/statics/{main-b4f65323f5df007e1664.js.map → main-b4803049eac16aea9a49.js.map} +1 -1
  19. dstack/_internal/server/testing/common.py +2 -0
  20. dstack/_internal/server/utils/routers.py +3 -6
  21. dstack/_internal/settings.py +4 -0
  22. dstack/api/_public/runs.py +6 -3
  23. dstack/api/server/_runs.py +2 -0
  24. dstack/version.py +1 -1
  25. {dstack-0.19.9.dist-info → dstack-0.19.10.dist-info}/METADATA +11 -6
  26. {dstack-0.19.9.dist-info → dstack-0.19.10.dist-info}/RECORD +29 -27
  27. {dstack-0.19.9.dist-info → dstack-0.19.10.dist-info}/WHEEL +0 -0
  28. {dstack-0.19.9.dist-info → dstack-0.19.10.dist-info}/entry_points.txt +0 -0
  29. {dstack-0.19.9.dist-info → dstack-0.19.10.dist-info}/licenses/LICENSE.md +0 -0
@@ -262,6 +262,7 @@ async def create_run(
262
262
  run_spec: Optional[RunSpec] = None,
263
263
  run_id: Optional[UUID] = None,
264
264
  deleted: bool = False,
265
+ priority: int = 0,
265
266
  ) -> RunModel:
266
267
  if run_spec is None:
267
268
  run_spec = get_run_spec(
@@ -282,6 +283,7 @@ async def create_run(
282
283
  run_spec=run_spec.json(),
283
284
  last_processed_at=submitted_at,
284
285
  jobs=[],
286
+ priority=priority,
285
287
  )
286
288
  session.add(run)
287
289
  await session.commit()
@@ -93,13 +93,10 @@ def get_server_client_error_details(error: ServerClientError) -> List[Dict]:
93
93
  return details
94
94
 
95
95
 
96
- def request_size_exceeded(request: Request, limit: int) -> bool:
96
+ def get_request_size(request: Request) -> int:
97
97
  if "content-length" not in request.headers:
98
- return True
99
- content_length = int(request.headers["content-length"])
100
- if content_length > limit:
101
- return True
102
- return False
98
+ return 0
99
+ return int(request.headers["content-length"])
103
100
 
104
101
 
105
102
  def check_client_server_compatibility(
@@ -12,6 +12,10 @@ DSTACK_RELEASE = os.getenv("DSTACK_RELEASE") is not None or version.__is_release
12
12
  DSTACK_USE_LATEST_FROM_BRANCH = os.getenv("DSTACK_USE_LATEST_FROM_BRANCH") is not None
13
13
 
14
14
 
15
+ DSTACK_BASE_IMAGE = os.getenv("DSTACK_BASE_IMAGE", "dstackai/base")
16
+ DSTACK_BASE_IMAGE_VERSION = os.getenv("DSTACK_BASE_IMAGE_VERSION", version.base_image)
17
+
18
+
15
19
  class FeatureFlags:
16
20
  """
17
21
  dstack feature flags. Feature flags are temporary and can be used when developing
@@ -691,29 +691,32 @@ class RunCollection:
691
691
  logger.warning("The exec_plan() method is deprecated in favor of apply_plan().")
692
692
  return self.apply_plan(run_plan=run_plan, repo=repo, reserve_ports=reserve_ports)
693
693
 
694
- def list(self, all: bool = False) -> List[Run]:
694
+ def list(self, all: bool = False, limit: Optional[int] = None) -> List[Run]:
695
695
  """
696
696
  List runs.
697
697
 
698
698
  Args:
699
699
  all: Show all runs (active and finished) if `True`.
700
+ limit: Limit the number of runs to return. Must be less than 100.
700
701
 
701
702
  Returns:
702
703
  List of runs.
703
704
  """
704
705
  # Return only one page of latest runs (<=100). Returning all the pages may be costly.
705
706
  # TODO: Consider introducing `since` filter with a reasonable default.
706
- only_active = not all
707
+ only_active = not all and limit is None
707
708
  runs = self._api_client.runs.list(
708
709
  project_name=self._project,
709
710
  repo_id=None,
710
711
  only_active=only_active,
712
+ limit=limit or 100,
711
713
  )
712
714
  if only_active and len(runs) == 0:
713
715
  runs = self._api_client.runs.list(
714
716
  project_name=self._project,
715
717
  repo_id=None,
716
- )[:1]
718
+ limit=1,
719
+ )
717
720
  return [self._model_to_run(run) for run in runs]
718
721
 
719
722
  def get(self, run_name: str) -> Optional[Run]:
@@ -186,6 +186,8 @@ def _get_run_spec_excludes(run_spec: RunSpec) -> Optional[Dict]:
186
186
  configuration_excludes["rate_limits"] = True
187
187
  if configuration.shell is None:
188
188
  configuration_excludes["shell"] = True
189
+ if configuration.priority is None:
190
+ configuration_excludes["priority"] = True
189
191
 
190
192
  if configuration_excludes:
191
193
  spec_excludes["configuration"] = configuration_excludes
dstack/version.py CHANGED
@@ -1,3 +1,3 @@
1
- __version__ = "0.19.9"
1
+ __version__ = "0.19.10"
2
2
  __is_release__ = True
3
3
  base_image = "0.7"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dstack
3
- Version: 0.19.9
3
+ Version: 0.19.10
4
4
  Summary: dstack is an open-source orchestration engine for running AI workloads on any cloud or on-premises.
5
5
  Project-URL: Homepage, https://dstack.ai
6
6
  Project-URL: Source, https://github.com/dstackai/dstack
@@ -21,7 +21,8 @@ Requires-Dist: cryptography
21
21
  Requires-Dist: cursor
22
22
  Requires-Dist: filelock
23
23
  Requires-Dist: gitpython
24
- Requires-Dist: gpuhunt==0.1.5
24
+ Requires-Dist: gpuhunt==0.1.6
25
+ Requires-Dist: humanize>=4.12.3
25
26
  Requires-Dist: jsonschema
26
27
  Requires-Dist: packaging
27
28
  Requires-Dist: paramiko>=3.2.0
@@ -56,6 +57,7 @@ Requires-Dist: azure-mgmt-subscription>=3.1.1; extra == 'all'
56
57
  Requires-Dist: backports-entry-points-selectable; extra == 'all'
57
58
  Requires-Dist: boto3>=1.38.13; extra == 'all'
58
59
  Requires-Dist: botocore; extra == 'all'
60
+ Requires-Dist: cryptography>=44.0.3; extra == 'all'
59
61
  Requires-Dist: datacrunch; extra == 'all'
60
62
  Requires-Dist: docker>=6.0.0; extra == 'all'
61
63
  Requires-Dist: fastapi; extra == 'all'
@@ -71,8 +73,9 @@ Requires-Dist: httpx; extra == 'all'
71
73
  Requires-Dist: jinja2; extra == 'all'
72
74
  Requires-Dist: kubernetes; extra == 'all'
73
75
  Requires-Dist: nebius<0.3,>=0.2.19; (python_version >= '3.10') and extra == 'all'
74
- Requires-Dist: oci; extra == 'all'
76
+ Requires-Dist: oci>=2.150.0; extra == 'all'
75
77
  Requires-Dist: prometheus-client; extra == 'all'
78
+ Requires-Dist: pyopenssl>=23.2.0; extra == 'all'
76
79
  Requires-Dist: python-dxf==12.1.0; extra == 'all'
77
80
  Requires-Dist: python-json-logger>=3.1.0; extra == 'all'
78
81
  Requires-Dist: sentry-sdk[fastapi]; extra == 'all'
@@ -280,13 +283,15 @@ Requires-Dist: alembic>=1.10.2; extra == 'oci'
280
283
  Requires-Dist: apscheduler<4; extra == 'oci'
281
284
  Requires-Dist: asyncpg; extra == 'oci'
282
285
  Requires-Dist: backports-entry-points-selectable; extra == 'oci'
286
+ Requires-Dist: cryptography>=44.0.3; extra == 'oci'
283
287
  Requires-Dist: docker>=6.0.0; extra == 'oci'
284
288
  Requires-Dist: fastapi; extra == 'oci'
285
289
  Requires-Dist: grpcio>=1.50; extra == 'oci'
286
290
  Requires-Dist: httpx; extra == 'oci'
287
291
  Requires-Dist: jinja2; extra == 'oci'
288
- Requires-Dist: oci; extra == 'oci'
292
+ Requires-Dist: oci>=2.150.0; extra == 'oci'
289
293
  Requires-Dist: prometheus-client; extra == 'oci'
294
+ Requires-Dist: pyopenssl>=23.2.0; extra == 'oci'
290
295
  Requires-Dist: python-dxf==12.1.0; extra == 'oci'
291
296
  Requires-Dist: python-json-logger>=3.1.0; extra == 'oci'
292
297
  Requires-Dist: sentry-sdk[fastapi]; extra == 'oci'
@@ -423,9 +428,9 @@ To point the CLI to the `dstack` server, configure it
423
428
  with the server address, user token, and project name:
424
429
 
425
430
  ```shell
426
- $ dstack config \
431
+ $ dstack project add \
432
+ --name main \
427
433
  --url http://127.0.0.1:3000 \
428
- --project main \
429
434
  --token bbae0f28-d3dd-4820-bf61-8f4bb40815da
430
435
 
431
436
  Configuration is updated at ~/.dstack/config.yml
@@ -1,15 +1,15 @@
1
1
  dstack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- dstack/version.py,sha256=lJgn5pYWtoxN-mAxtEnIXX2nGXSQrLvGxKsa1F9aNgM,64
2
+ dstack/version.py,sha256=1w-1PVkazoEpWhJboy2UsLiK2Ezuk8Le2ZyTHPXYf7E,65
3
3
  dstack/_internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  dstack/_internal/compat.py,sha256=bF9U9fTMfL8UVhCouedoUSTYFl7UAOiU0WXrnRoByxw,40
5
- dstack/_internal/settings.py,sha256=otvcNT0X5UnGZdoNIWNFZBohQRzLme9Zc6oiBzc1BEk,796
5
+ dstack/_internal/settings.py,sha256=GOqfcLEONWC1hGU36IYPuOhJXP_qC3Y6d2SQge_NdpY,953
6
6
  dstack/_internal/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- dstack/_internal/cli/main.py,sha256=WMYyoYKJbuuVruFgW5gtnmheRZwy51YdvSKMgRBbAQg,3693
7
+ dstack/_internal/cli/main.py,sha256=cuOcaRxeWxO7zYM9dFRe5uc6U_RxEFjzS5sd4-8KkFA,3798
8
8
  dstack/_internal/cli/commands/__init__.py,sha256=e8EjD8Ej7Q3_APlxAN7NBwY7dGnW-DR91nH_RgcjBXg,2023
9
9
  dstack/_internal/cli/commands/apply.py,sha256=dZH2B3Yr-lB7hs-QeUnvX0FV0Yk2x19dEO5uSFo4098,4909
10
10
  dstack/_internal/cli/commands/attach.py,sha256=3by0imi2Wj2vUjvanPw97XUvDYxSj01YXYrrjrjNseE,5070
11
11
  dstack/_internal/cli/commands/completion.py,sha256=2gDBYNb9u1JtuvZaAzqEOy0_ZatBvwn0Aq10j138xnA,546
12
- dstack/_internal/cli/commands/config.py,sha256=wc4haqU2-a65DcHdIH0gLyz3ViZ05dR7RXTlPm92G9g,3113
12
+ dstack/_internal/cli/commands/config.py,sha256=cpNCVCklQDW4vcdD9ovtJs6bcDIM1dULOZ6PKx3D39o,3148
13
13
  dstack/_internal/cli/commands/delete.py,sha256=agFBwJg8JXy1xp1UplRFLEPbix1bKvt6XvSBKpSPwYI,1418
14
14
  dstack/_internal/cli/commands/fleet.py,sha256=J0Yi5CAYvIQF_NC4ZBsDYGc3grTOtvaF7sVcobd19Go,4028
15
15
  dstack/_internal/cli/commands/gateway.py,sha256=DcD6P_MvXbSL9aXkLX9hgGYSAzARjgY6RSbrCMzdNcg,6075
@@ -17,7 +17,8 @@ dstack/_internal/cli/commands/init.py,sha256=bLhSlViNWtjflB6xNq_PuCR2o2A06h222lu
17
17
  dstack/_internal/cli/commands/logs.py,sha256=o8ehPAKM12Xn9thg2jjnYdr7_wKqF-00ziVry8IVVwE,1528
18
18
  dstack/_internal/cli/commands/metrics.py,sha256=nxdTcyCvHNev7Mn19zGQ7vTHUBGY6hyvPtY6Z731SOU,5373
19
19
  dstack/_internal/cli/commands/offer.py,sha256=rf10T9ohEC77GmZexdqF_RBCQkLYzVSAwTzZlxukNYM,4085
20
- dstack/_internal/cli/commands/ps.py,sha256=WUQKL-1HcoM-oFF_WX4zplO8yKGMWfVbsivg0L7LP2w,1666
20
+ dstack/_internal/cli/commands/project.py,sha256=V8gJwQWQGvGKQJPUyce_M7Ij_B7bOxYzo2IQgkLLHFE,6151
21
+ dstack/_internal/cli/commands/ps.py,sha256=5RU4mcL4-FT4PcXktfKb4htCOPqia7mIuVGgfK7x9lY,1894
21
22
  dstack/_internal/cli/commands/server.py,sha256=4K0tp_tIUStCEMpWrUkRLwe27IgAt99RPpk2H1AWnXk,2817
22
23
  dstack/_internal/cli/commands/stats.py,sha256=_CiJPQZuKHUzA1x7CHJP-leth3MmqiQ2-jwojq6G-e8,390
23
24
  dstack/_internal/cli/commands/stop.py,sha256=i7TreejSemrQcL7C37La22KkwM98O09IDMRNt8cw1NI,1000
@@ -57,7 +58,7 @@ dstack/_internal/core/backends/aws/resources.py,sha256=Wht_USG8ps9HQBhAYfxDxjaob
57
58
  dstack/_internal/core/backends/azure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
59
  dstack/_internal/core/backends/azure/auth.py,sha256=CHp3QRNx3tIwkhyOY_l8WU-ElY4Pxhavoy9JSdwr15g,1259
59
60
  dstack/_internal/core/backends/azure/backend.py,sha256=XySTor8v_tLkZctDBryrFHrbVzQgNf_RUPkXQYplvwM,746
60
- dstack/_internal/core/backends/azure/compute.py,sha256=q3LB04_NZmEnG_Yd9bzFZBEtkgywYtZGAi2sOaibytI,24224
61
+ dstack/_internal/core/backends/azure/compute.py,sha256=3CH6m1ytCG-cvj3sAQG3BPpehZQ7XQkAFE8JOyja0V8,24433
61
62
  dstack/_internal/core/backends/azure/configurator.py,sha256=cC0YhiayPtrOEEr8Lr-9nDDq6v2-sbxK-1QhixpM1YY,18228
62
63
  dstack/_internal/core/backends/azure/models.py,sha256=ap0WsYBSFdDCxY0G3W1sg2DBN2k0xknz6bp8Ypf6phs,3356
63
64
  dstack/_internal/core/backends/azure/resources.py,sha256=cJWS2Yjxdg-XtjpdBxfVDZaX_gTbuoEpmdjTxdA9uIw,3431
@@ -155,7 +156,7 @@ dstack/_internal/core/backends/vultr/models.py,sha256=TkqK_lW6w5k_7wsoFiKDb6NXuT
155
156
  dstack/_internal/core/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
156
157
  dstack/_internal/core/models/common.py,sha256=XWd79dmFGMrdpTcStH5fVmNXCKE0s7FsIorPL0saQ8w,2138
157
158
  dstack/_internal/core/models/config.py,sha256=JJ7rT7dztzTWCY5TkoyxXxTvG5D4IFYhGe7EzwkLOWQ,581
158
- dstack/_internal/core/models/configurations.py,sha256=c2717pYpna6u2bmtmC3DlX67HtQa-Tud387mUVa4vEg,18498
159
+ dstack/_internal/core/models/configurations.py,sha256=I-BRBls-oSZ2EZy5glC4_PJbdM-_KnoAxl6gm1u16tg,19027
159
160
  dstack/_internal/core/models/envs.py,sha256=yq84YRFBILOy4x3XnGcTgYpbZ69eFTCQPgBCr9Ndov4,4969
160
161
  dstack/_internal/core/models/fleets.py,sha256=gbP2rj1ODDuy4IfTbPNB-ae050thvzTtA8uDb5iTmdY,12059
161
162
  dstack/_internal/core/models/gateways.py,sha256=_O8EWwHWLdgNoWY4P4u71KM-uEr5DDp42LXfyv1qMDI,4054
@@ -250,20 +251,20 @@ dstack/_internal/server/app.py,sha256=K2NojwUKdktdenrR61I21kXIMX6ars6zB9v6Ea-evz
250
251
  dstack/_internal/server/db.py,sha256=WjuqmjG3QAZmSMCeUaJ_ynbowlHuNAvYCZO649cTPHc,3210
251
252
  dstack/_internal/server/deps.py,sha256=31e8SU_ogPJWHIDLkgl7cuC_5V91xbJoLyAj17VanfM,670
252
253
  dstack/_internal/server/main.py,sha256=kztKhCYNoHSDyJJQScWfZXE0naNleJOCQULW6dd8SGw,109
253
- dstack/_internal/server/models.py,sha256=GWl78Zl-_w1UyW9nB6DDS95Ko_osbLQtLb2DIi1JDLo,29633
254
- dstack/_internal/server/settings.py,sha256=XkLexvylNbU3iRM0KHnTX0fywLGczBHya5lVmeptbqY,4123
254
+ dstack/_internal/server/models.py,sha256=6F_w9kQ2UWfcp5s39zQtUjF9oNh7mCSULnqmmHC3c8M,29695
255
+ dstack/_internal/server/settings.py,sha256=milGlyLfRaaMcnGUEYeKTnOzBLfmdsN2Jsd_aif38aM,4211
255
256
  dstack/_internal/server/background/__init__.py,sha256=8kTbhEHCeXTibsOlHY1HwqIO6gGb4q8fUa2fcDrah1c,3893
256
257
  dstack/_internal/server/background/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
257
258
  dstack/_internal/server/background/tasks/common.py,sha256=N7xSXbf2MoBWgbJ1e3AEzYBTf1Gn-pDXYND8Zr_YCJQ,970
258
259
  dstack/_internal/server/background/tasks/process_fleets.py,sha256=LsD3I7iCbQs_nexJ1kfnn1VPz3BffFmALRgpk5DHGO4,2985
259
260
  dstack/_internal/server/background/tasks/process_gateways.py,sha256=hoUI1CSqbHt_uMwnzTRAEDl-LBw0wUk_W4xobIbdvRc,7017
260
261
  dstack/_internal/server/background/tasks/process_instances.py,sha256=E1NLac4ubiF6jUr9M7rj8cjQf4zFZCBVr428UBgFeGI,42855
261
- dstack/_internal/server/background/tasks/process_metrics.py,sha256=IDGyVQtGLua_NoY8sLv0RH18iV_3-LUONj6cEI181QM,6136
262
+ dstack/_internal/server/background/tasks/process_metrics.py,sha256=aJPHnmKQE19JVxJVwGFyyK7buUcbp9Smw9CkFO2DPAk,6135
262
263
  dstack/_internal/server/background/tasks/process_placement_groups.py,sha256=gJ8Um3Vx-brazHVWdtVXPnov4rwvDr-0Vn1Voq1cYBQ,4108
263
264
  dstack/_internal/server/background/tasks/process_prometheus_metrics.py,sha256=9VoGFqdiXcVkCi_NV1VqQdqllDkB0bHIqOHKMIZK1Fg,5183
264
265
  dstack/_internal/server/background/tasks/process_running_jobs.py,sha256=jyuYOQfXIVGu5ugTennwSGXL_c6VDNJN96-Qrz7Hgic,36441
265
266
  dstack/_internal/server/background/tasks/process_runs.py,sha256=EI1W6HUyB-og3g8BDP_GsBrJjQ-Z3JvZHTuJf7CRKRM,17974
266
- dstack/_internal/server/background/tasks/process_submitted_jobs.py,sha256=-XOApBgmn9ZyCoeXgnbp6cnsFT3uxE_-xqLtn1ez5dc,26603
267
+ dstack/_internal/server/background/tasks/process_submitted_jobs.py,sha256=9Etgo9-Fdx5g9xk0OsJXcfVm2dssLTKLT0FLvWJO4kU,27397
267
268
  dstack/_internal/server/background/tasks/process_terminating_jobs.py,sha256=0Z3Q409RwSxOL_pgK8JktBthjtESEUH3ahwTLsTdYPk,3800
268
269
  dstack/_internal/server/background/tasks/process_volumes.py,sha256=206rbT4ICeZtEmqh_94Rry_fgHfFLLaSEX9W-svwFk4,5089
269
270
  dstack/_internal/server/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -319,6 +320,7 @@ dstack/_internal/server/migrations/versions/afbc600ff2b2_add_created_at_to_userm
319
320
  dstack/_internal/server/migrations/versions/b4d6ad60db08_add_instancemodel_unreachable.py,sha256=rnmLqt_pzNtqMqcmzXIPZxs5WxDE7ieAdI6SnKUFjqM,1038
320
321
  dstack/_internal/server/migrations/versions/b88d55c2a07d_replace_instancestatus_ready.py,sha256=rp97ZU0HK3i-iQIsqYYXHG6q45jjCLk-ZfSHhuFlE0Y,359
321
322
  dstack/_internal/server/migrations/versions/bc8ca4a505c6_store_backendtype_as_string.py,sha256=et_r-uB-fb5hDIHoLDs-VzeyGNjbXRUT7yc9oy3uJZ0,4307
323
+ dstack/_internal/server/migrations/versions/bca2fdf130bf_add_runmodel_priority.py,sha256=p6k9K6PhOygJYRoFW6YD8IwtIYz1bJCih0PTqM8vnsY,984
322
324
  dstack/_internal/server/migrations/versions/bfba43f6def2_.py,sha256=-YJe8iUseRVF868uQsTQfrTmNo4m0HIfwpHwVREztHY,818
323
325
  dstack/_internal/server/migrations/versions/c00090eaef21_support_fleets.py,sha256=c_L2JCDHwnagFHvOA_eyn-gib4vGzuMCsyS1HCUmgvI,3824
324
326
  dstack/_internal/server/migrations/versions/c154eece89da_add_fields_for_async_gateway_creation.py,sha256=hQusacx85a-q00fwu6QIZBWdoDKr2naKoTaI7J4yjFU,2510
@@ -345,7 +347,7 @@ dstack/_internal/server/routers/logs.py,sha256=_Euk283LbhlwHibJTKM-7YcpbeQFtWBqM
345
347
  dstack/_internal/server/routers/metrics.py,sha256=VFgWhkOvxVFDLlRM_kXHYFylLcfCD6UjXInvcd7H4dY,2314
346
348
  dstack/_internal/server/routers/projects.py,sha256=0R-w_6WXUbNo6fREAexFUQ3RoOJF2D_Iz35elKjym14,2717
347
349
  dstack/_internal/server/routers/prometheus.py,sha256=UAcOE8dpGZe4Wd0EOIlFPMbjaNjzX8A7iHlooeRvsfo,944
348
- dstack/_internal/server/routers/repos.py,sha256=P_zLoEQderxhCeHQJwRkrIhVcc0-cpabfyde22bWVRk,3362
350
+ dstack/_internal/server/routers/repos.py,sha256=wXtfQBEwGtHIWg1-EMMigMAby42Exe7iFhwPKkg8JQ4,3723
349
351
  dstack/_internal/server/routers/runs.py,sha256=p44c_0bqwG1v5S_qX-HKbap1nmk1F2JVqaIXihjiUfY,5388
350
352
  dstack/_internal/server/routers/secrets.py,sha256=50_qJCTYRpnGSlLyS93gqoV17wWewOVmM65PcG1bT_Y,856
351
353
  dstack/_internal/server/routers/server.py,sha256=8pQmfyZj0nbebeOK9JuKhw9JmYuIYfJnY0LuYynWnGY,346
@@ -371,7 +373,7 @@ dstack/_internal/server/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRk
371
373
  dstack/_internal/server/services/config.py,sha256=yo8njslwfS7_blhbPPhOtzCMyg8N_mmFSw5aPvirSzw,10691
372
374
  dstack/_internal/server/services/docker.py,sha256=zAvjFHxIP03Td92NzbGEScz0piLjloE60tQ7vz0AeCA,5328
373
375
  dstack/_internal/server/services/fleets.py,sha256=5BQ3DYBx0XWfcJJjaOemNoYPkvlkNsZ_uqA01YjjKxY,26587
374
- dstack/_internal/server/services/instances.py,sha256=Cy0mMcaSFQyIr2xiEgN5d_rTm3c4g8nlJqK_KtG9tjg,18518
376
+ dstack/_internal/server/services/instances.py,sha256=4feu9RfixOIVsLoFPHiYYUe0L6sf3v3h1asTBSF5cyc,18686
375
377
  dstack/_internal/server/services/locking.py,sha256=7JUgNSplKRx7dxC4LIpmWw81agUtslEDTeDiNMPbAVg,3013
376
378
  dstack/_internal/server/services/logging.py,sha256=Nu1628kW2hqB__N0Eyr07wGWjVWxfyJnczonTJ72kSM,417
377
379
  dstack/_internal/server/services/metrics.py,sha256=jKLy1jSCVR_crqVu_CmsOMbvMkucWBandI0SS1LDeRQ,6896
@@ -383,7 +385,7 @@ dstack/_internal/server/services/projects.py,sha256=Je1iWZ-ArmyFxK1yMUzod5WRXyiI
383
385
  dstack/_internal/server/services/prometheus.py,sha256=xq5G-Q2BJup9lS2F6__0wUVTs-k1Gr3dYclGzo2WoWo,12474
384
386
  dstack/_internal/server/services/repos.py,sha256=f9ztN7jz_2gvD9hXF5sJwWDVyG2-NHRfjIdSukowPh8,9342
385
387
  dstack/_internal/server/services/resources.py,sha256=VRFOih_cMJdc0c2m9nSGsX8vWAJQV3M6N87aqS_JXfw,699
386
- dstack/_internal/server/services/runs.py,sha256=K3rqzfqkUY9dhTO-2W9_PGH8gCdYhCJK-S-gbM5drx4,38559
388
+ dstack/_internal/server/services/runs.py,sha256=Vm-dWX8-ZL6TANnyh0KdEg_UIMaKOky8N8SYoMSQRCQ,39167
387
389
  dstack/_internal/server/services/storage.py,sha256=6I0xI_3_RpJNbKZwHjDnjrEwXGdHfiaeb5li15T-M1I,1884
388
390
  dstack/_internal/server/services/users.py,sha256=W-5xL7zsHNjeG7BBK54RWGvIrBOrw-FF0NcG_z9qhoE,7466
389
391
  dstack/_internal/server/services/volumes.py,sha256=vfKY6eZp64I58Mfdvrk9Wig7deveD2Rw4ET1cbc1Sog,16238
@@ -400,7 +402,7 @@ dstack/_internal/server/services/gateways/connection.py,sha256=ot3lV85XdmCT45vBW
400
402
  dstack/_internal/server/services/gateways/pool.py,sha256=0LclTl1tyx-doS78LeaAKjr-SMp98zuwh5f9s06JSd0,1914
401
403
  dstack/_internal/server/services/jobs/__init__.py,sha256=GU3vMC0SZKyvL564A7t_QRoDjf83-8GsUkguDWK5x6c,25578
402
404
  dstack/_internal/server/services/jobs/configurators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
403
- dstack/_internal/server/services/jobs/configurators/base.py,sha256=QSIU1OoZ794HKdwjo5iXxGUvFE8a2-g_SoYjAQjXhcI,11354
405
+ dstack/_internal/server/services/jobs/configurators/base.py,sha256=kgCbEom7hGPunrUxXI0NjXGlTdNq_Q27u56lrExDnT8,11390
404
406
  dstack/_internal/server/services/jobs/configurators/dev.py,sha256=ufN6Sd8TwIsjQYNZE32fkAqJI7o2zjgoZThbrP-bd7U,2378
405
407
  dstack/_internal/server/services/jobs/configurators/service.py,sha256=FOWrLE-6YFSMuGqjOwYTLMV4FuIM5lCMDFjS0l0CoLI,929
406
408
  dstack/_internal/server/services/jobs/configurators/task.py,sha256=0-B3oO-61Eq4-mmlLmqJPliFKHhvvIV0tqc12slcQuA,1436
@@ -452,10 +454,10 @@ dstack/_internal/server/statics/e467d7d60aae81ab198b.svg,sha256=_XHc9mfQZgGkcy4h
452
454
  dstack/_internal/server/statics/eb9b344b73818fe2b71a.png,sha256=2H14eOCQRyZhFGJ1Kn2LH1j70kTF1Qop4vH-tiKqyPI,85
453
455
  dstack/_internal/server/statics/f517dd626eb964120de0.png,sha256=4QQuNa8SqmcZ67HK6739OHCyjnAJseU1bkcn454KRQs,159
454
456
  dstack/_internal/server/statics/f958aecddee5d8e3222c.png,sha256=8CoZkVNgRfOAe62X1dU-AZDvwh_nESKaQblEmaX2Xrs,87
455
- dstack/_internal/server/statics/index.html,sha256=UxIpCGBcrAkhaLxz2qxs6X7LjOCK00brNPzVOQj_ku8,10468
457
+ dstack/_internal/server/statics/index.html,sha256=UmT1blYXopnvIglSx7EM67YQYx-Wpx5jrXL37UvSJqM,10468
456
458
  dstack/_internal/server/statics/main-8f9c66f404e9c7e7e020.css,sha256=RC2sAxRMpIK3myvsxKEhLk4OsxTOt7DgWunCwyn-B34,1336694
457
- dstack/_internal/server/statics/main-b4f65323f5df007e1664.js,sha256=tLoowY2LWIYWbB33399u56U-zu_zFI9CPhsXc5hAVN0,6521298
458
- dstack/_internal/server/statics/main-b4f65323f5df007e1664.js.map,sha256=eMmH8b8m55dLp__vb8arNNtZemb0oMtTZ2tpJcO4aZg,8559081
459
+ dstack/_internal/server/statics/main-b4803049eac16aea9a49.js,sha256=uk2mEKXEKDP5nWO6cjSGK0GUh63YbvSBCgHCiengeKk,6521276
460
+ dstack/_internal/server/statics/main-b4803049eac16aea9a49.js.map,sha256=tDM8-Gh0SsJV87gQICQKhrvprc5eb33M4OCpLGa982c,8559017
459
461
  dstack/_internal/server/statics/manifest.json,sha256=430w2BoWVmYYVr14lDvUxx-ROPt3VjigzeMqfLeiSCM,340
460
462
  dstack/_internal/server/statics/robots.txt,sha256=kNJLw79pisHhc3OVAimMzKcq3x9WT6sF9IS4xI0crdI,67
461
463
  dstack/_internal/server/statics/assets/android-chrome-144x144.png,sha256=tB3V-95O-VVEoawN5V1XFoMQRSK0I6gthraV8bATGaw,23414
@@ -533,12 +535,12 @@ dstack/_internal/server/statics/static/media/logo.f602feeb138844eda97c8cb6414614
533
535
  dstack/_internal/server/statics/static/media/okta.12f178e6873a1100965f2a4dbd18fcec.svg,sha256=KqFI05gQM135zC1plF1WBRF2F7CyKL7km97WKsZjAHI,319
534
536
  dstack/_internal/server/statics/static/media/theme.3994c817bb7dda191c1c9640dee0bf42.svg,sha256=ZxFFBVZWuRLqmWH4zhwGLNtKjOzHj-5MGJRunFAtu1I,561
535
537
  dstack/_internal/server/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
536
- dstack/_internal/server/testing/common.py,sha256=uzmF9_xsiHkb8l8adljuYSpAMEH4hmRZAbv6-96rN58,31480
538
+ dstack/_internal/server/testing/common.py,sha256=0zEEx3CEzBUm57C3PdgHaFwS_HjVO2ENNGt2Yo1eJdU,31530
537
539
  dstack/_internal/server/testing/conf.py,sha256=-zhujfFjTHNfQDOK-hBck32By11c_kC0OeinB3esQGg,1902
538
540
  dstack/_internal/server/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
539
541
  dstack/_internal/server/utils/common.py,sha256=PbjXtqYy1taKXpyG5ys8cIrz9MXqc9dBAsR_9D1brrk,1414
540
542
  dstack/_internal/server/utils/logging.py,sha256=bxUS2uWG5snypNRfL0d5sMLCDytyOZac81PSQlb7_rs,1907
541
- dstack/_internal/server/utils/routers.py,sha256=OzL9Oxy-1no7Txk1r-Pvf28l3S25CYJlyAscYY345Xg,4729
543
+ dstack/_internal/server/utils/routers.py,sha256=ZuoQEpWjtv4WhXCJmd0ZvwBPZ8eKplO7Bb7leT9e8Ho,4630
542
544
  dstack/_internal/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
543
545
  dstack/_internal/utils/common.py,sha256=Ynq9_nZpIyipOn4y0-feGU_YbxzHSvWZGx2UGGR2bmI,9251
544
546
  dstack/_internal/utils/crypto.py,sha256=2RTSyzePuwwqc1X2HO6lwcSFyZ2kujnqluoICQ2DLJQ,1462
@@ -561,7 +563,7 @@ dstack/api/utils.py,sha256=_la3CRk1vgrPGkInPI1SOr33e8Jvh8ziJC32fjvKnaU,4188
561
563
  dstack/api/_public/__init__.py,sha256=mbzsdV3nWUJRksc7czX5C0iPT3NA6YRpriQQRiXwIbY,3429
562
564
  dstack/api/_public/backends.py,sha256=w_cIUVU3L1tN8VoPH6-ltq-oJewlfXWTiEFXfDvm-1Q,1056
563
565
  dstack/api/_public/repos.py,sha256=2ufUtxY8WyPci9tCGYzsnyIFTXNJfTuPzDYvpTydZ6k,6133
564
- dstack/api/_public/runs.py,sha256=tILFldJb4EKMYYBMr5rUiD5aJGIPB4-eLXzwwcqPbVg,27828
566
+ dstack/api/_public/runs.py,sha256=e_-CqkzHJqeUvO_yXbLnmO8ADZEcgRtagZoL5fr2wmU,28006
565
567
  dstack/api/huggingface/__init__.py,sha256=oIrEij3wttLZ1yrywEGvCMd6zswMQrX5pPjrqdSi0UA,2201
566
568
  dstack/api/server/__init__.py,sha256=Zyl1M51tifn4pB150yIsh39N96qUgMjg5XplcElHDxg,6097
567
569
  dstack/api/server/_backends.py,sha256=tSvJ4j-yp-S-4IYo7pKHluDaSsx6Xbwo08Ff6Do85fo,1639
@@ -572,7 +574,7 @@ dstack/api/server/_logs.py,sha256=ng8QvFAIaoVOVChTK6Wuu5BeM6y7gAdx30KEYRsn9xA,50
572
574
  dstack/api/server/_metrics.py,sha256=OPb8sLhI_U605sHOPrELgy0_6cNFLJVfpvr-qkEukRM,670
573
575
  dstack/api/server/_projects.py,sha256=g6kNSU6jer8u7Kaut1I0Ft4wRMLBBCQShJf3fOB63hQ,1440
574
576
  dstack/api/server/_repos.py,sha256=bqsKuZWyiNLE8UAdSZrYNtk1J3Gu5MXXnTMIoM9jxpI,1770
575
- dstack/api/server/_runs.py,sha256=uVTY57BlBvB86pkKNjUh-Nc5AYNmfH9kfBNbgzTnTyw,7914
577
+ dstack/api/server/_runs.py,sha256=toI0guzIVIpPO8L4c8N6On2KEEAzvg9YGYM3IP1EdGQ,8003
576
578
  dstack/api/server/_secrets.py,sha256=VqLfrIcmBJtPxNDRkXTG44H5SWoY788YJapScUukvdY,1576
577
579
  dstack/api/server/_users.py,sha256=XzhgGKc5Tsr0-xkz3T6rGyWZ1tO7aYNhLux2eE7dAoY,1738
578
580
  dstack/api/server/_volumes.py,sha256=xxOt8o5G-bhMh6wSvF4BDFNoqVEhlM4BXQr2KvX0pN0,1937
@@ -582,8 +584,8 @@ dstack/plugins/__init__.py,sha256=buT1pcyORLgVbl89ATkRWJPhvejriVz7sNBjvuZRCRE,40
582
584
  dstack/plugins/_base.py,sha256=-etiB-EozaJCg2wtmONfj8ic-K03qXvXyl_TIDp-kNE,2662
583
585
  dstack/plugins/_models.py,sha256=1Gw--mDQ1_0FFr9Zur9LE8UbMoWESUpTdHHt12AyIZo,341
584
586
  dstack/plugins/_utils.py,sha256=FqeWYb7zOrgZkO9Bd8caL5I81_TUEsysIzvxsULrmzk,392
585
- dstack-0.19.9.dist-info/METADATA,sha256=0gv_xHbluxlydceXCwjWo2m-CjyWGjNiR4gNpBKOpE0,20254
586
- dstack-0.19.9.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
587
- dstack-0.19.9.dist-info/entry_points.txt,sha256=GnLrMS8hx3rWAySQjA7tPNhtixV6a-brRkmal1PKoHc,58
588
- dstack-0.19.9.dist-info/licenses/LICENSE.md,sha256=qDABaRGjSKVOib1U8viw2P_96sIK7Puo426784oD9f8,15976
589
- dstack-0.19.9.dist-info/RECORD,,
587
+ dstack-0.19.10.dist-info/METADATA,sha256=kOxSPHWY8taNRczMVwanWtP_p-0KmFJbOSE7vCKQsKk,20509
588
+ dstack-0.19.10.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
589
+ dstack-0.19.10.dist-info/entry_points.txt,sha256=GnLrMS8hx3rWAySQjA7tPNhtixV6a-brRkmal1PKoHc,58
590
+ dstack-0.19.10.dist-info/licenses/LICENSE.md,sha256=qDABaRGjSKVOib1U8viw2P_96sIK7Puo426784oD9f8,15976
591
+ dstack-0.19.10.dist-info/RECORD,,