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.

@@ -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,4 +1,4 @@
1
- __version__ = "0.19.19"
1
+ __version__ = "0.19.20"
2
2
  __is_release__ = True
3
3
  base_image = "0.10"
4
4
  base_image_ubuntu_version = "22.04"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dstack
3
- Version: 0.19.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=l0CTJ7PnsWwem_lcd_pUUwS6kJWBsrfwQWnasH4RxHU,102
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=oGIFJ3FiNVl5BvAlY_6SSWaUcQbg5pbjPf4jeixivmo,7565
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=WxIh0Xw07B9SikJSMI6Z41fqidAO3hu_z5TUT71e76g,28997
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=Hk0TNMyQz6HsnzSCPYCBkDHMdLUXYRTVBkCkNTUU--0,753
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=ocIRvJ-b7griZjPYAY_0jo4YC4ad8K6utPGMYDhOSNc,13327
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=Q15FpAsrjZDDUq0i5UI3_IJ23OH8u-Cv3v1hGxV2RGg,5235
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=xq5G-Q2BJup9lS2F6__0wUVTs-k1Gr3dYclGzo2WoWo,12474
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=l3t7nN8OnkHRhhnDJvNa8C3eeZ2DGI60NvfJoBcd3sg,10468
488
- dstack/_internal/server/statics/main-64f8273740c4b52c18f5.js,sha256=joDk1H4T0iqH97OLtaeLePVScgwu9Oi7PIU9IFM_3DM,6673377
489
- dstack/_internal/server/statics/main-64f8273740c4b52c18f5.js.map,sha256=k74XDER1bFoSSxUTiXw_OeArqsN2uh4jy2xMRbKxahM,8770324
490
- dstack/_internal/server/statics/main-d58fc0460cb0eae7cb5c.css,sha256=knvt0R2lSfVp72_uDvtBEXgRdqlBseZoZWPB7dPNUK8,1355031
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=W91g_g63X50a5vPCYl7ntW528QBMViaN1owqKc9VHeo,9383
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.19.dist-info/METADATA,sha256=burdmLwqNXVaOOp7NaggyHjDMKds_KFDhROp50QIlxQ,20952
626
- dstack-0.19.19.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
627
- dstack-0.19.19.dist-info/entry_points.txt,sha256=GnLrMS8hx3rWAySQjA7tPNhtixV6a-brRkmal1PKoHc,58
628
- dstack-0.19.19.dist-info/licenses/LICENSE.md,sha256=qDABaRGjSKVOib1U8viw2P_96sIK7Puo426784oD9f8,15976
629
- dstack-0.19.19.dist-info/RECORD,,
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,,