modal 1.0.3.dev12__py3-none-any.whl → 1.0.3.dev13__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/client.pyi CHANGED
@@ -31,7 +31,7 @@ class _Client:
31
31
  server_url: str,
32
32
  client_type: int,
33
33
  credentials: typing.Optional[tuple[str, str]],
34
- version: str = "1.0.3.dev12",
34
+ version: str = "1.0.3.dev13",
35
35
  ): ...
36
36
  def is_closed(self) -> bool: ...
37
37
  @property
@@ -94,7 +94,7 @@ class Client:
94
94
  server_url: str,
95
95
  client_type: int,
96
96
  credentials: typing.Optional[tuple[str, str]],
97
- version: str = "1.0.3.dev12",
97
+ version: str = "1.0.3.dev13",
98
98
  ): ...
99
99
  def is_closed(self) -> bool: ...
100
100
  @property
modal/sandbox.py CHANGED
@@ -100,6 +100,7 @@ class _Sandbox(_Object, type_prefix="sb"):
100
100
  volumes: dict[Union[str, os.PathLike], Union[_Volume, _CloudBucketMount]] = {},
101
101
  pty_info: Optional[api_pb2.PTYInfo] = None,
102
102
  encrypted_ports: Sequence[int] = [],
103
+ h2_ports: Sequence[int] = [],
103
104
  unencrypted_ports: Sequence[int] = [],
104
105
  proxy: Optional[_Proxy] = None,
105
106
  _experimental_scheduler_placement: Optional[SchedulerPlacement] = None,
@@ -155,6 +156,12 @@ class _Sandbox(_Object, type_prefix="sb"):
155
156
 
156
157
  open_ports = [api_pb2.PortSpec(port=port, unencrypted=False) for port in encrypted_ports]
157
158
  open_ports.extend([api_pb2.PortSpec(port=port, unencrypted=True) for port in unencrypted_ports])
159
+ open_ports.extend(
160
+ [
161
+ api_pb2.PortSpec(port=port, unencrypted=False, tunnel_type=api_pb2.TUNNEL_TYPE_H2)
162
+ for port in h2_ports
163
+ ]
164
+ )
158
165
 
159
166
  if block_network:
160
167
  # If the network is blocked, cidr_allowlist is invalid as we don't allow any network access.
@@ -240,6 +247,8 @@ class _Sandbox(_Object, type_prefix="sb"):
240
247
  pty_info: Optional[api_pb2.PTYInfo] = None,
241
248
  # List of ports to tunnel into the sandbox. Encrypted ports are tunneled with TLS.
242
249
  encrypted_ports: Sequence[int] = [],
250
+ # List of encrypted ports to tunnel into the sandbox, using HTTP/2.
251
+ h2_ports: Sequence[int] = [],
243
252
  # List of ports to tunnel into the sandbox without encryption.
244
253
  unencrypted_ports: Sequence[int] = [],
245
254
  # Reference to a Modal Proxy to use in front of this Sandbox.
@@ -283,6 +292,7 @@ class _Sandbox(_Object, type_prefix="sb"):
283
292
  volumes=volumes,
284
293
  pty_info=pty_info,
285
294
  encrypted_ports=encrypted_ports,
295
+ h2_ports=h2_ports,
286
296
  unencrypted_ports=unencrypted_ports,
287
297
  proxy=proxy,
288
298
  _experimental_enable_snapshot=_experimental_enable_snapshot,
@@ -320,6 +330,8 @@ class _Sandbox(_Object, type_prefix="sb"):
320
330
  pty_info: Optional[api_pb2.PTYInfo] = None,
321
331
  # List of ports to tunnel into the sandbox. Encrypted ports are tunneled with TLS.
322
332
  encrypted_ports: Sequence[int] = [],
333
+ # List of encrypted ports to tunnel into the sandbox, using HTTP/2.
334
+ h2_ports: Sequence[int] = [],
323
335
  # List of ports to tunnel into the sandbox without encryption.
324
336
  unencrypted_ports: Sequence[int] = [],
325
337
  # Reference to a Modal Proxy to use in front of this Sandbox.
@@ -359,6 +371,7 @@ class _Sandbox(_Object, type_prefix="sb"):
359
371
  volumes=volumes,
360
372
  pty_info=pty_info,
361
373
  encrypted_ports=encrypted_ports,
374
+ h2_ports=h2_ports,
362
375
  unencrypted_ports=unencrypted_ports,
363
376
  proxy=proxy,
364
377
  _experimental_scheduler_placement=_experimental_scheduler_placement,
modal/sandbox.pyi CHANGED
@@ -58,6 +58,7 @@ class _Sandbox(modal._object._Object):
58
58
  ] = {},
59
59
  pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
60
60
  encrypted_ports: collections.abc.Sequence[int] = [],
61
+ h2_ports: collections.abc.Sequence[int] = [],
61
62
  unencrypted_ports: collections.abc.Sequence[int] = [],
62
63
  proxy: typing.Optional[modal.proxy._Proxy] = None,
63
64
  _experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
@@ -86,6 +87,7 @@ class _Sandbox(modal._object._Object):
86
87
  ] = {},
87
88
  pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
88
89
  encrypted_ports: collections.abc.Sequence[int] = [],
90
+ h2_ports: collections.abc.Sequence[int] = [],
89
91
  unencrypted_ports: collections.abc.Sequence[int] = [],
90
92
  proxy: typing.Optional[modal.proxy._Proxy] = None,
91
93
  _experimental_enable_snapshot: bool = False,
@@ -116,6 +118,7 @@ class _Sandbox(modal._object._Object):
116
118
  ] = {},
117
119
  pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
118
120
  encrypted_ports: collections.abc.Sequence[int] = [],
121
+ h2_ports: collections.abc.Sequence[int] = [],
119
122
  unencrypted_ports: collections.abc.Sequence[int] = [],
120
123
  proxy: typing.Optional[modal.proxy._Proxy] = None,
121
124
  _experimental_enable_snapshot: bool = False,
@@ -228,6 +231,7 @@ class Sandbox(modal.object.Object):
228
231
  ] = {},
229
232
  pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
230
233
  encrypted_ports: collections.abc.Sequence[int] = [],
234
+ h2_ports: collections.abc.Sequence[int] = [],
231
235
  unencrypted_ports: collections.abc.Sequence[int] = [],
232
236
  proxy: typing.Optional[modal.proxy.Proxy] = None,
233
237
  _experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
@@ -261,6 +265,7 @@ class Sandbox(modal.object.Object):
261
265
  ] = {},
262
266
  pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
263
267
  encrypted_ports: collections.abc.Sequence[int] = [],
268
+ h2_ports: collections.abc.Sequence[int] = [],
264
269
  unencrypted_ports: collections.abc.Sequence[int] = [],
265
270
  proxy: typing.Optional[modal.proxy.Proxy] = None,
266
271
  _experimental_enable_snapshot: bool = False,
@@ -293,6 +298,7 @@ class Sandbox(modal.object.Object):
293
298
  ] = {},
294
299
  pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
295
300
  encrypted_ports: collections.abc.Sequence[int] = [],
301
+ h2_ports: collections.abc.Sequence[int] = [],
296
302
  unencrypted_ports: collections.abc.Sequence[int] = [],
297
303
  proxy: typing.Optional[modal.proxy.Proxy] = None,
298
304
  _experimental_enable_snapshot: bool = False,
@@ -330,6 +336,7 @@ class Sandbox(modal.object.Object):
330
336
  ] = {},
331
337
  pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
332
338
  encrypted_ports: collections.abc.Sequence[int] = [],
339
+ h2_ports: collections.abc.Sequence[int] = [],
333
340
  unencrypted_ports: collections.abc.Sequence[int] = [],
334
341
  proxy: typing.Optional[modal.proxy.Proxy] = None,
335
342
  _experimental_enable_snapshot: bool = False,
@@ -363,6 +370,7 @@ class Sandbox(modal.object.Object):
363
370
  ] = {},
364
371
  pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
365
372
  encrypted_ports: collections.abc.Sequence[int] = [],
373
+ h2_ports: collections.abc.Sequence[int] = [],
366
374
  unencrypted_ports: collections.abc.Sequence[int] = [],
367
375
  proxy: typing.Optional[modal.proxy.Proxy] = None,
368
376
  _experimental_enable_snapshot: bool = False,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.0.3.dev12
3
+ Version: 1.0.3.dev13
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=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=tJcv3mIMATx6_5WlaTHQ52dMBIsm4XArDsGvxYWBTj0,8459
25
+ modal/client.pyi,sha256=ybo39hibBOqYNx8VbEGoGVtFTmBFVakUoNcjrH0QHRs,8459
26
26
  modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
27
27
  modal/cloud_bucket_mount.pyi,sha256=30T3K1a89l6wzmEJ_J9iWv9SknoGqaZDx59Xs-ZQcmk,1607
28
28
  modal/cls.py,sha256=dBbeARwOWftlKd1cwtM0cHFtQWSWkwVXwVmOV4w0SyI,37907
@@ -65,8 +65,8 @@ modal/retries.py,sha256=IvNLDM0f_GLUDD5VgEDoN09C88yoxSrCquinAuxT1Sc,5205
65
65
  modal/runner.py,sha256=nvpnU7U2O5d2WqME1QUTTwu-NkSLLwblytlGk7HXPAw,24152
66
66
  modal/runner.pyi,sha256=1AnEu48SUPnLWp3raQ2zJCV5lc85EGLkX2nL0bHWaB0,5162
67
67
  modal/running_app.py,sha256=v61mapYNV1-O-Uaho5EfJlryMLvIT9We0amUOSvSGx8,1188
68
- modal/sandbox.py,sha256=OGNgK4l7iuO-p3kC0bwj7Ehh-Qm2m-Odj0iWOpQb-1I,35697
69
- modal/sandbox.pyi,sha256=hTAnOmXyGZOaUjjqiKfc6B_uU93N1Uxwj_D-o7qwbbY,28240
68
+ modal/sandbox.py,sha256=6Ki2aBANqqN7THC1U7ymzJEUN7bPRqixAX9TBFh05Mc,36250
69
+ modal/sandbox.pyi,sha256=KvIYfLIvWdTEbuu0oWoS2I_8UiT6HU2hNsEaS7AjFR4,28688
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
@@ -147,7 +147,7 @@ modal/requirements/2024.10.txt,sha256=qD-5cVIVM9wXesJ6JC89Ew-3m2KjEElUz3jaw_MddR
147
147
  modal/requirements/PREVIEW.txt,sha256=qD-5cVIVM9wXesJ6JC89Ew-3m2KjEElUz3jaw_MddRo,296
148
148
  modal/requirements/README.md,sha256=9tK76KP0Uph7O0M5oUgsSwEZDj5y-dcUPsnpR0Sc-Ik,854
149
149
  modal/requirements/base-images.json,sha256=57vMSqzMbLBxw5tFWSaMiIkkVEps4JfX5PAtXGnkS4U,740
150
- modal-1.0.3.dev12.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
150
+ modal-1.0.3.dev13.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
@@ -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=6d3ZUo7sZzJrpBXcXgJhamu8ke4FsJbZRsLNwKyhtXA,121
173
+ modal_version/__init__.py,sha256=RRm8Vc-MFpvTCS6rdobNqZWWtht_S0v8xIrwnfG5rBY,121
174
174
  modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
175
- modal-1.0.3.dev12.dist-info/METADATA,sha256=6q0rnLYO5CuOjtfcW4FPBFlgNKXiQcjrxhhIrLVA8Ls,2455
176
- modal-1.0.3.dev12.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
177
- modal-1.0.3.dev12.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
178
- modal-1.0.3.dev12.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
179
- modal-1.0.3.dev12.dist-info/RECORD,,
175
+ modal-1.0.3.dev13.dist-info/METADATA,sha256=4blqsgleooR_owPhvwqRBHOBfY3f9b4mfsZCRztdJYU,2455
176
+ modal-1.0.3.dev13.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
177
+ modal-1.0.3.dev13.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
178
+ modal-1.0.3.dev13.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
179
+ modal-1.0.3.dev13.dist-info/RECORD,,
modal_version/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # Copyright Modal Labs 2025
2
2
  """Supplies the current version of the modal client library."""
3
3
 
4
- __version__ = "1.0.3.dev12"
4
+ __version__ = "1.0.3.dev13"