dstack 0.19.19__py3-none-any.whl → 0.19.20__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.
- dstack/_internal/core/backends/cloudrift/api_client.py +13 -1
- dstack/_internal/core/backends/oci/resources.py +5 -5
- dstack/_internal/server/schemas/logs.py +1 -9
- dstack/_internal/server/services/logs/aws.py +45 -3
- dstack/_internal/server/services/logs/filelog.py +121 -11
- dstack/_internal/server/services/prometheus/custom_metrics.py +20 -0
- dstack/_internal/server/statics/index.html +1 -1
- dstack/_internal/server/statics/{main-64f8273740c4b52c18f5.js → main-39a767528976f8078166.js} +7 -26
- dstack/_internal/server/statics/{main-64f8273740c4b52c18f5.js.map → main-39a767528976f8078166.js.map} +1 -1
- dstack/_internal/server/statics/{main-d58fc0460cb0eae7cb5c.css → main-8f9ee218d3eb45989682.css} +2 -2
- dstack/_internal/utils/common.py +10 -21
- dstack/version.py +1 -1
- {dstack-0.19.19.dist-info → dstack-0.19.20.dist-info}/METADATA +1 -1
- {dstack-0.19.19.dist-info → dstack-0.19.20.dist-info}/RECORD +17 -17
- {dstack-0.19.19.dist-info → dstack-0.19.20.dist-info}/WHEEL +0 -0
- {dstack-0.19.19.dist-info → dstack-0.19.20.dist-info}/entry_points.txt +0 -0
- {dstack-0.19.19.dist-info → dstack-0.19.20.dist-info}/licenses/LICENSE.md +0 -0
dstack/_internal/utils/common.py
CHANGED
|
@@ -225,27 +225,6 @@ def remove_prefix(text: str, prefix: str) -> str:
|
|
|
225
225
|
T = TypeVar("T")
|
|
226
226
|
|
|
227
227
|
|
|
228
|
-
def split_chunks(iterable: Iterable[T], chunk_size: int) -> Iterable[List[T]]:
|
|
229
|
-
"""
|
|
230
|
-
Splits an iterable into chunks of at most `chunk_size` items.
|
|
231
|
-
|
|
232
|
-
>>> list(split_chunks([1, 2, 3, 4, 5], 2))
|
|
233
|
-
[[1, 2], [3, 4], [5]]
|
|
234
|
-
"""
|
|
235
|
-
|
|
236
|
-
if chunk_size < 1:
|
|
237
|
-
raise ValueError(f"chunk_size should be a positive integer, not {chunk_size}")
|
|
238
|
-
|
|
239
|
-
chunk = []
|
|
240
|
-
for item in iterable:
|
|
241
|
-
chunk.append(item)
|
|
242
|
-
if len(chunk) == chunk_size:
|
|
243
|
-
yield chunk
|
|
244
|
-
chunk = []
|
|
245
|
-
if chunk:
|
|
246
|
-
yield chunk
|
|
247
|
-
|
|
248
|
-
|
|
249
228
|
MEMORY_UNITS = {
|
|
250
229
|
"B": 1,
|
|
251
230
|
"K": 2**10,
|
|
@@ -283,7 +262,17 @@ def get_or_error(v: Optional[T]) -> T:
|
|
|
283
262
|
return v
|
|
284
263
|
|
|
285
264
|
|
|
265
|
+
# TODO: drop after dropping Python 3.11
|
|
286
266
|
def batched(seq: Iterable[T], n: int) -> Iterable[List[T]]:
|
|
267
|
+
"""
|
|
268
|
+
Roughly equivalent to itertools.batched from Python 3.12.
|
|
269
|
+
|
|
270
|
+
>>> list(batched([1, 2, 3, 4, 5], 2))
|
|
271
|
+
[[1, 2], [3, 4], [5]]
|
|
272
|
+
"""
|
|
273
|
+
|
|
274
|
+
if n < 1:
|
|
275
|
+
raise ValueError(f"n should be a positive integer, not {n}")
|
|
287
276
|
it = iter(seq)
|
|
288
277
|
return iter(lambda: list(itertools.islice(it, n)), [])
|
|
289
278
|
|
dstack/version.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dstack
|
|
3
|
-
Version: 0.19.
|
|
3
|
+
Version: 0.19.20
|
|
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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
dstack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
dstack/version.py,sha256=
|
|
2
|
+
dstack/version.py,sha256=axeYDWu1KOu0e1Fgcergs4FNRuVFkVwRvrk2-_xOyww,102
|
|
3
3
|
dstack/_internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
dstack/_internal/compat.py,sha256=bF9U9fTMfL8UVhCouedoUSTYFl7UAOiU0WXrnRoByxw,40
|
|
5
5
|
dstack/_internal/settings.py,sha256=mlqH4Jwd-Qvxwt869dYXy4snQ0naUsHOwXiI0WSMojA,1246
|
|
@@ -72,7 +72,7 @@ dstack/_internal/core/backends/base/configurator.py,sha256=OCv8N2oxcxy3In2zS1PKi
|
|
|
72
72
|
dstack/_internal/core/backends/base/models.py,sha256=Ij0osOl-T-ABsKLoVg2eY81DMkwdWkevAnjXj2QnLXI,532
|
|
73
73
|
dstack/_internal/core/backends/base/offers.py,sha256=2BARohq0sJk0a9K0Z4OuIbpIQNSSq8ZTzAnO8pCxO4M,6228
|
|
74
74
|
dstack/_internal/core/backends/cloudrift/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
75
|
-
dstack/_internal/core/backends/cloudrift/api_client.py,sha256=
|
|
75
|
+
dstack/_internal/core/backends/cloudrift/api_client.py,sha256=mI3_ttwujfSunTiTIelnc1XaLBlfxsKsacrlyB12f8c,8178
|
|
76
76
|
dstack/_internal/core/backends/cloudrift/backend.py,sha256=Jz3nIQsa3TnMISVXK6EU43O0B7FgIMxwwaEBmd_s5BY,596
|
|
77
77
|
dstack/_internal/core/backends/cloudrift/compute.py,sha256=fmCaUliSRKDjAPT8YFwX-7xSk0eMnxryFsDBFBcS7VQ,5141
|
|
78
78
|
dstack/_internal/core/backends/cloudrift/configurator.py,sha256=wZ4HswqGeK0sffcbGvfNPIAdT_VsOt1ZKN7UXZ4WliI,2331
|
|
@@ -129,7 +129,7 @@ dstack/_internal/core/backends/oci/configurator.py,sha256=jIHmJbmam5RtcOC2Uf-MuE
|
|
|
129
129
|
dstack/_internal/core/backends/oci/exceptions.py,sha256=GxlUf7itcAQgY3m-U2ul_ZXzfUOcEcPEmisWFaoWSkA,288
|
|
130
130
|
dstack/_internal/core/backends/oci/models.py,sha256=fDlY7-A0WDQeiwJzwrQl6D5ENOc-677Bz8LXyvBvF0c,2969
|
|
131
131
|
dstack/_internal/core/backends/oci/region.py,sha256=a41dmlv-7jh2vP2z-0wnf0Yzdh2Donjm9aXuMgFXXKo,2935
|
|
132
|
-
dstack/_internal/core/backends/oci/resources.py,sha256=
|
|
132
|
+
dstack/_internal/core/backends/oci/resources.py,sha256=VfTDuVTEO8MUvD3i2DFoe2du1qP4MSQb1yEaDgHbUp8,28982
|
|
133
133
|
dstack/_internal/core/backends/remote/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
134
134
|
dstack/_internal/core/backends/remote/provisioning.py,sha256=ZmaQ08Lssx3aRLF7Jqp3mt41dVvZ1FqXFN9tuoFSDAs,13481
|
|
135
135
|
dstack/_internal/core/backends/runpod/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -382,7 +382,7 @@ dstack/_internal/server/schemas/files.py,sha256=3SW-aMv5eAL5Fs_N3isCSPc6xgjOkRQn
|
|
|
382
382
|
dstack/_internal/server/schemas/fleets.py,sha256=9JcKe8VQM6p705lsgrp0xO08aTC32R88BJah7vZ-LgM,1101
|
|
383
383
|
dstack/_internal/server/schemas/gateways.py,sha256=wrLQgSFkpxf-pijeyl2UjR8SpQXVshal6pW8wZf73Yk,1142
|
|
384
384
|
dstack/_internal/server/schemas/instances.py,sha256=MedAVbKa_1F9zhdSPrjMmL-Og5Dp0cxxvfApKj29194,431
|
|
385
|
-
dstack/_internal/server/schemas/logs.py,sha256=
|
|
385
|
+
dstack/_internal/server/schemas/logs.py,sha256=I4KaPgXiaYLWtovBchUiqK0wk-b7py-yTHKzhPH8tYc,453
|
|
386
386
|
dstack/_internal/server/schemas/projects.py,sha256=sXm9KMecLYaLemE4rPr8MzvlkHvpwzawmL5GNB87wuY,804
|
|
387
387
|
dstack/_internal/server/schemas/repos.py,sha256=Sit0Tqol79VOMGGp8ncZXLLsZ4INcF-pAA_jwRchYqA,666
|
|
388
388
|
dstack/_internal/server/schemas/runner.py,sha256=KCEdtGgfxoZfgxzZ_7r_RatCb_QMnA80J6_PLQc6EP0,5213
|
|
@@ -434,13 +434,13 @@ dstack/_internal/server/services/jobs/configurators/extensions/base.py,sha256=xJ
|
|
|
434
434
|
dstack/_internal/server/services/jobs/configurators/extensions/cursor.py,sha256=r6Cgdd-P5C63xXyrqC6E0yNKIeTX6KabRLO92VEpJRY,1719
|
|
435
435
|
dstack/_internal/server/services/jobs/configurators/extensions/vscode.py,sha256=WRg_jqi4eSqbs3XRVASMFF7OQHYRDtVBNn6NCroJY1I,1694
|
|
436
436
|
dstack/_internal/server/services/logs/__init__.py,sha256=6KOyAUc-LpZHM3B-bDehiAxx6cwtveQnf2nN864uJzY,3575
|
|
437
|
-
dstack/_internal/server/services/logs/aws.py,sha256=
|
|
437
|
+
dstack/_internal/server/services/logs/aws.py,sha256=H_mLPi21-GRnkdmCgxAGKnxhtrjvUma_i_Il8jSnU2k,15120
|
|
438
438
|
dstack/_internal/server/services/logs/base.py,sha256=7eCB6SPF9iWviv4vZ_34SvfM_Bvi9DeVj1t7TxmrXKs,1273
|
|
439
|
-
dstack/_internal/server/services/logs/filelog.py,sha256=
|
|
439
|
+
dstack/_internal/server/services/logs/filelog.py,sha256=ZpnrMWhWVOpZHnUCZEm2pkJRZYgWBzlasdcyPCb6v90,9811
|
|
440
440
|
dstack/_internal/server/services/logs/gcp.py,sha256=Rfl5x1Slr4hyjdr0YPCugfHRC3aNL7D2LCiP4CvQB1s,6917
|
|
441
441
|
dstack/_internal/server/services/prometheus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
442
442
|
dstack/_internal/server/services/prometheus/client_metrics.py,sha256=nGhvOHEoWONGAfbNh5gC23It7B46A6hfQ8mErUQIcYI,1541
|
|
443
|
-
dstack/_internal/server/services/prometheus/custom_metrics.py,sha256=
|
|
443
|
+
dstack/_internal/server/services/prometheus/custom_metrics.py,sha256=rokpp552qkaXZpCLJxOexA4xEBuIIxc2mxrJFkeE9ko,13635
|
|
444
444
|
dstack/_internal/server/services/proxy/__init__.py,sha256=aklmvGaGXISztQft-nH8R98WRU6x_L0Fx3RwVDhwt3g,85
|
|
445
445
|
dstack/_internal/server/services/proxy/auth.py,sha256=AVhDCnk9KvxJ7Jsd8Xmotl_29V4lNuBw8mQNBhx90Ws,485
|
|
446
446
|
dstack/_internal/server/services/proxy/deps.py,sha256=u4dHHKBlTgC8Fnnl3onErgE1HGKFwyZTwvq0uT6IdQ4,846
|
|
@@ -484,10 +484,10 @@ dstack/_internal/server/statics/e467d7d60aae81ab198b.svg,sha256=_XHc9mfQZgGkcy4h
|
|
|
484
484
|
dstack/_internal/server/statics/eb9b344b73818fe2b71a.png,sha256=2H14eOCQRyZhFGJ1Kn2LH1j70kTF1Qop4vH-tiKqyPI,85
|
|
485
485
|
dstack/_internal/server/statics/f517dd626eb964120de0.png,sha256=4QQuNa8SqmcZ67HK6739OHCyjnAJseU1bkcn454KRQs,159
|
|
486
486
|
dstack/_internal/server/statics/f958aecddee5d8e3222c.png,sha256=8CoZkVNgRfOAe62X1dU-AZDvwh_nESKaQblEmaX2Xrs,87
|
|
487
|
-
dstack/_internal/server/statics/index.html,sha256=
|
|
488
|
-
dstack/_internal/server/statics/main-
|
|
489
|
-
dstack/_internal/server/statics/main-
|
|
490
|
-
dstack/_internal/server/statics/main-
|
|
487
|
+
dstack/_internal/server/statics/index.html,sha256=DenidaBKYk7aQpAq_zR1n1cTFwDpIpoXaahZDdFBvqY,10468
|
|
488
|
+
dstack/_internal/server/statics/main-39a767528976f8078166.js,sha256=ocZJEfsDa4iKPxr1t72UpQYNra7MN85X813p77o4snM,6385580
|
|
489
|
+
dstack/_internal/server/statics/main-39a767528976f8078166.js.map,sha256=3cVIGQThOAjhaKcehJFwprAnVIz693d7tYzp341IkgI,8443146
|
|
490
|
+
dstack/_internal/server/statics/main-8f9ee218d3eb45989682.css,sha256=QjK-f7GZKDVf-O-mIS7eJLtmokt4gTfFHYP-BfgghlM,1352872
|
|
491
491
|
dstack/_internal/server/statics/manifest.json,sha256=430w2BoWVmYYVr14lDvUxx-ROPt3VjigzeMqfLeiSCM,340
|
|
492
492
|
dstack/_internal/server/statics/robots.txt,sha256=kNJLw79pisHhc3OVAimMzKcq3x9WT6sF9IS4xI0crdI,67
|
|
493
493
|
dstack/_internal/server/statics/assets/android-chrome-144x144.png,sha256=tB3V-95O-VVEoawN5V1XFoMQRSK0I6gthraV8bATGaw,23414
|
|
@@ -573,7 +573,7 @@ dstack/_internal/server/utils/common.py,sha256=PbjXtqYy1taKXpyG5ys8cIrz9MXqc9dBA
|
|
|
573
573
|
dstack/_internal/server/utils/logging.py,sha256=bxUS2uWG5snypNRfL0d5sMLCDytyOZac81PSQlb7_rs,1907
|
|
574
574
|
dstack/_internal/server/utils/routers.py,sha256=WFjcIlJETY7SAQ1eHRxaZuAAUsWYT8S_ATLHQ6a_MBs,5498
|
|
575
575
|
dstack/_internal/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
576
|
-
dstack/_internal/utils/common.py,sha256=
|
|
576
|
+
dstack/_internal/utils/common.py,sha256=m2_lmWjIPTJvI8V2XifY2FUiqT_1KIUWfnLCbAjOvEw,9119
|
|
577
577
|
dstack/_internal/utils/crypto.py,sha256=2RTSyzePuwwqc1X2HO6lwcSFyZ2kujnqluoICQ2DLJQ,1462
|
|
578
578
|
dstack/_internal/utils/dxf.py,sha256=wguK9s6-69kqSDZkxd1kFEr6VlH5ixvFRJxizyOuJ8I,3229
|
|
579
579
|
dstack/_internal/utils/env.py,sha256=HRbIspHpKHh05fMZeV23-hrZoV6vVMuniefD08u6ey0,357
|
|
@@ -622,8 +622,8 @@ dstack/plugins/builtin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
|
|
|
622
622
|
dstack/plugins/builtin/rest_plugin/__init__.py,sha256=lgTsq8Z6Km2F2UhPRChVB4vDM5ZpWtdk1iB1aa20ypA,440
|
|
623
623
|
dstack/plugins/builtin/rest_plugin/_models.py,sha256=9hgVuU6OGSxidar88XhQnNo9izYWeQvVH45ciErv-Es,1910
|
|
624
624
|
dstack/plugins/builtin/rest_plugin/_plugin.py,sha256=iv8TmQh959iEUZjCFTzmGnFW8fHukTVpPmD4iBzOfS4,5361
|
|
625
|
-
dstack-0.19.
|
|
626
|
-
dstack-0.19.
|
|
627
|
-
dstack-0.19.
|
|
628
|
-
dstack-0.19.
|
|
629
|
-
dstack-0.19.
|
|
625
|
+
dstack-0.19.20.dist-info/METADATA,sha256=nbhx4hEoW9nhdyAR3cGIFsx48cBX9kmFFL07bfaBtbw,20952
|
|
626
|
+
dstack-0.19.20.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
627
|
+
dstack-0.19.20.dist-info/entry_points.txt,sha256=GnLrMS8hx3rWAySQjA7tPNhtixV6a-brRkmal1PKoHc,58
|
|
628
|
+
dstack-0.19.20.dist-info/licenses/LICENSE.md,sha256=qDABaRGjSKVOib1U8viw2P_96sIK7Puo426784oD9f8,15976
|
|
629
|
+
dstack-0.19.20.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|