modal 0.73.155__tar.gz → 0.73.157__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 (184) hide show
  1. {modal-0.73.155 → modal-0.73.157}/PKG-INFO +1 -1
  2. {modal-0.73.155 → modal-0.73.157}/modal/_functions.py +4 -1
  3. {modal-0.73.155 → modal-0.73.157}/modal/client.pyi +2 -2
  4. {modal-0.73.155 → modal-0.73.157}/modal/cls.py +4 -1
  5. {modal-0.73.155 → modal-0.73.157}/modal.egg-info/PKG-INFO +1 -1
  6. {modal-0.73.155 → modal-0.73.157}/modal_proto/api.proto +5 -2
  7. {modal-0.73.155 → modal-0.73.157}/modal_proto/api_pb2.py +700 -698
  8. {modal-0.73.155 → modal-0.73.157}/modal_proto/api_pb2.pyi +10 -3
  9. {modal-0.73.155 → modal-0.73.157}/modal_version/_version_generated.py +1 -1
  10. {modal-0.73.155 → modal-0.73.157}/LICENSE +0 -0
  11. {modal-0.73.155 → modal-0.73.157}/README.md +0 -0
  12. {modal-0.73.155 → modal-0.73.157}/modal/__init__.py +0 -0
  13. {modal-0.73.155 → modal-0.73.157}/modal/__main__.py +0 -0
  14. {modal-0.73.155 → modal-0.73.157}/modal/_clustered_functions.py +0 -0
  15. {modal-0.73.155 → modal-0.73.157}/modal/_clustered_functions.pyi +0 -0
  16. {modal-0.73.155 → modal-0.73.157}/modal/_container_entrypoint.py +0 -0
  17. {modal-0.73.155 → modal-0.73.157}/modal/_ipython.py +0 -0
  18. {modal-0.73.155 → modal-0.73.157}/modal/_location.py +0 -0
  19. {modal-0.73.155 → modal-0.73.157}/modal/_object.py +0 -0
  20. {modal-0.73.155 → modal-0.73.157}/modal/_output.py +0 -0
  21. {modal-0.73.155 → modal-0.73.157}/modal/_partial_function.py +0 -0
  22. {modal-0.73.155 → modal-0.73.157}/modal/_proxy_tunnel.py +0 -0
  23. {modal-0.73.155 → modal-0.73.157}/modal/_pty.py +0 -0
  24. {modal-0.73.155 → modal-0.73.157}/modal/_resolver.py +0 -0
  25. {modal-0.73.155 → modal-0.73.157}/modal/_resources.py +0 -0
  26. {modal-0.73.155 → modal-0.73.157}/modal/_runtime/__init__.py +0 -0
  27. {modal-0.73.155 → modal-0.73.157}/modal/_runtime/asgi.py +0 -0
  28. {modal-0.73.155 → modal-0.73.157}/modal/_runtime/container_io_manager.py +0 -0
  29. {modal-0.73.155 → modal-0.73.157}/modal/_runtime/container_io_manager.pyi +0 -0
  30. {modal-0.73.155 → modal-0.73.157}/modal/_runtime/execution_context.py +0 -0
  31. {modal-0.73.155 → modal-0.73.157}/modal/_runtime/execution_context.pyi +0 -0
  32. {modal-0.73.155 → modal-0.73.157}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  33. {modal-0.73.155 → modal-0.73.157}/modal/_runtime/telemetry.py +0 -0
  34. {modal-0.73.155 → modal-0.73.157}/modal/_runtime/user_code_imports.py +0 -0
  35. {modal-0.73.155 → modal-0.73.157}/modal/_serialization.py +0 -0
  36. {modal-0.73.155 → modal-0.73.157}/modal/_traceback.py +0 -0
  37. {modal-0.73.155 → modal-0.73.157}/modal/_tunnel.py +0 -0
  38. {modal-0.73.155 → modal-0.73.157}/modal/_tunnel.pyi +0 -0
  39. {modal-0.73.155 → modal-0.73.157}/modal/_type_manager.py +0 -0
  40. {modal-0.73.155 → modal-0.73.157}/modal/_utils/__init__.py +0 -0
  41. {modal-0.73.155 → modal-0.73.157}/modal/_utils/app_utils.py +0 -0
  42. {modal-0.73.155 → modal-0.73.157}/modal/_utils/async_utils.py +0 -0
  43. {modal-0.73.155 → modal-0.73.157}/modal/_utils/blob_utils.py +0 -0
  44. {modal-0.73.155 → modal-0.73.157}/modal/_utils/bytes_io_segment_payload.py +0 -0
  45. {modal-0.73.155 → modal-0.73.157}/modal/_utils/deprecation.py +0 -0
  46. {modal-0.73.155 → modal-0.73.157}/modal/_utils/docker_utils.py +0 -0
  47. {modal-0.73.155 → modal-0.73.157}/modal/_utils/function_utils.py +0 -0
  48. {modal-0.73.155 → modal-0.73.157}/modal/_utils/git_utils.py +0 -0
  49. {modal-0.73.155 → modal-0.73.157}/modal/_utils/grpc_testing.py +0 -0
  50. {modal-0.73.155 → modal-0.73.157}/modal/_utils/grpc_utils.py +0 -0
  51. {modal-0.73.155 → modal-0.73.157}/modal/_utils/hash_utils.py +0 -0
  52. {modal-0.73.155 → modal-0.73.157}/modal/_utils/http_utils.py +0 -0
  53. {modal-0.73.155 → modal-0.73.157}/modal/_utils/jwt_utils.py +0 -0
  54. {modal-0.73.155 → modal-0.73.157}/modal/_utils/logger.py +0 -0
  55. {modal-0.73.155 → modal-0.73.157}/modal/_utils/mount_utils.py +0 -0
  56. {modal-0.73.155 → modal-0.73.157}/modal/_utils/name_utils.py +0 -0
  57. {modal-0.73.155 → modal-0.73.157}/modal/_utils/package_utils.py +0 -0
  58. {modal-0.73.155 → modal-0.73.157}/modal/_utils/pattern_utils.py +0 -0
  59. {modal-0.73.155 → modal-0.73.157}/modal/_utils/rand_pb_testing.py +0 -0
  60. {modal-0.73.155 → modal-0.73.157}/modal/_utils/shell_utils.py +0 -0
  61. {modal-0.73.155 → modal-0.73.157}/modal/_vendor/__init__.py +0 -0
  62. {modal-0.73.155 → modal-0.73.157}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  63. {modal-0.73.155 → modal-0.73.157}/modal/_vendor/cloudpickle.py +0 -0
  64. {modal-0.73.155 → modal-0.73.157}/modal/_vendor/tblib.py +0 -0
  65. {modal-0.73.155 → modal-0.73.157}/modal/_watcher.py +0 -0
  66. {modal-0.73.155 → modal-0.73.157}/modal/app.py +0 -0
  67. {modal-0.73.155 → modal-0.73.157}/modal/app.pyi +0 -0
  68. {modal-0.73.155 → modal-0.73.157}/modal/call_graph.py +0 -0
  69. {modal-0.73.155 → modal-0.73.157}/modal/cli/__init__.py +0 -0
  70. {modal-0.73.155 → modal-0.73.157}/modal/cli/_download.py +0 -0
  71. {modal-0.73.155 → modal-0.73.157}/modal/cli/_traceback.py +0 -0
  72. {modal-0.73.155 → modal-0.73.157}/modal/cli/app.py +0 -0
  73. {modal-0.73.155 → modal-0.73.157}/modal/cli/config.py +0 -0
  74. {modal-0.73.155 → modal-0.73.157}/modal/cli/container.py +0 -0
  75. {modal-0.73.155 → modal-0.73.157}/modal/cli/dict.py +0 -0
  76. {modal-0.73.155 → modal-0.73.157}/modal/cli/entry_point.py +0 -0
  77. {modal-0.73.155 → modal-0.73.157}/modal/cli/environment.py +0 -0
  78. {modal-0.73.155 → modal-0.73.157}/modal/cli/import_refs.py +0 -0
  79. {modal-0.73.155 → modal-0.73.157}/modal/cli/launch.py +0 -0
  80. {modal-0.73.155 → modal-0.73.157}/modal/cli/network_file_system.py +0 -0
  81. {modal-0.73.155 → modal-0.73.157}/modal/cli/profile.py +0 -0
  82. {modal-0.73.155 → modal-0.73.157}/modal/cli/programs/__init__.py +0 -0
  83. {modal-0.73.155 → modal-0.73.157}/modal/cli/programs/run_jupyter.py +0 -0
  84. {modal-0.73.155 → modal-0.73.157}/modal/cli/programs/vscode.py +0 -0
  85. {modal-0.73.155 → modal-0.73.157}/modal/cli/queues.py +0 -0
  86. {modal-0.73.155 → modal-0.73.157}/modal/cli/run.py +0 -0
  87. {modal-0.73.155 → modal-0.73.157}/modal/cli/secret.py +0 -0
  88. {modal-0.73.155 → modal-0.73.157}/modal/cli/token.py +0 -0
  89. {modal-0.73.155 → modal-0.73.157}/modal/cli/utils.py +0 -0
  90. {modal-0.73.155 → modal-0.73.157}/modal/cli/volume.py +0 -0
  91. {modal-0.73.155 → modal-0.73.157}/modal/client.py +0 -0
  92. {modal-0.73.155 → modal-0.73.157}/modal/cloud_bucket_mount.py +0 -0
  93. {modal-0.73.155 → modal-0.73.157}/modal/cloud_bucket_mount.pyi +0 -0
  94. {modal-0.73.155 → modal-0.73.157}/modal/cls.pyi +0 -0
  95. {modal-0.73.155 → modal-0.73.157}/modal/config.py +0 -0
  96. {modal-0.73.155 → modal-0.73.157}/modal/container_process.py +0 -0
  97. {modal-0.73.155 → modal-0.73.157}/modal/container_process.pyi +0 -0
  98. {modal-0.73.155 → modal-0.73.157}/modal/dict.py +0 -0
  99. {modal-0.73.155 → modal-0.73.157}/modal/dict.pyi +0 -0
  100. {modal-0.73.155 → modal-0.73.157}/modal/environments.py +0 -0
  101. {modal-0.73.155 → modal-0.73.157}/modal/environments.pyi +0 -0
  102. {modal-0.73.155 → modal-0.73.157}/modal/exception.py +0 -0
  103. {modal-0.73.155 → modal-0.73.157}/modal/experimental/__init__.py +0 -0
  104. {modal-0.73.155 → modal-0.73.157}/modal/experimental/ipython.py +0 -0
  105. {modal-0.73.155 → modal-0.73.157}/modal/file_io.py +0 -0
  106. {modal-0.73.155 → modal-0.73.157}/modal/file_io.pyi +0 -0
  107. {modal-0.73.155 → modal-0.73.157}/modal/file_pattern_matcher.py +0 -0
  108. {modal-0.73.155 → modal-0.73.157}/modal/functions.py +0 -0
  109. {modal-0.73.155 → modal-0.73.157}/modal/functions.pyi +0 -0
  110. {modal-0.73.155 → modal-0.73.157}/modal/gpu.py +0 -0
  111. {modal-0.73.155 → modal-0.73.157}/modal/image.py +0 -0
  112. {modal-0.73.155 → modal-0.73.157}/modal/image.pyi +0 -0
  113. {modal-0.73.155 → modal-0.73.157}/modal/io_streams.py +0 -0
  114. {modal-0.73.155 → modal-0.73.157}/modal/io_streams.pyi +0 -0
  115. {modal-0.73.155 → modal-0.73.157}/modal/mount.py +0 -0
  116. {modal-0.73.155 → modal-0.73.157}/modal/mount.pyi +0 -0
  117. {modal-0.73.155 → modal-0.73.157}/modal/network_file_system.py +0 -0
  118. {modal-0.73.155 → modal-0.73.157}/modal/network_file_system.pyi +0 -0
  119. {modal-0.73.155 → modal-0.73.157}/modal/object.py +0 -0
  120. {modal-0.73.155 → modal-0.73.157}/modal/object.pyi +0 -0
  121. {modal-0.73.155 → modal-0.73.157}/modal/output.py +0 -0
  122. {modal-0.73.155 → modal-0.73.157}/modal/parallel_map.py +0 -0
  123. {modal-0.73.155 → modal-0.73.157}/modal/parallel_map.pyi +0 -0
  124. {modal-0.73.155 → modal-0.73.157}/modal/partial_function.py +0 -0
  125. {modal-0.73.155 → modal-0.73.157}/modal/partial_function.pyi +0 -0
  126. {modal-0.73.155 → modal-0.73.157}/modal/proxy.py +0 -0
  127. {modal-0.73.155 → modal-0.73.157}/modal/proxy.pyi +0 -0
  128. {modal-0.73.155 → modal-0.73.157}/modal/py.typed +0 -0
  129. {modal-0.73.155 → modal-0.73.157}/modal/queue.py +0 -0
  130. {modal-0.73.155 → modal-0.73.157}/modal/queue.pyi +0 -0
  131. {modal-0.73.155 → modal-0.73.157}/modal/requirements/2023.12.312.txt +0 -0
  132. {modal-0.73.155 → modal-0.73.157}/modal/requirements/2023.12.txt +0 -0
  133. {modal-0.73.155 → modal-0.73.157}/modal/requirements/2024.04.txt +0 -0
  134. {modal-0.73.155 → modal-0.73.157}/modal/requirements/2024.10.txt +0 -0
  135. {modal-0.73.155 → modal-0.73.157}/modal/requirements/PREVIEW.txt +0 -0
  136. {modal-0.73.155 → modal-0.73.157}/modal/requirements/README.md +0 -0
  137. {modal-0.73.155 → modal-0.73.157}/modal/requirements/base-images.json +0 -0
  138. {modal-0.73.155 → modal-0.73.157}/modal/retries.py +0 -0
  139. {modal-0.73.155 → modal-0.73.157}/modal/runner.py +0 -0
  140. {modal-0.73.155 → modal-0.73.157}/modal/runner.pyi +0 -0
  141. {modal-0.73.155 → modal-0.73.157}/modal/running_app.py +0 -0
  142. {modal-0.73.155 → modal-0.73.157}/modal/sandbox.py +0 -0
  143. {modal-0.73.155 → modal-0.73.157}/modal/sandbox.pyi +0 -0
  144. {modal-0.73.155 → modal-0.73.157}/modal/schedule.py +0 -0
  145. {modal-0.73.155 → modal-0.73.157}/modal/scheduler_placement.py +0 -0
  146. {modal-0.73.155 → modal-0.73.157}/modal/secret.py +0 -0
  147. {modal-0.73.155 → modal-0.73.157}/modal/secret.pyi +0 -0
  148. {modal-0.73.155 → modal-0.73.157}/modal/serving.py +0 -0
  149. {modal-0.73.155 → modal-0.73.157}/modal/serving.pyi +0 -0
  150. {modal-0.73.155 → modal-0.73.157}/modal/snapshot.py +0 -0
  151. {modal-0.73.155 → modal-0.73.157}/modal/snapshot.pyi +0 -0
  152. {modal-0.73.155 → modal-0.73.157}/modal/stream_type.py +0 -0
  153. {modal-0.73.155 → modal-0.73.157}/modal/token_flow.py +0 -0
  154. {modal-0.73.155 → modal-0.73.157}/modal/token_flow.pyi +0 -0
  155. {modal-0.73.155 → modal-0.73.157}/modal/volume.py +0 -0
  156. {modal-0.73.155 → modal-0.73.157}/modal/volume.pyi +0 -0
  157. {modal-0.73.155 → modal-0.73.157}/modal.egg-info/SOURCES.txt +0 -0
  158. {modal-0.73.155 → modal-0.73.157}/modal.egg-info/dependency_links.txt +0 -0
  159. {modal-0.73.155 → modal-0.73.157}/modal.egg-info/entry_points.txt +0 -0
  160. {modal-0.73.155 → modal-0.73.157}/modal.egg-info/requires.txt +0 -0
  161. {modal-0.73.155 → modal-0.73.157}/modal.egg-info/top_level.txt +0 -0
  162. {modal-0.73.155 → modal-0.73.157}/modal_docs/__init__.py +0 -0
  163. {modal-0.73.155 → modal-0.73.157}/modal_docs/gen_cli_docs.py +0 -0
  164. {modal-0.73.155 → modal-0.73.157}/modal_docs/gen_reference_docs.py +0 -0
  165. {modal-0.73.155 → modal-0.73.157}/modal_docs/mdmd/__init__.py +0 -0
  166. {modal-0.73.155 → modal-0.73.157}/modal_docs/mdmd/mdmd.py +0 -0
  167. {modal-0.73.155 → modal-0.73.157}/modal_docs/mdmd/signatures.py +0 -0
  168. {modal-0.73.155 → modal-0.73.157}/modal_proto/__init__.py +0 -0
  169. {modal-0.73.155 → modal-0.73.157}/modal_proto/api_grpc.py +0 -0
  170. {modal-0.73.155 → modal-0.73.157}/modal_proto/api_pb2_grpc.py +0 -0
  171. {modal-0.73.155 → modal-0.73.157}/modal_proto/api_pb2_grpc.pyi +0 -0
  172. {modal-0.73.155 → modal-0.73.157}/modal_proto/modal_api_grpc.py +0 -0
  173. {modal-0.73.155 → modal-0.73.157}/modal_proto/modal_options_grpc.py +0 -0
  174. {modal-0.73.155 → modal-0.73.157}/modal_proto/options.proto +0 -0
  175. {modal-0.73.155 → modal-0.73.157}/modal_proto/options_grpc.py +0 -0
  176. {modal-0.73.155 → modal-0.73.157}/modal_proto/options_pb2.py +0 -0
  177. {modal-0.73.155 → modal-0.73.157}/modal_proto/options_pb2.pyi +0 -0
  178. {modal-0.73.155 → modal-0.73.157}/modal_proto/options_pb2_grpc.py +0 -0
  179. {modal-0.73.155 → modal-0.73.157}/modal_proto/options_pb2_grpc.pyi +0 -0
  180. {modal-0.73.155 → modal-0.73.157}/modal_proto/py.typed +0 -0
  181. {modal-0.73.155 → modal-0.73.157}/modal_version/__init__.py +0 -0
  182. {modal-0.73.155 → modal-0.73.157}/modal_version/__main__.py +0 -0
  183. {modal-0.73.155 → modal-0.73.157}/pyproject.toml +0 -0
  184. {modal-0.73.155 → modal-0.73.157}/setup.cfg +0 -0
@@ -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
@@ -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
 
@@ -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
@@ -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
@@ -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;