modal 0.74.46__tar.gz → 0.74.47__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 (183) hide show
  1. {modal-0.74.46 → modal-0.74.47}/PKG-INFO +1 -1
  2. {modal-0.74.46 → modal-0.74.47}/modal/_utils/grpc_utils.py +9 -0
  3. {modal-0.74.46 → modal-0.74.47}/modal/client.pyi +2 -2
  4. {modal-0.74.46 → modal-0.74.47}/modal.egg-info/PKG-INFO +1 -1
  5. {modal-0.74.46 → modal-0.74.47}/modal_version/_version_generated.py +1 -1
  6. {modal-0.74.46 → modal-0.74.47}/LICENSE +0 -0
  7. {modal-0.74.46 → modal-0.74.47}/README.md +0 -0
  8. {modal-0.74.46 → modal-0.74.47}/modal/__init__.py +0 -0
  9. {modal-0.74.46 → modal-0.74.47}/modal/__main__.py +0 -0
  10. {modal-0.74.46 → modal-0.74.47}/modal/_clustered_functions.py +0 -0
  11. {modal-0.74.46 → modal-0.74.47}/modal/_clustered_functions.pyi +0 -0
  12. {modal-0.74.46 → modal-0.74.47}/modal/_container_entrypoint.py +0 -0
  13. {modal-0.74.46 → modal-0.74.47}/modal/_functions.py +0 -0
  14. {modal-0.74.46 → modal-0.74.47}/modal/_ipython.py +0 -0
  15. {modal-0.74.46 → modal-0.74.47}/modal/_location.py +0 -0
  16. {modal-0.74.46 → modal-0.74.47}/modal/_object.py +0 -0
  17. {modal-0.74.46 → modal-0.74.47}/modal/_output.py +0 -0
  18. {modal-0.74.46 → modal-0.74.47}/modal/_partial_function.py +0 -0
  19. {modal-0.74.46 → modal-0.74.47}/modal/_pty.py +0 -0
  20. {modal-0.74.46 → modal-0.74.47}/modal/_resolver.py +0 -0
  21. {modal-0.74.46 → modal-0.74.47}/modal/_resources.py +0 -0
  22. {modal-0.74.46 → modal-0.74.47}/modal/_runtime/__init__.py +0 -0
  23. {modal-0.74.46 → modal-0.74.47}/modal/_runtime/asgi.py +0 -0
  24. {modal-0.74.46 → modal-0.74.47}/modal/_runtime/container_io_manager.py +0 -0
  25. {modal-0.74.46 → modal-0.74.47}/modal/_runtime/container_io_manager.pyi +0 -0
  26. {modal-0.74.46 → modal-0.74.47}/modal/_runtime/execution_context.py +0 -0
  27. {modal-0.74.46 → modal-0.74.47}/modal/_runtime/execution_context.pyi +0 -0
  28. {modal-0.74.46 → modal-0.74.47}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  29. {modal-0.74.46 → modal-0.74.47}/modal/_runtime/telemetry.py +0 -0
  30. {modal-0.74.46 → modal-0.74.47}/modal/_runtime/user_code_imports.py +0 -0
  31. {modal-0.74.46 → modal-0.74.47}/modal/_serialization.py +0 -0
  32. {modal-0.74.46 → modal-0.74.47}/modal/_traceback.py +0 -0
  33. {modal-0.74.46 → modal-0.74.47}/modal/_tunnel.py +0 -0
  34. {modal-0.74.46 → modal-0.74.47}/modal/_tunnel.pyi +0 -0
  35. {modal-0.74.46 → modal-0.74.47}/modal/_type_manager.py +0 -0
  36. {modal-0.74.46 → modal-0.74.47}/modal/_utils/__init__.py +0 -0
  37. {modal-0.74.46 → modal-0.74.47}/modal/_utils/app_utils.py +0 -0
  38. {modal-0.74.46 → modal-0.74.47}/modal/_utils/async_utils.py +0 -0
  39. {modal-0.74.46 → modal-0.74.47}/modal/_utils/blob_utils.py +0 -0
  40. {modal-0.74.46 → modal-0.74.47}/modal/_utils/bytes_io_segment_payload.py +0 -0
  41. {modal-0.74.46 → modal-0.74.47}/modal/_utils/deprecation.py +0 -0
  42. {modal-0.74.46 → modal-0.74.47}/modal/_utils/docker_utils.py +0 -0
  43. {modal-0.74.46 → modal-0.74.47}/modal/_utils/function_utils.py +0 -0
  44. {modal-0.74.46 → modal-0.74.47}/modal/_utils/git_utils.py +0 -0
  45. {modal-0.74.46 → modal-0.74.47}/modal/_utils/grpc_testing.py +0 -0
  46. {modal-0.74.46 → modal-0.74.47}/modal/_utils/hash_utils.py +0 -0
  47. {modal-0.74.46 → modal-0.74.47}/modal/_utils/http_utils.py +0 -0
  48. {modal-0.74.46 → modal-0.74.47}/modal/_utils/jwt_utils.py +0 -0
  49. {modal-0.74.46 → modal-0.74.47}/modal/_utils/logger.py +0 -0
  50. {modal-0.74.46 → modal-0.74.47}/modal/_utils/mount_utils.py +0 -0
  51. {modal-0.74.46 → modal-0.74.47}/modal/_utils/name_utils.py +0 -0
  52. {modal-0.74.46 → modal-0.74.47}/modal/_utils/package_utils.py +0 -0
  53. {modal-0.74.46 → modal-0.74.47}/modal/_utils/pattern_utils.py +0 -0
  54. {modal-0.74.46 → modal-0.74.47}/modal/_utils/rand_pb_testing.py +0 -0
  55. {modal-0.74.46 → modal-0.74.47}/modal/_utils/shell_utils.py +0 -0
  56. {modal-0.74.46 → modal-0.74.47}/modal/_vendor/__init__.py +0 -0
  57. {modal-0.74.46 → modal-0.74.47}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  58. {modal-0.74.46 → modal-0.74.47}/modal/_vendor/cloudpickle.py +0 -0
  59. {modal-0.74.46 → modal-0.74.47}/modal/_vendor/tblib.py +0 -0
  60. {modal-0.74.46 → modal-0.74.47}/modal/_watcher.py +0 -0
  61. {modal-0.74.46 → modal-0.74.47}/modal/app.py +0 -0
  62. {modal-0.74.46 → modal-0.74.47}/modal/app.pyi +0 -0
  63. {modal-0.74.46 → modal-0.74.47}/modal/call_graph.py +0 -0
  64. {modal-0.74.46 → modal-0.74.47}/modal/cli/__init__.py +0 -0
  65. {modal-0.74.46 → modal-0.74.47}/modal/cli/_download.py +0 -0
  66. {modal-0.74.46 → modal-0.74.47}/modal/cli/_traceback.py +0 -0
  67. {modal-0.74.46 → modal-0.74.47}/modal/cli/app.py +0 -0
  68. {modal-0.74.46 → modal-0.74.47}/modal/cli/config.py +0 -0
  69. {modal-0.74.46 → modal-0.74.47}/modal/cli/container.py +0 -0
  70. {modal-0.74.46 → modal-0.74.47}/modal/cli/dict.py +0 -0
  71. {modal-0.74.46 → modal-0.74.47}/modal/cli/entry_point.py +0 -0
  72. {modal-0.74.46 → modal-0.74.47}/modal/cli/environment.py +0 -0
  73. {modal-0.74.46 → modal-0.74.47}/modal/cli/import_refs.py +0 -0
  74. {modal-0.74.46 → modal-0.74.47}/modal/cli/launch.py +0 -0
  75. {modal-0.74.46 → modal-0.74.47}/modal/cli/network_file_system.py +0 -0
  76. {modal-0.74.46 → modal-0.74.47}/modal/cli/profile.py +0 -0
  77. {modal-0.74.46 → modal-0.74.47}/modal/cli/programs/__init__.py +0 -0
  78. {modal-0.74.46 → modal-0.74.47}/modal/cli/programs/run_jupyter.py +0 -0
  79. {modal-0.74.46 → modal-0.74.47}/modal/cli/programs/vscode.py +0 -0
  80. {modal-0.74.46 → modal-0.74.47}/modal/cli/queues.py +0 -0
  81. {modal-0.74.46 → modal-0.74.47}/modal/cli/run.py +0 -0
  82. {modal-0.74.46 → modal-0.74.47}/modal/cli/secret.py +0 -0
  83. {modal-0.74.46 → modal-0.74.47}/modal/cli/token.py +0 -0
  84. {modal-0.74.46 → modal-0.74.47}/modal/cli/utils.py +0 -0
  85. {modal-0.74.46 → modal-0.74.47}/modal/cli/volume.py +0 -0
  86. {modal-0.74.46 → modal-0.74.47}/modal/client.py +0 -0
  87. {modal-0.74.46 → modal-0.74.47}/modal/cloud_bucket_mount.py +0 -0
  88. {modal-0.74.46 → modal-0.74.47}/modal/cloud_bucket_mount.pyi +0 -0
  89. {modal-0.74.46 → modal-0.74.47}/modal/cls.py +0 -0
  90. {modal-0.74.46 → modal-0.74.47}/modal/cls.pyi +0 -0
  91. {modal-0.74.46 → modal-0.74.47}/modal/config.py +0 -0
  92. {modal-0.74.46 → modal-0.74.47}/modal/container_process.py +0 -0
  93. {modal-0.74.46 → modal-0.74.47}/modal/container_process.pyi +0 -0
  94. {modal-0.74.46 → modal-0.74.47}/modal/dict.py +0 -0
  95. {modal-0.74.46 → modal-0.74.47}/modal/dict.pyi +0 -0
  96. {modal-0.74.46 → modal-0.74.47}/modal/environments.py +0 -0
  97. {modal-0.74.46 → modal-0.74.47}/modal/environments.pyi +0 -0
  98. {modal-0.74.46 → modal-0.74.47}/modal/exception.py +0 -0
  99. {modal-0.74.46 → modal-0.74.47}/modal/experimental/__init__.py +0 -0
  100. {modal-0.74.46 → modal-0.74.47}/modal/experimental/ipython.py +0 -0
  101. {modal-0.74.46 → modal-0.74.47}/modal/file_io.py +0 -0
  102. {modal-0.74.46 → modal-0.74.47}/modal/file_io.pyi +0 -0
  103. {modal-0.74.46 → modal-0.74.47}/modal/file_pattern_matcher.py +0 -0
  104. {modal-0.74.46 → modal-0.74.47}/modal/functions.py +0 -0
  105. {modal-0.74.46 → modal-0.74.47}/modal/functions.pyi +0 -0
  106. {modal-0.74.46 → modal-0.74.47}/modal/gpu.py +0 -0
  107. {modal-0.74.46 → modal-0.74.47}/modal/image.py +0 -0
  108. {modal-0.74.46 → modal-0.74.47}/modal/image.pyi +0 -0
  109. {modal-0.74.46 → modal-0.74.47}/modal/io_streams.py +0 -0
  110. {modal-0.74.46 → modal-0.74.47}/modal/io_streams.pyi +0 -0
  111. {modal-0.74.46 → modal-0.74.47}/modal/mount.py +0 -0
  112. {modal-0.74.46 → modal-0.74.47}/modal/mount.pyi +0 -0
  113. {modal-0.74.46 → modal-0.74.47}/modal/network_file_system.py +0 -0
  114. {modal-0.74.46 → modal-0.74.47}/modal/network_file_system.pyi +0 -0
  115. {modal-0.74.46 → modal-0.74.47}/modal/object.py +0 -0
  116. {modal-0.74.46 → modal-0.74.47}/modal/object.pyi +0 -0
  117. {modal-0.74.46 → modal-0.74.47}/modal/output.py +0 -0
  118. {modal-0.74.46 → modal-0.74.47}/modal/parallel_map.py +0 -0
  119. {modal-0.74.46 → modal-0.74.47}/modal/parallel_map.pyi +0 -0
  120. {modal-0.74.46 → modal-0.74.47}/modal/partial_function.py +0 -0
  121. {modal-0.74.46 → modal-0.74.47}/modal/partial_function.pyi +0 -0
  122. {modal-0.74.46 → modal-0.74.47}/modal/proxy.py +0 -0
  123. {modal-0.74.46 → modal-0.74.47}/modal/proxy.pyi +0 -0
  124. {modal-0.74.46 → modal-0.74.47}/modal/py.typed +0 -0
  125. {modal-0.74.46 → modal-0.74.47}/modal/queue.py +0 -0
  126. {modal-0.74.46 → modal-0.74.47}/modal/queue.pyi +0 -0
  127. {modal-0.74.46 → modal-0.74.47}/modal/requirements/2023.12.312.txt +0 -0
  128. {modal-0.74.46 → modal-0.74.47}/modal/requirements/2023.12.txt +0 -0
  129. {modal-0.74.46 → modal-0.74.47}/modal/requirements/2024.04.txt +0 -0
  130. {modal-0.74.46 → modal-0.74.47}/modal/requirements/2024.10.txt +0 -0
  131. {modal-0.74.46 → modal-0.74.47}/modal/requirements/PREVIEW.txt +0 -0
  132. {modal-0.74.46 → modal-0.74.47}/modal/requirements/README.md +0 -0
  133. {modal-0.74.46 → modal-0.74.47}/modal/requirements/base-images.json +0 -0
  134. {modal-0.74.46 → modal-0.74.47}/modal/retries.py +0 -0
  135. {modal-0.74.46 → modal-0.74.47}/modal/runner.py +0 -0
  136. {modal-0.74.46 → modal-0.74.47}/modal/runner.pyi +0 -0
  137. {modal-0.74.46 → modal-0.74.47}/modal/running_app.py +0 -0
  138. {modal-0.74.46 → modal-0.74.47}/modal/sandbox.py +0 -0
  139. {modal-0.74.46 → modal-0.74.47}/modal/sandbox.pyi +0 -0
  140. {modal-0.74.46 → modal-0.74.47}/modal/schedule.py +0 -0
  141. {modal-0.74.46 → modal-0.74.47}/modal/scheduler_placement.py +0 -0
  142. {modal-0.74.46 → modal-0.74.47}/modal/secret.py +0 -0
  143. {modal-0.74.46 → modal-0.74.47}/modal/secret.pyi +0 -0
  144. {modal-0.74.46 → modal-0.74.47}/modal/serving.py +0 -0
  145. {modal-0.74.46 → modal-0.74.47}/modal/serving.pyi +0 -0
  146. {modal-0.74.46 → modal-0.74.47}/modal/snapshot.py +0 -0
  147. {modal-0.74.46 → modal-0.74.47}/modal/snapshot.pyi +0 -0
  148. {modal-0.74.46 → modal-0.74.47}/modal/stream_type.py +0 -0
  149. {modal-0.74.46 → modal-0.74.47}/modal/token_flow.py +0 -0
  150. {modal-0.74.46 → modal-0.74.47}/modal/token_flow.pyi +0 -0
  151. {modal-0.74.46 → modal-0.74.47}/modal/volume.py +0 -0
  152. {modal-0.74.46 → modal-0.74.47}/modal/volume.pyi +0 -0
  153. {modal-0.74.46 → modal-0.74.47}/modal.egg-info/SOURCES.txt +0 -0
  154. {modal-0.74.46 → modal-0.74.47}/modal.egg-info/dependency_links.txt +0 -0
  155. {modal-0.74.46 → modal-0.74.47}/modal.egg-info/entry_points.txt +0 -0
  156. {modal-0.74.46 → modal-0.74.47}/modal.egg-info/requires.txt +0 -0
  157. {modal-0.74.46 → modal-0.74.47}/modal.egg-info/top_level.txt +0 -0
  158. {modal-0.74.46 → modal-0.74.47}/modal_docs/__init__.py +0 -0
  159. {modal-0.74.46 → modal-0.74.47}/modal_docs/gen_cli_docs.py +0 -0
  160. {modal-0.74.46 → modal-0.74.47}/modal_docs/gen_reference_docs.py +0 -0
  161. {modal-0.74.46 → modal-0.74.47}/modal_docs/mdmd/__init__.py +0 -0
  162. {modal-0.74.46 → modal-0.74.47}/modal_docs/mdmd/mdmd.py +0 -0
  163. {modal-0.74.46 → modal-0.74.47}/modal_docs/mdmd/signatures.py +0 -0
  164. {modal-0.74.46 → modal-0.74.47}/modal_proto/__init__.py +0 -0
  165. {modal-0.74.46 → modal-0.74.47}/modal_proto/api.proto +0 -0
  166. {modal-0.74.46 → modal-0.74.47}/modal_proto/api_grpc.py +0 -0
  167. {modal-0.74.46 → modal-0.74.47}/modal_proto/api_pb2.py +0 -0
  168. {modal-0.74.46 → modal-0.74.47}/modal_proto/api_pb2.pyi +0 -0
  169. {modal-0.74.46 → modal-0.74.47}/modal_proto/api_pb2_grpc.py +0 -0
  170. {modal-0.74.46 → modal-0.74.47}/modal_proto/api_pb2_grpc.pyi +0 -0
  171. {modal-0.74.46 → modal-0.74.47}/modal_proto/modal_api_grpc.py +0 -0
  172. {modal-0.74.46 → modal-0.74.47}/modal_proto/modal_options_grpc.py +0 -0
  173. {modal-0.74.46 → modal-0.74.47}/modal_proto/options.proto +0 -0
  174. {modal-0.74.46 → modal-0.74.47}/modal_proto/options_grpc.py +0 -0
  175. {modal-0.74.46 → modal-0.74.47}/modal_proto/options_pb2.py +0 -0
  176. {modal-0.74.46 → modal-0.74.47}/modal_proto/options_pb2.pyi +0 -0
  177. {modal-0.74.46 → modal-0.74.47}/modal_proto/options_pb2_grpc.py +0 -0
  178. {modal-0.74.46 → modal-0.74.47}/modal_proto/options_pb2_grpc.pyi +0 -0
  179. {modal-0.74.46 → modal-0.74.47}/modal_proto/py.typed +0 -0
  180. {modal-0.74.46 → modal-0.74.47}/modal_version/__init__.py +0 -0
  181. {modal-0.74.46 → modal-0.74.47}/modal_version/__main__.py +0 -0
  182. {modal-0.74.46 → modal-0.74.47}/pyproject.toml +0 -0
  183. {modal-0.74.46 → modal-0.74.47}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 0.74.46
3
+ Version: 0.74.47
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -118,7 +118,16 @@ def create_channel(
118
118
 
119
119
  logger.debug(f"Sending request to {event.method_name}")
120
120
 
121
+ async def recv_trailing_metadata(trailing_metadata: grpclib.events.RecvTrailingMetadata) -> None:
122
+ # If we receive an auth token from the server, include it in all future requests.
123
+ # TODO(nathan): This isn't perfect because the metadata isn't propagated when the
124
+ # process is forked and a new channel is created. This is OK for now since this
125
+ # token is only used by the experimental input plane
126
+ if token := trailing_metadata.metadata.get("x-modal-auth-token"):
127
+ metadata["x-modal-auth-token"] = str(token)
128
+
121
129
  grpclib.events.listen(channel, grpclib.events.SendRequest, send_request)
130
+ grpclib.events.listen(channel, grpclib.events.RecvTrailingMetadata, recv_trailing_metadata)
122
131
 
123
132
  return channel
124
133
 
@@ -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.74.46"
30
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.74.47"
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.74.46"
88
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.74.47"
89
89
  ): ...
90
90
  def is_closed(self) -> bool: ...
91
91
  @property
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 0.74.46
3
+ Version: 0.74.47
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 = 46 # git: c9b08ba
4
+ build_number = 47 # git: 8f5251c
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