modal 0.73.155__py3-none-any.whl → 0.73.157__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/_functions.py CHANGED
@@ -1110,7 +1110,10 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
1110
1110
  response = await retry_transient_errors(resolver.client.stub.FunctionGet, request)
1111
1111
  except GRPCError as exc:
1112
1112
  if exc.status == Status.NOT_FOUND:
1113
- raise NotFoundError(exc.message)
1113
+ env_context = f" (in the '{environment_name}' environment)" if environment_name else ""
1114
+ raise NotFoundError(
1115
+ f"Lookup failed for Function '{name}' from the '{app_name}' app{env_context}: {exc.message}."
1116
+ )
1114
1117
  else:
1115
1118
  raise
1116
1119
 
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 = "0.73.155",
34
+ version: str = "0.73.157",
35
35
  ): ...
36
36
  def is_closed(self) -> bool: ...
37
37
  @property
@@ -93,7 +93,7 @@ class Client:
93
93
  server_url: str,
94
94
  client_type: int,
95
95
  credentials: typing.Optional[tuple[str, str]],
96
- version: str = "0.73.155",
96
+ version: str = "0.73.157",
97
97
  ): ...
98
98
  def is_closed(self) -> bool: ...
99
99
  @property
modal/cls.py CHANGED
@@ -557,7 +557,10 @@ class _Cls(_Object, type_prefix="cs"):
557
557
  response = await retry_transient_errors(resolver.client.stub.ClassGet, request)
558
558
  except GRPCError as exc:
559
559
  if exc.status == Status.NOT_FOUND:
560
- raise NotFoundError(exc.message)
560
+ env_context = f" (in the '{environment_name}' environment)" if environment_name else ""
561
+ raise NotFoundError(
562
+ f"Lookup failed for Cls '{name}' from the '{app_name}' app{env_context}: {exc.message}."
563
+ )
561
564
  elif exc.status == Status.FAILED_PRECONDITION:
562
565
  raise InvalidError(exc.message)
563
566
  else:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: modal
3
- Version: 0.73.155
3
+ Version: 0.73.157
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -3,7 +3,7 @@ modal/__main__.py,sha256=CgIjP8m1xJjjd4AXc-delmR6LdBCZclw2A_V38CFIio,2870
3
3
  modal/_clustered_functions.py,sha256=kTf-9YBXY88NutC1akI-gCbvf01RhMPCw-zoOI_YIUE,2700
4
4
  modal/_clustered_functions.pyi,sha256=vllkegc99A0jrUOWa8mdlSbdp6uz36TsHhGxysAOpaQ,771
5
5
  modal/_container_entrypoint.py,sha256=XyqJPvzX0YMqviIIz-9bsD6HMrPsboU4A1yfgTloTSA,29302
6
- modal/_functions.py,sha256=QKH7L7CHS_DN21bkayeQm-XkYFBs92El26RgKNTwqGA,74760
6
+ modal/_functions.py,sha256=M94gzMA9xfW9086djoG2yYFVihcslKnsleacmNbVrG0,74996
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=JBIECWdfpRKCaCxVWZbC3Q1kF5Whk_EKvY9f4Y6AFyg,11446
@@ -23,10 +23,10 @@ modal/app.py,sha256=w00bV9cjABAsS2ExE7zb1jY6Q_snXYmdKa3xRFg8iXA,47428
23
23
  modal/app.pyi,sha256=pUEqciyGZ446sc_QoG8XcQ_oc6oU-U4dqjkxjhgOX98,26968
24
24
  modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
25
25
  modal/client.py,sha256=U-YKSw0n7J1ZLREt9cbEJCtmHe5YoPKFxl0xlkan2yc,15565
26
- modal/client.pyi,sha256=fVyJe7LeEImnMkx2jkjXicca2E8b4-SORI_ysHbbFRE,7661
26
+ modal/client.pyi,sha256=2r_RawoavNS1KIGw_fAUQHoOIYkZni6yaea8_qedhHE,7661
27
27
  modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
28
28
  modal/cloud_bucket_mount.pyi,sha256=30T3K1a89l6wzmEJ_J9iWv9SknoGqaZDx59Xs-ZQcmk,1607
29
- modal/cls.py,sha256=OE6lPrKmaZDvyctfmZ__nCIw-b7AWxSmoOHMqlrrI7A,32723
29
+ modal/cls.py,sha256=jlQE7qEwGG49FCSqqzYkcedi619G3K4PNnJCtPO8y_w,32954
30
30
  modal/cls.pyi,sha256=pTYO9JsRENmsa5pDgzfoRJGm_NpCvEjEx--vs-jJkj8,10902
31
31
  modal/config.py,sha256=FlqVyh6LVukMahhmEGQVTwWtwtfoPfHqEo3GDn13EOA,11687
32
32
  modal/container_process.py,sha256=vvyK3DVPUMsuqvkKdUiQ49cDLF9JawGrxpglLk5vfgI,6208
@@ -153,10 +153,10 @@ modal_docs/mdmd/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,2
153
153
  modal_docs/mdmd/mdmd.py,sha256=Irx49MCCTlBOP4FBdLR--JrpA3-WhsVeriq0LGgsRic,6232
154
154
  modal_docs/mdmd/signatures.py,sha256=XJaZrK7Mdepk5fdX51A8uENiLFNil85Ud0d4MH8H5f0,3218
155
155
  modal_proto/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
156
- modal_proto/api.proto,sha256=j-S-y318mLy1N_UNa_Ty36PzViw-bv0uoL3rfYB8x54,91081
156
+ modal_proto/api.proto,sha256=id2Ep7N4h09b-TWSk8sBEJ7jDxnqTJR1EDzDQw_idtY,91357
157
157
  modal_proto/api_grpc.py,sha256=9Rs0JyHcz_DSjVKhdtMbDuNt6qDkrE2718KsyA3QL4c,110702
158
- modal_proto/api_pb2.py,sha256=eKBgb8vlzaOIQskt_vYf8UsH4wUQDmxs2mHtU5QHdPA,321616
159
- modal_proto/api_pb2.pyi,sha256=n38ErbOuyTRqH-hMBeS0DIYqxuqYfWoQB-SLS3i9bg0,437972
158
+ modal_proto/api_pb2.py,sha256=2PaWyzRrd5TIHN2imLlsiAaBpzqqHM1UXaj_t0h9k5A,321857
159
+ modal_proto/api_pb2.pyi,sha256=S2p4cY5k8Uw4nxncuTzVLDftKldmnhCUsQtgA4MICKo,438482
160
160
  modal_proto/api_pb2_grpc.py,sha256=olXvs6OQvy7pqvHP9bkSWC_DdIv0iO38xRlmkLo-ai8,239213
161
161
  modal_proto/api_pb2_grpc.pyi,sha256=ybhcN2nwFBIPd4Z4kkMOv-M8Ejidz93Bl4zScLpYcK0,55706
162
162
  modal_proto/modal_api_grpc.py,sha256=43ujbC_a8YAjuhtEvS-O-5lNpkG5d0K0ZIlryJ4weT4,14766
@@ -170,10 +170,10 @@ modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0y
170
170
  modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
171
171
  modal_version/__init__.py,sha256=wiJQ53c-OMs0Xf1UeXOxQ7FwlV1VzIjnX6o-pRYZ_Pk,470
172
172
  modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
173
- modal_version/_version_generated.py,sha256=qy4MvzjwXOTInfhWLJfPYejXVSonfUZcsMG8d53Oq_M,150
174
- modal-0.73.155.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
175
- modal-0.73.155.dist-info/METADATA,sha256=XJeRNMu1sSLkxO-5drcXwnB-Stqh_PAbjNeG4mFo8Go,2453
176
- modal-0.73.155.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
177
- modal-0.73.155.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
178
- modal-0.73.155.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
179
- modal-0.73.155.dist-info/RECORD,,
173
+ modal_version/_version_generated.py,sha256=8z1dZXLk13pbLXOUQfQfB2qHzbM_QT3SY6V9WVjVZAk,150
174
+ modal-0.73.157.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
175
+ modal-0.73.157.dist-info/METADATA,sha256=GUT8XtlnOYHmpHyo6u1Q5XlsoEOPQGyuJB-UVeLDm6w,2453
176
+ modal-0.73.157.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
177
+ modal-0.73.157.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
178
+ modal-0.73.157.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
179
+ modal-0.73.157.dist-info/RECORD,,
modal_proto/api.proto CHANGED
@@ -800,9 +800,12 @@ message ContainerExecPutInputRequest {
800
800
  message ContainerExecRequest {
801
801
  string task_id = 1;
802
802
  repeated string command = 2;
803
- PTYInfo pty_info = 3;
803
+ // If pty_info is provided, open a PTY, but also this container exec is treated an
804
+ // "interactive shell" request, and it will be terminated if messages are not periodically
805
+ // sent on the stdin stream on some interval (currently 40 seconds).
806
+ optional PTYInfo pty_info = 3;
804
807
  // Send SIGTERM to running container on exit of exec command.
805
- bool terminate_container_on_exit = 4;
808
+ bool terminate_container_on_exit = 4 [deprecated=true];
806
809
  bool runtime_debug = 5; // For internal debugging use only.
807
810
  ExecOutputOption stdout_output = 6;
808
811
  ExecOutputOption stderr_output = 7;