modal 1.1.2.dev25__py3-none-any.whl → 1.1.2.dev27__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/cli/launch.py +11 -2
- modal/client.pyi +2 -2
- {modal-1.1.2.dev25.dist-info → modal-1.1.2.dev27.dist-info}/METADATA +1 -1
- {modal-1.1.2.dev25.dist-info → modal-1.1.2.dev27.dist-info}/RECORD +16 -16
- modal_proto/api.proto +18 -0
- modal_proto/api_grpc.py +32 -0
- modal_proto/api_pb2.py +627 -597
- modal_proto/api_pb2.pyi +53 -0
- modal_proto/api_pb2_grpc.py +67 -0
- modal_proto/api_pb2_grpc.pyi +22 -0
- modal_proto/modal_api_grpc.py +2 -0
- modal_version/__init__.py +1 -1
- {modal-1.1.2.dev25.dist-info → modal-1.1.2.dev27.dist-info}/WHEEL +0 -0
- {modal-1.1.2.dev25.dist-info → modal-1.1.2.dev27.dist-info}/entry_points.txt +0 -0
- {modal-1.1.2.dev25.dist-info → modal-1.1.2.dev27.dist-info}/licenses/LICENSE +0 -0
- {modal-1.1.2.dev25.dist-info → modal-1.1.2.dev27.dist-info}/top_level.txt +0 -0
modal/cli/launch.py
CHANGED
@@ -9,6 +9,7 @@ from pathlib import Path
|
|
9
9
|
from typing import Any, Optional
|
10
10
|
|
11
11
|
import rich.panel
|
12
|
+
from rich.markdown import Markdown
|
12
13
|
from typer import Typer
|
13
14
|
|
14
15
|
from .._output import make_console
|
@@ -20,10 +21,10 @@ from .import_refs import ImportRef, _get_runnable_app, import_file_or_module
|
|
20
21
|
launch_cli = Typer(
|
21
22
|
name="launch",
|
22
23
|
no_args_is_help=True,
|
24
|
+
rich_markup_mode="markdown",
|
23
25
|
help="""
|
24
26
|
Open a serverless app instance on Modal.
|
25
|
-
|
26
|
-
This command is in preview and may change in the future.
|
27
|
+
>⚠️ `modal launch` is **experimental** and may change in the future.
|
27
28
|
""",
|
28
29
|
)
|
29
30
|
|
@@ -31,6 +32,14 @@ launch_cli = Typer(
|
|
31
32
|
def _launch_program(
|
32
33
|
name: str, filename: str, detach: bool, args: dict[str, Any], *, description: Optional[str] = None
|
33
34
|
) -> None:
|
35
|
+
console = make_console()
|
36
|
+
console.print(
|
37
|
+
rich.panel.Panel(
|
38
|
+
Markdown(f"⚠️ `modal launch {name}` is **experimental** and may change in the future."),
|
39
|
+
border_style="yellow",
|
40
|
+
),
|
41
|
+
)
|
42
|
+
|
34
43
|
os.environ["MODAL_LAUNCH_ARGS"] = json.dumps(args)
|
35
44
|
|
36
45
|
program_path = str(Path(__file__).parent / "programs" / filename)
|
modal/client.pyi
CHANGED
@@ -33,7 +33,7 @@ class _Client:
|
|
33
33
|
server_url: str,
|
34
34
|
client_type: int,
|
35
35
|
credentials: typing.Optional[tuple[str, str]],
|
36
|
-
version: str = "1.1.2.
|
36
|
+
version: str = "1.1.2.dev27",
|
37
37
|
):
|
38
38
|
"""mdmd:hidden
|
39
39
|
The Modal client object is not intended to be instantiated directly by users.
|
@@ -164,7 +164,7 @@ class Client:
|
|
164
164
|
server_url: str,
|
165
165
|
client_type: int,
|
166
166
|
credentials: typing.Optional[tuple[str, str]],
|
167
|
-
version: str = "1.1.2.
|
167
|
+
version: str = "1.1.2.dev27",
|
168
168
|
):
|
169
169
|
"""mdmd:hidden
|
170
170
|
The Modal client object is not intended to be instantiated directly by users.
|
@@ -22,7 +22,7 @@ modal/app.py,sha256=GsClEQIs8i0K-n-DxkCO3flV2xq36sejFd4Dtjxfw0U,47914
|
|
22
22
|
modal/app.pyi,sha256=k0HnXfwV3mEze3PFHmSeqXBqizNqeJWF5oxrqo-P4Wg,43447
|
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=TANRVFKqJGvNTQVQg5aKkw5wkGsTUGwdX9Q2UO3vnFc,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=1mBcExFrLDTZwkD3Dzu8F26_CL0CGktOV9pE60Y8g_E,40689
|
@@ -135,7 +135,7 @@ modal/cli/dict.py,sha256=YAJtiv41YcCd5Fqam3hXCNTs4Y0yOgGR_i6RfQNSAFM,4572
|
|
135
135
|
modal/cli/entry_point.py,sha256=F06p54rPOs1xAUeYW76RaimFOgLW_I17RCvNwfZRqPc,4747
|
136
136
|
modal/cli/environment.py,sha256=Ayddkiq9jdj3XYDJ8ZmUqFpPPH8xajYlbexRkzGtUcg,4334
|
137
137
|
modal/cli/import_refs.py,sha256=X59Z5JwgliRO6C-cIFto2Pr7o3SwlZMKQPKA0aI4ZK4,13927
|
138
|
-
modal/cli/launch.py,sha256=
|
138
|
+
modal/cli/launch.py,sha256=vlr6RHvXkmpUpO8anAyOxyvZUYYVZCJzqGjJ_jUwicY,6472
|
139
139
|
modal/cli/network_file_system.py,sha256=I9IqTpVfk32uKYwGd8LTldkQx6UKYrQYNZ26q7Ab5Oo,8126
|
140
140
|
modal/cli/profile.py,sha256=g8X6tFFK9ccKyu2he9Yu19WLSLNdztzECgmIV__XJFs,3257
|
141
141
|
modal/cli/queues.py,sha256=5vKtKQ7YExdaxNPYZ0g5suU9sX0-F5h0zy0qBV-hN80,6140
|
@@ -153,7 +153,7 @@ modal/experimental/__init__.py,sha256=dPBPpxsmjZMLF3YjRrXoTvT01pl65wxi4UdFZsOem3
|
|
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.
|
156
|
+
modal-1.1.2.dev27.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,13 +161,13 @@ 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=
|
165
|
-
modal_proto/api_grpc.py,sha256=
|
166
|
-
modal_proto/api_pb2.py,sha256=
|
167
|
-
modal_proto/api_pb2.pyi,sha256=
|
168
|
-
modal_proto/api_pb2_grpc.py,sha256=
|
169
|
-
modal_proto/api_pb2_grpc.pyi,sha256=
|
170
|
-
modal_proto/modal_api_grpc.py,sha256=
|
164
|
+
modal_proto/api.proto,sha256=qafFg3rn9pMWnMY905PSYe5K2U6LvRRY-gQoaUsoFG8,104535
|
165
|
+
modal_proto/api_grpc.py,sha256=AWsKZFdXr_T6LpWGlMM6BDY30RdOPjqgoPMijR-R1lI,127964
|
166
|
+
modal_proto/api_pb2.py,sha256=_mR7F-tc6Dg2Hsep7dNVqJspz_LseyieXU1pmcrPFhE,366677
|
167
|
+
modal_proto/api_pb2.pyi,sha256=MeLQsgj1HluOqHKAyAaeX-RTztPdEvOlaXR-fFBgenY,505227
|
168
|
+
modal_proto/api_pb2_grpc.py,sha256=kDZBX6i1KdRpm4P3c2wdRbGe3XOFtqGHSbWE0vOe4F4,276062
|
169
|
+
modal_proto/api_pb2_grpc.pyi,sha256=s1hjXmqaB3jGCSgnOouzncdfMVX0umPZd4TC1zObhgU,64579
|
170
|
+
modal_proto/modal_api_grpc.py,sha256=faBxtXAqoz6ei8ntNu1MQTL859FFHH_LZww_FP9wubw,19311
|
171
171
|
modal_proto/modal_options_grpc.py,sha256=qJ1cuwA54oRqrdTyPTbvfhFZYd9HhJKK5UCwt523r3Y,120
|
172
172
|
modal_proto/options.proto,sha256=zp9h5r61ivsp0XwEWwNBsVqNTbRA1VSY_UtN7sEcHtE,549
|
173
173
|
modal_proto/options_grpc.py,sha256=M18X3d-8F_cNYSVM3I25dUTO5rZ0rd-vCCfynfh13Nc,125
|
@@ -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=fY3poOeCUpqsevQvZoyjCXsrjR6mpgHAIGV5AwiTc8E,121
|
180
180
|
modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
|
181
|
-
modal-1.1.2.
|
182
|
-
modal-1.1.2.
|
183
|
-
modal-1.1.2.
|
184
|
-
modal-1.1.2.
|
185
|
-
modal-1.1.2.
|
181
|
+
modal-1.1.2.dev27.dist-info/METADATA,sha256=SkxMH7rjheb8Y9Jh3T7qDd-IVPvokWQ0rffL1VxOWx8,2460
|
182
|
+
modal-1.1.2.dev27.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
|
183
|
+
modal-1.1.2.dev27.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
|
184
|
+
modal-1.1.2.dev27.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
|
185
|
+
modal-1.1.2.dev27.dist-info/RECORD,,
|
modal_proto/api.proto
CHANGED
@@ -1510,6 +1510,16 @@ message FunctionCallCancelRequest {
|
|
1510
1510
|
optional string function_id = 3; // Only provided for sync input cancellation on the input plane. Async input cancellation does not provide this field this.
|
1511
1511
|
}
|
1512
1512
|
|
1513
|
+
message FunctionCallFromIdRequest {
|
1514
|
+
string function_call_id = 1;
|
1515
|
+
}
|
1516
|
+
|
1517
|
+
// Everything you need to build a FunctionCallHandler.
|
1518
|
+
message FunctionCallFromIdResponse {
|
1519
|
+
string function_call_id = 1;
|
1520
|
+
int32 num_inputs = 2;
|
1521
|
+
}
|
1522
|
+
|
1513
1523
|
message FunctionCallGetDataRequest {
|
1514
1524
|
oneof call_info {
|
1515
1525
|
string function_call_id = 1;
|
@@ -1648,6 +1658,12 @@ message FunctionExtended {
|
|
1648
1658
|
}
|
1649
1659
|
}
|
1650
1660
|
|
1661
|
+
message FunctionFinishInputsRequest {
|
1662
|
+
string function_id = 1;
|
1663
|
+
string function_call_id = 2;
|
1664
|
+
uint32 num_inputs = 3;
|
1665
|
+
}
|
1666
|
+
|
1651
1667
|
|
1652
1668
|
message FunctionGetCallGraphRequest {
|
1653
1669
|
// TODO: use input_id once we switch client submit API to return those.
|
@@ -3494,11 +3510,13 @@ service ModalClient {
|
|
3494
3510
|
rpc FunctionAsyncInvoke(FunctionAsyncInvokeRequest) returns (FunctionAsyncInvokeResponse);
|
3495
3511
|
rpc FunctionBindParams(FunctionBindParamsRequest) returns (FunctionBindParamsResponse);
|
3496
3512
|
rpc FunctionCallCancel(FunctionCallCancelRequest) returns (google.protobuf.Empty);
|
3513
|
+
rpc FunctionCallFromId(FunctionCallFromIdRequest) returns (FunctionCallFromIdResponse);
|
3497
3514
|
rpc FunctionCallGetDataIn(FunctionCallGetDataRequest) returns (stream DataChunk);
|
3498
3515
|
rpc FunctionCallGetDataOut(FunctionCallGetDataRequest) returns (stream DataChunk);
|
3499
3516
|
rpc FunctionCallList(FunctionCallListRequest) returns (FunctionCallListResponse);
|
3500
3517
|
rpc FunctionCallPutDataOut(FunctionCallPutDataRequest) returns (google.protobuf.Empty);
|
3501
3518
|
rpc FunctionCreate(FunctionCreateRequest) returns (FunctionCreateResponse);
|
3519
|
+
rpc FunctionFinishInputs(FunctionFinishInputsRequest) returns (google.protobuf.Empty); // For map RPCs, to signal that all inputs have been sent
|
3502
3520
|
rpc FunctionGet(FunctionGetRequest) returns (FunctionGetResponse);
|
3503
3521
|
rpc FunctionGetCallGraph(FunctionGetCallGraphRequest) returns (FunctionGetCallGraphResponse);
|
3504
3522
|
rpc FunctionGetCurrentStats(FunctionGetCurrentStatsRequest) returns (FunctionStats);
|
modal_proto/api_grpc.py
CHANGED
@@ -274,6 +274,10 @@ class ModalClientBase(abc.ABC):
|
|
274
274
|
async def FunctionCallCancel(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallCancelRequest, google.protobuf.empty_pb2.Empty]') -> None:
|
275
275
|
pass
|
276
276
|
|
277
|
+
@abc.abstractmethod
|
278
|
+
async def FunctionCallFromId(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallFromIdRequest, modal_proto.api_pb2.FunctionCallFromIdResponse]') -> None:
|
279
|
+
pass
|
280
|
+
|
277
281
|
@abc.abstractmethod
|
278
282
|
async def FunctionCallGetDataIn(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallGetDataRequest, modal_proto.api_pb2.DataChunk]') -> None:
|
279
283
|
pass
|
@@ -294,6 +298,10 @@ class ModalClientBase(abc.ABC):
|
|
294
298
|
async def FunctionCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCreateRequest, modal_proto.api_pb2.FunctionCreateResponse]') -> None:
|
295
299
|
pass
|
296
300
|
|
301
|
+
@abc.abstractmethod
|
302
|
+
async def FunctionFinishInputs(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionFinishInputsRequest, google.protobuf.empty_pb2.Empty]') -> None:
|
303
|
+
pass
|
304
|
+
|
297
305
|
@abc.abstractmethod
|
298
306
|
async def FunctionGet(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionGetRequest, modal_proto.api_pb2.FunctionGetResponse]') -> None:
|
299
307
|
pass
|
@@ -1060,6 +1068,12 @@ class ModalClientBase(abc.ABC):
|
|
1060
1068
|
modal_proto.api_pb2.FunctionCallCancelRequest,
|
1061
1069
|
google.protobuf.empty_pb2.Empty,
|
1062
1070
|
),
|
1071
|
+
'/modal.client.ModalClient/FunctionCallFromId': grpclib.const.Handler(
|
1072
|
+
self.FunctionCallFromId,
|
1073
|
+
grpclib.const.Cardinality.UNARY_UNARY,
|
1074
|
+
modal_proto.api_pb2.FunctionCallFromIdRequest,
|
1075
|
+
modal_proto.api_pb2.FunctionCallFromIdResponse,
|
1076
|
+
),
|
1063
1077
|
'/modal.client.ModalClient/FunctionCallGetDataIn': grpclib.const.Handler(
|
1064
1078
|
self.FunctionCallGetDataIn,
|
1065
1079
|
grpclib.const.Cardinality.UNARY_STREAM,
|
@@ -1090,6 +1104,12 @@ class ModalClientBase(abc.ABC):
|
|
1090
1104
|
modal_proto.api_pb2.FunctionCreateRequest,
|
1091
1105
|
modal_proto.api_pb2.FunctionCreateResponse,
|
1092
1106
|
),
|
1107
|
+
'/modal.client.ModalClient/FunctionFinishInputs': grpclib.const.Handler(
|
1108
|
+
self.FunctionFinishInputs,
|
1109
|
+
grpclib.const.Cardinality.UNARY_UNARY,
|
1110
|
+
modal_proto.api_pb2.FunctionFinishInputsRequest,
|
1111
|
+
google.protobuf.empty_pb2.Empty,
|
1112
|
+
),
|
1093
1113
|
'/modal.client.ModalClient/FunctionGet': grpclib.const.Handler(
|
1094
1114
|
self.FunctionGet,
|
1095
1115
|
grpclib.const.Cardinality.UNARY_UNARY,
|
@@ -2050,6 +2070,12 @@ class ModalClientStub:
|
|
2050
2070
|
modal_proto.api_pb2.FunctionCallCancelRequest,
|
2051
2071
|
google.protobuf.empty_pb2.Empty,
|
2052
2072
|
)
|
2073
|
+
self.FunctionCallFromId = grpclib.client.UnaryUnaryMethod(
|
2074
|
+
channel,
|
2075
|
+
'/modal.client.ModalClient/FunctionCallFromId',
|
2076
|
+
modal_proto.api_pb2.FunctionCallFromIdRequest,
|
2077
|
+
modal_proto.api_pb2.FunctionCallFromIdResponse,
|
2078
|
+
)
|
2053
2079
|
self.FunctionCallGetDataIn = grpclib.client.UnaryStreamMethod(
|
2054
2080
|
channel,
|
2055
2081
|
'/modal.client.ModalClient/FunctionCallGetDataIn',
|
@@ -2080,6 +2106,12 @@ class ModalClientStub:
|
|
2080
2106
|
modal_proto.api_pb2.FunctionCreateRequest,
|
2081
2107
|
modal_proto.api_pb2.FunctionCreateResponse,
|
2082
2108
|
)
|
2109
|
+
self.FunctionFinishInputs = grpclib.client.UnaryUnaryMethod(
|
2110
|
+
channel,
|
2111
|
+
'/modal.client.ModalClient/FunctionFinishInputs',
|
2112
|
+
modal_proto.api_pb2.FunctionFinishInputsRequest,
|
2113
|
+
google.protobuf.empty_pb2.Empty,
|
2114
|
+
)
|
2083
2115
|
self.FunctionGet = grpclib.client.UnaryUnaryMethod(
|
2084
2116
|
channel,
|
2085
2117
|
'/modal.client.ModalClient/FunctionGet',
|