modal 0.73.90__tar.gz → 0.73.91__tar.gz

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.
Files changed (182) hide show
  1. {modal-0.73.90 → modal-0.73.91}/PKG-INFO +1 -1
  2. {modal-0.73.90 → modal-0.73.91}/modal/_utils/grpc_utils.py +5 -1
  3. {modal-0.73.90 → modal-0.73.91}/modal/client.pyi +2 -2
  4. {modal-0.73.90 → modal-0.73.91}/modal.egg-info/PKG-INFO +1 -1
  5. {modal-0.73.90 → modal-0.73.91}/modal_version/_version_generated.py +1 -1
  6. {modal-0.73.90 → modal-0.73.91}/LICENSE +0 -0
  7. {modal-0.73.90 → modal-0.73.91}/README.md +0 -0
  8. {modal-0.73.90 → modal-0.73.91}/modal/__init__.py +0 -0
  9. {modal-0.73.90 → modal-0.73.91}/modal/__main__.py +0 -0
  10. {modal-0.73.90 → modal-0.73.91}/modal/_clustered_functions.py +0 -0
  11. {modal-0.73.90 → modal-0.73.91}/modal/_clustered_functions.pyi +0 -0
  12. {modal-0.73.90 → modal-0.73.91}/modal/_container_entrypoint.py +0 -0
  13. {modal-0.73.90 → modal-0.73.91}/modal/_functions.py +0 -0
  14. {modal-0.73.90 → modal-0.73.91}/modal/_ipython.py +0 -0
  15. {modal-0.73.90 → modal-0.73.91}/modal/_location.py +0 -0
  16. {modal-0.73.90 → modal-0.73.91}/modal/_object.py +0 -0
  17. {modal-0.73.90 → modal-0.73.91}/modal/_output.py +0 -0
  18. {modal-0.73.90 → modal-0.73.91}/modal/_partial_function.py +0 -0
  19. {modal-0.73.90 → modal-0.73.91}/modal/_proxy_tunnel.py +0 -0
  20. {modal-0.73.90 → modal-0.73.91}/modal/_pty.py +0 -0
  21. {modal-0.73.90 → modal-0.73.91}/modal/_resolver.py +0 -0
  22. {modal-0.73.90 → modal-0.73.91}/modal/_resources.py +0 -0
  23. {modal-0.73.90 → modal-0.73.91}/modal/_runtime/__init__.py +0 -0
  24. {modal-0.73.90 → modal-0.73.91}/modal/_runtime/asgi.py +0 -0
  25. {modal-0.73.90 → modal-0.73.91}/modal/_runtime/container_io_manager.py +0 -0
  26. {modal-0.73.90 → modal-0.73.91}/modal/_runtime/container_io_manager.pyi +0 -0
  27. {modal-0.73.90 → modal-0.73.91}/modal/_runtime/execution_context.py +0 -0
  28. {modal-0.73.90 → modal-0.73.91}/modal/_runtime/execution_context.pyi +0 -0
  29. {modal-0.73.90 → modal-0.73.91}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  30. {modal-0.73.90 → modal-0.73.91}/modal/_runtime/telemetry.py +0 -0
  31. {modal-0.73.90 → modal-0.73.91}/modal/_runtime/user_code_imports.py +0 -0
  32. {modal-0.73.90 → modal-0.73.91}/modal/_serialization.py +0 -0
  33. {modal-0.73.90 → modal-0.73.91}/modal/_traceback.py +0 -0
  34. {modal-0.73.90 → modal-0.73.91}/modal/_tunnel.py +0 -0
  35. {modal-0.73.90 → modal-0.73.91}/modal/_tunnel.pyi +0 -0
  36. {modal-0.73.90 → modal-0.73.91}/modal/_utils/__init__.py +0 -0
  37. {modal-0.73.90 → modal-0.73.91}/modal/_utils/app_utils.py +0 -0
  38. {modal-0.73.90 → modal-0.73.91}/modal/_utils/async_utils.py +0 -0
  39. {modal-0.73.90 → modal-0.73.91}/modal/_utils/blob_utils.py +0 -0
  40. {modal-0.73.90 → modal-0.73.91}/modal/_utils/bytes_io_segment_payload.py +0 -0
  41. {modal-0.73.90 → modal-0.73.91}/modal/_utils/deprecation.py +0 -0
  42. {modal-0.73.90 → modal-0.73.91}/modal/_utils/docker_utils.py +0 -0
  43. {modal-0.73.90 → modal-0.73.91}/modal/_utils/function_utils.py +0 -0
  44. {modal-0.73.90 → modal-0.73.91}/modal/_utils/grpc_testing.py +0 -0
  45. {modal-0.73.90 → modal-0.73.91}/modal/_utils/hash_utils.py +0 -0
  46. {modal-0.73.90 → modal-0.73.91}/modal/_utils/http_utils.py +0 -0
  47. {modal-0.73.90 → modal-0.73.91}/modal/_utils/logger.py +0 -0
  48. {modal-0.73.90 → modal-0.73.91}/modal/_utils/mount_utils.py +0 -0
  49. {modal-0.73.90 → modal-0.73.91}/modal/_utils/name_utils.py +0 -0
  50. {modal-0.73.90 → modal-0.73.91}/modal/_utils/package_utils.py +0 -0
  51. {modal-0.73.90 → modal-0.73.91}/modal/_utils/pattern_utils.py +0 -0
  52. {modal-0.73.90 → modal-0.73.91}/modal/_utils/rand_pb_testing.py +0 -0
  53. {modal-0.73.90 → modal-0.73.91}/modal/_utils/shell_utils.py +0 -0
  54. {modal-0.73.90 → modal-0.73.91}/modal/_vendor/__init__.py +0 -0
  55. {modal-0.73.90 → modal-0.73.91}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  56. {modal-0.73.90 → modal-0.73.91}/modal/_vendor/cloudpickle.py +0 -0
  57. {modal-0.73.90 → modal-0.73.91}/modal/_vendor/tblib.py +0 -0
  58. {modal-0.73.90 → modal-0.73.91}/modal/_watcher.py +0 -0
  59. {modal-0.73.90 → modal-0.73.91}/modal/app.py +0 -0
  60. {modal-0.73.90 → modal-0.73.91}/modal/app.pyi +0 -0
  61. {modal-0.73.90 → modal-0.73.91}/modal/call_graph.py +0 -0
  62. {modal-0.73.90 → modal-0.73.91}/modal/cli/__init__.py +0 -0
  63. {modal-0.73.90 → modal-0.73.91}/modal/cli/_download.py +0 -0
  64. {modal-0.73.90 → modal-0.73.91}/modal/cli/_traceback.py +0 -0
  65. {modal-0.73.90 → modal-0.73.91}/modal/cli/app.py +0 -0
  66. {modal-0.73.90 → modal-0.73.91}/modal/cli/config.py +0 -0
  67. {modal-0.73.90 → modal-0.73.91}/modal/cli/container.py +0 -0
  68. {modal-0.73.90 → modal-0.73.91}/modal/cli/dict.py +0 -0
  69. {modal-0.73.90 → modal-0.73.91}/modal/cli/entry_point.py +0 -0
  70. {modal-0.73.90 → modal-0.73.91}/modal/cli/environment.py +0 -0
  71. {modal-0.73.90 → modal-0.73.91}/modal/cli/import_refs.py +0 -0
  72. {modal-0.73.90 → modal-0.73.91}/modal/cli/launch.py +0 -0
  73. {modal-0.73.90 → modal-0.73.91}/modal/cli/network_file_system.py +0 -0
  74. {modal-0.73.90 → modal-0.73.91}/modal/cli/profile.py +0 -0
  75. {modal-0.73.90 → modal-0.73.91}/modal/cli/programs/__init__.py +0 -0
  76. {modal-0.73.90 → modal-0.73.91}/modal/cli/programs/run_jupyter.py +0 -0
  77. {modal-0.73.90 → modal-0.73.91}/modal/cli/programs/vscode.py +0 -0
  78. {modal-0.73.90 → modal-0.73.91}/modal/cli/queues.py +0 -0
  79. {modal-0.73.90 → modal-0.73.91}/modal/cli/run.py +0 -0
  80. {modal-0.73.90 → modal-0.73.91}/modal/cli/secret.py +0 -0
  81. {modal-0.73.90 → modal-0.73.91}/modal/cli/token.py +0 -0
  82. {modal-0.73.90 → modal-0.73.91}/modal/cli/utils.py +0 -0
  83. {modal-0.73.90 → modal-0.73.91}/modal/cli/volume.py +0 -0
  84. {modal-0.73.90 → modal-0.73.91}/modal/client.py +0 -0
  85. {modal-0.73.90 → modal-0.73.91}/modal/cloud_bucket_mount.py +0 -0
  86. {modal-0.73.90 → modal-0.73.91}/modal/cloud_bucket_mount.pyi +0 -0
  87. {modal-0.73.90 → modal-0.73.91}/modal/cls.py +0 -0
  88. {modal-0.73.90 → modal-0.73.91}/modal/cls.pyi +0 -0
  89. {modal-0.73.90 → modal-0.73.91}/modal/config.py +0 -0
  90. {modal-0.73.90 → modal-0.73.91}/modal/container_process.py +0 -0
  91. {modal-0.73.90 → modal-0.73.91}/modal/container_process.pyi +0 -0
  92. {modal-0.73.90 → modal-0.73.91}/modal/dict.py +0 -0
  93. {modal-0.73.90 → modal-0.73.91}/modal/dict.pyi +0 -0
  94. {modal-0.73.90 → modal-0.73.91}/modal/environments.py +0 -0
  95. {modal-0.73.90 → modal-0.73.91}/modal/environments.pyi +0 -0
  96. {modal-0.73.90 → modal-0.73.91}/modal/exception.py +0 -0
  97. {modal-0.73.90 → modal-0.73.91}/modal/experimental.py +0 -0
  98. {modal-0.73.90 → modal-0.73.91}/modal/experimental.pyi +0 -0
  99. {modal-0.73.90 → modal-0.73.91}/modal/extensions/__init__.py +0 -0
  100. {modal-0.73.90 → modal-0.73.91}/modal/extensions/ipython.py +0 -0
  101. {modal-0.73.90 → modal-0.73.91}/modal/file_io.py +0 -0
  102. {modal-0.73.90 → modal-0.73.91}/modal/file_io.pyi +0 -0
  103. {modal-0.73.90 → modal-0.73.91}/modal/file_pattern_matcher.py +0 -0
  104. {modal-0.73.90 → modal-0.73.91}/modal/functions.py +0 -0
  105. {modal-0.73.90 → modal-0.73.91}/modal/functions.pyi +0 -0
  106. {modal-0.73.90 → modal-0.73.91}/modal/gpu.py +0 -0
  107. {modal-0.73.90 → modal-0.73.91}/modal/image.py +0 -0
  108. {modal-0.73.90 → modal-0.73.91}/modal/image.pyi +0 -0
  109. {modal-0.73.90 → modal-0.73.91}/modal/io_streams.py +0 -0
  110. {modal-0.73.90 → modal-0.73.91}/modal/io_streams.pyi +0 -0
  111. {modal-0.73.90 → modal-0.73.91}/modal/mount.py +0 -0
  112. {modal-0.73.90 → modal-0.73.91}/modal/mount.pyi +0 -0
  113. {modal-0.73.90 → modal-0.73.91}/modal/network_file_system.py +0 -0
  114. {modal-0.73.90 → modal-0.73.91}/modal/network_file_system.pyi +0 -0
  115. {modal-0.73.90 → modal-0.73.91}/modal/object.py +0 -0
  116. {modal-0.73.90 → modal-0.73.91}/modal/object.pyi +0 -0
  117. {modal-0.73.90 → modal-0.73.91}/modal/output.py +0 -0
  118. {modal-0.73.90 → modal-0.73.91}/modal/parallel_map.py +0 -0
  119. {modal-0.73.90 → modal-0.73.91}/modal/parallel_map.pyi +0 -0
  120. {modal-0.73.90 → modal-0.73.91}/modal/partial_function.py +0 -0
  121. {modal-0.73.90 → modal-0.73.91}/modal/partial_function.pyi +0 -0
  122. {modal-0.73.90 → modal-0.73.91}/modal/proxy.py +0 -0
  123. {modal-0.73.90 → modal-0.73.91}/modal/proxy.pyi +0 -0
  124. {modal-0.73.90 → modal-0.73.91}/modal/py.typed +0 -0
  125. {modal-0.73.90 → modal-0.73.91}/modal/queue.py +0 -0
  126. {modal-0.73.90 → modal-0.73.91}/modal/queue.pyi +0 -0
  127. {modal-0.73.90 → modal-0.73.91}/modal/requirements/2023.12.312.txt +0 -0
  128. {modal-0.73.90 → modal-0.73.91}/modal/requirements/2023.12.txt +0 -0
  129. {modal-0.73.90 → modal-0.73.91}/modal/requirements/2024.04.txt +0 -0
  130. {modal-0.73.90 → modal-0.73.91}/modal/requirements/2024.10.txt +0 -0
  131. {modal-0.73.90 → modal-0.73.91}/modal/requirements/README.md +0 -0
  132. {modal-0.73.90 → modal-0.73.91}/modal/requirements/base-images.json +0 -0
  133. {modal-0.73.90 → modal-0.73.91}/modal/retries.py +0 -0
  134. {modal-0.73.90 → modal-0.73.91}/modal/runner.py +0 -0
  135. {modal-0.73.90 → modal-0.73.91}/modal/runner.pyi +0 -0
  136. {modal-0.73.90 → modal-0.73.91}/modal/running_app.py +0 -0
  137. {modal-0.73.90 → modal-0.73.91}/modal/sandbox.py +0 -0
  138. {modal-0.73.90 → modal-0.73.91}/modal/sandbox.pyi +0 -0
  139. {modal-0.73.90 → modal-0.73.91}/modal/schedule.py +0 -0
  140. {modal-0.73.90 → modal-0.73.91}/modal/scheduler_placement.py +0 -0
  141. {modal-0.73.90 → modal-0.73.91}/modal/secret.py +0 -0
  142. {modal-0.73.90 → modal-0.73.91}/modal/secret.pyi +0 -0
  143. {modal-0.73.90 → modal-0.73.91}/modal/serving.py +0 -0
  144. {modal-0.73.90 → modal-0.73.91}/modal/serving.pyi +0 -0
  145. {modal-0.73.90 → modal-0.73.91}/modal/snapshot.py +0 -0
  146. {modal-0.73.90 → modal-0.73.91}/modal/snapshot.pyi +0 -0
  147. {modal-0.73.90 → modal-0.73.91}/modal/stream_type.py +0 -0
  148. {modal-0.73.90 → modal-0.73.91}/modal/token_flow.py +0 -0
  149. {modal-0.73.90 → modal-0.73.91}/modal/token_flow.pyi +0 -0
  150. {modal-0.73.90 → modal-0.73.91}/modal/volume.py +0 -0
  151. {modal-0.73.90 → modal-0.73.91}/modal/volume.pyi +0 -0
  152. {modal-0.73.90 → modal-0.73.91}/modal.egg-info/SOURCES.txt +0 -0
  153. {modal-0.73.90 → modal-0.73.91}/modal.egg-info/dependency_links.txt +0 -0
  154. {modal-0.73.90 → modal-0.73.91}/modal.egg-info/entry_points.txt +0 -0
  155. {modal-0.73.90 → modal-0.73.91}/modal.egg-info/requires.txt +0 -0
  156. {modal-0.73.90 → modal-0.73.91}/modal.egg-info/top_level.txt +0 -0
  157. {modal-0.73.90 → modal-0.73.91}/modal_docs/__init__.py +0 -0
  158. {modal-0.73.90 → modal-0.73.91}/modal_docs/gen_cli_docs.py +0 -0
  159. {modal-0.73.90 → modal-0.73.91}/modal_docs/gen_reference_docs.py +0 -0
  160. {modal-0.73.90 → modal-0.73.91}/modal_docs/mdmd/__init__.py +0 -0
  161. {modal-0.73.90 → modal-0.73.91}/modal_docs/mdmd/mdmd.py +0 -0
  162. {modal-0.73.90 → modal-0.73.91}/modal_docs/mdmd/signatures.py +0 -0
  163. {modal-0.73.90 → modal-0.73.91}/modal_proto/__init__.py +0 -0
  164. {modal-0.73.90 → modal-0.73.91}/modal_proto/api.proto +0 -0
  165. {modal-0.73.90 → modal-0.73.91}/modal_proto/api_grpc.py +0 -0
  166. {modal-0.73.90 → modal-0.73.91}/modal_proto/api_pb2.py +0 -0
  167. {modal-0.73.90 → modal-0.73.91}/modal_proto/api_pb2.pyi +0 -0
  168. {modal-0.73.90 → modal-0.73.91}/modal_proto/api_pb2_grpc.py +0 -0
  169. {modal-0.73.90 → modal-0.73.91}/modal_proto/api_pb2_grpc.pyi +0 -0
  170. {modal-0.73.90 → modal-0.73.91}/modal_proto/modal_api_grpc.py +0 -0
  171. {modal-0.73.90 → modal-0.73.91}/modal_proto/modal_options_grpc.py +0 -0
  172. {modal-0.73.90 → modal-0.73.91}/modal_proto/options.proto +0 -0
  173. {modal-0.73.90 → modal-0.73.91}/modal_proto/options_grpc.py +0 -0
  174. {modal-0.73.90 → modal-0.73.91}/modal_proto/options_pb2.py +0 -0
  175. {modal-0.73.90 → modal-0.73.91}/modal_proto/options_pb2.pyi +0 -0
  176. {modal-0.73.90 → modal-0.73.91}/modal_proto/options_pb2_grpc.py +0 -0
  177. {modal-0.73.90 → modal-0.73.91}/modal_proto/options_pb2_grpc.pyi +0 -0
  178. {modal-0.73.90 → modal-0.73.91}/modal_proto/py.typed +0 -0
  179. {modal-0.73.90 → modal-0.73.91}/modal_version/__init__.py +0 -0
  180. {modal-0.73.90 → modal-0.73.91}/modal_version/__main__.py +0 -0
  181. {modal-0.73.90 → modal-0.73.91}/pyproject.toml +0 -0
  182. {modal-0.73.90 → modal-0.73.91}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: modal
3
- Version: 0.73.90
3
+ Version: 0.73.91
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -191,6 +191,10 @@ async def retry_transient_errors(
191
191
  final_attempt = False
192
192
 
193
193
  if final_attempt:
194
+ logger.debug(
195
+ f"Final attempt failed with {repr(exc)} {n_retries=} {delay=} "
196
+ f"{total_deadline=} for {fn.name} ({idempotency_key[:8]})"
197
+ )
194
198
  if isinstance(exc, OSError):
195
199
  raise ConnectionError(str(exc))
196
200
  elif isinstance(exc, asyncio.TimeoutError):
@@ -204,7 +208,7 @@ async def retry_transient_errors(
204
208
  # TODO: update to newer version (>=0.4.8) once stable
205
209
  raise exc
206
210
 
207
- logger.debug(f"Retryable failure {repr(exc)} {n_retries=} {delay=} for {fn.name}")
211
+ logger.debug(f"Retryable failure {repr(exc)} {n_retries=} {delay=} for {fn.name} ({idempotency_key[:8]})")
208
212
 
209
213
  n_retries += 1
210
214
 
@@ -27,7 +27,7 @@ class _Client:
27
27
  _snapshotted: bool
28
28
 
29
29
  def __init__(
30
- self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.90"
30
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.91"
31
31
  ): ...
32
32
  def is_closed(self) -> bool: ...
33
33
  @property
@@ -85,7 +85,7 @@ class Client:
85
85
  _snapshotted: bool
86
86
 
87
87
  def __init__(
88
- self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.90"
88
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.91"
89
89
  ): ...
90
90
  def is_closed(self) -> bool: ...
91
91
  @property
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: modal
3
- Version: 0.73.90
3
+ Version: 0.73.91
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -1,4 +1,4 @@
1
1
  # Copyright Modal Labs 2025
2
2
 
3
3
  # Note: Reset this value to -1 whenever you make a minor `0.X` release of the client.
4
- build_number = 90 # git: 6038b07
4
+ build_number = 91 # git: 77578e0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes