modal 0.73.134__tar.gz → 0.73.136__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 (186) hide show
  1. {modal-0.73.134 → modal-0.73.136}/PKG-INFO +1 -1
  2. {modal-0.73.134 → modal-0.73.136}/modal/_resolver.py +1 -6
  3. {modal-0.73.134 → modal-0.73.136}/modal/client.pyi +2 -2
  4. {modal-0.73.134 → modal-0.73.136}/modal/runner.py +2 -1
  5. {modal-0.73.134 → modal-0.73.136}/modal.egg-info/PKG-INFO +1 -1
  6. {modal-0.73.134 → modal-0.73.136}/modal_version/_version_generated.py +1 -1
  7. {modal-0.73.134 → modal-0.73.136}/LICENSE +0 -0
  8. {modal-0.73.134 → modal-0.73.136}/README.md +0 -0
  9. {modal-0.73.134 → modal-0.73.136}/modal/__init__.py +0 -0
  10. {modal-0.73.134 → modal-0.73.136}/modal/__main__.py +0 -0
  11. {modal-0.73.134 → modal-0.73.136}/modal/_clustered_functions.py +0 -0
  12. {modal-0.73.134 → modal-0.73.136}/modal/_clustered_functions.pyi +0 -0
  13. {modal-0.73.134 → modal-0.73.136}/modal/_container_entrypoint.py +0 -0
  14. {modal-0.73.134 → modal-0.73.136}/modal/_functions.py +0 -0
  15. {modal-0.73.134 → modal-0.73.136}/modal/_ipython.py +0 -0
  16. {modal-0.73.134 → modal-0.73.136}/modal/_location.py +0 -0
  17. {modal-0.73.134 → modal-0.73.136}/modal/_object.py +0 -0
  18. {modal-0.73.134 → modal-0.73.136}/modal/_output.py +0 -0
  19. {modal-0.73.134 → modal-0.73.136}/modal/_partial_function.py +0 -0
  20. {modal-0.73.134 → modal-0.73.136}/modal/_proxy_tunnel.py +0 -0
  21. {modal-0.73.134 → modal-0.73.136}/modal/_pty.py +0 -0
  22. {modal-0.73.134 → modal-0.73.136}/modal/_resources.py +0 -0
  23. {modal-0.73.134 → modal-0.73.136}/modal/_runtime/__init__.py +0 -0
  24. {modal-0.73.134 → modal-0.73.136}/modal/_runtime/asgi.py +0 -0
  25. {modal-0.73.134 → modal-0.73.136}/modal/_runtime/container_io_manager.py +0 -0
  26. {modal-0.73.134 → modal-0.73.136}/modal/_runtime/container_io_manager.pyi +0 -0
  27. {modal-0.73.134 → modal-0.73.136}/modal/_runtime/execution_context.py +0 -0
  28. {modal-0.73.134 → modal-0.73.136}/modal/_runtime/execution_context.pyi +0 -0
  29. {modal-0.73.134 → modal-0.73.136}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  30. {modal-0.73.134 → modal-0.73.136}/modal/_runtime/telemetry.py +0 -0
  31. {modal-0.73.134 → modal-0.73.136}/modal/_runtime/user_code_imports.py +0 -0
  32. {modal-0.73.134 → modal-0.73.136}/modal/_serialization.py +0 -0
  33. {modal-0.73.134 → modal-0.73.136}/modal/_traceback.py +0 -0
  34. {modal-0.73.134 → modal-0.73.136}/modal/_tunnel.py +0 -0
  35. {modal-0.73.134 → modal-0.73.136}/modal/_tunnel.pyi +0 -0
  36. {modal-0.73.134 → modal-0.73.136}/modal/_type_manager.py +0 -0
  37. {modal-0.73.134 → modal-0.73.136}/modal/_utils/__init__.py +0 -0
  38. {modal-0.73.134 → modal-0.73.136}/modal/_utils/app_utils.py +0 -0
  39. {modal-0.73.134 → modal-0.73.136}/modal/_utils/async_utils.py +0 -0
  40. {modal-0.73.134 → modal-0.73.136}/modal/_utils/blob_utils.py +0 -0
  41. {modal-0.73.134 → modal-0.73.136}/modal/_utils/bytes_io_segment_payload.py +0 -0
  42. {modal-0.73.134 → modal-0.73.136}/modal/_utils/deprecation.py +0 -0
  43. {modal-0.73.134 → modal-0.73.136}/modal/_utils/docker_utils.py +0 -0
  44. {modal-0.73.134 → modal-0.73.136}/modal/_utils/function_utils.py +0 -0
  45. {modal-0.73.134 → modal-0.73.136}/modal/_utils/git_utils.py +0 -0
  46. {modal-0.73.134 → modal-0.73.136}/modal/_utils/grpc_testing.py +0 -0
  47. {modal-0.73.134 → modal-0.73.136}/modal/_utils/grpc_utils.py +0 -0
  48. {modal-0.73.134 → modal-0.73.136}/modal/_utils/hash_utils.py +0 -0
  49. {modal-0.73.134 → modal-0.73.136}/modal/_utils/http_utils.py +0 -0
  50. {modal-0.73.134 → modal-0.73.136}/modal/_utils/jwt_utils.py +0 -0
  51. {modal-0.73.134 → modal-0.73.136}/modal/_utils/logger.py +0 -0
  52. {modal-0.73.134 → modal-0.73.136}/modal/_utils/mount_utils.py +0 -0
  53. {modal-0.73.134 → modal-0.73.136}/modal/_utils/name_utils.py +0 -0
  54. {modal-0.73.134 → modal-0.73.136}/modal/_utils/package_utils.py +0 -0
  55. {modal-0.73.134 → modal-0.73.136}/modal/_utils/pattern_utils.py +0 -0
  56. {modal-0.73.134 → modal-0.73.136}/modal/_utils/rand_pb_testing.py +0 -0
  57. {modal-0.73.134 → modal-0.73.136}/modal/_utils/shell_utils.py +0 -0
  58. {modal-0.73.134 → modal-0.73.136}/modal/_vendor/__init__.py +0 -0
  59. {modal-0.73.134 → modal-0.73.136}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  60. {modal-0.73.134 → modal-0.73.136}/modal/_vendor/cloudpickle.py +0 -0
  61. {modal-0.73.134 → modal-0.73.136}/modal/_vendor/tblib.py +0 -0
  62. {modal-0.73.134 → modal-0.73.136}/modal/_watcher.py +0 -0
  63. {modal-0.73.134 → modal-0.73.136}/modal/app.py +0 -0
  64. {modal-0.73.134 → modal-0.73.136}/modal/app.pyi +0 -0
  65. {modal-0.73.134 → modal-0.73.136}/modal/call_graph.py +0 -0
  66. {modal-0.73.134 → modal-0.73.136}/modal/cli/__init__.py +0 -0
  67. {modal-0.73.134 → modal-0.73.136}/modal/cli/_download.py +0 -0
  68. {modal-0.73.134 → modal-0.73.136}/modal/cli/_traceback.py +0 -0
  69. {modal-0.73.134 → modal-0.73.136}/modal/cli/app.py +0 -0
  70. {modal-0.73.134 → modal-0.73.136}/modal/cli/config.py +0 -0
  71. {modal-0.73.134 → modal-0.73.136}/modal/cli/container.py +0 -0
  72. {modal-0.73.134 → modal-0.73.136}/modal/cli/dict.py +0 -0
  73. {modal-0.73.134 → modal-0.73.136}/modal/cli/entry_point.py +0 -0
  74. {modal-0.73.134 → modal-0.73.136}/modal/cli/environment.py +0 -0
  75. {modal-0.73.134 → modal-0.73.136}/modal/cli/import_refs.py +0 -0
  76. {modal-0.73.134 → modal-0.73.136}/modal/cli/launch.py +0 -0
  77. {modal-0.73.134 → modal-0.73.136}/modal/cli/network_file_system.py +0 -0
  78. {modal-0.73.134 → modal-0.73.136}/modal/cli/profile.py +0 -0
  79. {modal-0.73.134 → modal-0.73.136}/modal/cli/programs/__init__.py +0 -0
  80. {modal-0.73.134 → modal-0.73.136}/modal/cli/programs/run_jupyter.py +0 -0
  81. {modal-0.73.134 → modal-0.73.136}/modal/cli/programs/vscode.py +0 -0
  82. {modal-0.73.134 → modal-0.73.136}/modal/cli/queues.py +0 -0
  83. {modal-0.73.134 → modal-0.73.136}/modal/cli/run.py +0 -0
  84. {modal-0.73.134 → modal-0.73.136}/modal/cli/secret.py +0 -0
  85. {modal-0.73.134 → modal-0.73.136}/modal/cli/token.py +0 -0
  86. {modal-0.73.134 → modal-0.73.136}/modal/cli/utils.py +0 -0
  87. {modal-0.73.134 → modal-0.73.136}/modal/cli/volume.py +0 -0
  88. {modal-0.73.134 → modal-0.73.136}/modal/client.py +0 -0
  89. {modal-0.73.134 → modal-0.73.136}/modal/cloud_bucket_mount.py +0 -0
  90. {modal-0.73.134 → modal-0.73.136}/modal/cloud_bucket_mount.pyi +0 -0
  91. {modal-0.73.134 → modal-0.73.136}/modal/cls.py +0 -0
  92. {modal-0.73.134 → modal-0.73.136}/modal/cls.pyi +0 -0
  93. {modal-0.73.134 → modal-0.73.136}/modal/config.py +0 -0
  94. {modal-0.73.134 → modal-0.73.136}/modal/container_process.py +0 -0
  95. {modal-0.73.134 → modal-0.73.136}/modal/container_process.pyi +0 -0
  96. {modal-0.73.134 → modal-0.73.136}/modal/dict.py +0 -0
  97. {modal-0.73.134 → modal-0.73.136}/modal/dict.pyi +0 -0
  98. {modal-0.73.134 → modal-0.73.136}/modal/environments.py +0 -0
  99. {modal-0.73.134 → modal-0.73.136}/modal/environments.pyi +0 -0
  100. {modal-0.73.134 → modal-0.73.136}/modal/exception.py +0 -0
  101. {modal-0.73.134 → modal-0.73.136}/modal/experimental.py +0 -0
  102. {modal-0.73.134 → modal-0.73.136}/modal/experimental.pyi +0 -0
  103. {modal-0.73.134 → modal-0.73.136}/modal/extensions/__init__.py +0 -0
  104. {modal-0.73.134 → modal-0.73.136}/modal/extensions/ipython.py +0 -0
  105. {modal-0.73.134 → modal-0.73.136}/modal/file_io.py +0 -0
  106. {modal-0.73.134 → modal-0.73.136}/modal/file_io.pyi +0 -0
  107. {modal-0.73.134 → modal-0.73.136}/modal/file_pattern_matcher.py +0 -0
  108. {modal-0.73.134 → modal-0.73.136}/modal/functions.py +0 -0
  109. {modal-0.73.134 → modal-0.73.136}/modal/functions.pyi +0 -0
  110. {modal-0.73.134 → modal-0.73.136}/modal/gpu.py +0 -0
  111. {modal-0.73.134 → modal-0.73.136}/modal/image.py +0 -0
  112. {modal-0.73.134 → modal-0.73.136}/modal/image.pyi +0 -0
  113. {modal-0.73.134 → modal-0.73.136}/modal/io_streams.py +0 -0
  114. {modal-0.73.134 → modal-0.73.136}/modal/io_streams.pyi +0 -0
  115. {modal-0.73.134 → modal-0.73.136}/modal/mount.py +0 -0
  116. {modal-0.73.134 → modal-0.73.136}/modal/mount.pyi +0 -0
  117. {modal-0.73.134 → modal-0.73.136}/modal/network_file_system.py +0 -0
  118. {modal-0.73.134 → modal-0.73.136}/modal/network_file_system.pyi +0 -0
  119. {modal-0.73.134 → modal-0.73.136}/modal/object.py +0 -0
  120. {modal-0.73.134 → modal-0.73.136}/modal/object.pyi +0 -0
  121. {modal-0.73.134 → modal-0.73.136}/modal/output.py +0 -0
  122. {modal-0.73.134 → modal-0.73.136}/modal/parallel_map.py +0 -0
  123. {modal-0.73.134 → modal-0.73.136}/modal/parallel_map.pyi +0 -0
  124. {modal-0.73.134 → modal-0.73.136}/modal/partial_function.py +0 -0
  125. {modal-0.73.134 → modal-0.73.136}/modal/partial_function.pyi +0 -0
  126. {modal-0.73.134 → modal-0.73.136}/modal/proxy.py +0 -0
  127. {modal-0.73.134 → modal-0.73.136}/modal/proxy.pyi +0 -0
  128. {modal-0.73.134 → modal-0.73.136}/modal/py.typed +0 -0
  129. {modal-0.73.134 → modal-0.73.136}/modal/queue.py +0 -0
  130. {modal-0.73.134 → modal-0.73.136}/modal/queue.pyi +0 -0
  131. {modal-0.73.134 → modal-0.73.136}/modal/requirements/2023.12.312.txt +0 -0
  132. {modal-0.73.134 → modal-0.73.136}/modal/requirements/2023.12.txt +0 -0
  133. {modal-0.73.134 → modal-0.73.136}/modal/requirements/2024.04.txt +0 -0
  134. {modal-0.73.134 → modal-0.73.136}/modal/requirements/2024.10.txt +0 -0
  135. {modal-0.73.134 → modal-0.73.136}/modal/requirements/PREVIEW.txt +0 -0
  136. {modal-0.73.134 → modal-0.73.136}/modal/requirements/README.md +0 -0
  137. {modal-0.73.134 → modal-0.73.136}/modal/requirements/base-images.json +0 -0
  138. {modal-0.73.134 → modal-0.73.136}/modal/retries.py +0 -0
  139. {modal-0.73.134 → modal-0.73.136}/modal/runner.pyi +0 -0
  140. {modal-0.73.134 → modal-0.73.136}/modal/running_app.py +0 -0
  141. {modal-0.73.134 → modal-0.73.136}/modal/sandbox.py +0 -0
  142. {modal-0.73.134 → modal-0.73.136}/modal/sandbox.pyi +0 -0
  143. {modal-0.73.134 → modal-0.73.136}/modal/schedule.py +0 -0
  144. {modal-0.73.134 → modal-0.73.136}/modal/scheduler_placement.py +0 -0
  145. {modal-0.73.134 → modal-0.73.136}/modal/secret.py +0 -0
  146. {modal-0.73.134 → modal-0.73.136}/modal/secret.pyi +0 -0
  147. {modal-0.73.134 → modal-0.73.136}/modal/serving.py +0 -0
  148. {modal-0.73.134 → modal-0.73.136}/modal/serving.pyi +0 -0
  149. {modal-0.73.134 → modal-0.73.136}/modal/snapshot.py +0 -0
  150. {modal-0.73.134 → modal-0.73.136}/modal/snapshot.pyi +0 -0
  151. {modal-0.73.134 → modal-0.73.136}/modal/stream_type.py +0 -0
  152. {modal-0.73.134 → modal-0.73.136}/modal/token_flow.py +0 -0
  153. {modal-0.73.134 → modal-0.73.136}/modal/token_flow.pyi +0 -0
  154. {modal-0.73.134 → modal-0.73.136}/modal/volume.py +0 -0
  155. {modal-0.73.134 → modal-0.73.136}/modal/volume.pyi +0 -0
  156. {modal-0.73.134 → modal-0.73.136}/modal.egg-info/SOURCES.txt +0 -0
  157. {modal-0.73.134 → modal-0.73.136}/modal.egg-info/dependency_links.txt +0 -0
  158. {modal-0.73.134 → modal-0.73.136}/modal.egg-info/entry_points.txt +0 -0
  159. {modal-0.73.134 → modal-0.73.136}/modal.egg-info/requires.txt +0 -0
  160. {modal-0.73.134 → modal-0.73.136}/modal.egg-info/top_level.txt +0 -0
  161. {modal-0.73.134 → modal-0.73.136}/modal_docs/__init__.py +0 -0
  162. {modal-0.73.134 → modal-0.73.136}/modal_docs/gen_cli_docs.py +0 -0
  163. {modal-0.73.134 → modal-0.73.136}/modal_docs/gen_reference_docs.py +0 -0
  164. {modal-0.73.134 → modal-0.73.136}/modal_docs/mdmd/__init__.py +0 -0
  165. {modal-0.73.134 → modal-0.73.136}/modal_docs/mdmd/mdmd.py +0 -0
  166. {modal-0.73.134 → modal-0.73.136}/modal_docs/mdmd/signatures.py +0 -0
  167. {modal-0.73.134 → modal-0.73.136}/modal_proto/__init__.py +0 -0
  168. {modal-0.73.134 → modal-0.73.136}/modal_proto/api.proto +0 -0
  169. {modal-0.73.134 → modal-0.73.136}/modal_proto/api_grpc.py +0 -0
  170. {modal-0.73.134 → modal-0.73.136}/modal_proto/api_pb2.py +0 -0
  171. {modal-0.73.134 → modal-0.73.136}/modal_proto/api_pb2.pyi +0 -0
  172. {modal-0.73.134 → modal-0.73.136}/modal_proto/api_pb2_grpc.py +0 -0
  173. {modal-0.73.134 → modal-0.73.136}/modal_proto/api_pb2_grpc.pyi +0 -0
  174. {modal-0.73.134 → modal-0.73.136}/modal_proto/modal_api_grpc.py +0 -0
  175. {modal-0.73.134 → modal-0.73.136}/modal_proto/modal_options_grpc.py +0 -0
  176. {modal-0.73.134 → modal-0.73.136}/modal_proto/options.proto +0 -0
  177. {modal-0.73.134 → modal-0.73.136}/modal_proto/options_grpc.py +0 -0
  178. {modal-0.73.134 → modal-0.73.136}/modal_proto/options_pb2.py +0 -0
  179. {modal-0.73.134 → modal-0.73.136}/modal_proto/options_pb2.pyi +0 -0
  180. {modal-0.73.134 → modal-0.73.136}/modal_proto/options_pb2_grpc.py +0 -0
  181. {modal-0.73.134 → modal-0.73.136}/modal_proto/options_pb2_grpc.pyi +0 -0
  182. {modal-0.73.134 → modal-0.73.136}/modal_proto/py.typed +0 -0
  183. {modal-0.73.134 → modal-0.73.136}/modal_version/__init__.py +0 -0
  184. {modal-0.73.134 → modal-0.73.136}/modal_version/__main__.py +0 -0
  185. {modal-0.73.134 → modal-0.73.136}/pyproject.toml +0 -0
  186. {modal-0.73.134 → modal-0.73.136}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: modal
3
- Version: 0.73.134
3
+ Version: 0.73.136
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -1,7 +1,6 @@
1
1
  # Copyright Modal Labs 2023
2
2
  import asyncio
3
3
  import contextlib
4
- import traceback
5
4
  import typing
6
5
  from asyncio import Future
7
6
  from collections.abc import Hashable
@@ -154,11 +153,7 @@ class Resolver:
154
153
  self._deduplication_cache[deduplication_key] = cached_future
155
154
 
156
155
  # TODO(elias): print original exception/trace rather than the Resolver-internal trace
157
- try:
158
- return await cached_future
159
- except Exception:
160
- traceback.print_exc()
161
- raise
156
+ return await cached_future
162
157
 
163
158
  def objects(self) -> list["modal._object._Object"]:
164
159
  unique_objects: dict[str, "modal._object._Object"] = {}
@@ -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.134",
34
+ version: str = "0.73.136",
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.134",
96
+ version: str = "0.73.136",
97
97
  ): ...
98
98
  def is_closed(self) -> bool: ...
99
99
  @property
@@ -318,7 +318,7 @@ async def _run_app(
318
318
  def heartbeat():
319
319
  return _heartbeat(client, running_app.app_id)
320
320
 
321
- tc.infinite_loop(heartbeat, sleep=HEARTBEAT_INTERVAL, log_exception=not detach)
321
+ heartbeat_loop = tc.infinite_loop(heartbeat, sleep=HEARTBEAT_INTERVAL, log_exception=not detach)
322
322
  logs_loop: Optional[asyncio.Task] = None
323
323
 
324
324
  if output_mgr is not None:
@@ -370,6 +370,7 @@ async def _run_app(
370
370
  else:
371
371
  yield app
372
372
  # successful completion!
373
+ heartbeat_loop.cancel()
373
374
  await _status_based_disconnect(client, running_app.app_id, exc_info=None)
374
375
  except KeyboardInterrupt as e:
375
376
  # this happens only if sigint comes in during the yield block above
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: modal
3
- Version: 0.73.134
3
+ Version: 0.73.136
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 = 134 # git: 2af1e83
4
+ build_number = 136 # git: f269124
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