modal 1.1.2.dev15__py3-none-any.whl → 1.1.2.dev17__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/secret.pyi CHANGED
@@ -63,6 +63,32 @@ class _SecretManager:
63
63
  """
64
64
  ...
65
65
 
66
+ @staticmethod
67
+ async def delete(
68
+ name: str,
69
+ *,
70
+ allow_missing: bool = False,
71
+ environment_name: typing.Optional[str] = None,
72
+ client: typing.Optional[modal.client._Client] = None,
73
+ ):
74
+ """Delete a named Secret.
75
+
76
+ Warning: Deletion is irreversible and will affect any Apps currently using the Secret.
77
+
78
+ **Examples:**
79
+
80
+ ```python notest
81
+ await modal.Secret.objects.delete("my-secret")
82
+ ```
83
+
84
+ Secrets will be deleted from the active environment, or another one can be specified:
85
+
86
+ ```python notest
87
+ await modal.Secret.objects.delete("my-secret", environment_name="dev")
88
+ ```
89
+ """
90
+ ...
91
+
66
92
  class SecretManager:
67
93
  """Namespace with methods for managing named Secret objects."""
68
94
  def __init__(self, /, *args, **kwargs):
@@ -138,6 +164,63 @@ class SecretManager:
138
164
 
139
165
  list: __list_spec
140
166
 
167
+ class __delete_spec(typing_extensions.Protocol):
168
+ def __call__(
169
+ self,
170
+ /,
171
+ name: str,
172
+ *,
173
+ allow_missing: bool = False,
174
+ environment_name: typing.Optional[str] = None,
175
+ client: typing.Optional[modal.client.Client] = None,
176
+ ):
177
+ """Delete a named Secret.
178
+
179
+ Warning: Deletion is irreversible and will affect any Apps currently using the Secret.
180
+
181
+ **Examples:**
182
+
183
+ ```python notest
184
+ await modal.Secret.objects.delete("my-secret")
185
+ ```
186
+
187
+ Secrets will be deleted from the active environment, or another one can be specified:
188
+
189
+ ```python notest
190
+ await modal.Secret.objects.delete("my-secret", environment_name="dev")
191
+ ```
192
+ """
193
+ ...
194
+
195
+ async def aio(
196
+ self,
197
+ /,
198
+ name: str,
199
+ *,
200
+ allow_missing: bool = False,
201
+ environment_name: typing.Optional[str] = None,
202
+ client: typing.Optional[modal.client.Client] = None,
203
+ ):
204
+ """Delete a named Secret.
205
+
206
+ Warning: Deletion is irreversible and will affect any Apps currently using the Secret.
207
+
208
+ **Examples:**
209
+
210
+ ```python notest
211
+ await modal.Secret.objects.delete("my-secret")
212
+ ```
213
+
214
+ Secrets will be deleted from the active environment, or another one can be specified:
215
+
216
+ ```python notest
217
+ await modal.Secret.objects.delete("my-secret", environment_name="dev")
218
+ ```
219
+ """
220
+ ...
221
+
222
+ delete: __delete_spec
223
+
141
224
  class _Secret(modal._object._Object):
142
225
  """Secrets provide a dictionary of environment variables for images.
143
226
 
modal/volume.py CHANGED
@@ -30,7 +30,7 @@ from synchronicity.async_wrap import asynccontextmanager
30
30
 
31
31
  import modal.exception
32
32
  import modal_proto.api_pb2
33
- from modal.exception import InvalidError, VolumeUploadTimeoutError
33
+ from modal.exception import InvalidError, NotFoundError, VolumeUploadTimeoutError
34
34
  from modal_proto import api_pb2
35
35
 
36
36
  from ._object import (
@@ -171,6 +171,40 @@ class _VolumeManager:
171
171
  volumes = [_Volume._new_hydrated(item.volume_id, client, item.metadata, is_another_app=True) for item in items]
172
172
  return volumes[:max_objects] if max_objects is not None else volumes
173
173
 
174
+ @staticmethod
175
+ async def delete(
176
+ name: str, # Name of the Volume to delete
177
+ *,
178
+ allow_missing: bool = False, # If True, don't raise an error if the Volume doesn't exist
179
+ environment_name: Optional[str] = None, # Uses active environment if not specified
180
+ client: Optional[_Client] = None, # Optional client with Modal credentials
181
+ ):
182
+ """Delete a named Volume.
183
+
184
+ Warning: This deletes an *entire Volume*, not just a specific file.
185
+ Deletion is irreversible and will affect any Apps currently using the Volume.
186
+
187
+ **Examples:**
188
+
189
+ ```python notest
190
+ await modal.Volume.objects.delete("my-volume")
191
+ ```
192
+
193
+ Volumes will be deleted from the active environment, or another one can be specified:
194
+
195
+ ```python notest
196
+ await modal.Volume.objects.delete("my-volume", environment_name="dev")
197
+ ```
198
+ """
199
+ try:
200
+ obj = await _Volume.from_name(name, environment_name=environment_name).hydrate(client)
201
+ except NotFoundError:
202
+ if not allow_missing:
203
+ raise
204
+ else:
205
+ req = api_pb2.VolumeDeleteRequest(volume_id=obj.object_id)
206
+ await retry_transient_errors(obj._client.stub.VolumeDelete, req)
207
+
174
208
 
175
209
  VolumeManager = synchronize_api(_VolumeManager)
176
210
 
@@ -719,9 +753,20 @@ class _Volume(_Object, type_prefix="vo"):
719
753
 
720
754
  @staticmethod
721
755
  async def delete(name: str, client: Optional[_Client] = None, environment_name: Optional[str] = None):
722
- obj = await _Volume.from_name(name, environment_name=environment_name).hydrate(client)
723
- req = api_pb2.VolumeDeleteRequest(volume_id=obj.object_id)
724
- await retry_transient_errors(obj._client.stub.VolumeDelete, req)
756
+ """mdmd:hidden
757
+ Delete a named Volume.
758
+
759
+ Warning: This deletes an *entire Volume*, not just a specific file.
760
+ Deletion is irreversible and will affect any Apps currently using the Volume.
761
+
762
+ DEPRECATED: This method is deprecated; we recommend using `modal.Volume.objects.delete` instead.
763
+
764
+ """
765
+ deprecation_warning(
766
+ (2025, 8, 6),
767
+ "`modal.Volume.delete` is deprecated; we recommend using `modal.Volume.objects.delete` instead.",
768
+ )
769
+ await _Volume.objects.delete(name, environment_name=environment_name, client=client)
725
770
 
726
771
  @staticmethod
727
772
  async def rename(
modal/volume.pyi CHANGED
@@ -114,6 +114,33 @@ class _VolumeManager:
114
114
  """
115
115
  ...
116
116
 
117
+ @staticmethod
118
+ async def delete(
119
+ name: str,
120
+ *,
121
+ allow_missing: bool = False,
122
+ environment_name: typing.Optional[str] = None,
123
+ client: typing.Optional[modal.client._Client] = None,
124
+ ):
125
+ """Delete a named Volume.
126
+
127
+ Warning: This deletes an *entire Volume*, not just a specific file.
128
+ Deletion is irreversible and will affect any Apps currently using the Volume.
129
+
130
+ **Examples:**
131
+
132
+ ```python notest
133
+ await modal.Volume.objects.delete("my-volume")
134
+ ```
135
+
136
+ Volumes will be deleted from the active environment, or another one can be specified:
137
+
138
+ ```python notest
139
+ await modal.Volume.objects.delete("my-volume", environment_name="dev")
140
+ ```
141
+ """
142
+ ...
143
+
117
144
  class VolumeManager:
118
145
  """Namespace with methods for managing named Volume objects."""
119
146
  def __init__(self, /, *args, **kwargs):
@@ -189,6 +216,65 @@ class VolumeManager:
189
216
 
190
217
  list: __list_spec
191
218
 
219
+ class __delete_spec(typing_extensions.Protocol):
220
+ def __call__(
221
+ self,
222
+ /,
223
+ name: str,
224
+ *,
225
+ allow_missing: bool = False,
226
+ environment_name: typing.Optional[str] = None,
227
+ client: typing.Optional[modal.client.Client] = None,
228
+ ):
229
+ """Delete a named Volume.
230
+
231
+ Warning: This deletes an *entire Volume*, not just a specific file.
232
+ Deletion is irreversible and will affect any Apps currently using the Volume.
233
+
234
+ **Examples:**
235
+
236
+ ```python notest
237
+ await modal.Volume.objects.delete("my-volume")
238
+ ```
239
+
240
+ Volumes will be deleted from the active environment, or another one can be specified:
241
+
242
+ ```python notest
243
+ await modal.Volume.objects.delete("my-volume", environment_name="dev")
244
+ ```
245
+ """
246
+ ...
247
+
248
+ async def aio(
249
+ self,
250
+ /,
251
+ name: str,
252
+ *,
253
+ allow_missing: bool = False,
254
+ environment_name: typing.Optional[str] = None,
255
+ client: typing.Optional[modal.client.Client] = None,
256
+ ):
257
+ """Delete a named Volume.
258
+
259
+ Warning: This deletes an *entire Volume*, not just a specific file.
260
+ Deletion is irreversible and will affect any Apps currently using the Volume.
261
+
262
+ **Examples:**
263
+
264
+ ```python notest
265
+ await modal.Volume.objects.delete("my-volume")
266
+ ```
267
+
268
+ Volumes will be deleted from the active environment, or another one can be specified:
269
+
270
+ ```python notest
271
+ await modal.Volume.objects.delete("my-volume", environment_name="dev")
272
+ ```
273
+ """
274
+ ...
275
+
276
+ delete: __delete_spec
277
+
192
278
  class _Volume(modal._object._Object):
193
279
  """A writeable volume that can be used to share files between one or more Modal functions.
194
280
 
@@ -479,7 +565,17 @@ class _Volume(modal._object._Object):
479
565
  @staticmethod
480
566
  async def delete(
481
567
  name: str, client: typing.Optional[modal.client._Client] = None, environment_name: typing.Optional[str] = None
482
- ): ...
568
+ ):
569
+ """mdmd:hidden
570
+ Delete a named Volume.
571
+
572
+ Warning: This deletes an *entire Volume*, not just a specific file.
573
+ Deletion is irreversible and will affect any Apps currently using the Volume.
574
+
575
+ DEPRECATED: This method is deprecated; we recommend using `modal.Volume.objects.delete` instead.
576
+ """
577
+ ...
578
+
483
579
  @staticmethod
484
580
  async def rename(
485
581
  old_name: str,
@@ -1000,14 +1096,33 @@ class Volume(modal.object.Object):
1000
1096
  name: str,
1001
1097
  client: typing.Optional[modal.client.Client] = None,
1002
1098
  environment_name: typing.Optional[str] = None,
1003
- ): ...
1099
+ ):
1100
+ """mdmd:hidden
1101
+ Delete a named Volume.
1102
+
1103
+ Warning: This deletes an *entire Volume*, not just a specific file.
1104
+ Deletion is irreversible and will affect any Apps currently using the Volume.
1105
+
1106
+ DEPRECATED: This method is deprecated; we recommend using `modal.Volume.objects.delete` instead.
1107
+ """
1108
+ ...
1109
+
1004
1110
  async def aio(
1005
1111
  self,
1006
1112
  /,
1007
1113
  name: str,
1008
1114
  client: typing.Optional[modal.client.Client] = None,
1009
1115
  environment_name: typing.Optional[str] = None,
1010
- ): ...
1116
+ ):
1117
+ """mdmd:hidden
1118
+ Delete a named Volume.
1119
+
1120
+ Warning: This deletes an *entire Volume*, not just a specific file.
1121
+ Deletion is irreversible and will affect any Apps currently using the Volume.
1122
+
1123
+ DEPRECATED: This method is deprecated; we recommend using `modal.Volume.objects.delete` instead.
1124
+ """
1125
+ ...
1011
1126
 
1012
1127
  delete: __delete_spec
1013
1128
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.2.dev15
3
+ Version: 1.1.2.dev17
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 @@ modal/app.py,sha256=kpq4kXp7pch688y6g55QYAC10wqPTU5FXKoWPMirA3E,47899
22
22
  modal/app.pyi,sha256=-jKXlGDBWRPVsuenBhdMRqawK-L2eiJ7gHbmSblhltg,43525
23
23
  modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
24
24
  modal/client.py,sha256=kyAIVB3Ay-XKJizQ_1ufUFB__EagV0MLmHJpyYyJ7J0,18636
25
- modal/client.pyi,sha256=wvmCOCOyaHOxFp4nUrQNW19iSCEs1NTs9PlY3-JoZjo,15831
25
+ modal/client.pyi,sha256=e2xkdtr64vOqBVPB-t7sXevBJwn8Fyxy6NJ_3X-Ig8U,15831
26
26
  modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
27
27
  modal/cloud_bucket_mount.pyi,sha256=-qSfYAQvIoO_l2wsCCGTG5ZUwQieNKXdAO00yP1-LYU,7394
28
28
  modal/cls.py,sha256=7A0xGnugQzm8dOfnKMjLjtqekRlRtQ0jPFRYgq6xdUM,40018
@@ -30,8 +30,8 @@ modal/cls.pyi,sha256=_tZ5qrlL-ZDEcD-mf9BZkkNH5XPr4SmGTEQ-RVmqF3I,27772
30
30
  modal/config.py,sha256=tW-SEGjVvAt3D_MNi3LhxXnFKIA9fjLd3UIgbW8uSJE,12121
31
31
  modal/container_process.py,sha256=XkPwNIW-iD_GB9u9yqv9q8y-i5cQ8eBbLZZ_GvEw9t8,6858
32
32
  modal/container_process.pyi,sha256=9m-st3hCUlNN1GOTctfPPvIvoLtEl7FbuGWwif5-7YU,6037
33
- modal/dict.py,sha256=w_AnV724XE2gF7cx5FqeR6SaGN4nFRhGSbZxrCTK2i0,18551
34
- modal/dict.pyi,sha256=AXQFTk99oj_0om5mvUmhBbFve2u3ZIpxniervijGKFg,26280
33
+ modal/dict.py,sha256=Xhc26Zl4LFjEsz32u36qbfvc70mlZ_VDAd_QsKOrNCY,20173
34
+ modal/dict.pyi,sha256=zHj9XK1uv8PR8Vvd9-RmMMd52002SxoNjNsrK2Bn1OE,29914
35
35
  modal/environments.py,sha256=gHFNLG78bqgizpQ4w_elz27QOqmcgAonFsmLs7NjUJ4,6804
36
36
  modal/environments.pyi,sha256=9-KtrzAcUe55cCP4020lSUD7-fWS7OPakAHssq4-bro,4219
37
37
  modal/exception.py,sha256=o0V93PK8Hcg2YQ2aeOB1Y-qWBw4Gz5ATfyokR8GapuQ,5634
@@ -59,8 +59,8 @@ modal/partial_function.pyi,sha256=lqqOzZ9-QvHTDWKQ_oAYYOvsXgTOBKhO9u-RI98JbUk,13
59
59
  modal/proxy.py,sha256=NQJJMGo-D2IfmeU0vb10WWaE4oTLcuf9jTeEJvactOg,1446
60
60
  modal/proxy.pyi,sha256=yWGWwADCRGrC2w81B7671UTH4Uv3HMZKy5vVqlJUZoA,1417
61
61
  modal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
- modal/queue.py,sha256=zEMCW_nDsROQ6mn6cVPmJCYnGxBMX2N2UfZy36klVNc,23071
63
- modal/queue.pyi,sha256=nWxvJ6hVMgI1HGu9jLuUne122uD-MQVDHdGzUcse-ng,32076
62
+ modal/queue.py,sha256=bmfEEMzkQHeMhCoxQj2DEGLlrBq2pe1n6JloLU_LuT4,24747
63
+ modal/queue.pyi,sha256=cnnd5ZxZA3X0xT-igJbLC3p0TXATNwkJaXC8qCeFphQ,35815
64
64
  modal/retries.py,sha256=IvNLDM0f_GLUDD5VgEDoN09C88yoxSrCquinAuxT1Sc,5205
65
65
  modal/runner.py,sha256=ostdzYpQb-20tlD6dIq7bpWTkZkOhjJBNuMNektqnJA,24068
66
66
  modal/runner.pyi,sha256=lbwLljm1cC8d6PcNvmYQhkE8501V9fg0bYqqKX6G4r4,8489
@@ -69,8 +69,8 @@ modal/sandbox.py,sha256=eQd0Cf9yTFCNshnj7oH8WvecbhVIwsEsmuXB9O-REis,40927
69
69
  modal/sandbox.pyi,sha256=_ddnvZGauSRG-WelsMB5oPil8KVWb0PSvmuAzAzrLIw,41713
70
70
  modal/schedule.py,sha256=ng0g0AqNY5GQI9KhkXZQ5Wam5G42glbkqVQsNpBtbDE,3078
71
71
  modal/scheduler_placement.py,sha256=BAREdOY5HzHpzSBqt6jDVR6YC_jYfHMVqOzkyqQfngU,1235
72
- modal/secret.py,sha256=v6KCSsSVuUVPsblpvP6b27aaDLHLt5xAVJsTzuymE48,14709
73
- modal/secret.pyi,sha256=J641LaHIWGSBH5HbC1hGFJnkk_MECSIAwVKufegGBq8,13517
72
+ modal/secret.py,sha256=uJUms_p7HtWFME8maVHSoHEGB_serWHTHM-z6oJb5cM,15923
73
+ modal/secret.pyi,sha256=5YTMzaybIoBtOFhK2T2SuhhvHBbo4lDm8sBqH-rITtk,15912
74
74
  modal/serving.py,sha256=3I3WBeVbzZY258u9PXBCW_dZBgypq3OhwBuTVvlgubE,4423
75
75
  modal/serving.pyi,sha256=YfixTaWikyYpwhnNxCHMZnDDQiPmV1xJ87QF91U_WGU,1924
76
76
  modal/snapshot.py,sha256=E3oxYQkYVRB_LeFBfmUV1Y6vHz8-azXJfC4x7A1QKnI,1455
@@ -78,8 +78,8 @@ modal/snapshot.pyi,sha256=0q83hlmWxAhDu8xwZyL5VmYh0i8Tigf7S60or2k30L8,1682
78
78
  modal/stream_type.py,sha256=A6320qoAAWhEfwOCZfGtymQTu5AfLfJXXgARqooTPvY,417
79
79
  modal/token_flow.py,sha256=GWpar0gANs71vm9Bd_Cj87UG1K3ljTURbkEjG3JLsrY,7616
80
80
  modal/token_flow.pyi,sha256=eirYjyqbRiT3GCKMIPHJPpkvBTu8WxDKqSHehWaJI_4,2533
81
- modal/volume.py,sha256=PipdiVxMpk5Fbhpq6cKI9cEsQNdCHUTFLb9YME07L_Q,48131
82
- modal/volume.pyi,sha256=_SPWRDH7u-UUSIgz5GnolgqDenU-wgYVtWE60oTKoFU,45736
81
+ modal/volume.py,sha256=l_hBz7xpfbXCIhY3KSrgwLHzvHQk-w9lLHoEPrXGzLU,49796
82
+ modal/volume.pyi,sha256=fnHhR152qCh5St7XT-PReQK_tPAQ0hmcXKoezOulEl4,49427
83
83
  modal/_runtime/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
84
84
  modal/_runtime/asgi.py,sha256=_2xSTsDD27Cit7xnMs4lzkJA2wzer2_N4Oa3BkXFzVA,22521
85
85
  modal/_runtime/container_io_manager.py,sha256=9oqlKKPuLZjE7rYw3zTK30XUZighT3s4ZlA-9oxXOVI,45206
@@ -131,19 +131,19 @@ modal/cli/app.py,sha256=rbuAG92my-1eZN0olk6p2eD4oBnyBliUsrCOUW-U-9k,7832
131
131
  modal/cli/cluster.py,sha256=8pQurDUvLP_HdSeHH5ZB6WIoDh48FR8qP9vGOtSsFXI,3168
132
132
  modal/cli/config.py,sha256=lhp2Pq4RbTDhaZJ-ZJvhrMqJj8c-WjuRX6gjE3TrvXc,1691
133
133
  modal/cli/container.py,sha256=9Ti-TIZ6vjDSmn9mk9h6SRwyhkQjtwirBN18LjpLyvE,3719
134
- modal/cli/dict.py,sha256=qClZPzaWvv8dm2bDaD6jYHkmJoooMzUHxKCd69whrb0,4551
134
+ modal/cli/dict.py,sha256=YAJtiv41YcCd5Fqam3hXCNTs4Y0yOgGR_i6RfQNSAFM,4572
135
135
  modal/cli/entry_point.py,sha256=M9ZeIsYx7rxdc6XP2iOIptVzmpj39D3rU8nfW7Dc3CQ,4388
136
136
  modal/cli/environment.py,sha256=Ayddkiq9jdj3XYDJ8ZmUqFpPPH8xajYlbexRkzGtUcg,4334
137
137
  modal/cli/import_refs.py,sha256=X59Z5JwgliRO6C-cIFto2Pr7o3SwlZMKQPKA0aI4ZK4,13927
138
138
  modal/cli/launch.py,sha256=A5NtAgVDnTMlVFNfTlGS4p4Hbhpub8jZL_T9wvCkK5k,6155
139
139
  modal/cli/network_file_system.py,sha256=I9IqTpVfk32uKYwGd8LTldkQx6UKYrQYNZ26q7Ab5Oo,8126
140
140
  modal/cli/profile.py,sha256=g8X6tFFK9ccKyu2he9Yu19WLSLNdztzECgmIV__XJFs,3257
141
- modal/cli/queues.py,sha256=RkSxO4zgB5Mk7nZzN9GAJ-oRdmVzTig3o7a7U1HKh7M,6093
141
+ modal/cli/queues.py,sha256=5vKtKQ7YExdaxNPYZ0g5suU9sX0-F5h0zy0qBV-hN80,6140
142
142
  modal/cli/run.py,sha256=96m6fpJKbjtva4xzJut0pxS36Z5WCMq0umpAry96im0,24946
143
- modal/cli/secret.py,sha256=AmtXi8HFIph2cHy3z6U0qBEMzQ49Cr3MYgkJad3tWY8,8062
143
+ modal/cli/secret.py,sha256=joJkA78-jKyGHx6VkpgCYvyWqmPa_BnU_GBMhpwsgTQ,7972
144
144
  modal/cli/token.py,sha256=NAmQzKBfEHkcldWKeFxAVIqQBoo1RTp7_A4yc7-8qM0,1911
145
145
  modal/cli/utils.py,sha256=aUXDU9_VgcJrGaGRy4bGf4dqwKYXHCpoO27x4m_bpuo,3293
146
- modal/cli/volume.py,sha256=xKjNixun7nIKQkqqZZDsKx756V0AFUx0D6RVXHQOEYA,10751
146
+ modal/cli/volume.py,sha256=73u0wj3xXGb2sGG6sR9StY4rE8OG7Ec_3_iPnXRUgPo,10760
147
147
  modal/cli/programs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
148
148
  modal/cli/programs/launch_instance_ssh.py,sha256=GrwK_Vy8-7B4x5a6AqFaF7lqNVgu75JYZ2BtFV0_DOw,2660
149
149
  modal/cli/programs/run_jupyter.py,sha256=44Lpvqk2l3hH-uOkmAOzw60NEsfB5uaRDWDKVshvQhs,2682
@@ -153,7 +153,7 @@ modal/experimental/__init__.py,sha256=v5uDRPVr2BNEyeOo6YNWNF5yFUddr66habUvEAqOAG
153
153
  modal/experimental/flash.py,sha256=viXQumCIFp5VFsPFURdFTBTjP_QnsAi8nSWXAMmfjeQ,19744
154
154
  modal/experimental/flash.pyi,sha256=A8_qJGtGoXEzKDdHbvhmCw7oqfneFEvJQK3ZdTOvUdU,10830
155
155
  modal/experimental/ipython.py,sha256=TrCfmol9LGsRZMeDoeMPx3Hv3BFqQhYnmD_iH0pqdhk,2904
156
- modal-1.1.2.dev15.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
156
+ modal-1.1.2.dev17.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
157
157
  modal_docs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
158
158
  modal_docs/gen_cli_docs.py,sha256=c1yfBS_x--gL5bs0N4ihMwqwX8l3IBWSkBAKNNIi6bQ,3801
159
159
  modal_docs/gen_reference_docs.py,sha256=d_CQUGQ0rfw28u75I2mov9AlS773z9rG40-yq5o7g2U,6359
@@ -161,10 +161,10 @@ modal_docs/mdmd/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,2
161
161
  modal_docs/mdmd/mdmd.py,sha256=tUTImNd4UMFk1opkaw8J672gX8AkBO5gbY2S_NMxsxs,7140
162
162
  modal_docs/mdmd/signatures.py,sha256=XJaZrK7Mdepk5fdX51A8uENiLFNil85Ud0d4MH8H5f0,3218
163
163
  modal_proto/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
164
- modal_proto/api.proto,sha256=F4GTT-yAUTZcFrE1hn5wIRFda5EUSR89YEUZvnVSzoY,103814
164
+ modal_proto/api.proto,sha256=h8dFXyBZjvdeg1xz6-KqtITH6wYvwaHnuf2PvP8aYtY,103857
165
165
  modal_proto/api_grpc.py,sha256=1mDcIexGtoVq0675-sqlYVr_M2ncGETpmKsOP7VwE3Y,126369
166
- modal_proto/api_pb2.py,sha256=fiPCK5cxXaCc-t59iONnuBIp_bXjm0h4cS2kyEvB9Y0,364247
167
- modal_proto/api_pb2.pyi,sha256=HMXw-aMogEC9UC1jU54zU_1lAcMsuq0dOWK_g-E87Vg,502260
166
+ modal_proto/api_pb2.py,sha256=Oqb451HSGpro9ZZ9qLmHWWrM13VJpRGWeGlB8KCykCU,364345
167
+ modal_proto/api_pb2.pyi,sha256=f4GsaHHROjX93jidQMREJzWo-nHmzJo7w114IBuGbCo,502782
168
168
  modal_proto/api_pb2_grpc.py,sha256=8TyCjBX-IvJaO_v7vkF_-J9h72wwLOe4MKL_jyXTK0g,272649
169
169
  modal_proto/api_pb2_grpc.pyi,sha256=SQtAD1GR57oJOjxohW_8XTHpRRCahy02FTq0IYWzTNs,63669
170
170
  modal_proto/modal_api_grpc.py,sha256=KL5Nw4AS9hJNxfL6VIeuxHz4jIUN7Unz7hYnoSsqyx0,19071
@@ -176,10 +176,10 @@ modal_proto/options_pb2.pyi,sha256=l7DBrbLO7q3Ir-XDkWsajm0d0TQqqrfuX54i4BMpdQg,1
176
176
  modal_proto/options_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
177
177
  modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0yJSI,247
178
178
  modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
179
- modal_version/__init__.py,sha256=iXde__cc44qFU3Y8IAcUmphGkYF01q-s9436opMRVGU,121
179
+ modal_version/__init__.py,sha256=sYlg70EASNLaHKfyOMOU_mrgrNoGklkiyZqbz9Vx0Bo,121
180
180
  modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
181
- modal-1.1.2.dev15.dist-info/METADATA,sha256=NWzcK-HdQjAXLCuTYF7fVsHx8EXr3JFKeN-N0U0CrMk,2460
182
- modal-1.1.2.dev15.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
183
- modal-1.1.2.dev15.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
184
- modal-1.1.2.dev15.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
185
- modal-1.1.2.dev15.dist-info/RECORD,,
181
+ modal-1.1.2.dev17.dist-info/METADATA,sha256=chTa87s92k0w8GkEjaVXJ6A7tNRl-R61c1LQnY3I2jw,2460
182
+ modal-1.1.2.dev17.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
183
+ modal-1.1.2.dev17.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
184
+ modal-1.1.2.dev17.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
185
+ modal-1.1.2.dev17.dist-info/RECORD,,
modal_proto/api.proto CHANGED
@@ -1824,6 +1824,7 @@ message FunctionOptions {
1824
1824
  optional uint32 batch_max_size = 15;
1825
1825
  optional uint64 batch_linger_ms = 16;
1826
1826
  optional SchedulerPlacement scheduler_placement = 17;
1827
+ optional string cloud_provider_str = 18;
1827
1828
  }
1828
1829
 
1829
1830
  message FunctionPrecreateRequest {