modal 1.4.3.dev15__tar.gz → 1.4.3.dev17__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 (213) hide show
  1. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/PKG-INFO +1 -1
  2. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_container_entrypoint.py +21 -1
  3. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/client.pyi +2 -2
  4. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/functions.pyi +6 -6
  5. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal.egg-info/PKG-INFO +1 -1
  6. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_version/__init__.py +1 -1
  7. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/LICENSE +0 -0
  8. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/README.md +0 -0
  9. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/__init__.py +0 -0
  10. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/__main__.py +0 -0
  11. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_billing.py +0 -0
  12. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_clustered_functions.py +0 -0
  13. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_clustered_functions.pyi +0 -0
  14. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_environments.py +0 -0
  15. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_functions.py +0 -0
  16. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_grpc_client.py +0 -0
  17. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_ipython.py +0 -0
  18. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_load_context.py +0 -0
  19. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_location.py +0 -0
  20. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_logs.py +0 -0
  21. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_object.py +0 -0
  22. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_output/__init__.py +0 -0
  23. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_output/manager.py +0 -0
  24. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_output/pty.py +0 -0
  25. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_output/rich.py +0 -0
  26. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_output/status.py +0 -0
  27. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_partial_function.py +0 -0
  28. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_resolver.py +0 -0
  29. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_resources.py +0 -0
  30. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_runtime/__init__.py +0 -0
  31. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_runtime/asgi.py +0 -0
  32. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_runtime/container_io_manager.py +0 -0
  33. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_runtime/container_io_manager.pyi +0 -0
  34. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_runtime/execution_context.py +0 -0
  35. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_runtime/execution_context.pyi +0 -0
  36. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  37. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_runtime/telemetry.py +0 -0
  38. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_runtime/user_code_event_loop.py +0 -0
  39. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_runtime/user_code_imports.py +0 -0
  40. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_serialization.py +0 -0
  41. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_server.py +0 -0
  42. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_traceback.py +0 -0
  43. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_tunnel.py +0 -0
  44. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_tunnel.pyi +0 -0
  45. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_type_manager.py +0 -0
  46. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/__init__.py +0 -0
  47. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/app_utils.py +0 -0
  48. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/async_utils.py +0 -0
  49. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/auth_token_manager.py +0 -0
  50. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/blob_utils.py +0 -0
  51. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/browser_utils.py +0 -0
  52. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/bytes_io_segment_payload.py +0 -0
  53. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/deprecation.py +0 -0
  54. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/docker_utils.py +0 -0
  55. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/function_utils.py +0 -0
  56. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/git_utils.py +0 -0
  57. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/grpc_testing.py +0 -0
  58. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/grpc_utils.py +0 -0
  59. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/hash_utils.py +0 -0
  60. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/http_utils.py +0 -0
  61. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/jwt_utils.py +0 -0
  62. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/logger.py +0 -0
  63. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/mount_utils.py +0 -0
  64. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/name_utils.py +0 -0
  65. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/package_utils.py +0 -0
  66. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/pattern_utils.py +0 -0
  67. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/rand_pb_testing.py +0 -0
  68. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/sandbox_fs_utils.py +0 -0
  69. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/shell_utils.py +0 -0
  70. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/task_command_router_client.py +0 -0
  71. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_utils/time_utils.py +0 -0
  72. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_vendor/__init__.py +0 -0
  73. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  74. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_vendor/cloudpickle.py +0 -0
  75. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_vendor/tblib.py +0 -0
  76. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_vendor/version.py +0 -0
  77. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/_watcher.py +0 -0
  78. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/app.py +0 -0
  79. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/app.pyi +0 -0
  80. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/billing.py +0 -0
  81. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/builder/2023.12.312.txt +0 -0
  82. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/builder/2023.12.txt +0 -0
  83. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/builder/2024.04.txt +0 -0
  84. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/builder/2024.10.txt +0 -0
  85. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/builder/2025.06.txt +0 -0
  86. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/builder/PREVIEW.txt +0 -0
  87. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/builder/README.md +0 -0
  88. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/builder/base-images.json +0 -0
  89. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/call_graph.py +0 -0
  90. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/__init__.py +0 -0
  91. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/_download.py +0 -0
  92. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/_help.py +0 -0
  93. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/_traceback.py +0 -0
  94. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/app.py +0 -0
  95. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/billing.py +0 -0
  96. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/bootstrap.py +0 -0
  97. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/changelog.py +0 -0
  98. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/cluster.py +0 -0
  99. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/config.py +0 -0
  100. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/container.py +0 -0
  101. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/dashboard.py +0 -0
  102. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/dict.py +0 -0
  103. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/entry_point.py +0 -0
  104. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/environment.py +0 -0
  105. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/import_refs.py +0 -0
  106. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/launch.py +0 -0
  107. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/logo.py +0 -0
  108. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/network_file_system.py +0 -0
  109. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/profile.py +0 -0
  110. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/programs/__init__.py +0 -0
  111. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/programs/run_jupyter.py +0 -0
  112. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/programs/vscode.py +0 -0
  113. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/queues.py +0 -0
  114. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/run.py +0 -0
  115. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/secret.py +0 -0
  116. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/selector.py +0 -0
  117. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/shell.py +0 -0
  118. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/token.py +0 -0
  119. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/utils.py +0 -0
  120. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cli/volume.py +0 -0
  121. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/client.py +0 -0
  122. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cloud_bucket_mount.py +0 -0
  123. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cloud_bucket_mount.pyi +0 -0
  124. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cls.py +0 -0
  125. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/cls.pyi +0 -0
  126. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/config.py +0 -0
  127. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/container_process.py +0 -0
  128. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/container_process.pyi +0 -0
  129. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/dict.py +0 -0
  130. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/dict.pyi +0 -0
  131. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/environments.py +0 -0
  132. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/environments.pyi +0 -0
  133. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/exception.py +0 -0
  134. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/experimental/__init__.py +0 -0
  135. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/experimental/flash.py +0 -0
  136. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/experimental/flash.pyi +0 -0
  137. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/experimental/ipython.py +0 -0
  138. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/file_io.py +0 -0
  139. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/file_io.pyi +0 -0
  140. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/file_pattern_matcher.py +0 -0
  141. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/functions.py +0 -0
  142. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/image.py +0 -0
  143. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/image.pyi +0 -0
  144. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/io_streams.py +0 -0
  145. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/io_streams.pyi +0 -0
  146. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/mount.py +0 -0
  147. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/mount.pyi +0 -0
  148. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/network_file_system.py +0 -0
  149. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/network_file_system.pyi +0 -0
  150. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/object.py +0 -0
  151. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/object.pyi +0 -0
  152. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/output.py +0 -0
  153. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/parallel_map.py +0 -0
  154. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/parallel_map.pyi +0 -0
  155. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/partial_function.py +0 -0
  156. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/partial_function.pyi +0 -0
  157. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/proxy.py +0 -0
  158. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/proxy.pyi +0 -0
  159. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/py.typed +0 -0
  160. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/queue.py +0 -0
  161. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/queue.pyi +0 -0
  162. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/retries.py +0 -0
  163. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/runner.py +0 -0
  164. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/runner.pyi +0 -0
  165. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/running_app.py +0 -0
  166. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/sandbox.py +0 -0
  167. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/sandbox.pyi +0 -0
  168. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/sandbox_fs.py +0 -0
  169. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/sandbox_fs.pyi +0 -0
  170. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/schedule.py +0 -0
  171. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/scheduler_placement.py +0 -0
  172. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/secret.py +0 -0
  173. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/secret.pyi +0 -0
  174. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/server.py +0 -0
  175. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/server.pyi +0 -0
  176. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/serving.py +0 -0
  177. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/serving.pyi +0 -0
  178. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/snapshot.py +0 -0
  179. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/snapshot.pyi +0 -0
  180. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/stream_type.py +0 -0
  181. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/token_flow.py +0 -0
  182. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/token_flow.pyi +0 -0
  183. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/volume.py +0 -0
  184. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal/volume.pyi +0 -0
  185. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal.egg-info/SOURCES.txt +0 -0
  186. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal.egg-info/dependency_links.txt +0 -0
  187. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal.egg-info/entry_points.txt +0 -0
  188. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal.egg-info/requires.txt +0 -0
  189. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal.egg-info/top_level.txt +0 -0
  190. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_docs/__init__.py +0 -0
  191. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_docs/gen_cli_docs.py +0 -0
  192. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_docs/gen_cli_docs_main.py +0 -0
  193. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_docs/gen_reference_docs.py +0 -0
  194. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_docs/gen_reference_docs_main.py +0 -0
  195. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_docs/mdmd/__init__.py +0 -0
  196. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_docs/mdmd/mdmd.py +0 -0
  197. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_docs/mdmd/signatures.py +0 -0
  198. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_proto/__init__.py +0 -0
  199. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_proto/api_grpc.py +0 -0
  200. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_proto/api_pb2.py +0 -0
  201. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_proto/api_pb2.pyi +0 -0
  202. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_proto/api_pb2_grpc.py +0 -0
  203. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_proto/api_pb2_grpc.pyi +0 -0
  204. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_proto/modal_api_grpc.py +0 -0
  205. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_proto/py.typed +0 -0
  206. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_proto/task_command_router_grpc.py +0 -0
  207. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_proto/task_command_router_pb2.py +0 -0
  208. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_proto/task_command_router_pb2.pyi +0 -0
  209. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_proto/task_command_router_pb2_grpc.py +0 -0
  210. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_proto/task_command_router_pb2_grpc.pyi +0 -0
  211. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/modal_version/__main__.py +0 -0
  212. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/pyproject.toml +0 -0
  213. {modal-1.4.3.dev15 → modal-1.4.3.dev17}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.4.3.dev15
3
+ Version: 1.4.3.dev17
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License-Expression: Apache-2.0
@@ -94,6 +94,23 @@ class DaemonizedThreadPool:
94
94
  self.inputs.put((func, args))
95
95
 
96
96
 
97
+ def call_server(user_code_event_loop: UserCodeEventLoop):
98
+ async def run():
99
+ exit_event = asyncio.Event()
100
+
101
+ def _on_sigterm():
102
+ logger.info("server_received_sigterm")
103
+ exit_event.set()
104
+
105
+ user_code_event_loop.loop.add_signal_handler(signal.SIGTERM, _on_sigterm)
106
+ try:
107
+ await exit_event.wait()
108
+ finally:
109
+ user_code_event_loop.loop.remove_signal_handler(signal.SIGTERM)
110
+
111
+ user_code_event_loop.run(run())
112
+
113
+
97
114
  def call_function(
98
115
  user_code_event_loop: UserCodeEventLoop,
99
116
  container_io_manager: "modal._runtime.container_io_manager.ContainerIOManager",
@@ -385,7 +402,10 @@ def main(container_args: api_pb2.ContainerArguments, client: Client):
385
402
  )
386
403
 
387
404
  with service.execution_context(event_loop, container_io_manager) as finalized_functions:
388
- call_function(event_loop, container_io_manager, finalized_functions, batch_max_size, batch_wait_ms)
405
+ if function_def.is_server:
406
+ call_server(event_loop)
407
+ else:
408
+ call_function(event_loop, container_io_manager, finalized_functions, batch_max_size, batch_wait_ms)
389
409
 
390
410
 
391
411
  if __name__ == "__main__":
@@ -35,7 +35,7 @@ class _Client:
35
35
  server_url: str,
36
36
  client_type: int,
37
37
  credentials: typing.Optional[tuple[str, str]],
38
- version: str = "1.4.3.dev15",
38
+ version: str = "1.4.3.dev17",
39
39
  ):
40
40
  """mdmd:hidden
41
41
  The Modal client object is not intended to be instantiated directly by users.
@@ -175,7 +175,7 @@ class Client:
175
175
  server_url: str,
176
176
  client_type: int,
177
177
  credentials: typing.Optional[tuple[str, str]],
178
- version: str = "1.4.3.dev15",
178
+ version: str = "1.4.3.dev17",
179
179
  ):
180
180
  """mdmd:hidden
181
181
  The Modal client object is not intended to be instantiated directly by users.
@@ -347,7 +347,7 @@ class Function(
347
347
 
348
348
  _call_generator: ___call_generator_spec
349
349
 
350
- class __remote_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
350
+ class __remote_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER]):
351
351
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER:
352
352
  """Calls the function remotely, executing it with the given arguments and returning the execution's result."""
353
353
  ...
@@ -356,7 +356,7 @@ class Function(
356
356
  """Calls the function remotely, executing it with the given arguments and returning the execution's result."""
357
357
  ...
358
358
 
359
- remote: __remote_spec[modal._functions.ReturnType, modal._functions.P]
359
+ remote: __remote_spec[modal._functions.P, modal._functions.ReturnType]
360
360
 
361
361
  class __remote_gen_spec(typing_extensions.Protocol):
362
362
  def __call__(self, /, *args, **kwargs) -> typing.Generator[typing.Any, None, None]:
@@ -383,7 +383,7 @@ class Function(
383
383
  """
384
384
  ...
385
385
 
386
- class ___experimental_spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
386
+ class ___experimental_spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER]):
387
387
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
388
388
  """[Experimental] Calls the function with the given arguments, without waiting for the results.
389
389
 
@@ -406,7 +406,7 @@ class Function(
406
406
  """
407
407
  ...
408
408
 
409
- _experimental_spawn: ___experimental_spawn_spec[modal._functions.ReturnType, modal._functions.P]
409
+ _experimental_spawn: ___experimental_spawn_spec[modal._functions.P, modal._functions.ReturnType]
410
410
 
411
411
  class ___spawn_map_inner_spec(typing_extensions.Protocol[P_INNER]):
412
412
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> None: ...
@@ -414,7 +414,7 @@ class Function(
414
414
 
415
415
  _spawn_map_inner: ___spawn_map_inner_spec[modal._functions.P]
416
416
 
417
- class __spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
417
+ class __spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER]):
418
418
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
419
419
  """Calls the function with the given arguments, without waiting for the results.
420
420
 
@@ -435,7 +435,7 @@ class Function(
435
435
  """
436
436
  ...
437
437
 
438
- spawn: __spawn_spec[modal._functions.ReturnType, modal._functions.P]
438
+ spawn: __spawn_spec[modal._functions.P, modal._functions.ReturnType]
439
439
 
440
440
  def get_raw_f(self) -> collections.abc.Callable[..., typing.Any]:
441
441
  """Return the inner Python object wrapped by this Modal Function."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.4.3.dev15
3
+ Version: 1.4.3.dev17
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License-Expression: Apache-2.0
@@ -1,4 +1,4 @@
1
1
  # Copyright Modal Labs 2026
2
2
  """Supplies the current version of the modal client library."""
3
3
 
4
- __version__ = "1.4.3.dev15"
4
+ __version__ = "1.4.3.dev17"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes