modAL 1.4.1.dev2__py3-none-any.whl → 1.4.1.dev3__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.
@@ -28,6 +28,7 @@ _EXEC_SANDBOX_UNAVAILABLE_ERROR_TYPES = (NotFoundError, ServiceError, Connection
28
28
  class ErrorPayload:
29
29
  error_kind: str
30
30
  message: str
31
+ detail: str = ""
31
32
 
32
33
 
33
34
  def _stderr_to_text(stderr: Union[str, bytes]) -> str:
@@ -51,11 +52,18 @@ def try_parse_error_payload(stderr: Union[str, bytes]) -> Optional[ErrorPayload]
51
52
  return None
52
53
  if not isinstance(message, str) or not message.strip():
53
54
  return None
54
- return ErrorPayload(error_kind=error_kind, message=message)
55
+ detail = payload.get("detail", "")
56
+ if not isinstance(detail, str):
57
+ detail = ""
58
+ return ErrorPayload(error_kind=error_kind, message=message, detail=detail)
55
59
 
56
60
 
57
61
  def raise_read_file_error(returncode: int, stderr: Union[str, bytes], remote_path: str) -> NoReturn:
58
62
  if payload := try_parse_error_payload(stderr):
63
+ logger.debug(
64
+ f"sandbox-fs-tools read error: path={remote_path}, "
65
+ f"error_kind={payload.error_kind}, message={payload.message}, detail={payload.detail}"
66
+ )
59
67
  if payload.error_kind == "NotFound":
60
68
  raise SandboxFilesystemNotFoundError(f"{payload.message}: {remote_path}")
61
69
  if payload.error_kind == "IsDirectory":
@@ -106,6 +114,10 @@ def translate_exec_unexpected_error(operation: str, path: str, exc: Exception) -
106
114
 
107
115
  def raise_write_file_error(returncode: int, stderr: Union[str, bytes], remote_path: str) -> NoReturn:
108
116
  if payload := try_parse_error_payload(stderr):
117
+ logger.debug(
118
+ f"sandbox-fs-tools write error: path={remote_path}, "
119
+ f"error_kind={payload.error_kind}, message={payload.message}, detail={payload.detail}"
120
+ )
109
121
  if payload.error_kind == "NotDirectory" or payload.error_kind == "AlreadyExists":
110
122
  raise SandboxFilesystemNotADirectoryError(f"{payload.message}: {remote_path}")
111
123
  if payload.error_kind == "IsDirectory":
modal/client.pyi CHANGED
@@ -35,7 +35,7 @@ class _Client:
35
35
  server_url: str,
36
36
  client_type: int,
37
37
  credentials: typing.Optional[tuple[str, str]],
38
- version: str = "1.4.1.dev2",
38
+ version: str = "1.4.1.dev3",
39
39
  ):
40
40
  """mdmd:hidden
41
41
  The Modal client object is not intended to be instantiated directly by users.
@@ -171,7 +171,7 @@ class Client:
171
171
  server_url: str,
172
172
  client_type: int,
173
173
  credentials: typing.Optional[tuple[str, str]],
174
- version: str = "1.4.1.dev2",
174
+ version: str = "1.4.1.dev3",
175
175
  ):
176
176
  """mdmd:hidden
177
177
  The Modal client object is not intended to be instantiated directly by users.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.4.1.dev2
3
+ Version: 1.4.1.dev3
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License-Expression: Apache-2.0
@@ -26,7 +26,7 @@ modal/app.pyi,sha256=vU6tli-ELcF3do5sCF-Wch1gFRP3xjPLoq112SCq_z8,54009
26
26
  modal/billing.py,sha256=B2zXa7KeMnpqi2AQINycEk-KSXVYaLTTTAQTtuf2Gfs,257
27
27
  modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
28
28
  modal/client.py,sha256=Vk84hG9pPiHmuONEn0rsFm8AWag_KbA29lZR1Mqh8ZU,15011
29
- modal/client.pyi,sha256=iW4bkk11oO0Gj9lrYT8REoEajwtJ-dQipCJxwh0wC5g,14930
29
+ modal/client.pyi,sha256=V1qoxW9-PcDIgRw3G6v2Vk4nMronanKWmOrknI6OXeU,14930
30
30
  modal/cloud_bucket_mount.py,sha256=KkaJVy5vpO_u2NtDYtv1JM-M3y4J0UtWBapTDKpQRcA,6034
31
31
  modal/cloud_bucket_mount.pyi,sha256=mGDeEd1XvxGpCE6O5jRBSfIvMXvZ5AtIybea5k-0w9w,7560
32
32
  modal/cls.py,sha256=Yrl5b_tQhZMhc5avInM-i5UlGuqeog6Gs4rX2d9lLjI,40390
@@ -124,7 +124,7 @@ modal/_utils/name_utils.py,sha256=CIQL0Y4z47tq0rfNL2Kdo5dxsGrxoN2hR9Ko0HapeE4,25
124
124
  modal/_utils/package_utils.py,sha256=jYE7WFVzYWIfO0ZJhno_BYHb6Skp48uupOiw1a3yWzw,2056
125
125
  modal/_utils/pattern_utils.py,sha256=ZUffaECfe2iYBhH6cvCB-0-UWhmEBTZEl_TwG_So3ag,6714
126
126
  modal/_utils/rand_pb_testing.py,sha256=oNtQB1BY9CDh7vDXEkJitCuCu9a2ufk0KRcEuZ15d0k,4229
127
- modal/_utils/sandbox_fs_utils.py,sha256=BZQXwfWMQHXTw_5u1ttbb2Ouxxbe3W7DaJDTJZPbMAs,6536
127
+ modal/_utils/sandbox_fs_utils.py,sha256=n0YWapQJ4HcjifNz9FHa7NGsisXcS14f_AMjZRQ8LyE,7060
128
128
  modal/_utils/shell_utils.py,sha256=GjMrO1YxnBr4_UlpA2ZYQKCHxV78QTg0mqxAMHWGTE4,3427
129
129
  modal/_utils/task_command_router_client.py,sha256=Sm624zQ3URTVImlPKHgBYRzhevFCOiVvW3yjXgMlJX8,25889
130
130
  modal/_utils/time_utils.py,sha256=VVrIwm7YMv2vMznNGknkGzyATDp5iJ29F_7NZPfm5b0,7062
@@ -173,7 +173,7 @@ modal/experimental/__init__.py,sha256=Wb1YoAKAnNxH_0c2wA0T12I7bSu9PSO2nS_LuLska7
173
173
  modal/experimental/flash.py,sha256=ATGhVO8AleJ-TOe2PGolI5T7zfCEtj0kl_ivMPp7Rqg,33362
174
174
  modal/experimental/flash.pyi,sha256=R4h2nQl7-oiwqq_twCp0YqID_LnPjPGqxywXvxbiLIk,17011
175
175
  modal/experimental/ipython.py,sha256=TrCfmol9LGsRZMeDoeMPx3Hv3BFqQhYnmD_iH0pqdhk,2904
176
- modal-1.4.1.dev2.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
176
+ modal-1.4.1.dev3.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
177
177
  modal_docs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
178
178
  modal_docs/gen_cli_docs.py,sha256=5sVABw4uGUqPXjcWT0Nqjkpe5KLs89C3tFnla58-D0M,3756
179
179
  modal_docs/gen_cli_docs_main.py,sha256=UPGr7O1DYTIRLwfINe2rbdh89J3cPVTU1OWL-SjxnOQ,198
@@ -195,10 +195,10 @@ modal_proto/task_command_router_pb2.py,sha256=uSSR8Y9Yp07cIL60ds7__wUr5rj1uL2CQY
195
195
  modal_proto/task_command_router_pb2.pyi,sha256=utNwipYgMZUEUuWBE7sJ5cNjRctozHKPKDRpLy6cPLM,25667
196
196
  modal_proto/task_command_router_pb2_grpc.py,sha256=YoinPeLc-uwFShig8gE0MluOi6n-qqJZQ3YvnKwKUz8,23194
197
197
  modal_proto/task_command_router_pb2_grpc.pyi,sha256=VUSE5l1O6ATPT8Wbj4M3faMiIy5vFxSoS5ZlKfTEpHc,7449
198
- modal_version/__init__.py,sha256=Ou6eZQrpJVAuC7RB0PY6HLF3wWIa91Z6AwYTZpQYDV8,120
198
+ modal_version/__init__.py,sha256=RI5cimNviOYYQcyWHVLAGZzn2VvEwcGwyN2PbVtWqBs,120
199
199
  modal_version/__main__.py,sha256=nLUbubxKx7GXNzJIkTB7M7_u8080LyLM0IS0rzFkC_c,119
200
- modal-1.4.1.dev2.dist-info/METADATA,sha256=SIv74QhbI0cJ4p9D6t55T9k9JIzUxgUgC0X1_iDArig,2364
201
- modal-1.4.1.dev2.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
202
- modal-1.4.1.dev2.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
203
- modal-1.4.1.dev2.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
204
- modal-1.4.1.dev2.dist-info/RECORD,,
200
+ modal-1.4.1.dev3.dist-info/METADATA,sha256=n6zgKBkDmk7Vc4i6vrgXe9h5PGcnisoyfwtkn_t2dr8,2364
201
+ modal-1.4.1.dev3.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
202
+ modal-1.4.1.dev3.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
203
+ modal-1.4.1.dev3.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
204
+ modal-1.4.1.dev3.dist-info/RECORD,,
modal_version/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # Copyright Modal Labs 2026
2
2
  """Supplies the current version of the modal client library."""
3
3
 
4
- __version__ = "1.4.1.dev2"
4
+ __version__ = "1.4.1.dev3"