modal 1.1.5.dev19__py3-none-any.whl → 1.1.5.dev21__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 modal might be problematic. Click here for more details.
- modal/_functions.py +12 -4
- modal/_pty.py +7 -3
- modal/app.py +12 -3
- modal/app.pyi +8 -4
- modal/client.pyi +2 -2
- modal/cls.py +7 -2
- modal/cls.pyi +7 -5
- modal/functions.pyi +6 -2
- modal/image.py +85 -15
- modal/image.pyi +54 -28
- modal/runner.py +2 -2
- modal/sandbox.py +112 -46
- modal/sandbox.pyi +148 -29
- modal/secret.py +1 -1
- {modal-1.1.5.dev19.dist-info → modal-1.1.5.dev21.dist-info}/METADATA +1 -1
- {modal-1.1.5.dev19.dist-info → modal-1.1.5.dev21.dist-info}/RECORD +21 -21
- modal_version/__init__.py +1 -1
- {modal-1.1.5.dev19.dist-info → modal-1.1.5.dev21.dist-info}/WHEEL +0 -0
- {modal-1.1.5.dev19.dist-info → modal-1.1.5.dev21.dist-info}/entry_points.txt +0 -0
- {modal-1.1.5.dev19.dist-info → modal-1.1.5.dev21.dist-info}/licenses/LICENSE +0 -0
- {modal-1.1.5.dev19.dist-info → modal-1.1.5.dev21.dist-info}/top_level.txt +0 -0
modal/sandbox.pyi
CHANGED
|
@@ -84,11 +84,13 @@ class _Sandbox(modal._object._Object):
|
|
|
84
84
|
_tunnels: typing.Optional[dict[int, modal._tunnel.Tunnel]]
|
|
85
85
|
_enable_snapshot: bool
|
|
86
86
|
|
|
87
|
+
@staticmethod
|
|
88
|
+
def _default_pty_info() -> modal_proto.api_pb2.PTYInfo: ...
|
|
87
89
|
@staticmethod
|
|
88
90
|
def _new(
|
|
89
91
|
args: collections.abc.Sequence[str],
|
|
90
92
|
image: modal.image._Image,
|
|
91
|
-
secrets: collections.abc.
|
|
93
|
+
secrets: collections.abc.Collection[modal.secret._Secret],
|
|
92
94
|
name: typing.Optional[str] = None,
|
|
93
95
|
timeout: int = 300,
|
|
94
96
|
idle_timeout: typing.Optional[int] = None,
|
|
@@ -106,6 +108,7 @@ class _Sandbox(modal._object._Object):
|
|
|
106
108
|
typing.Union[str, os.PathLike],
|
|
107
109
|
typing.Union[modal.volume._Volume, modal.cloud_bucket_mount._CloudBucketMount],
|
|
108
110
|
] = {},
|
|
111
|
+
pty: bool = False,
|
|
109
112
|
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
110
113
|
encrypted_ports: collections.abc.Sequence[int] = [],
|
|
111
114
|
h2_ports: collections.abc.Sequence[int] = [],
|
|
@@ -125,7 +128,8 @@ class _Sandbox(modal._object._Object):
|
|
|
125
128
|
app: typing.Optional[modal.app._App] = None,
|
|
126
129
|
name: typing.Optional[str] = None,
|
|
127
130
|
image: typing.Optional[modal.image._Image] = None,
|
|
128
|
-
|
|
131
|
+
env: typing.Optional[dict[str, typing.Optional[str]]] = None,
|
|
132
|
+
secrets: typing.Optional[collections.abc.Collection[modal.secret._Secret]] = None,
|
|
129
133
|
network_file_systems: dict[typing.Union[str, os.PathLike], modal.network_file_system._NetworkFileSystem] = {},
|
|
130
134
|
timeout: int = 300,
|
|
131
135
|
idle_timeout: typing.Optional[int] = None,
|
|
@@ -141,7 +145,7 @@ class _Sandbox(modal._object._Object):
|
|
|
141
145
|
typing.Union[str, os.PathLike],
|
|
142
146
|
typing.Union[modal.volume._Volume, modal.cloud_bucket_mount._CloudBucketMount],
|
|
143
147
|
] = {},
|
|
144
|
-
|
|
148
|
+
pty: bool = False,
|
|
145
149
|
encrypted_ports: collections.abc.Sequence[int] = [],
|
|
146
150
|
h2_ports: collections.abc.Sequence[int] = [],
|
|
147
151
|
unencrypted_ports: collections.abc.Sequence[int] = [],
|
|
@@ -152,6 +156,7 @@ class _Sandbox(modal._object._Object):
|
|
|
152
156
|
_experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
|
|
153
157
|
client: typing.Optional[modal.client._Client] = None,
|
|
154
158
|
environment_name: typing.Optional[str] = None,
|
|
159
|
+
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
155
160
|
) -> _Sandbox:
|
|
156
161
|
"""Create a new Sandbox to run untrusted, arbitrary code.
|
|
157
162
|
|
|
@@ -174,7 +179,8 @@ class _Sandbox(modal._object._Object):
|
|
|
174
179
|
app: typing.Optional[modal.app._App] = None,
|
|
175
180
|
name: typing.Optional[str] = None,
|
|
176
181
|
image: typing.Optional[modal.image._Image] = None,
|
|
177
|
-
|
|
182
|
+
env: typing.Optional[dict[str, typing.Optional[str]]] = None,
|
|
183
|
+
secrets: typing.Optional[collections.abc.Collection[modal.secret._Secret]] = None,
|
|
178
184
|
mounts: collections.abc.Sequence[modal.mount._Mount] = (),
|
|
179
185
|
network_file_systems: dict[typing.Union[str, os.PathLike], modal.network_file_system._NetworkFileSystem] = {},
|
|
180
186
|
timeout: int = 300,
|
|
@@ -191,7 +197,7 @@ class _Sandbox(modal._object._Object):
|
|
|
191
197
|
typing.Union[str, os.PathLike],
|
|
192
198
|
typing.Union[modal.volume._Volume, modal.cloud_bucket_mount._CloudBucketMount],
|
|
193
199
|
] = {},
|
|
194
|
-
|
|
200
|
+
pty: bool = False,
|
|
195
201
|
encrypted_ports: collections.abc.Sequence[int] = [],
|
|
196
202
|
h2_ports: collections.abc.Sequence[int] = [],
|
|
197
203
|
unencrypted_ports: collections.abc.Sequence[int] = [],
|
|
@@ -201,7 +207,16 @@ class _Sandbox(modal._object._Object):
|
|
|
201
207
|
_experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
|
|
202
208
|
client: typing.Optional[modal.client._Client] = None,
|
|
203
209
|
verbose: bool = False,
|
|
204
|
-
|
|
210
|
+
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
211
|
+
):
|
|
212
|
+
"""Private method used internally.
|
|
213
|
+
|
|
214
|
+
This method exposes some internal arguments (currently `mounts`) which are not in the public API.
|
|
215
|
+
`mounts` is currently only used by modal shell (cli) to provide a function's mounts to the
|
|
216
|
+
sandbox that runs the shell session.
|
|
217
|
+
"""
|
|
218
|
+
...
|
|
219
|
+
|
|
205
220
|
def _hydrate_metadata(self, handle_metadata: typing.Optional[google.protobuf.message.Message]): ...
|
|
206
221
|
@staticmethod
|
|
207
222
|
async def from_name(
|
|
@@ -290,30 +305,53 @@ class _Sandbox(modal._object._Object):
|
|
|
290
305
|
async def exec(
|
|
291
306
|
self,
|
|
292
307
|
*args: str,
|
|
293
|
-
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
294
308
|
stdout: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
295
309
|
stderr: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
296
310
|
timeout: typing.Optional[int] = None,
|
|
297
311
|
workdir: typing.Optional[str] = None,
|
|
298
|
-
|
|
312
|
+
env: typing.Optional[dict[str, typing.Optional[str]]] = None,
|
|
313
|
+
secrets: typing.Optional[collections.abc.Collection[modal.secret._Secret]] = None,
|
|
299
314
|
text: typing.Literal[True] = True,
|
|
300
315
|
bufsize: typing.Literal[-1, 1] = -1,
|
|
316
|
+
pty: bool = False,
|
|
317
|
+
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
301
318
|
_pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
302
319
|
) -> modal.container_process._ContainerProcess[str]: ...
|
|
303
320
|
@typing.overload
|
|
304
321
|
async def exec(
|
|
305
322
|
self,
|
|
306
323
|
*args: str,
|
|
307
|
-
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
308
324
|
stdout: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
309
325
|
stderr: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
310
326
|
timeout: typing.Optional[int] = None,
|
|
311
327
|
workdir: typing.Optional[str] = None,
|
|
312
|
-
|
|
328
|
+
env: typing.Optional[dict[str, typing.Optional[str]]] = None,
|
|
329
|
+
secrets: typing.Optional[collections.abc.Collection[modal.secret._Secret]] = None,
|
|
313
330
|
text: typing.Literal[False] = False,
|
|
314
331
|
bufsize: typing.Literal[-1, 1] = -1,
|
|
332
|
+
pty: bool = False,
|
|
333
|
+
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
315
334
|
_pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
316
335
|
) -> modal.container_process._ContainerProcess[bytes]: ...
|
|
336
|
+
async def _exec(
|
|
337
|
+
self,
|
|
338
|
+
*args: str,
|
|
339
|
+
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
340
|
+
stdout: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
341
|
+
stderr: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
342
|
+
timeout: typing.Optional[int] = None,
|
|
343
|
+
workdir: typing.Optional[str] = None,
|
|
344
|
+
env: typing.Optional[dict[str, typing.Optional[str]]] = None,
|
|
345
|
+
secrets: typing.Optional[collections.abc.Collection[modal.secret._Secret]] = None,
|
|
346
|
+
text: bool = True,
|
|
347
|
+
bufsize: typing.Literal[-1, 1] = -1,
|
|
348
|
+
) -> typing.Union[modal.container_process._ContainerProcess[bytes], modal.container_process._ContainerProcess[str]]:
|
|
349
|
+
"""Private method used internally.
|
|
350
|
+
|
|
351
|
+
This method exposes some internal arguments (currently `pty_info`) which are not in the public API.
|
|
352
|
+
"""
|
|
353
|
+
...
|
|
354
|
+
|
|
317
355
|
async def _experimental_snapshot(self) -> modal.snapshot._SandboxSnapshot: ...
|
|
318
356
|
@staticmethod
|
|
319
357
|
async def _experimental_from_snapshot(
|
|
@@ -407,11 +445,13 @@ class Sandbox(modal.object.Object):
|
|
|
407
445
|
"""mdmd:hidden"""
|
|
408
446
|
...
|
|
409
447
|
|
|
448
|
+
@staticmethod
|
|
449
|
+
def _default_pty_info() -> modal_proto.api_pb2.PTYInfo: ...
|
|
410
450
|
@staticmethod
|
|
411
451
|
def _new(
|
|
412
452
|
args: collections.abc.Sequence[str],
|
|
413
453
|
image: modal.image.Image,
|
|
414
|
-
secrets: collections.abc.
|
|
454
|
+
secrets: collections.abc.Collection[modal.secret.Secret],
|
|
415
455
|
name: typing.Optional[str] = None,
|
|
416
456
|
timeout: int = 300,
|
|
417
457
|
idle_timeout: typing.Optional[int] = None,
|
|
@@ -428,6 +468,7 @@ class Sandbox(modal.object.Object):
|
|
|
428
468
|
volumes: dict[
|
|
429
469
|
typing.Union[str, os.PathLike], typing.Union[modal.volume.Volume, modal.cloud_bucket_mount.CloudBucketMount]
|
|
430
470
|
] = {},
|
|
471
|
+
pty: bool = False,
|
|
431
472
|
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
432
473
|
encrypted_ports: collections.abc.Sequence[int] = [],
|
|
433
474
|
h2_ports: collections.abc.Sequence[int] = [],
|
|
@@ -449,7 +490,8 @@ class Sandbox(modal.object.Object):
|
|
|
449
490
|
app: typing.Optional[modal.app.App] = None,
|
|
450
491
|
name: typing.Optional[str] = None,
|
|
451
492
|
image: typing.Optional[modal.image.Image] = None,
|
|
452
|
-
|
|
493
|
+
env: typing.Optional[dict[str, typing.Optional[str]]] = None,
|
|
494
|
+
secrets: typing.Optional[collections.abc.Collection[modal.secret.Secret]] = None,
|
|
453
495
|
network_file_systems: dict[
|
|
454
496
|
typing.Union[str, os.PathLike], modal.network_file_system.NetworkFileSystem
|
|
455
497
|
] = {},
|
|
@@ -467,7 +509,7 @@ class Sandbox(modal.object.Object):
|
|
|
467
509
|
typing.Union[str, os.PathLike],
|
|
468
510
|
typing.Union[modal.volume.Volume, modal.cloud_bucket_mount.CloudBucketMount],
|
|
469
511
|
] = {},
|
|
470
|
-
|
|
512
|
+
pty: bool = False,
|
|
471
513
|
encrypted_ports: collections.abc.Sequence[int] = [],
|
|
472
514
|
h2_ports: collections.abc.Sequence[int] = [],
|
|
473
515
|
unencrypted_ports: collections.abc.Sequence[int] = [],
|
|
@@ -478,6 +520,7 @@ class Sandbox(modal.object.Object):
|
|
|
478
520
|
_experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
|
|
479
521
|
client: typing.Optional[modal.client.Client] = None,
|
|
480
522
|
environment_name: typing.Optional[str] = None,
|
|
523
|
+
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
481
524
|
) -> Sandbox:
|
|
482
525
|
"""Create a new Sandbox to run untrusted, arbitrary code.
|
|
483
526
|
|
|
@@ -501,7 +544,8 @@ class Sandbox(modal.object.Object):
|
|
|
501
544
|
app: typing.Optional[modal.app.App] = None,
|
|
502
545
|
name: typing.Optional[str] = None,
|
|
503
546
|
image: typing.Optional[modal.image.Image] = None,
|
|
504
|
-
|
|
547
|
+
env: typing.Optional[dict[str, typing.Optional[str]]] = None,
|
|
548
|
+
secrets: typing.Optional[collections.abc.Collection[modal.secret.Secret]] = None,
|
|
505
549
|
network_file_systems: dict[
|
|
506
550
|
typing.Union[str, os.PathLike], modal.network_file_system.NetworkFileSystem
|
|
507
551
|
] = {},
|
|
@@ -519,7 +563,7 @@ class Sandbox(modal.object.Object):
|
|
|
519
563
|
typing.Union[str, os.PathLike],
|
|
520
564
|
typing.Union[modal.volume.Volume, modal.cloud_bucket_mount.CloudBucketMount],
|
|
521
565
|
] = {},
|
|
522
|
-
|
|
566
|
+
pty: bool = False,
|
|
523
567
|
encrypted_ports: collections.abc.Sequence[int] = [],
|
|
524
568
|
h2_ports: collections.abc.Sequence[int] = [],
|
|
525
569
|
unencrypted_ports: collections.abc.Sequence[int] = [],
|
|
@@ -530,6 +574,7 @@ class Sandbox(modal.object.Object):
|
|
|
530
574
|
_experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
|
|
531
575
|
client: typing.Optional[modal.client.Client] = None,
|
|
532
576
|
environment_name: typing.Optional[str] = None,
|
|
577
|
+
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
533
578
|
) -> Sandbox:
|
|
534
579
|
"""Create a new Sandbox to run untrusted, arbitrary code.
|
|
535
580
|
|
|
@@ -556,7 +601,8 @@ class Sandbox(modal.object.Object):
|
|
|
556
601
|
app: typing.Optional[modal.app.App] = None,
|
|
557
602
|
name: typing.Optional[str] = None,
|
|
558
603
|
image: typing.Optional[modal.image.Image] = None,
|
|
559
|
-
|
|
604
|
+
env: typing.Optional[dict[str, typing.Optional[str]]] = None,
|
|
605
|
+
secrets: typing.Optional[collections.abc.Collection[modal.secret.Secret]] = None,
|
|
560
606
|
mounts: collections.abc.Sequence[modal.mount.Mount] = (),
|
|
561
607
|
network_file_systems: dict[
|
|
562
608
|
typing.Union[str, os.PathLike], modal.network_file_system.NetworkFileSystem
|
|
@@ -575,7 +621,7 @@ class Sandbox(modal.object.Object):
|
|
|
575
621
|
typing.Union[str, os.PathLike],
|
|
576
622
|
typing.Union[modal.volume.Volume, modal.cloud_bucket_mount.CloudBucketMount],
|
|
577
623
|
] = {},
|
|
578
|
-
|
|
624
|
+
pty: bool = False,
|
|
579
625
|
encrypted_ports: collections.abc.Sequence[int] = [],
|
|
580
626
|
h2_ports: collections.abc.Sequence[int] = [],
|
|
581
627
|
unencrypted_ports: collections.abc.Sequence[int] = [],
|
|
@@ -585,7 +631,16 @@ class Sandbox(modal.object.Object):
|
|
|
585
631
|
_experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
|
|
586
632
|
client: typing.Optional[modal.client.Client] = None,
|
|
587
633
|
verbose: bool = False,
|
|
588
|
-
|
|
634
|
+
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
635
|
+
):
|
|
636
|
+
"""Private method used internally.
|
|
637
|
+
|
|
638
|
+
This method exposes some internal arguments (currently `mounts`) which are not in the public API.
|
|
639
|
+
`mounts` is currently only used by modal shell (cli) to provide a function's mounts to the
|
|
640
|
+
sandbox that runs the shell session.
|
|
641
|
+
"""
|
|
642
|
+
...
|
|
643
|
+
|
|
589
644
|
async def aio(
|
|
590
645
|
self,
|
|
591
646
|
/,
|
|
@@ -593,7 +648,8 @@ class Sandbox(modal.object.Object):
|
|
|
593
648
|
app: typing.Optional[modal.app.App] = None,
|
|
594
649
|
name: typing.Optional[str] = None,
|
|
595
650
|
image: typing.Optional[modal.image.Image] = None,
|
|
596
|
-
|
|
651
|
+
env: typing.Optional[dict[str, typing.Optional[str]]] = None,
|
|
652
|
+
secrets: typing.Optional[collections.abc.Collection[modal.secret.Secret]] = None,
|
|
597
653
|
mounts: collections.abc.Sequence[modal.mount.Mount] = (),
|
|
598
654
|
network_file_systems: dict[
|
|
599
655
|
typing.Union[str, os.PathLike], modal.network_file_system.NetworkFileSystem
|
|
@@ -612,7 +668,7 @@ class Sandbox(modal.object.Object):
|
|
|
612
668
|
typing.Union[str, os.PathLike],
|
|
613
669
|
typing.Union[modal.volume.Volume, modal.cloud_bucket_mount.CloudBucketMount],
|
|
614
670
|
] = {},
|
|
615
|
-
|
|
671
|
+
pty: bool = False,
|
|
616
672
|
encrypted_ports: collections.abc.Sequence[int] = [],
|
|
617
673
|
h2_ports: collections.abc.Sequence[int] = [],
|
|
618
674
|
unencrypted_ports: collections.abc.Sequence[int] = [],
|
|
@@ -622,7 +678,15 @@ class Sandbox(modal.object.Object):
|
|
|
622
678
|
_experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
|
|
623
679
|
client: typing.Optional[modal.client.Client] = None,
|
|
624
680
|
verbose: bool = False,
|
|
625
|
-
|
|
681
|
+
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
682
|
+
):
|
|
683
|
+
"""Private method used internally.
|
|
684
|
+
|
|
685
|
+
This method exposes some internal arguments (currently `mounts`) which are not in the public API.
|
|
686
|
+
`mounts` is currently only used by modal shell (cli) to provide a function's mounts to the
|
|
687
|
+
sandbox that runs the shell session.
|
|
688
|
+
"""
|
|
689
|
+
...
|
|
626
690
|
|
|
627
691
|
_create: ___create_spec
|
|
628
692
|
|
|
@@ -834,14 +898,16 @@ class Sandbox(modal.object.Object):
|
|
|
834
898
|
self,
|
|
835
899
|
/,
|
|
836
900
|
*args: str,
|
|
837
|
-
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
838
901
|
stdout: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
839
902
|
stderr: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
840
903
|
timeout: typing.Optional[int] = None,
|
|
841
904
|
workdir: typing.Optional[str] = None,
|
|
842
|
-
|
|
905
|
+
env: typing.Optional[dict[str, typing.Optional[str]]] = None,
|
|
906
|
+
secrets: typing.Optional[collections.abc.Collection[modal.secret.Secret]] = None,
|
|
843
907
|
text: typing.Literal[True] = True,
|
|
844
908
|
bufsize: typing.Literal[-1, 1] = -1,
|
|
909
|
+
pty: bool = False,
|
|
910
|
+
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
845
911
|
_pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
846
912
|
) -> modal.container_process.ContainerProcess[str]: ...
|
|
847
913
|
@typing.overload
|
|
@@ -849,14 +915,16 @@ class Sandbox(modal.object.Object):
|
|
|
849
915
|
self,
|
|
850
916
|
/,
|
|
851
917
|
*args: str,
|
|
852
|
-
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
853
918
|
stdout: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
854
919
|
stderr: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
855
920
|
timeout: typing.Optional[int] = None,
|
|
856
921
|
workdir: typing.Optional[str] = None,
|
|
857
|
-
|
|
922
|
+
env: typing.Optional[dict[str, typing.Optional[str]]] = None,
|
|
923
|
+
secrets: typing.Optional[collections.abc.Collection[modal.secret.Secret]] = None,
|
|
858
924
|
text: typing.Literal[False] = False,
|
|
859
925
|
bufsize: typing.Literal[-1, 1] = -1,
|
|
926
|
+
pty: bool = False,
|
|
927
|
+
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
860
928
|
_pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
861
929
|
) -> modal.container_process.ContainerProcess[bytes]: ...
|
|
862
930
|
@typing.overload
|
|
@@ -864,14 +932,16 @@ class Sandbox(modal.object.Object):
|
|
|
864
932
|
self,
|
|
865
933
|
/,
|
|
866
934
|
*args: str,
|
|
867
|
-
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
868
935
|
stdout: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
869
936
|
stderr: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
870
937
|
timeout: typing.Optional[int] = None,
|
|
871
938
|
workdir: typing.Optional[str] = None,
|
|
872
|
-
|
|
939
|
+
env: typing.Optional[dict[str, typing.Optional[str]]] = None,
|
|
940
|
+
secrets: typing.Optional[collections.abc.Collection[modal.secret.Secret]] = None,
|
|
873
941
|
text: typing.Literal[True] = True,
|
|
874
942
|
bufsize: typing.Literal[-1, 1] = -1,
|
|
943
|
+
pty: bool = False,
|
|
944
|
+
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
875
945
|
_pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
876
946
|
) -> modal.container_process.ContainerProcess[str]: ...
|
|
877
947
|
@typing.overload
|
|
@@ -879,19 +949,68 @@ class Sandbox(modal.object.Object):
|
|
|
879
949
|
self,
|
|
880
950
|
/,
|
|
881
951
|
*args: str,
|
|
882
|
-
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
883
952
|
stdout: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
884
953
|
stderr: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
885
954
|
timeout: typing.Optional[int] = None,
|
|
886
955
|
workdir: typing.Optional[str] = None,
|
|
887
|
-
|
|
956
|
+
env: typing.Optional[dict[str, typing.Optional[str]]] = None,
|
|
957
|
+
secrets: typing.Optional[collections.abc.Collection[modal.secret.Secret]] = None,
|
|
888
958
|
text: typing.Literal[False] = False,
|
|
889
959
|
bufsize: typing.Literal[-1, 1] = -1,
|
|
960
|
+
pty: bool = False,
|
|
961
|
+
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
890
962
|
_pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
891
963
|
) -> modal.container_process.ContainerProcess[bytes]: ...
|
|
892
964
|
|
|
893
965
|
exec: __exec_spec[typing_extensions.Self]
|
|
894
966
|
|
|
967
|
+
class ___exec_spec(typing_extensions.Protocol[SUPERSELF]):
|
|
968
|
+
def __call__(
|
|
969
|
+
self,
|
|
970
|
+
/,
|
|
971
|
+
*args: str,
|
|
972
|
+
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
973
|
+
stdout: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
974
|
+
stderr: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
975
|
+
timeout: typing.Optional[int] = None,
|
|
976
|
+
workdir: typing.Optional[str] = None,
|
|
977
|
+
env: typing.Optional[dict[str, typing.Optional[str]]] = None,
|
|
978
|
+
secrets: typing.Optional[collections.abc.Collection[modal.secret.Secret]] = None,
|
|
979
|
+
text: bool = True,
|
|
980
|
+
bufsize: typing.Literal[-1, 1] = -1,
|
|
981
|
+
) -> typing.Union[
|
|
982
|
+
modal.container_process.ContainerProcess[bytes], modal.container_process.ContainerProcess[str]
|
|
983
|
+
]:
|
|
984
|
+
"""Private method used internally.
|
|
985
|
+
|
|
986
|
+
This method exposes some internal arguments (currently `pty_info`) which are not in the public API.
|
|
987
|
+
"""
|
|
988
|
+
...
|
|
989
|
+
|
|
990
|
+
async def aio(
|
|
991
|
+
self,
|
|
992
|
+
/,
|
|
993
|
+
*args: str,
|
|
994
|
+
pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
|
995
|
+
stdout: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
996
|
+
stderr: modal.stream_type.StreamType = modal.stream_type.StreamType.PIPE,
|
|
997
|
+
timeout: typing.Optional[int] = None,
|
|
998
|
+
workdir: typing.Optional[str] = None,
|
|
999
|
+
env: typing.Optional[dict[str, typing.Optional[str]]] = None,
|
|
1000
|
+
secrets: typing.Optional[collections.abc.Collection[modal.secret.Secret]] = None,
|
|
1001
|
+
text: bool = True,
|
|
1002
|
+
bufsize: typing.Literal[-1, 1] = -1,
|
|
1003
|
+
) -> typing.Union[
|
|
1004
|
+
modal.container_process.ContainerProcess[bytes], modal.container_process.ContainerProcess[str]
|
|
1005
|
+
]:
|
|
1006
|
+
"""Private method used internally.
|
|
1007
|
+
|
|
1008
|
+
This method exposes some internal arguments (currently `pty_info`) which are not in the public API.
|
|
1009
|
+
"""
|
|
1010
|
+
...
|
|
1011
|
+
|
|
1012
|
+
_exec: ___exec_spec[typing_extensions.Self]
|
|
1013
|
+
|
|
895
1014
|
class ___experimental_snapshot_spec(typing_extensions.Protocol[SUPERSELF]):
|
|
896
1015
|
def __call__(self, /) -> modal.snapshot.SandboxSnapshot: ...
|
|
897
1016
|
async def aio(self, /) -> modal.snapshot.SandboxSnapshot: ...
|
modal/secret.py
CHANGED
|
@@ -239,7 +239,7 @@ class _Secret(_Object, type_prefix="st"):
|
|
|
239
239
|
@staticmethod
|
|
240
240
|
def from_dict(
|
|
241
241
|
env_dict: dict[
|
|
242
|
-
str,
|
|
242
|
+
str, Optional[str]
|
|
243
243
|
] = {}, # dict of entries to be inserted as environment variables in functions using the secret
|
|
244
244
|
) -> "_Secret":
|
|
245
245
|
"""Create a secret from a str-str dictionary. Values can also be `None`, which is ignored.
|
|
@@ -3,13 +3,13 @@ modal/__main__.py,sha256=45H-GtwzaDfN-1nP4_HYvzN3s7AG_HXR4-ynrsjO_OI,2803
|
|
|
3
3
|
modal/_clustered_functions.py,sha256=Sy4Sf_17EO8OL-FUe8LYcm4hrqLyQFCssNhr3p0SroU,3013
|
|
4
4
|
modal/_clustered_functions.pyi,sha256=JmYwAGOLEnD5AF-gYF9O5tu-SgGjeoJz-X1j48b1Ijg,1157
|
|
5
5
|
modal/_container_entrypoint.py,sha256=a1HAQYh1gGpqHuhSw6AW7XDYHztbeYr5a8iNnfCnoks,29023
|
|
6
|
-
modal/_functions.py,sha256=
|
|
6
|
+
modal/_functions.py,sha256=1ZG8TvI3TTByfzArrjSww6pQB1iH4be0I3yQfkMfgAY,89780
|
|
7
7
|
modal/_ipython.py,sha256=TW1fkVOmZL3YYqdS2YlM1hqpf654Yf8ZyybHdBnlhSw,301
|
|
8
8
|
modal/_location.py,sha256=joiX-0ZeutEUDTrrqLF1GHXCdVLF-rHzstocbMcd_-k,366
|
|
9
9
|
modal/_object.py,sha256=gwsLdXb-Ecd8nH8LVCo8oVZPzzdyo9BrN1DjgQmsSuM,11967
|
|
10
10
|
modal/_output.py,sha256=G9CeSQEBzjhveWWEzWmYa5Uwbu4lZf8N8IFH1UM4fU0,25803
|
|
11
11
|
modal/_partial_function.py,sha256=Yqk97hLS6vi8nWWVpzS5TSWbndWMdCtkhccdnyDJgBk,37302
|
|
12
|
-
modal/_pty.py,sha256=
|
|
12
|
+
modal/_pty.py,sha256=E58MQ8d5-wkbMatRKpQR-G9FdbCRcZGiZxOpGy__VuY,1481
|
|
13
13
|
modal/_resolver.py,sha256=2RWvm34cNSnbv1v7izJMNZgfvpLDD6LzaBlr0lIrLnY,7364
|
|
14
14
|
modal/_resources.py,sha256=NMAp0GCLutiZI4GuKSIVnRHVlstoD3hNGUabjTUtzf4,1794
|
|
15
15
|
modal/_serialization.py,sha256=wt09fOwo-E9ATlOG91O9RXCTPRNtsm97v4Unk8Bzd-8,24145
|
|
@@ -18,15 +18,15 @@ modal/_tunnel.py,sha256=zTBxBiuH1O22tS1OliAJdIsSmaZS8PlnifS_6S5z-mk,6320
|
|
|
18
18
|
modal/_tunnel.pyi,sha256=rvC7USR2BcKkbZIeCJXwf7-UfGE-LPLjKsGNiK7Lxa4,13366
|
|
19
19
|
modal/_type_manager.py,sha256=DWjgmjYJuOagw2erin506UUbG2H5UzZCFEekS-7hmfA,9087
|
|
20
20
|
modal/_watcher.py,sha256=K6LYnlmSGQB4tWWI9JADv-tvSvQ1j522FwT71B51CX8,3584
|
|
21
|
-
modal/app.py,sha256=
|
|
22
|
-
modal/app.pyi,sha256=
|
|
21
|
+
modal/app.py,sha256=OBFaL-8KVMtBMEmspHA76LvblPdnSgdoGioLkQBjhdQ,48851
|
|
22
|
+
modal/app.pyi,sha256=Cqk3pOeEEroCLejj3yJ3XHDqt0rMzeSA295gMKEx6Ww,43955
|
|
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=
|
|
25
|
+
modal/client.pyi,sha256=CTjbsinR4MoG2w0yKhhvFfDHGHvH7bRGU3oNdFRUePo,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
|
-
modal/cls.py,sha256=
|
|
29
|
-
modal/cls.pyi,sha256=
|
|
28
|
+
modal/cls.py,sha256=qb9h_ZKiz2q7fwKQ-5bdkz1x3tdu6sIm-UI09aQjPPc,41101
|
|
29
|
+
modal/cls.pyi,sha256=C_bOybNa5iaVCcea-o8M1ATqpAbsQTtS9jN3OiEqhNY,29171
|
|
30
30
|
modal/config.py,sha256=hpcfT03tdB-G0exZ4HjYDHwDtA8XcnliiyZzCcTbr8o,12124
|
|
31
31
|
modal/container_process.py,sha256=Mutkl7sg_WR5zP4oJiWSC-3UdYRqp0zdKi1shZbi-bk,6996
|
|
32
32
|
modal/container_process.pyi,sha256=9m-st3hCUlNN1GOTctfPPvIvoLtEl7FbuGWwif5-7YU,6037
|
|
@@ -39,10 +39,10 @@ modal/file_io.py,sha256=OSKr77TujcXGJW1iikzYiHckLSmv07QBgBHcxxYEkoI,21456
|
|
|
39
39
|
modal/file_io.pyi,sha256=xtO6Glf_BFwDE7QiQQo24QqcMf_Vv-iz7WojcGVlLBU,15932
|
|
40
40
|
modal/file_pattern_matcher.py,sha256=A_Kdkej6q7YQyhM_2-BvpFmPqJ0oHb54B6yf9VqvPVE,8116
|
|
41
41
|
modal/functions.py,sha256=kcNHvqeGBxPI7Cgd57NIBBghkfbeFJzXO44WW0jSmao,325
|
|
42
|
-
modal/functions.pyi,sha256=
|
|
42
|
+
modal/functions.pyi,sha256=_xKitEUTNQStdZVtYBgWidtyHHsnjXUYgbirM0eMDyM,39558
|
|
43
43
|
modal/gpu.py,sha256=Fe5ORvVPDIstSq1xjmM6OoNgLYFWvogP9r5BgmD3hYg,6769
|
|
44
|
-
modal/image.py,sha256=
|
|
45
|
-
modal/image.pyi,sha256=
|
|
44
|
+
modal/image.py,sha256=wlOJ4bQxFLx2PlIIAmqZnFxFeERbZJGLYYWO7wlIZso,105969
|
|
45
|
+
modal/image.pyi,sha256=iFC8W6bl3KH_w15pm7B_UqeeGJZ44X7v20Ue_FlxPxw,71695
|
|
46
46
|
modal/io_streams.py,sha256=hZOVc5beOAm8S_VQQmmKUbk_BJ9OltN83RY0yMPqUDo,16545
|
|
47
47
|
modal/io_streams.pyi,sha256=aOun_jUFKHSJyUY6-7gKvNoxzcULsa8_hxdtEO7v-gk,13980
|
|
48
48
|
modal/mount.py,sha256=3WpYaaCBGLyawW2uhQzB4jXRBQEsuuRMxnCFsXSa9_k,37470
|
|
@@ -62,14 +62,14 @@ modal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
62
62
|
modal/queue.py,sha256=ooD_-z3gthje_kxBZQ_xDfwyTy_cxtyn5oM9wt2sXTo,27133
|
|
63
63
|
modal/queue.pyi,sha256=EJ6extEFKclbEUBXk-PuRJ4bkUYRwWgAAUNofQBbBmo,39509
|
|
64
64
|
modal/retries.py,sha256=IvNLDM0f_GLUDD5VgEDoN09C88yoxSrCquinAuxT1Sc,5205
|
|
65
|
-
modal/runner.py,sha256=
|
|
65
|
+
modal/runner.py,sha256=Q9wGTeg6sYyusTgwXSinoIti4Gv5LsiadAvflgETBHc,24070
|
|
66
66
|
modal/runner.pyi,sha256=lbwLljm1cC8d6PcNvmYQhkE8501V9fg0bYqqKX6G4r4,8489
|
|
67
67
|
modal/running_app.py,sha256=v61mapYNV1-O-Uaho5EfJlryMLvIT9We0amUOSvSGx8,1188
|
|
68
|
-
modal/sandbox.py,sha256=
|
|
69
|
-
modal/sandbox.pyi,sha256=
|
|
68
|
+
modal/sandbox.py,sha256=0UxFF-yCfD7SiQbAWCZT6f7lNk7wCY6A4p8lvwfImgk,45162
|
|
69
|
+
modal/sandbox.pyi,sha256=pFVN-LZvRt3eMI_XFTJpPtBwxwoRc8CkytAYe4R_SU8,50009
|
|
70
70
|
modal/schedule.py,sha256=ng0g0AqNY5GQI9KhkXZQ5Wam5G42glbkqVQsNpBtbDE,3078
|
|
71
71
|
modal/scheduler_placement.py,sha256=BAREdOY5HzHpzSBqt6jDVR6YC_jYfHMVqOzkyqQfngU,1235
|
|
72
|
-
modal/secret.py,sha256=
|
|
72
|
+
modal/secret.py,sha256=EifrHTx7QmU4DTU3QwedD7O4ma52hHL4Qku1dADjY0E,19305
|
|
73
73
|
modal/secret.pyi,sha256=7EzD7nZGSZHQR-Hf5aRi0ooZGxvy1-G8A4ul-M04Qs4,21552
|
|
74
74
|
modal/serving.py,sha256=3I3WBeVbzZY258u9PXBCW_dZBgypq3OhwBuTVvlgubE,4423
|
|
75
75
|
modal/serving.pyi,sha256=YfixTaWikyYpwhnNxCHMZnDDQiPmV1xJ87QF91U_WGU,1924
|
|
@@ -153,7 +153,7 @@ modal/experimental/__init__.py,sha256=fCqzo_f3vcY750vHtd7CtLs5dvdM_C0ZLLGb3zXuK9
|
|
|
153
153
|
modal/experimental/flash.py,sha256=8HOHZ0XLSN8Znzsi6hGggS46CC6t_7IgGWyNoeSXS9o,28417
|
|
154
154
|
modal/experimental/flash.pyi,sha256=R9VV0UDotiY9BRUjacB-xI4qhR3yBymAvEZFRFHztLs,15143
|
|
155
155
|
modal/experimental/ipython.py,sha256=TrCfmol9LGsRZMeDoeMPx3Hv3BFqQhYnmD_iH0pqdhk,2904
|
|
156
|
-
modal-1.1.5.
|
|
156
|
+
modal-1.1.5.dev21.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
|
|
@@ -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=
|
|
179
|
+
modal_version/__init__.py,sha256=ZX7nPt_LdO7ED1cdKleFUEATiIwMJJdODQZ1YcTXfr0,121
|
|
180
180
|
modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
|
|
181
|
-
modal-1.1.5.
|
|
182
|
-
modal-1.1.5.
|
|
183
|
-
modal-1.1.5.
|
|
184
|
-
modal-1.1.5.
|
|
185
|
-
modal-1.1.5.
|
|
181
|
+
modal-1.1.5.dev21.dist-info/METADATA,sha256=GLDzfsj3txpwzHnTxIenwj4LawWxPfqC6-GTGHhJNKk,2460
|
|
182
|
+
modal-1.1.5.dev21.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
|
|
183
|
+
modal-1.1.5.dev21.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
|
|
184
|
+
modal-1.1.5.dev21.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
|
|
185
|
+
modal-1.1.5.dev21.dist-info/RECORD,,
|
modal_version/__init__.py
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|