modal 1.0.3.dev27__py3-none-any.whl → 1.0.4__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.
modal/mount.pyi CHANGED
@@ -82,6 +82,7 @@ class _Mount(modal._object._Object):
82
82
  _deployment_name: typing.Optional[str]
83
83
  _namespace: typing.Optional[int]
84
84
  _environment_name: typing.Optional[str]
85
+ _allow_overwrite: bool
85
86
  _content_checksum_sha256_hex: typing.Optional[str]
86
87
 
87
88
  @staticmethod
@@ -172,7 +173,9 @@ class _Mount(modal._object._Object):
172
173
  self: _Mount,
173
174
  deployment_name: typing.Optional[str] = None,
174
175
  namespace=1,
176
+ *,
175
177
  environment_name: typing.Optional[str] = None,
178
+ allow_overwrite: bool = False,
176
179
  client: typing.Optional[modal.client._Client] = None,
177
180
  ) -> None: ...
178
181
  def _get_metadata(self) -> modal_proto.api_pb2.MountHandleMetadata: ...
@@ -184,6 +187,7 @@ class Mount(modal.object.Object):
184
187
  _deployment_name: typing.Optional[str]
185
188
  _namespace: typing.Optional[int]
186
189
  _environment_name: typing.Optional[str]
190
+ _allow_overwrite: bool
187
191
  _content_checksum_sha256_hex: typing.Optional[str]
188
192
 
189
193
  def __init__(self, *args, **kwargs): ...
@@ -288,7 +292,9 @@ class Mount(modal.object.Object):
288
292
  /,
289
293
  deployment_name: typing.Optional[str] = None,
290
294
  namespace=1,
295
+ *,
291
296
  environment_name: typing.Optional[str] = None,
297
+ allow_overwrite: bool = False,
292
298
  client: typing.Optional[modal.client.Client] = None,
293
299
  ) -> None: ...
294
300
  async def aio(
@@ -296,7 +302,9 @@ class Mount(modal.object.Object):
296
302
  /,
297
303
  deployment_name: typing.Optional[str] = None,
298
304
  namespace=1,
305
+ *,
299
306
  environment_name: typing.Optional[str] = None,
307
+ allow_overwrite: bool = False,
300
308
  client: typing.Optional[modal.client.Client] = None,
301
309
  ) -> None: ...
302
310
 
@@ -308,25 +316,26 @@ def _create_client_mount(): ...
308
316
  def create_client_mount(): ...
309
317
  def _get_client_mount(): ...
310
318
  def _is_modal_path(remote_path: pathlib.PurePosixPath): ...
311
- async def _create_single_mount(
319
+ async def _create_single_client_dependency_mount(
312
320
  client: modal.client._Client,
313
321
  builder_version: str,
314
322
  python_version: str,
315
- platform: str,
316
323
  arch: str,
317
- uv_python_platform: str = None,
324
+ platform: str,
325
+ uv_python_platform: str,
318
326
  check_if_exists: bool = True,
327
+ allow_overwrite: bool = False,
319
328
  ): ...
320
329
  async def _create_client_dependency_mounts(
321
- client=None, check_if_exists=True, python_versions: list[str] = ["3.9", "3.10", "3.11", "3.12", "3.13"]
330
+ client=None, python_versions: list[str] = ["3.9", "3.10", "3.11", "3.12", "3.13"], check_if_exists=True
322
331
  ): ...
323
332
 
324
333
  class __create_client_dependency_mounts_spec(typing_extensions.Protocol):
325
334
  def __call__(
326
- self, /, client=None, check_if_exists=True, python_versions: list[str] = ["3.9", "3.10", "3.11", "3.12", "3.13"]
335
+ self, /, client=None, python_versions: list[str] = ["3.9", "3.10", "3.11", "3.12", "3.13"], check_if_exists=True
327
336
  ): ...
328
337
  async def aio(
329
- self, /, client=None, check_if_exists=True, python_versions: list[str] = ["3.9", "3.10", "3.11", "3.12", "3.13"]
338
+ self, /, client=None, python_versions: list[str] = ["3.9", "3.10", "3.11", "3.12", "3.13"], check_if_exists=True
330
339
  ): ...
331
340
 
332
341
  create_client_dependency_mounts: __create_client_dependency_mounts_spec
modal/parallel_map.py CHANGED
@@ -593,7 +593,7 @@ def _spawn_map_sync(self, *input_iterators, kwargs={}) -> None:
593
593
 
594
594
  return run_coroutine_in_temporary_event_loop(
595
595
  _spawn_map_async(self, *input_iterators, kwargs=kwargs),
596
- "You can't run Function.spawn_map() from an async function. Use Function.map.aio() instead.",
596
+ "You can't run Function.spawn_map() from an async function. Use Function.spawn_map.aio() instead.",
597
597
  )
598
598
 
599
599
 
@@ -1,16 +1,17 @@
1
- aiohappyeyeballs==2.4.3
2
- aiohttp==3.10.8
3
- aiosignal==1.3.1
4
- async-timeout==4.0.3 ; python_version < "3.11"
5
- attrs==24.2.0
6
- certifi==2024.8.30
7
- frozenlist==1.4.1
8
- grpclib==0.4.7
9
- h2==4.1.0
10
- hpack==4.0.0
11
- hyperframe==6.0.1
1
+ aiohappyeyeballs==2.6.1
2
+ aiohttp==3.12.7
3
+ aiosignal==1.3.2
4
+ async-timeout==5.0.1 ; python_version < "3.11"
5
+ attrs==25.3.0
6
+ certifi==2025.4.26
7
+ frozenlist==1.6.0
8
+ grpclib==0.4.8
9
+ h2==4.2.0
10
+ hpack==4.1.0
11
+ hyperframe==6.1.0
12
12
  idna==3.10
13
- multidict==6.1.0
14
- protobuf>=3.20,<6
15
- typing_extensions==4.12.2
16
- yarl==1.13.1
13
+ multidict==6.4.4
14
+ propcache==0.3.1
15
+ protobuf==6.31.1
16
+ typing_extensions==4.13.2
17
+ yarl==1.20.0
@@ -6,13 +6,35 @@
6
6
  "2023.12": "bullseye"
7
7
  },
8
8
  "python": {
9
- "PREVIEW": ["3.9.20", "3.10.15", "3.11.10", "3.12.6", "3.13.0"],
10
- "2024.10": ["3.9.20", "3.10.15", "3.11.10", "3.12.6", "3.13.0"],
11
- "2024.04": ["3.9.19", "3.10.14", "3.11.8", "3.12.2"],
12
- "2023.12": ["3.9.15", "3.10.8", "3.11.0", "3.12.1"]
9
+ "PREVIEW": [
10
+ "3.9.22",
11
+ "3.10.17",
12
+ "3.11.12",
13
+ "3.12.10",
14
+ "3.13.3"
15
+ ],
16
+ "2024.10": [
17
+ "3.9.20",
18
+ "3.10.15",
19
+ "3.11.10",
20
+ "3.12.6",
21
+ "3.13.0"
22
+ ],
23
+ "2024.04": [
24
+ "3.9.19",
25
+ "3.10.14",
26
+ "3.11.8",
27
+ "3.12.2"
28
+ ],
29
+ "2023.12": [
30
+ "3.9.15",
31
+ "3.10.8",
32
+ "3.11.0",
33
+ "3.12.1"
34
+ ]
13
35
  },
14
36
  "micromamba": {
15
- "PREVIEW": "1.5.10",
37
+ "PREVIEW": "2.1.1",
16
38
  "2024.10": "1.5.10",
17
39
  "2024.04": "1.5.8",
18
40
  "2023.12": "1.3.1"
@@ -23,4 +45,4 @@
23
45
  "2024.04": "pip wheel uv",
24
46
  "2023.12": "pip"
25
47
  }
26
- }
48
+ }
modal/sandbox.py CHANGED
@@ -105,6 +105,7 @@ class _Sandbox(_Object, type_prefix="sb"):
105
105
  proxy: Optional[_Proxy] = None,
106
106
  _experimental_scheduler_placement: Optional[SchedulerPlacement] = None,
107
107
  enable_snapshot: bool = False,
108
+ verbose: bool = False,
108
109
  ) -> "_Sandbox":
109
110
  """mdmd:hidden"""
110
111
 
@@ -205,6 +206,7 @@ class _Sandbox(_Object, type_prefix="sb"):
205
206
  network_access=network_access,
206
207
  proxy_id=(proxy.object_id if proxy else None),
207
208
  enable_snapshot=enable_snapshot,
209
+ verbose=verbose,
208
210
  )
209
211
 
210
212
  # Note - `resolver.app_id` will be `None` for app-less sandboxes
@@ -253,6 +255,8 @@ class _Sandbox(_Object, type_prefix="sb"):
253
255
  unencrypted_ports: Sequence[int] = [],
254
256
  # Reference to a Modal Proxy to use in front of this Sandbox.
255
257
  proxy: Optional[_Proxy] = None,
258
+ # Enable verbose logging for sandbox operations.
259
+ verbose: bool = False,
256
260
  # Enable memory snapshots.
257
261
  _experimental_enable_snapshot: bool = False,
258
262
  _experimental_scheduler_placement: Optional[
@@ -298,6 +302,7 @@ class _Sandbox(_Object, type_prefix="sb"):
298
302
  _experimental_enable_snapshot=_experimental_enable_snapshot,
299
303
  _experimental_scheduler_placement=_experimental_scheduler_placement,
300
304
  client=client,
305
+ verbose=verbose,
301
306
  )
302
307
 
303
308
  @staticmethod
@@ -342,6 +347,7 @@ class _Sandbox(_Object, type_prefix="sb"):
342
347
  SchedulerPlacement
343
348
  ] = None, # Experimental controls over fine-grained scheduling (alpha).
344
349
  client: Optional[_Client] = None,
350
+ verbose: bool = False,
345
351
  ):
346
352
  # This method exposes some internal arguments (currently `mounts`) which are not in the public API
347
353
  # `mounts` is currently only used by modal shell (cli) to provide a function's mounts to the
@@ -376,6 +382,7 @@ class _Sandbox(_Object, type_prefix="sb"):
376
382
  proxy=proxy,
377
383
  _experimental_scheduler_placement=_experimental_scheduler_placement,
378
384
  enable_snapshot=_experimental_enable_snapshot,
385
+ verbose=verbose,
379
386
  )
380
387
  obj._enable_snapshot = _experimental_enable_snapshot
381
388
 
modal/sandbox.pyi CHANGED
@@ -63,6 +63,7 @@ class _Sandbox(modal._object._Object):
63
63
  proxy: typing.Optional[modal.proxy._Proxy] = None,
64
64
  _experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
65
65
  enable_snapshot: bool = False,
66
+ verbose: bool = False,
66
67
  ) -> _Sandbox: ...
67
68
  @staticmethod
68
69
  async def create(
@@ -90,6 +91,7 @@ class _Sandbox(modal._object._Object):
90
91
  h2_ports: collections.abc.Sequence[int] = [],
91
92
  unencrypted_ports: collections.abc.Sequence[int] = [],
92
93
  proxy: typing.Optional[modal.proxy._Proxy] = None,
94
+ verbose: bool = False,
93
95
  _experimental_enable_snapshot: bool = False,
94
96
  _experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
95
97
  client: typing.Optional[modal.client._Client] = None,
@@ -124,6 +126,7 @@ class _Sandbox(modal._object._Object):
124
126
  _experimental_enable_snapshot: bool = False,
125
127
  _experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
126
128
  client: typing.Optional[modal.client._Client] = None,
129
+ verbose: bool = False,
127
130
  ): ...
128
131
  def _hydrate_metadata(self, handle_metadata: typing.Optional[google.protobuf.message.Message]): ...
129
132
  @staticmethod
@@ -236,6 +239,7 @@ class Sandbox(modal.object.Object):
236
239
  proxy: typing.Optional[modal.proxy.Proxy] = None,
237
240
  _experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
238
241
  enable_snapshot: bool = False,
242
+ verbose: bool = False,
239
243
  ) -> Sandbox: ...
240
244
 
241
245
  class __create_spec(typing_extensions.Protocol):
@@ -268,6 +272,7 @@ class Sandbox(modal.object.Object):
268
272
  h2_ports: collections.abc.Sequence[int] = [],
269
273
  unencrypted_ports: collections.abc.Sequence[int] = [],
270
274
  proxy: typing.Optional[modal.proxy.Proxy] = None,
275
+ verbose: bool = False,
271
276
  _experimental_enable_snapshot: bool = False,
272
277
  _experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
273
278
  client: typing.Optional[modal.client.Client] = None,
@@ -301,6 +306,7 @@ class Sandbox(modal.object.Object):
301
306
  h2_ports: collections.abc.Sequence[int] = [],
302
307
  unencrypted_ports: collections.abc.Sequence[int] = [],
303
308
  proxy: typing.Optional[modal.proxy.Proxy] = None,
309
+ verbose: bool = False,
304
310
  _experimental_enable_snapshot: bool = False,
305
311
  _experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
306
312
  client: typing.Optional[modal.client.Client] = None,
@@ -342,6 +348,7 @@ class Sandbox(modal.object.Object):
342
348
  _experimental_enable_snapshot: bool = False,
343
349
  _experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
344
350
  client: typing.Optional[modal.client.Client] = None,
351
+ verbose: bool = False,
345
352
  ): ...
346
353
  async def aio(
347
354
  self,
@@ -376,6 +383,7 @@ class Sandbox(modal.object.Object):
376
383
  _experimental_enable_snapshot: bool = False,
377
384
  _experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
378
385
  client: typing.Optional[modal.client.Client] = None,
386
+ verbose: bool = False,
379
387
  ): ...
380
388
 
381
389
  _create: ___create_spec
modal/volume.py CHANGED
@@ -403,6 +403,10 @@ class _Volume(_Object, type_prefix="vo"):
403
403
  """
404
404
  Read a file from the modal.Volume.
405
405
 
406
+ Note - this function is primarily intended to be used outside of a Modal App.
407
+ For more information on downloading files from a Modal Volume, see
408
+ [the guide](/docs/guide/volumes).
409
+
406
410
  **Example:**
407
411
 
408
412
  ```python notest
@@ -443,6 +447,7 @@ class _Volume(_Object, type_prefix="vo"):
443
447
  Read volume file into file-like IO object.
444
448
  """
445
449
  if progress_cb is None:
450
+
446
451
  def progress_cb(*_, **__):
447
452
  pass
448
453
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.0.3.dev27
3
+ Version: 1.0.4
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -22,7 +22,7 @@ Requires-Dist: click~=8.1.0
22
22
  Requires-Dist: grpclib==0.4.7
23
23
  Requires-Dist: protobuf!=4.24.0,<7.0,>=3.19
24
24
  Requires-Dist: rich>=12.0.0
25
- Requires-Dist: synchronicity~=0.9.12
25
+ Requires-Dist: synchronicity~=0.9.15
26
26
  Requires-Dist: toml
27
27
  Requires-Dist: typer>=0.9
28
28
  Requires-Dist: types-certifi
@@ -8,7 +8,7 @@ modal/_ipython.py,sha256=TW1fkVOmZL3YYqdS2YlM1hqpf654Yf8ZyybHdBnlhSw,301
8
8
  modal/_location.py,sha256=joiX-0ZeutEUDTrrqLF1GHXCdVLF-rHzstocbMcd_-k,366
9
9
  modal/_object.py,sha256=KzzzZoM41UQUiY9TKOrft9BtZKgjWG_ukdlyLGjB4UY,10758
10
10
  modal/_output.py,sha256=LRM9KroHuR7t5pq8iLYjpFz1sQrHYan2kvRDjT6KAw4,26082
11
- modal/_partial_function.py,sha256=wzUo_p8arngumPkM5sNIrZ2DluqJl-Z6w5Ds1jHGlyw,39151
11
+ modal/_partial_function.py,sha256=RIsKpuJ7FrP8hGSowShwGsAzcEQEwW48AQaTiUku71c,39159
12
12
  modal/_pty.py,sha256=JZfPDDpzqICZqtyPI_oMJf_9w-p_lLNuzHhwhodUXio,1329
13
13
  modal/_resolver.py,sha256=-nolqj_p_mx5czVYj1Mazh2IQWpSMrTOGughVJqYfo8,7579
14
14
  modal/_resources.py,sha256=NMAp0GCLutiZI4GuKSIVnRHVlstoD3hNGUabjTUtzf4,1794
@@ -22,11 +22,11 @@ modal/app.py,sha256=NZ_rJ9TuMfiNiLg8-gOFgufD5flGtXWPHOZI0gdD3hE,46585
22
22
  modal/app.pyi,sha256=4-b_vbe3lNAqQPcMRpQCEDsE1zsVkQRJGUql9B7HvbM,22659
23
23
  modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
24
24
  modal/client.py,sha256=OwISJvkgMb-rHm9Gc4i-7YcDgGiZgwJ7F_PzwZH7a6Q,16847
25
- modal/client.pyi,sha256=1GPfWYDBPCm6S9mgPue1-ZgAnApI1I1qMQcGkhH53dE,8459
25
+ modal/client.pyi,sha256=fZ3jD3pcMRpRA5a1eikL6EcnP8-NIMuR2ufZKlStOKI,8381
26
26
  modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
27
27
  modal/cloud_bucket_mount.pyi,sha256=30T3K1a89l6wzmEJ_J9iWv9SknoGqaZDx59Xs-ZQcmk,1607
28
- modal/cls.py,sha256=dBbeARwOWftlKd1cwtM0cHFtQWSWkwVXwVmOV4w0SyI,37907
29
- modal/cls.pyi,sha256=-gSV02T5S1La1dvmHHB_f139nNySk5MeXRSF4yp8z4s,12660
28
+ modal/cls.py,sha256=JjxAeVudXKMp-co9YUnsGG6COJOv91K0ylf4f3mR67o,39792
29
+ modal/cls.pyi,sha256=EL1mQuyf8nAL2AjVZVnZhDzhakUmQt1ZtOVMy_aYWJI,12742
30
30
  modal/config.py,sha256=e8sQ4RgwgJ_45S302vWUWs_wqRlKyEt3tU898RiaDKE,12073
31
31
  modal/container_process.py,sha256=PDvjcyZ6eeN8foKQgR0WJ66Sg3lt7OFhK7Y_Akz6k5w,5846
32
32
  modal/container_process.pyi,sha256=pPIUxVV_TY4huO2jF5cSSjb6L_EN7Es4xRvuwZ5sa5M,2802
@@ -35,8 +35,8 @@ modal/dict.pyi,sha256=RBaQyOd1ABRNN7vIf5L_rv94y7Kq5Qn9IlKHSr4j8N0,8120
35
35
  modal/environments.py,sha256=gHFNLG78bqgizpQ4w_elz27QOqmcgAonFsmLs7NjUJ4,6804
36
36
  modal/environments.pyi,sha256=4HbI0kywveaUVI7HqDtZ4HphCTGXYi_wie2hz87up5A,3425
37
37
  modal/exception.py,sha256=2pgq-j8JP-tB3yU2VmYOzn9CsynU9_h8IU_MgqgKegM,5352
38
- modal/file_io.py,sha256=lcMs_E9Xfm0YX1t9U2wNIBPnqHRxmImqjLW1GHqVmyg,20945
39
- modal/file_io.pyi,sha256=oB7x-rKq7bmm8cA7Z7W9C9yeko7KK9m9i5GidFnkGK4,9569
38
+ modal/file_io.py,sha256=SCBfLk5gRieqdTVlA_f-2YHHtRp7Iy_sA6iR1zPsO3c,21100
39
+ modal/file_io.pyi,sha256=IPQsnr5nn5Ci4OdjmRPSI1qi3AYamxWMhpEFNYPKlHM,9436
40
40
  modal/file_pattern_matcher.py,sha256=wov-otB5M1oTdrYDtR2_VgacYin2srdtAP4McA1Cqzw,6516
41
41
  modal/functions.py,sha256=kcNHvqeGBxPI7Cgd57NIBBghkfbeFJzXO44WW0jSmao,325
42
42
  modal/functions.pyi,sha256=5T58OucdNU4I-LqhBdwsWSAGka-Wa8nP2GcZ5K1bOL0,16236
@@ -45,14 +45,14 @@ modal/image.py,sha256=yrI9DCw7GAck3d788GCHJom-_yU55zNu7reNapBhlgE,93284
45
45
  modal/image.pyi,sha256=2xjB6XOZDtm_chDdd90UoIj8pnDt5hCg6bOmu5fNaA4,25625
46
46
  modal/io_streams.py,sha256=YDZVQSDv05DeXg5TwcucC9Rj5hQBx2GXdluan9rIUpw,15467
47
47
  modal/io_streams.pyi,sha256=1UK6kWLREASQfq-wL9wSp5iqjLU0egRZPDn4LXs1PZY,5136
48
- modal/mount.py,sha256=HbSN-45SWLB7MvIeGcBDKa5nP0Z3wFyKIRX-B37Epw4,34637
49
- modal/mount.pyi,sha256=h4yzzppRKvD3JuTTjm9hE2Ye_aUKueTV09F5I_Regjg,13364
48
+ modal/mount.py,sha256=7gdzBNueSjPsgsdisMv1bv5SncEQyWc6D-YlAbpze3s,35523
49
+ modal/mount.pyi,sha256=xuJ3vaz33I9Mk8jxQPjlOxX5NC4WT5rqiazX3faS59U,13630
50
50
  modal/network_file_system.py,sha256=lgtmHYjzA5gDMx0tysH0-WJB2Ao9JD2W15NyYK2A7_w,14612
51
51
  modal/network_file_system.pyi,sha256=58DiUqHGlARmI3cz-Yo7IFObKKFIiGh5UIU5JxGNFfc,8333
52
52
  modal/object.py,sha256=bTeskuY8JFrESjU4_UL_nTwYlBQdOLmVaOX3X6EMxsg,164
53
53
  modal/object.pyi,sha256=UkR8NQ1jCIaw3hBUPxBRc6vvrOqtV37G_hsW2O5-4wE,5378
54
54
  modal/output.py,sha256=q4T9uHduunj4NwY-YSwkHGgjZlCXMuJbfQ5UFaAGRAc,1968
55
- modal/parallel_map.py,sha256=zlJTh3NuqlrmxkcZMSXerM2dKytYX3Pr737vBLr9AX4,37428
55
+ modal/parallel_map.py,sha256=1SOOUzKGVItv9fP2WvYR5vl49Y5q2GdupsnJMLIUDUw,37434
56
56
  modal/parallel_map.pyi,sha256=mhYGQmufQEJbjNrX7vNhBS2gUdfBrpmuWNUHth_Dz6U,6140
57
57
  modal/partial_function.py,sha256=SwuAAj2wj4SO6F6nkSnwNZrczEmm9w9YdlQTHh6hr04,1195
58
58
  modal/partial_function.pyi,sha256=NFWz1aCAs2B3-GnPf1cTatWRZOLnYpFKCnjP_X9iNRs,6411
@@ -65,8 +65,8 @@ modal/retries.py,sha256=IvNLDM0f_GLUDD5VgEDoN09C88yoxSrCquinAuxT1Sc,5205
65
65
  modal/runner.py,sha256=VV-PC03waAdSc_tAwpVN427TelOgs-cKeYS2GFeVRuA,24029
66
66
  modal/runner.pyi,sha256=1AnEu48SUPnLWp3raQ2zJCV5lc85EGLkX2nL0bHWaB0,5162
67
67
  modal/running_app.py,sha256=v61mapYNV1-O-Uaho5EfJlryMLvIT9We0amUOSvSGx8,1188
68
- modal/sandbox.py,sha256=6Ki2aBANqqN7THC1U7ymzJEUN7bPRqixAX9TBFh05Mc,36250
69
- modal/sandbox.pyi,sha256=KvIYfLIvWdTEbuu0oWoS2I_8UiT6HU2hNsEaS7AjFR4,28688
68
+ modal/sandbox.py,sha256=j4uQXiXPNKmQ_FyvzT9W9bWsElJOp2Vl--rBqszmCis,36491
69
+ modal/sandbox.pyi,sha256=2kCltK5PZwwYBJo70vfV4Ja8Vv_T9BBWJT18am4XA0c,28952
70
70
  modal/schedule.py,sha256=SdH8jk6S0zoc1bTRVblrVw0zBsNwPlSC2gNpVxMet9g,3061
71
71
  modal/scheduler_placement.py,sha256=BAREdOY5HzHpzSBqt6jDVR6YC_jYfHMVqOzkyqQfngU,1235
72
72
  modal/secret.py,sha256=I2z-rgKWl_Ix107d2_Y2OWGXdFOuJ7zMOyDfIOdFI1A,10374
@@ -78,7 +78,7 @@ modal/snapshot.pyi,sha256=dIEBdTPb7O3VwkQ8TMPjfyU17RLuS9i0DnACxxHy8X4,676
78
78
  modal/stream_type.py,sha256=A6320qoAAWhEfwOCZfGtymQTu5AfLfJXXgARqooTPvY,417
79
79
  modal/token_flow.py,sha256=0_4KabXKsuE4OXTJ1OuLOtA-b1sesShztMZkkRFK7tA,7605
80
80
  modal/token_flow.pyi,sha256=ILbRv6JsZq-jK8jcJM7eB74e0PsbzwBm7hyPcV9lBlQ,2121
81
- modal/volume.py,sha256=KOucCFS5uBTJ5IDUNYhBZfpAYp7U36YynpCdyyEmzpU,42825
81
+ modal/volume.py,sha256=IFObO-sJMbiet9dqWOaHz__6WNt5R0TtrrUWSukQP7E,43030
82
82
  modal/volume.pyi,sha256=Os4MESmmUPkLF5jOW6nbrozMILDh6Uzb1VB_nLm-pLQ,19242
83
83
  modal/_runtime/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
84
84
  modal/_runtime/asgi.py,sha256=_2xSTsDD27Cit7xnMs4lzkJA2wzer2_N4Oa3BkXFzVA,22521
@@ -91,7 +91,7 @@ modal/_runtime/telemetry.py,sha256=T1RoAGyjBDr1swiM6pPsGRSITm7LI5FDK18oNXxY08U,5
91
91
  modal/_runtime/user_code_imports.py,sha256=78wJyleqY2RVibqcpbDQyfWVBVT9BjyHPeoV9WdwV5Y,17720
92
92
  modal/_utils/__init__.py,sha256=waLjl5c6IPDhSsdWAm9Bji4e2PVxamYABKAze6CHVXY,28
93
93
  modal/_utils/app_utils.py,sha256=88BT4TPLWfYAQwKTHcyzNQRHg8n9B-QE2UyJs96iV-0,108
94
- modal/_utils/async_utils.py,sha256=zjdtdA54zvNL_RuREmN5NWFhhiRcNh8z0jT2rBc5RgY,28001
94
+ modal/_utils/async_utils.py,sha256=wgOSjofVaQAyP8Oq_xTSET5mYP5Y5W_eaQCPmE63xRA,29321
95
95
  modal/_utils/blob_utils.py,sha256=IexC2Jbtqp_Tkmy62ayfgzTYte0UPCNufB_v-DO21g8,18585
96
96
  modal/_utils/bytes_io_segment_payload.py,sha256=vaXPq8b52-x6G2hwE7SrjS58pg_aRm7gV3bn3yjmTzQ,4261
97
97
  modal/_utils/deprecation.py,sha256=EXP1beU4pmEqEzWMLw6E3kUfNfpmNA_VOp6i0EHi93g,4856
@@ -127,14 +127,14 @@ modal/cli/entry_point.py,sha256=Ytpsy0MTLQC1RSClI0wNhCbiy6ecPO8555PMmsrxoSc,4377
127
127
  modal/cli/environment.py,sha256=Ayddkiq9jdj3XYDJ8ZmUqFpPPH8xajYlbexRkzGtUcg,4334
128
128
  modal/cli/import_refs.py,sha256=pmzY0hpexx6DtvobNmCOvRqEdS9IriEP4BpMw1TIy2w,13911
129
129
  modal/cli/launch.py,sha256=0_sBu6bv2xJEPWi-rbGS6Ri9ggnkWQvrGlgpYSUBMyY,3097
130
- modal/cli/network_file_system.py,sha256=DoIdY8I42DjFdTtaYuRKNm7GC6vY0QtA4mk6694fbuU,7983
130
+ modal/cli/network_file_system.py,sha256=1_BF95WPLHh7x37lr0JBx5nS8NsKXCDZKt0L2F5fHgo,8104
131
131
  modal/cli/profile.py,sha256=0TYhgRSGUvQZ5LH9nkl6iZllEvAjDniES264dE57wOM,3201
132
132
  modal/cli/queues.py,sha256=1OzC9HdCkbNz6twF3US4FZmIhuVRQ01GOfBY42ux61A,4533
133
- modal/cli/run.py,sha256=vB4Qc0w9-8778Kme038DPxpFLLVAGo_KcJ7403ikMJY,24325
133
+ modal/cli/run.py,sha256=T-Votd_0t3avdfB0HJ7cvQO6TyLHvzGJhk93FFopAbU,24658
134
134
  modal/cli/secret.py,sha256=2bngl3Gb6THXkQ2eWZIN9pOHeOFJqiSNo_waUCVYgns,6611
135
135
  modal/cli/token.py,sha256=mxSgOWakXG6N71hQb1ko61XAR9ZGkTMZD-Txn7gmTac,1924
136
136
  modal/cli/utils.py,sha256=9Q7DIUX78-c19zBQNA7EtkgqIFatvHWUVGHwUIeBX_0,3366
137
- modal/cli/volume.py,sha256=W7i4zJyHSPmvP4e4CEv739KpoDCmFO3aIXxPQuuetXg,10840
137
+ modal/cli/volume.py,sha256=KJ4WKQYjRGsTERkwHE1HcRia9rWzLIDDnlc89QmTLvE,10960
138
138
  modal/cli/programs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
139
139
  modal/cli/programs/run_jupyter.py,sha256=44Lpvqk2l3hH-uOkmAOzw60NEsfB5uaRDWDKVshvQhs,2682
140
140
  modal/cli/programs/vscode.py,sha256=KbTAaIXyQBVCDXxXjmBHmKpgXkUw0q4R4KkJvUjCYgk,3380
@@ -144,10 +144,10 @@ modal/requirements/2023.12.312.txt,sha256=zWWUVgVQ92GXBKNYYr2-5vn9rlnXcmkqlwlX5u
144
144
  modal/requirements/2023.12.txt,sha256=OjsbXFkCSdkzzryZP82Q73osr5wxQ6EUzmGcK7twfkA,502
145
145
  modal/requirements/2024.04.txt,sha256=6NnrbIE-mflwMyKyQ0tsWeY8XFE1kSW9oE8DVDoD8QU,544
146
146
  modal/requirements/2024.10.txt,sha256=qD-5cVIVM9wXesJ6JC89Ew-3m2KjEElUz3jaw_MddRo,296
147
- modal/requirements/PREVIEW.txt,sha256=qD-5cVIVM9wXesJ6JC89Ew-3m2KjEElUz3jaw_MddRo,296
147
+ modal/requirements/PREVIEW.txt,sha256=KxDaVTOwatHvboDo4lorlgJ7-n-MfAwbPwxJ0zcJqrs,312
148
148
  modal/requirements/README.md,sha256=9tK76KP0Uph7O0M5oUgsSwEZDj5y-dcUPsnpR0Sc-Ik,854
149
- modal/requirements/base-images.json,sha256=57vMSqzMbLBxw5tFWSaMiIkkVEps4JfX5PAtXGnkS4U,740
150
- modal-1.0.3.dev27.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
149
+ modal/requirements/base-images.json,sha256=f1bwyp2UkM844eoO9Qk30gQw_xrMqKpMSeJ6MErXnEk,995
150
+ modal-1.0.4.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
151
151
  modal_docs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
152
152
  modal_docs/gen_cli_docs.py,sha256=c1yfBS_x--gL5bs0N4ihMwqwX8l3IBWSkBAKNNIi6bQ,3801
153
153
  modal_docs/gen_reference_docs.py,sha256=d_CQUGQ0rfw28u75I2mov9AlS773z9rG40-yq5o7g2U,6359
@@ -155,10 +155,10 @@ modal_docs/mdmd/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,2
155
155
  modal_docs/mdmd/mdmd.py,sha256=Irx49MCCTlBOP4FBdLR--JrpA3-WhsVeriq0LGgsRic,6232
156
156
  modal_docs/mdmd/signatures.py,sha256=XJaZrK7Mdepk5fdX51A8uENiLFNil85Ud0d4MH8H5f0,3218
157
157
  modal_proto/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
158
- modal_proto/api.proto,sha256=W-cvTWRT5LWw6FvfZUWGORQMEkUV4hqBpmbDD24N3C4,96314
158
+ modal_proto/api.proto,sha256=aBHQSEFm1Os9ciCl6N9N5bhumjdJIpl7VPSbP2Chjk4,96432
159
159
  modal_proto/api_grpc.py,sha256=iY5o_Tm4VDP-Wa1JgA_NpQa_Y-4FYB_RN9wdSUExjwI,117469
160
- modal_proto/api_pb2.py,sha256=C0eUCmX2r7X7UgXkNkK30zA8GqQE9JgzShaJz_eay8Q,338564
161
- modal_proto/api_pb2.pyi,sha256=51bFLZW74Cy5F4wEm36ZXHKfFht-cfB4RCre4WWAteo,463616
160
+ modal_proto/api_pb2.py,sha256=PTGsaddASU8iqRoaTFmV5bNg-TtGGUGvf8tTVWjeR1Q,338641
161
+ modal_proto/api_pb2.pyi,sha256=hMvUMcYnpt7tR0fdkL-sDuOM-r2vistuds_rL03xY-k,463959
162
162
  modal_proto/api_pb2_grpc.py,sha256=NL5prOS_hh_pA1hVvQP_ZRE1w49N-PR8iNPRZ65i6nA,254089
163
163
  modal_proto/api_pb2_grpc.pyi,sha256=Xxgdcnv1mBnu5_AQxJ6fo0yz7GnqVU0HVObNfZWHVfM,59440
164
164
  modal_proto/modal_api_grpc.py,sha256=0ir2lnwT3-IgPcAWw98yWMAiqZPkjvNro9UBk4u8hnk,17763
@@ -170,10 +170,10 @@ modal_proto/options_pb2.pyi,sha256=l7DBrbLO7q3Ir-XDkWsajm0d0TQqqrfuX54i4BMpdQg,1
170
170
  modal_proto/options_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
171
171
  modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0yJSI,247
172
172
  modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
173
- modal_version/__init__.py,sha256=eirvDB9Mszj-uky9aXge_PlFZb6oYhExcj5KYivAi_c,121
173
+ modal_version/__init__.py,sha256=9p5cM97dzsoK-TX04rbu9Y6nGx9swUC56MLMfh1PLS4,115
174
174
  modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
175
- modal-1.0.3.dev27.dist-info/METADATA,sha256=pF-z-vH6sWixfB-QK9R3bhOfUpaspS76-MU6tf8hnbA,2455
176
- modal-1.0.3.dev27.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
177
- modal-1.0.3.dev27.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
178
- modal-1.0.3.dev27.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
179
- modal-1.0.3.dev27.dist-info/RECORD,,
175
+ modal-1.0.4.dist-info/METADATA,sha256=zKzh_QazPnnHnJikFZk3NUOp-_KnSY0bRpmafwYtmKM,2449
176
+ modal-1.0.4.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
177
+ modal-1.0.4.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
178
+ modal-1.0.4.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
179
+ modal-1.0.4.dist-info/RECORD,,
modal_proto/api.proto CHANGED
@@ -2440,6 +2440,9 @@ message Sandbox {
2440
2440
 
2441
2441
  // If set, overrides the runtime used by the function, either "runc" or "gvisor".
2442
2442
  optional string runtime = 28;
2443
+
2444
+ // If set, the sandbox will be created with verbose logging enabled.
2445
+ bool verbose = 29;
2443
2446
  }
2444
2447
 
2445
2448
  message SandboxCreateRequest {
@@ -2793,6 +2796,7 @@ message TaskInfo {
2793
2796
  modal.client.GenericResult result = 4;
2794
2797
  double enqueued_at = 5;
2795
2798
  string gpu_type = 6;
2799
+ string sandbox_id = 7;
2796
2800
  }
2797
2801
 
2798
2802
  message TaskListRequest {