modal 0.73.39__tar.gz → 0.73.40__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 (187) hide show
  1. {modal-0.73.39 → modal-0.73.40}/PKG-INFO +1 -1
  2. {modal-0.73.39 → modal-0.73.40}/modal/_functions.py +3 -6
  3. {modal-0.73.39 → modal-0.73.40}/modal/client.pyi +2 -2
  4. {modal-0.73.39 → modal-0.73.40}/modal/functions.pyi +1 -1
  5. {modal-0.73.39 → modal-0.73.40}/modal.egg-info/PKG-INFO +1 -1
  6. {modal-0.73.39 → modal-0.73.40}/modal_version/_version_generated.py +1 -1
  7. {modal-0.73.39 → modal-0.73.40}/LICENSE +0 -0
  8. {modal-0.73.39 → modal-0.73.40}/README.md +0 -0
  9. {modal-0.73.39 → modal-0.73.40}/modal/__init__.py +0 -0
  10. {modal-0.73.39 → modal-0.73.40}/modal/__main__.py +0 -0
  11. {modal-0.73.39 → modal-0.73.40}/modal/_clustered_functions.py +0 -0
  12. {modal-0.73.39 → modal-0.73.40}/modal/_clustered_functions.pyi +0 -0
  13. {modal-0.73.39 → modal-0.73.40}/modal/_container_entrypoint.py +0 -0
  14. {modal-0.73.39 → modal-0.73.40}/modal/_ipython.py +0 -0
  15. {modal-0.73.39 → modal-0.73.40}/modal/_location.py +0 -0
  16. {modal-0.73.39 → modal-0.73.40}/modal/_object.py +0 -0
  17. {modal-0.73.39 → modal-0.73.40}/modal/_output.py +0 -0
  18. {modal-0.73.39 → modal-0.73.40}/modal/_partial_function.py +0 -0
  19. {modal-0.73.39 → modal-0.73.40}/modal/_proxy_tunnel.py +0 -0
  20. {modal-0.73.39 → modal-0.73.40}/modal/_pty.py +0 -0
  21. {modal-0.73.39 → modal-0.73.40}/modal/_resolver.py +0 -0
  22. {modal-0.73.39 → modal-0.73.40}/modal/_resources.py +0 -0
  23. {modal-0.73.39 → modal-0.73.40}/modal/_runtime/__init__.py +0 -0
  24. {modal-0.73.39 → modal-0.73.40}/modal/_runtime/asgi.py +0 -0
  25. {modal-0.73.39 → modal-0.73.40}/modal/_runtime/container_io_manager.py +0 -0
  26. {modal-0.73.39 → modal-0.73.40}/modal/_runtime/execution_context.py +0 -0
  27. {modal-0.73.39 → modal-0.73.40}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  28. {modal-0.73.39 → modal-0.73.40}/modal/_runtime/telemetry.py +0 -0
  29. {modal-0.73.39 → modal-0.73.40}/modal/_runtime/user_code_imports.py +0 -0
  30. {modal-0.73.39 → modal-0.73.40}/modal/_serialization.py +0 -0
  31. {modal-0.73.39 → modal-0.73.40}/modal/_traceback.py +0 -0
  32. {modal-0.73.39 → modal-0.73.40}/modal/_tunnel.py +0 -0
  33. {modal-0.73.39 → modal-0.73.40}/modal/_tunnel.pyi +0 -0
  34. {modal-0.73.39 → modal-0.73.40}/modal/_utils/__init__.py +0 -0
  35. {modal-0.73.39 → modal-0.73.40}/modal/_utils/app_utils.py +0 -0
  36. {modal-0.73.39 → modal-0.73.40}/modal/_utils/async_utils.py +0 -0
  37. {modal-0.73.39 → modal-0.73.40}/modal/_utils/blob_utils.py +0 -0
  38. {modal-0.73.39 → modal-0.73.40}/modal/_utils/bytes_io_segment_payload.py +0 -0
  39. {modal-0.73.39 → modal-0.73.40}/modal/_utils/deprecation.py +0 -0
  40. {modal-0.73.39 → modal-0.73.40}/modal/_utils/docker_utils.py +0 -0
  41. {modal-0.73.39 → modal-0.73.40}/modal/_utils/function_utils.py +0 -0
  42. {modal-0.73.39 → modal-0.73.40}/modal/_utils/grpc_testing.py +0 -0
  43. {modal-0.73.39 → modal-0.73.40}/modal/_utils/grpc_utils.py +0 -0
  44. {modal-0.73.39 → modal-0.73.40}/modal/_utils/hash_utils.py +0 -0
  45. {modal-0.73.39 → modal-0.73.40}/modal/_utils/http_utils.py +0 -0
  46. {modal-0.73.39 → modal-0.73.40}/modal/_utils/logger.py +0 -0
  47. {modal-0.73.39 → modal-0.73.40}/modal/_utils/mount_utils.py +0 -0
  48. {modal-0.73.39 → modal-0.73.40}/modal/_utils/name_utils.py +0 -0
  49. {modal-0.73.39 → modal-0.73.40}/modal/_utils/package_utils.py +0 -0
  50. {modal-0.73.39 → modal-0.73.40}/modal/_utils/pattern_utils.py +0 -0
  51. {modal-0.73.39 → modal-0.73.40}/modal/_utils/rand_pb_testing.py +0 -0
  52. {modal-0.73.39 → modal-0.73.40}/modal/_utils/shell_utils.py +0 -0
  53. {modal-0.73.39 → modal-0.73.40}/modal/_vendor/__init__.py +0 -0
  54. {modal-0.73.39 → modal-0.73.40}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  55. {modal-0.73.39 → modal-0.73.40}/modal/_vendor/cloudpickle.py +0 -0
  56. {modal-0.73.39 → modal-0.73.40}/modal/_vendor/tblib.py +0 -0
  57. {modal-0.73.39 → modal-0.73.40}/modal/_watcher.py +0 -0
  58. {modal-0.73.39 → modal-0.73.40}/modal/app.py +0 -0
  59. {modal-0.73.39 → modal-0.73.40}/modal/app.pyi +0 -0
  60. {modal-0.73.39 → modal-0.73.40}/modal/call_graph.py +0 -0
  61. {modal-0.73.39 → modal-0.73.40}/modal/cli/__init__.py +0 -0
  62. {modal-0.73.39 → modal-0.73.40}/modal/cli/_download.py +0 -0
  63. {modal-0.73.39 → modal-0.73.40}/modal/cli/_traceback.py +0 -0
  64. {modal-0.73.39 → modal-0.73.40}/modal/cli/app.py +0 -0
  65. {modal-0.73.39 → modal-0.73.40}/modal/cli/config.py +0 -0
  66. {modal-0.73.39 → modal-0.73.40}/modal/cli/container.py +0 -0
  67. {modal-0.73.39 → modal-0.73.40}/modal/cli/dict.py +0 -0
  68. {modal-0.73.39 → modal-0.73.40}/modal/cli/entry_point.py +0 -0
  69. {modal-0.73.39 → modal-0.73.40}/modal/cli/environment.py +0 -0
  70. {modal-0.73.39 → modal-0.73.40}/modal/cli/import_refs.py +0 -0
  71. {modal-0.73.39 → modal-0.73.40}/modal/cli/launch.py +0 -0
  72. {modal-0.73.39 → modal-0.73.40}/modal/cli/network_file_system.py +0 -0
  73. {modal-0.73.39 → modal-0.73.40}/modal/cli/profile.py +0 -0
  74. {modal-0.73.39 → modal-0.73.40}/modal/cli/programs/__init__.py +0 -0
  75. {modal-0.73.39 → modal-0.73.40}/modal/cli/programs/run_jupyter.py +0 -0
  76. {modal-0.73.39 → modal-0.73.40}/modal/cli/programs/vscode.py +0 -0
  77. {modal-0.73.39 → modal-0.73.40}/modal/cli/queues.py +0 -0
  78. {modal-0.73.39 → modal-0.73.40}/modal/cli/run.py +0 -0
  79. {modal-0.73.39 → modal-0.73.40}/modal/cli/secret.py +0 -0
  80. {modal-0.73.39 → modal-0.73.40}/modal/cli/token.py +0 -0
  81. {modal-0.73.39 → modal-0.73.40}/modal/cli/utils.py +0 -0
  82. {modal-0.73.39 → modal-0.73.40}/modal/cli/volume.py +0 -0
  83. {modal-0.73.39 → modal-0.73.40}/modal/client.py +0 -0
  84. {modal-0.73.39 → modal-0.73.40}/modal/cloud_bucket_mount.py +0 -0
  85. {modal-0.73.39 → modal-0.73.40}/modal/cloud_bucket_mount.pyi +0 -0
  86. {modal-0.73.39 → modal-0.73.40}/modal/cls.py +0 -0
  87. {modal-0.73.39 → modal-0.73.40}/modal/cls.pyi +0 -0
  88. {modal-0.73.39 → modal-0.73.40}/modal/config.py +0 -0
  89. {modal-0.73.39 → modal-0.73.40}/modal/container_process.py +0 -0
  90. {modal-0.73.39 → modal-0.73.40}/modal/container_process.pyi +0 -0
  91. {modal-0.73.39 → modal-0.73.40}/modal/dict.py +0 -0
  92. {modal-0.73.39 → modal-0.73.40}/modal/dict.pyi +0 -0
  93. {modal-0.73.39 → modal-0.73.40}/modal/environments.py +0 -0
  94. {modal-0.73.39 → modal-0.73.40}/modal/environments.pyi +0 -0
  95. {modal-0.73.39 → modal-0.73.40}/modal/exception.py +0 -0
  96. {modal-0.73.39 → modal-0.73.40}/modal/experimental.py +0 -0
  97. {modal-0.73.39 → modal-0.73.40}/modal/experimental.pyi +0 -0
  98. {modal-0.73.39 → modal-0.73.40}/modal/extensions/__init__.py +0 -0
  99. {modal-0.73.39 → modal-0.73.40}/modal/extensions/ipython.py +0 -0
  100. {modal-0.73.39 → modal-0.73.40}/modal/file_io.py +0 -0
  101. {modal-0.73.39 → modal-0.73.40}/modal/file_io.pyi +0 -0
  102. {modal-0.73.39 → modal-0.73.40}/modal/file_pattern_matcher.py +0 -0
  103. {modal-0.73.39 → modal-0.73.40}/modal/functions.py +0 -0
  104. {modal-0.73.39 → modal-0.73.40}/modal/gpu.py +0 -0
  105. {modal-0.73.39 → modal-0.73.40}/modal/image.py +0 -0
  106. {modal-0.73.39 → modal-0.73.40}/modal/image.pyi +0 -0
  107. {modal-0.73.39 → modal-0.73.40}/modal/io_streams.py +0 -0
  108. {modal-0.73.39 → modal-0.73.40}/modal/io_streams.pyi +0 -0
  109. {modal-0.73.39 → modal-0.73.40}/modal/mount.py +0 -0
  110. {modal-0.73.39 → modal-0.73.40}/modal/mount.pyi +0 -0
  111. {modal-0.73.39 → modal-0.73.40}/modal/network_file_system.py +0 -0
  112. {modal-0.73.39 → modal-0.73.40}/modal/network_file_system.pyi +0 -0
  113. {modal-0.73.39 → modal-0.73.40}/modal/object.py +0 -0
  114. {modal-0.73.39 → modal-0.73.40}/modal/object.pyi +0 -0
  115. {modal-0.73.39 → modal-0.73.40}/modal/output.py +0 -0
  116. {modal-0.73.39 → modal-0.73.40}/modal/parallel_map.py +0 -0
  117. {modal-0.73.39 → modal-0.73.40}/modal/parallel_map.pyi +0 -0
  118. {modal-0.73.39 → modal-0.73.40}/modal/partial_function.py +0 -0
  119. {modal-0.73.39 → modal-0.73.40}/modal/partial_function.pyi +0 -0
  120. {modal-0.73.39 → modal-0.73.40}/modal/proxy.py +0 -0
  121. {modal-0.73.39 → modal-0.73.40}/modal/proxy.pyi +0 -0
  122. {modal-0.73.39 → modal-0.73.40}/modal/py.typed +0 -0
  123. {modal-0.73.39 → modal-0.73.40}/modal/queue.py +0 -0
  124. {modal-0.73.39 → modal-0.73.40}/modal/queue.pyi +0 -0
  125. {modal-0.73.39 → modal-0.73.40}/modal/requirements/2023.12.312.txt +0 -0
  126. {modal-0.73.39 → modal-0.73.40}/modal/requirements/2023.12.txt +0 -0
  127. {modal-0.73.39 → modal-0.73.40}/modal/requirements/2024.04.txt +0 -0
  128. {modal-0.73.39 → modal-0.73.40}/modal/requirements/2024.10.txt +0 -0
  129. {modal-0.73.39 → modal-0.73.40}/modal/requirements/README.md +0 -0
  130. {modal-0.73.39 → modal-0.73.40}/modal/requirements/base-images.json +0 -0
  131. {modal-0.73.39 → modal-0.73.40}/modal/retries.py +0 -0
  132. {modal-0.73.39 → modal-0.73.40}/modal/runner.py +0 -0
  133. {modal-0.73.39 → modal-0.73.40}/modal/runner.pyi +0 -0
  134. {modal-0.73.39 → modal-0.73.40}/modal/running_app.py +0 -0
  135. {modal-0.73.39 → modal-0.73.40}/modal/sandbox.py +0 -0
  136. {modal-0.73.39 → modal-0.73.40}/modal/sandbox.pyi +0 -0
  137. {modal-0.73.39 → modal-0.73.40}/modal/schedule.py +0 -0
  138. {modal-0.73.39 → modal-0.73.40}/modal/scheduler_placement.py +0 -0
  139. {modal-0.73.39 → modal-0.73.40}/modal/secret.py +0 -0
  140. {modal-0.73.39 → modal-0.73.40}/modal/secret.pyi +0 -0
  141. {modal-0.73.39 → modal-0.73.40}/modal/serving.py +0 -0
  142. {modal-0.73.39 → modal-0.73.40}/modal/serving.pyi +0 -0
  143. {modal-0.73.39 → modal-0.73.40}/modal/snapshot.py +0 -0
  144. {modal-0.73.39 → modal-0.73.40}/modal/snapshot.pyi +0 -0
  145. {modal-0.73.39 → modal-0.73.40}/modal/stream_type.py +0 -0
  146. {modal-0.73.39 → modal-0.73.40}/modal/token_flow.py +0 -0
  147. {modal-0.73.39 → modal-0.73.40}/modal/token_flow.pyi +0 -0
  148. {modal-0.73.39 → modal-0.73.40}/modal/volume.py +0 -0
  149. {modal-0.73.39 → modal-0.73.40}/modal/volume.pyi +0 -0
  150. {modal-0.73.39 → modal-0.73.40}/modal.egg-info/SOURCES.txt +0 -0
  151. {modal-0.73.39 → modal-0.73.40}/modal.egg-info/dependency_links.txt +0 -0
  152. {modal-0.73.39 → modal-0.73.40}/modal.egg-info/entry_points.txt +0 -0
  153. {modal-0.73.39 → modal-0.73.40}/modal.egg-info/requires.txt +0 -0
  154. {modal-0.73.39 → modal-0.73.40}/modal.egg-info/top_level.txt +0 -0
  155. {modal-0.73.39 → modal-0.73.40}/modal_docs/__init__.py +0 -0
  156. {modal-0.73.39 → modal-0.73.40}/modal_docs/gen_cli_docs.py +0 -0
  157. {modal-0.73.39 → modal-0.73.40}/modal_docs/gen_reference_docs.py +0 -0
  158. {modal-0.73.39 → modal-0.73.40}/modal_docs/mdmd/__init__.py +0 -0
  159. {modal-0.73.39 → modal-0.73.40}/modal_docs/mdmd/mdmd.py +0 -0
  160. {modal-0.73.39 → modal-0.73.40}/modal_docs/mdmd/signatures.py +0 -0
  161. {modal-0.73.39 → modal-0.73.40}/modal_global_objects/__init__.py +0 -0
  162. {modal-0.73.39 → modal-0.73.40}/modal_global_objects/images/__init__.py +0 -0
  163. {modal-0.73.39 → modal-0.73.40}/modal_global_objects/images/base_images.py +0 -0
  164. {modal-0.73.39 → modal-0.73.40}/modal_global_objects/mounts/__init__.py +0 -0
  165. {modal-0.73.39 → modal-0.73.40}/modal_global_objects/mounts/modal_client_package.py +0 -0
  166. {modal-0.73.39 → modal-0.73.40}/modal_global_objects/mounts/python_standalone.py +0 -0
  167. {modal-0.73.39 → modal-0.73.40}/modal_proto/__init__.py +0 -0
  168. {modal-0.73.39 → modal-0.73.40}/modal_proto/api.proto +0 -0
  169. {modal-0.73.39 → modal-0.73.40}/modal_proto/api_grpc.py +0 -0
  170. {modal-0.73.39 → modal-0.73.40}/modal_proto/api_pb2.py +0 -0
  171. {modal-0.73.39 → modal-0.73.40}/modal_proto/api_pb2.pyi +0 -0
  172. {modal-0.73.39 → modal-0.73.40}/modal_proto/api_pb2_grpc.py +0 -0
  173. {modal-0.73.39 → modal-0.73.40}/modal_proto/api_pb2_grpc.pyi +0 -0
  174. {modal-0.73.39 → modal-0.73.40}/modal_proto/modal_api_grpc.py +0 -0
  175. {modal-0.73.39 → modal-0.73.40}/modal_proto/modal_options_grpc.py +0 -0
  176. {modal-0.73.39 → modal-0.73.40}/modal_proto/options.proto +0 -0
  177. {modal-0.73.39 → modal-0.73.40}/modal_proto/options_grpc.py +0 -0
  178. {modal-0.73.39 → modal-0.73.40}/modal_proto/options_pb2.py +0 -0
  179. {modal-0.73.39 → modal-0.73.40}/modal_proto/options_pb2.pyi +0 -0
  180. {modal-0.73.39 → modal-0.73.40}/modal_proto/options_pb2_grpc.py +0 -0
  181. {modal-0.73.39 → modal-0.73.40}/modal_proto/options_pb2_grpc.pyi +0 -0
  182. {modal-0.73.39 → modal-0.73.40}/modal_proto/py.typed +0 -0
  183. {modal-0.73.39 → modal-0.73.40}/modal_version/__init__.py +0 -0
  184. {modal-0.73.39 → modal-0.73.40}/modal_version/__main__.py +0 -0
  185. {modal-0.73.39 → modal-0.73.40}/pyproject.toml +0 -0
  186. {modal-0.73.39 → modal-0.73.40}/setup.cfg +0 -0
  187. {modal-0.73.39 → modal-0.73.40}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: modal
3
- Version: 0.73.39
3
+ Version: 0.73.40
4
4
  Summary: Python client library for Modal
5
5
  Author: Modal Labs
6
6
  Author-email: support@modal.com
@@ -1258,13 +1258,10 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
1258
1258
  # TODO (live_method on properties is not great, since it could be blocking the event loop from async contexts)
1259
1259
  @property
1260
1260
  @live_method
1261
- async def web_url(self) -> str:
1261
+ async def web_url(self) -> Optional[str]:
1262
1262
  """URL of a Function running as a web endpoint."""
1263
- if not self._web_url:
1264
- raise ValueError(
1265
- f"No web_url can be found for function {self._function_name}. web_url "
1266
- "can only be referenced from a running app context"
1267
- )
1263
+ # TODO If we remove the @live_method above, we may want to provide better feedback when the underlying
1264
+ # attribute is None because the object is not hydrated, rather than because it's not a web endpoint.
1268
1265
  return self._web_url
1269
1266
 
1270
1267
  @property
@@ -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.39"
30
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.40"
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.39"
88
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.40"
89
89
  ): ...
90
90
  def is_closed(self) -> bool: ...
91
91
  @property
@@ -160,7 +160,7 @@ class Function(
160
160
  def _get_metadata(self): ...
161
161
  def _check_no_web_url(self, fn_name: str): ...
162
162
  @property
163
- def web_url(self) -> str: ...
163
+ def web_url(self) -> typing.Optional[str]: ...
164
164
  @property
165
165
  def is_generator(self) -> bool: ...
166
166
  @property
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: modal
3
- Version: 0.73.39
3
+ Version: 0.73.40
4
4
  Summary: Python client library for Modal
5
5
  Author: Modal Labs
6
6
  Author-email: support@modal.com
@@ -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 = 39 # git: 346da8e
4
+ build_number = 40 # git: 44906ed
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