modal 1.4.4.dev12__tar.gz → 1.4.4.dev13__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 (219) hide show
  1. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/PKG-INFO +1 -1
  2. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/client.pyi +2 -2
  3. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/functions.pyi +6 -6
  4. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal.egg-info/PKG-INFO +1 -1
  5. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_docs/gen_reference_docs.py +11 -22
  6. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_docs/mdmd/mdmd.py +13 -1
  7. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_proto/task_command_router_pb2.py +17 -17
  8. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_proto/task_command_router_pb2.pyi +11 -2
  9. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_version/__init__.py +1 -1
  10. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/LICENSE +0 -0
  11. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/README.md +0 -0
  12. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/__init__.py +0 -0
  13. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/__main__.py +0 -0
  14. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_billing.py +0 -0
  15. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_clustered_functions.py +0 -0
  16. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_clustered_functions.pyi +0 -0
  17. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_container_entrypoint.py +0 -0
  18. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_environments.py +0 -0
  19. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_function_variants.py +0 -0
  20. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_functions.py +0 -0
  21. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_grpc_client.py +0 -0
  22. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_ipython.py +0 -0
  23. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_load_context.py +0 -0
  24. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_location.py +0 -0
  25. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_logs.py +0 -0
  26. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_object.py +0 -0
  27. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_output/__init__.py +0 -0
  28. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_output/manager.py +0 -0
  29. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_output/pty.py +0 -0
  30. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_output/rich.py +0 -0
  31. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_output/status.py +0 -0
  32. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_partial_function.py +0 -0
  33. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_resolver.py +0 -0
  34. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_resources.py +0 -0
  35. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_runtime/__init__.py +0 -0
  36. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_runtime/asgi.py +0 -0
  37. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_runtime/container_io_manager.py +0 -0
  38. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_runtime/container_io_manager.pyi +0 -0
  39. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_runtime/execution_context.py +0 -0
  40. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_runtime/execution_context.pyi +0 -0
  41. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  42. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_runtime/task_lifecycle_manager.py +0 -0
  43. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_runtime/task_lifecycle_manager.pyi +0 -0
  44. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_runtime/telemetry.py +0 -0
  45. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_runtime/user_code_event_loop.py +0 -0
  46. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_runtime/user_code_imports.py +0 -0
  47. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_serialization.py +0 -0
  48. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_server.py +0 -0
  49. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_traceback.py +0 -0
  50. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_tunnel.py +0 -0
  51. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_tunnel.pyi +0 -0
  52. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_type_manager.py +0 -0
  53. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/__init__.py +0 -0
  54. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/app_utils.py +0 -0
  55. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/async_utils.py +0 -0
  56. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/auth_token_manager.py +0 -0
  57. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/blob_utils.py +0 -0
  58. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/browser_utils.py +0 -0
  59. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/bytes_io_segment_payload.py +0 -0
  60. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/deprecation.py +0 -0
  61. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/docker_utils.py +0 -0
  62. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/function_utils.py +0 -0
  63. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/git_utils.py +0 -0
  64. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/grpc_testing.py +0 -0
  65. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/grpc_utils.py +0 -0
  66. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/hash_utils.py +0 -0
  67. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/http_utils.py +0 -0
  68. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/jwt_utils.py +0 -0
  69. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/logger.py +0 -0
  70. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/mount_utils.py +0 -0
  71. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/name_utils.py +0 -0
  72. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/package_utils.py +0 -0
  73. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/pattern_utils.py +0 -0
  74. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/rand_pb_testing.py +0 -0
  75. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/sandbox_fs_utils.py +0 -0
  76. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/shell_utils.py +0 -0
  77. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/task_command_router_client.py +0 -0
  78. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_utils/time_utils.py +0 -0
  79. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_vendor/__init__.py +0 -0
  80. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  81. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_vendor/cloudpickle.py +0 -0
  82. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_vendor/tblib.py +0 -0
  83. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_vendor/version.py +0 -0
  84. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_watcher.py +0 -0
  85. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/_workspace.py +0 -0
  86. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/app.py +0 -0
  87. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/app.pyi +0 -0
  88. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/billing.py +0 -0
  89. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/builder/2023.12.312.txt +0 -0
  90. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/builder/2023.12.txt +0 -0
  91. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/builder/2024.04.txt +0 -0
  92. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/builder/2024.10.txt +0 -0
  93. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/builder/2025.06.txt +0 -0
  94. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/builder/PREVIEW.txt +0 -0
  95. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/builder/README.md +0 -0
  96. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/builder/base-images.json +0 -0
  97. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/call_graph.py +0 -0
  98. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/__init__.py +0 -0
  99. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/_download.py +0 -0
  100. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/_help.py +0 -0
  101. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/_traceback.py +0 -0
  102. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/app.py +0 -0
  103. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/billing.py +0 -0
  104. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/bootstrap.py +0 -0
  105. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/changelog.py +0 -0
  106. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/cluster.py +0 -0
  107. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/config.py +0 -0
  108. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/container.py +0 -0
  109. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/dashboard.py +0 -0
  110. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/dict.py +0 -0
  111. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/entry_point.py +0 -0
  112. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/environment.py +0 -0
  113. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/import_refs.py +0 -0
  114. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/launch.py +0 -0
  115. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/logo.py +0 -0
  116. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/network_file_system.py +0 -0
  117. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/profile.py +0 -0
  118. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/programs/__init__.py +0 -0
  119. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/programs/run_jupyter.py +0 -0
  120. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/programs/vscode.py +0 -0
  121. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/queues.py +0 -0
  122. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/run.py +0 -0
  123. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/secret.py +0 -0
  124. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/selector.py +0 -0
  125. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/shell.py +0 -0
  126. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/token.py +0 -0
  127. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/utils.py +0 -0
  128. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cli/volume.py +0 -0
  129. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/client.py +0 -0
  130. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cloud_bucket_mount.py +0 -0
  131. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cloud_bucket_mount.pyi +0 -0
  132. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cls.py +0 -0
  133. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/cls.pyi +0 -0
  134. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/config.py +0 -0
  135. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/container_process.py +0 -0
  136. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/container_process.pyi +0 -0
  137. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/dict.py +0 -0
  138. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/dict.pyi +0 -0
  139. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/environments.py +0 -0
  140. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/environments.pyi +0 -0
  141. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/exception.py +0 -0
  142. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/experimental/__init__.py +0 -0
  143. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/experimental/flash.py +0 -0
  144. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/experimental/flash.pyi +0 -0
  145. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/experimental/ipython.py +0 -0
  146. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/file_io.py +0 -0
  147. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/file_io.pyi +0 -0
  148. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/file_pattern_matcher.py +0 -0
  149. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/functions.py +0 -0
  150. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/image.py +0 -0
  151. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/image.pyi +0 -0
  152. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/io_streams.py +0 -0
  153. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/io_streams.pyi +0 -0
  154. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/mount.py +0 -0
  155. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/mount.pyi +0 -0
  156. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/network_file_system.py +0 -0
  157. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/network_file_system.pyi +0 -0
  158. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/object.py +0 -0
  159. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/object.pyi +0 -0
  160. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/output.py +0 -0
  161. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/parallel_map.py +0 -0
  162. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/parallel_map.pyi +0 -0
  163. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/partial_function.py +0 -0
  164. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/partial_function.pyi +0 -0
  165. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/proxy.py +0 -0
  166. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/proxy.pyi +0 -0
  167. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/py.typed +0 -0
  168. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/queue.py +0 -0
  169. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/queue.pyi +0 -0
  170. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/retries.py +0 -0
  171. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/runner.py +0 -0
  172. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/runner.pyi +0 -0
  173. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/running_app.py +0 -0
  174. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/sandbox.py +0 -0
  175. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/sandbox.pyi +0 -0
  176. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/sandbox_fs.py +0 -0
  177. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/sandbox_fs.pyi +0 -0
  178. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/schedule.py +0 -0
  179. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/scheduler_placement.py +0 -0
  180. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/secret.py +0 -0
  181. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/secret.pyi +0 -0
  182. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/server.py +0 -0
  183. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/server.pyi +0 -0
  184. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/serving.py +0 -0
  185. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/serving.pyi +0 -0
  186. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/snapshot.py +0 -0
  187. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/snapshot.pyi +0 -0
  188. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/stream_type.py +0 -0
  189. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/token_flow.py +0 -0
  190. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/token_flow.pyi +0 -0
  191. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/volume.py +0 -0
  192. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/volume.pyi +0 -0
  193. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/workspace.py +0 -0
  194. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal/workspace.pyi +0 -0
  195. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal.egg-info/SOURCES.txt +0 -0
  196. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal.egg-info/dependency_links.txt +0 -0
  197. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal.egg-info/entry_points.txt +0 -0
  198. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal.egg-info/requires.txt +0 -0
  199. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal.egg-info/top_level.txt +0 -0
  200. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_docs/__init__.py +0 -0
  201. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_docs/gen_cli_docs.py +0 -0
  202. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_docs/gen_cli_docs_main.py +0 -0
  203. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_docs/gen_reference_docs_main.py +0 -0
  204. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_docs/mdmd/__init__.py +0 -0
  205. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_docs/mdmd/signatures.py +0 -0
  206. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_proto/__init__.py +0 -0
  207. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_proto/api_grpc.py +0 -0
  208. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_proto/api_pb2.py +0 -0
  209. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_proto/api_pb2.pyi +0 -0
  210. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_proto/api_pb2_grpc.py +0 -0
  211. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_proto/api_pb2_grpc.pyi +0 -0
  212. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_proto/modal_api_grpc.py +0 -0
  213. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_proto/py.typed +0 -0
  214. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_proto/task_command_router_grpc.py +0 -0
  215. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_proto/task_command_router_pb2_grpc.py +0 -0
  216. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_proto/task_command_router_pb2_grpc.pyi +0 -0
  217. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/modal_version/__main__.py +0 -0
  218. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/pyproject.toml +0 -0
  219. {modal-1.4.4.dev12 → modal-1.4.4.dev13}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.4.4.dev12
3
+ Version: 1.4.4.dev13
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License-Expression: Apache-2.0
@@ -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.4.dev12",
38
+ version: str = "1.4.4.dev13",
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.4.dev12",
178
+ version: str = "1.4.4.dev13",
179
179
  ):
180
180
  """mdmd:hidden
181
181
  The Modal client object is not intended to be instantiated directly by users.
@@ -421,7 +421,7 @@ class Function(
421
421
 
422
422
  _call_generator: ___call_generator_spec
423
423
 
424
- class __remote_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
424
+ class __remote_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER]):
425
425
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER:
426
426
  """Calls the function remotely, executing it with the given arguments and returning the execution's result."""
427
427
  ...
@@ -430,7 +430,7 @@ class Function(
430
430
  """Calls the function remotely, executing it with the given arguments and returning the execution's result."""
431
431
  ...
432
432
 
433
- remote: __remote_spec[modal._functions.ReturnType, modal._functions.P]
433
+ remote: __remote_spec[modal._functions.P, modal._functions.ReturnType]
434
434
 
435
435
  class __remote_gen_spec(typing_extensions.Protocol):
436
436
  def __call__(self, /, *args, **kwargs) -> typing.Generator[typing.Any, None, None]:
@@ -457,7 +457,7 @@ class Function(
457
457
  """
458
458
  ...
459
459
 
460
- class ___experimental_spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
460
+ class ___experimental_spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER]):
461
461
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
462
462
  """[Experimental] Calls the function with the given arguments, without waiting for the results.
463
463
 
@@ -480,7 +480,7 @@ class Function(
480
480
  """
481
481
  ...
482
482
 
483
- _experimental_spawn: ___experimental_spawn_spec[modal._functions.ReturnType, modal._functions.P]
483
+ _experimental_spawn: ___experimental_spawn_spec[modal._functions.P, modal._functions.ReturnType]
484
484
 
485
485
  class ___spawn_map_inner_spec(typing_extensions.Protocol[P_INNER]):
486
486
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> None: ...
@@ -488,7 +488,7 @@ class Function(
488
488
 
489
489
  _spawn_map_inner: ___spawn_map_inner_spec[modal._functions.P]
490
490
 
491
- class __spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
491
+ class __spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER]):
492
492
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
493
493
  """Calls the function with the given arguments, without waiting for the results.
494
494
 
@@ -509,7 +509,7 @@ class Function(
509
509
  """
510
510
  ...
511
511
 
512
- spawn: __spawn_spec[modal._functions.ReturnType, modal._functions.P]
512
+ spawn: __spawn_spec[modal._functions.P, modal._functions.ReturnType]
513
513
 
514
514
  def get_raw_f(self) -> collections.abc.Callable[..., typing.Any]:
515
515
  """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.4.dev12
3
+ Version: 1.4.4.dev13
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License-Expression: Apache-2.0
@@ -44,16 +44,13 @@ def validate_doc_item(docitem: DocItem) -> DocItem:
44
44
  return docitem
45
45
 
46
46
 
47
- def run(output_dir: str = None):
47
+ def run(output_dir: str | None = None):
48
48
  """Generate Modal docs."""
49
49
  import modal
50
50
 
51
51
  ordered_doc_items: list[DocItem] = []
52
52
  documented_items = set()
53
53
 
54
- def filter_non_aio(module, name):
55
- return not name.lower().startswith("aio")
56
-
57
54
  def filter_already_documented(module, name):
58
55
  item = getattr(module, name)
59
56
  try:
@@ -65,31 +62,34 @@ def run(output_dir: str = None):
65
62
  documented_items.add(item)
66
63
  return True
67
64
 
68
- def modal_default_filter(module, name):
69
- return default_filter(module, name) and filter_non_aio(module, name) and filter_already_documented(module, name)
65
+ def module_doc_filter(module, name):
66
+ return default_filter(module, name)
70
67
 
71
68
  def top_level_filter(module, name):
72
69
  item = getattr(module, name)
73
70
  if object_is_private(name, item) or inspect.ismodule(item):
74
71
  return False
75
- return package_filter("modal") and filter_already_documented(module, name) and filter_non_aio(module, name)
72
+ return package_filter("modal") and filter_already_documented(module, name)
76
73
 
77
74
  base_title_level = "#"
78
- forced_module_docs = [
75
+ # Standalone module reference pages, sorted into the sidebar with top-level `modal.X` entries.
76
+ module_docs = [
79
77
  ("modal.billing", "modal.billing"),
80
78
  ("modal.call_graph", "modal.call_graph"),
79
+ ("modal.config", "modal.config"),
81
80
  ("modal.container_process", "modal.container_process"),
82
- ("modal.io_streams", "modal.io_streams"),
81
+ ("modal.exception", "modal.exception"),
83
82
  ("modal.file_io", "modal.file_io"),
83
+ ("modal.io_streams", "modal.io_streams"),
84
84
  ]
85
85
  # These aren't defined in `modal`, but should still be documented as top-level entries.
86
86
  forced_members: set[str] = set()
87
87
  # These are excluded from the sidebar, typically to 'soft release' some documentation.
88
88
  sidebar_excluded: set[str] = {"modal.NetworkFileSystem"}
89
89
 
90
- for title, modulepath in forced_module_docs:
90
+ for title, modulepath in module_docs:
91
91
  module = importlib.import_module(modulepath)
92
- document = module_str(modulepath, module, title_level=base_title_level, filter_items=modal_default_filter)
92
+ document = module_str(modulepath, module, title_level=base_title_level, filter_items=module_doc_filter)
93
93
  if document:
94
94
  ordered_doc_items.append(
95
95
  validate_doc_item(
@@ -134,17 +134,6 @@ def run(output_dir: str = None):
134
134
  )
135
135
  ordered_doc_items.sort()
136
136
 
137
- for modulepath in ["modal.exception", "modal.config"]:
138
- module = importlib.import_module(modulepath)
139
- document = module_str(modulepath, module, title_level=base_title_level, filter_items=modal_default_filter)
140
- ordered_doc_items.append(
141
- DocItem(
142
- label=modulepath,
143
- category=Category.MODULE,
144
- document=document,
145
- )
146
- )
147
-
148
137
  # TODO: add some way of documenting our .aio sub-methods
149
138
 
150
139
  make_markdown_docs(
@@ -19,7 +19,11 @@ def format_docstring(docstring: str | None) -> str:
19
19
  else:
20
20
  docstring = inspect.cleandoc(docstring)
21
21
 
22
- docstring = "\n".join(l for l in docstring.split("\n") if "mdmd:line-hidden" not in l and "mdmd:namespace" not in l)
22
+ docstring = "\n".join(
23
+ l
24
+ for l in docstring.split("\n")
25
+ if "mdmd:line-hidden" not in l and "mdmd:namespace" not in l and "mdmd:exported" not in l
26
+ )
23
27
 
24
28
  if docstring and not docstring.endswith("\n"):
25
29
  docstring += "\n"
@@ -238,6 +242,12 @@ def object_is_private(name, obj):
238
242
  return False
239
243
 
240
244
 
245
+ def module_reexports_all(module: ModuleType) -> bool:
246
+ """Use `mdmd:exported` for modules that re-export objects defined elsewhere via __all__."""
247
+ docstring = module.__doc__ or ""
248
+ return any("mdmd:exported" in line for line in docstring.split("\n"))
249
+
250
+
241
251
  def default_filter(module, item_name):
242
252
  """Include non-private objects defined in the module itself or its private counterpart."""
243
253
  item = getattr(module, item_name)
@@ -246,6 +256,8 @@ def default_filter(module, item_name):
246
256
  member_module = getattr(item, "__module__", type(item).__module__)
247
257
  if member_module == module.__name__:
248
258
  return True
259
+ if module_reexports_all(module) and item_name in getattr(module, "__all__", ()):
260
+ return True
249
261
  # Also allow items from the corresponding private module (e.g., modal._foo for modal.foo)
250
262
  parts = module.__name__.rsplit(".", 1)
251
263
  if len(parts) == 2:
@@ -17,7 +17,7 @@ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
17
17
  from modal_proto import api_pb2 as modal__proto_dot_api__pb2
18
18
 
19
19
 
20
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%modal_proto/task_command_router.proto\x12\x19modal.task_command_router\x1a\x1bgoogle/protobuf/empty.proto\x1a\x15modal_proto/api.proto\"X\n\x1aSandboxStdinWriteV2Request\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\x02 \x01(\x04\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x12\x0b\n\x03\x65of\x18\x04 \x01(\x08\"\x1d\n\x1bSandboxStdinWriteV2Response\"\x8c\x01\n\x19SandboxStdioReadV2Request\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\x02 \x01(\x04\x12N\n\x0f\x66ile_descriptor\x18\x03 \x01(\x0e\x32\x35.modal.task_command_router.SandboxStdioFileDescriptor\"C\n\x1aSandboxStdioReadV2Response\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x17\n\x0fstarting_offset\x18\x02 \x01(\x04\"\x83\x02\n\x1aTaskContainerCreateRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x02 \x01(\t\x12\x10\n\x08image_id\x18\x03 \x01(\t\x12\x0c\n\x04\x61rgs\x18\x05 \x03(\t\x12K\n\x03\x65nv\x18\x06 \x03(\x0b\x32>.modal.task_command_router.TaskContainerCreateRequest.EnvEntry\x12\x0f\n\x07workdir\x18\x07 \x01(\t\x12\x12\n\nsecret_ids\x18\x08 \x03(\t\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"K\n\x1bTaskContainerCreateResponse\x12\x14\n\x0c\x63ontainer_id\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x02 \x01(\t\"^\n\x17TaskContainerGetRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x02 \x01(\t\x12\x1a\n\x12include_terminated\x18\x03 \x01(\x08\"[\n\x18TaskContainerGetResponse\x12?\n\tcontainer\x18\x01 \x01(\x0b\x32,.modal.task_command_router.TaskContainerInfo\"~\n\x11TaskContainerInfo\x12\x14\n\x0c\x63ontainer_id\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12+\n\x06result\x18\x04 \x01(\x0b\x32\x1b.modal.client.GenericResult\"G\n\x18TaskContainerListRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x1a\n\x12include_terminated\x18\x02 \x01(\x08\"]\n\x19TaskContainerListResponse\x12@\n\ncontainers\x18\x01 \x03(\x0b\x32,.modal.task_command_router.TaskContainerInfo\"F\n\x1dTaskContainerTerminateRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x14\n\x0c\x63ontainer_id\x18\x02 \x01(\t\" \n\x1eTaskContainerTerminateResponse\"R\n\x18TaskContainerWaitRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x14\n\x0c\x63ontainer_id\x18\x02 \x01(\t\x12\x0f\n\x07timeout\x18\x03 \x01(\x02\"H\n\x19TaskContainerWaitResponse\x12+\n\x06result\x18\x01 \x01(\x0b\x32\x1b.modal.client.GenericResult\"7\n\x13TaskExecPollRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"G\n\x14TaskExecPollResponse\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x12\x10\n\x06signal\x18\x02 \x01(\x05H\x00\x42\r\n\x0b\x65xit_status\"\x9b\x04\n\x14TaskExecStartRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x14\n\x0c\x63ommand_args\x18\x03 \x03(\t\x12\x46\n\rstdout_config\x18\x04 \x01(\x0e\x32/.modal.task_command_router.TaskExecStdoutConfig\x12\x46\n\rstderr_config\x18\x05 \x01(\x0e\x32/.modal.task_command_router.TaskExecStderrConfig\x12\x19\n\x0ctimeout_secs\x18\x06 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07workdir\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x12\n\nsecret_ids\x18\x08 \x03(\t\x12,\n\x08pty_info\x18\t \x01(\x0b\x32\x15.modal.client.PTYInfoH\x02\x88\x01\x01\x12\x15\n\rruntime_debug\x18\n \x01(\x08\x12\x14\n\x0c\x63ontainer_id\x18\x0b \x01(\t\x12\x45\n\x03\x65nv\x18\x0c \x03(\x0b\x32\x38.modal.task_command_router.TaskExecStartRequest.EnvEntry\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_timeout_secsB\n\n\x08_workdirB\x0b\n\t_pty_info\"\x17\n\x15TaskExecStartResponse\">\n\x1aTaskExecStdinStatusRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"H\n\x1bTaskExecStdinStatusResponse\x12\x19\n\x11num_bytes_written\x18\x01 \x01(\x04\x12\x0e\n\x06\x63losed\x18\x02 \x01(\x08\"h\n\x19TaskExecStdinWriteRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x0b\n\x03\x65of\x18\x05 \x01(\x08\"\x1c\n\x1aTaskExecStdinWriteResponse\"\x87\x01\n\x1fTaskExecStdinWriteStreamRequest\x12I\n\x05start\x18\x01 \x01(\x0b\x32\x38.modal.task_command_router.TaskExecStdinWriteStreamStartH\x00\x12\x0e\n\x04\x64\x61ta\x18\x02 \x01(\x0cH\x00\x42\t\n\x07payload\"\"\n TaskExecStdinWriteStreamResponse\"Q\n\x1dTaskExecStdinWriteStreamStart\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\"\x9d\x01\n\x18TaskExecStdioReadRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12O\n\x0f\x66ile_descriptor\x18\x04 \x01(\x0e\x32\x36.modal.task_command_router.TaskExecStdioFileDescriptor\")\n\x19TaskExecStdioReadResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"7\n\x13TaskExecWaitRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"G\n\x14TaskExecWaitResponse\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x12\x10\n\x06signal\x18\x02 \x01(\x05H\x00\x42\r\n\x0b\x65xit_status\"\xa0\x01\n\x19TaskMountDirectoryRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\x0c\x12\x10\n\x08image_id\x18\x03 \x01(\t\x12-\n customer_supplied_encryption_key\x18\x04 \x01(\x0cH\x00\x88\x01\x01\x42#\n!_customer_supplied_encryption_key\"\xd0\x01\n\x1cTaskSnapshotDirectoryRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\x0c\x12\x13\n\x0bsnapshot_id\x18\x03 \x01(\t\x12\x18\n\x0bttl_seconds\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12-\n customer_supplied_encryption_key\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x42\x0e\n\x0c_ttl_secondsB#\n!_customer_supplied_encryption_key\"1\n\x1dTaskSnapshotDirectoryResponse\x12\x10\n\x08image_id\x18\x01 \x01(\t\"o\n\x1dTaskSnapshotFilesystemRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x13\n\x0bsnapshot_id\x18\x02 \x01(\t\x12\x18\n\x0bttl_seconds\x18\x03 \x01(\x03H\x00\x88\x01\x01\x42\x0e\n\x0c_ttl_seconds\"2\n\x1eTaskSnapshotFilesystemResponse\x12\x10\n\x08image_id\x18\x01 \x01(\t\"<\n\x1bTaskUnmountDirectoryRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\x0c*p\n\x1aSandboxStdioFileDescriptor\x12(\n$SANDBOX_STDIO_FILE_DESCRIPTOR_STDOUT\x10\x00\x12(\n$SANDBOX_STDIO_FILE_DESCRIPTOR_STDERR\x10\x01*\x81\x01\n\x14TaskExecStderrConfig\x12#\n\x1fTASK_EXEC_STDERR_CONFIG_DEVNULL\x10\x00\x12 \n\x1cTASK_EXEC_STDERR_CONFIG_PIPE\x10\x01\x12\"\n\x1eTASK_EXEC_STDERR_CONFIG_STDOUT\x10\x02*u\n\x1bTaskExecStdioFileDescriptor\x12*\n&TASK_EXEC_STDIO_FILE_DESCRIPTOR_STDOUT\x10\x00\x12*\n&TASK_EXEC_STDIO_FILE_DESCRIPTOR_STDERR\x10\x01*]\n\x14TaskExecStdoutConfig\x12#\n\x1fTASK_EXEC_STDOUT_CONFIG_DEVNULL\x10\x00\x12 \n\x1cTASK_EXEC_STDOUT_CONFIG_PIPE\x10\x01\x32\x99\x12\n\x11TaskCommandRouter\x12\x84\x01\n\x13SandboxStdinWriteV2\x12\x35.modal.task_command_router.SandboxStdinWriteV2Request\x1a\x36.modal.task_command_router.SandboxStdinWriteV2Response\x12\x83\x01\n\x12SandboxStdioReadV2\x12\x34.modal.task_command_router.SandboxStdioReadV2Request\x1a\x35.modal.task_command_router.SandboxStdioReadV2Response0\x01\x12\x84\x01\n\x13TaskContainerCreate\x12\x35.modal.task_command_router.TaskContainerCreateRequest\x1a\x36.modal.task_command_router.TaskContainerCreateResponse\x12{\n\x10TaskContainerGet\x12\x32.modal.task_command_router.TaskContainerGetRequest\x1a\x33.modal.task_command_router.TaskContainerGetResponse\x12~\n\x11TaskContainerList\x12\x33.modal.task_command_router.TaskContainerListRequest\x1a\x34.modal.task_command_router.TaskContainerListResponse\x12\x8d\x01\n\x16TaskContainerTerminate\x12\x38.modal.task_command_router.TaskContainerTerminateRequest\x1a\x39.modal.task_command_router.TaskContainerTerminateResponse\x12~\n\x11TaskContainerWait\x12\x33.modal.task_command_router.TaskContainerWaitRequest\x1a\x34.modal.task_command_router.TaskContainerWaitResponse\x12o\n\x0cTaskExecPoll\x12..modal.task_command_router.TaskExecPollRequest\x1a/.modal.task_command_router.TaskExecPollResponse\x12r\n\rTaskExecStart\x12/.modal.task_command_router.TaskExecStartRequest\x1a\x30.modal.task_command_router.TaskExecStartResponse\x12\x84\x01\n\x13TaskExecStdinStatus\x12\x35.modal.task_command_router.TaskExecStdinStatusRequest\x1a\x36.modal.task_command_router.TaskExecStdinStatusResponse\x12\x81\x01\n\x12TaskExecStdinWrite\x12\x34.modal.task_command_router.TaskExecStdinWriteRequest\x1a\x35.modal.task_command_router.TaskExecStdinWriteResponse\x12\x95\x01\n\x18TaskExecStdinWriteStream\x12:.modal.task_command_router.TaskExecStdinWriteStreamRequest\x1a;.modal.task_command_router.TaskExecStdinWriteStreamResponse(\x01\x12\x80\x01\n\x11TaskExecStdioRead\x12\x33.modal.task_command_router.TaskExecStdioReadRequest\x1a\x34.modal.task_command_router.TaskExecStdioReadResponse0\x01\x12o\n\x0cTaskExecWait\x12..modal.task_command_router.TaskExecWaitRequest\x1a/.modal.task_command_router.TaskExecWaitResponse\x12\x62\n\x12TaskMountDirectory\x12\x34.modal.task_command_router.TaskMountDirectoryRequest\x1a\x16.google.protobuf.Empty\x12\x8a\x01\n\x15TaskSnapshotDirectory\x12\x37.modal.task_command_router.TaskSnapshotDirectoryRequest\x1a\x38.modal.task_command_router.TaskSnapshotDirectoryResponse\x12\x8d\x01\n\x16TaskSnapshotFilesystem\x12\x38.modal.task_command_router.TaskSnapshotFilesystemRequest\x1a\x39.modal.task_command_router.TaskSnapshotFilesystemResponse\x12\x66\n\x14TaskUnmountDirectory\x12\x36.modal.task_command_router.TaskUnmountDirectoryRequest\x1a\x16.google.protobuf.EmptyB&Z$github.com/modal-labs/modal/go/protob\x06proto3')
20
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%modal_proto/task_command_router.proto\x12\x19modal.task_command_router\x1a\x1bgoogle/protobuf/empty.proto\x1a\x15modal_proto/api.proto\"X\n\x1aSandboxStdinWriteV2Request\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\x02 \x01(\x04\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x12\x0b\n\x03\x65of\x18\x04 \x01(\x08\"\x1d\n\x1bSandboxStdinWriteV2Response\"\x8c\x01\n\x19SandboxStdioReadV2Request\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\x02 \x01(\x04\x12N\n\x0f\x66ile_descriptor\x18\x03 \x01(\x0e\x32\x35.modal.task_command_router.SandboxStdioFileDescriptor\"C\n\x1aSandboxStdioReadV2Response\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x17\n\x0fstarting_offset\x18\x02 \x01(\x04\"\x83\x02\n\x1aTaskContainerCreateRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x02 \x01(\t\x12\x10\n\x08image_id\x18\x03 \x01(\t\x12\x0c\n\x04\x61rgs\x18\x05 \x03(\t\x12K\n\x03\x65nv\x18\x06 \x03(\x0b\x32>.modal.task_command_router.TaskContainerCreateRequest.EnvEntry\x12\x0f\n\x07workdir\x18\x07 \x01(\t\x12\x12\n\nsecret_ids\x18\x08 \x03(\t\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"K\n\x1bTaskContainerCreateResponse\x12\x14\n\x0c\x63ontainer_id\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x02 \x01(\t\"^\n\x17TaskContainerGetRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x02 \x01(\t\x12\x1a\n\x12include_terminated\x18\x03 \x01(\x08\"[\n\x18TaskContainerGetResponse\x12?\n\tcontainer\x18\x01 \x01(\x0b\x32,.modal.task_command_router.TaskContainerInfo\"~\n\x11TaskContainerInfo\x12\x14\n\x0c\x63ontainer_id\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12+\n\x06result\x18\x04 \x01(\x0b\x32\x1b.modal.client.GenericResult\"G\n\x18TaskContainerListRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x1a\n\x12include_terminated\x18\x02 \x01(\x08\"]\n\x19TaskContainerListResponse\x12@\n\ncontainers\x18\x01 \x03(\x0b\x32,.modal.task_command_router.TaskContainerInfo\"F\n\x1dTaskContainerTerminateRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x14\n\x0c\x63ontainer_id\x18\x02 \x01(\t\" \n\x1eTaskContainerTerminateResponse\"R\n\x18TaskContainerWaitRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x14\n\x0c\x63ontainer_id\x18\x02 \x01(\t\x12\x0f\n\x07timeout\x18\x03 \x01(\x02\"H\n\x19TaskContainerWaitResponse\x12+\n\x06result\x18\x01 \x01(\x0b\x32\x1b.modal.client.GenericResult\"7\n\x13TaskExecPollRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"G\n\x14TaskExecPollResponse\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x12\x10\n\x06signal\x18\x02 \x01(\x05H\x00\x42\r\n\x0b\x65xit_status\"\x9b\x04\n\x14TaskExecStartRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x14\n\x0c\x63ommand_args\x18\x03 \x03(\t\x12\x46\n\rstdout_config\x18\x04 \x01(\x0e\x32/.modal.task_command_router.TaskExecStdoutConfig\x12\x46\n\rstderr_config\x18\x05 \x01(\x0e\x32/.modal.task_command_router.TaskExecStderrConfig\x12\x19\n\x0ctimeout_secs\x18\x06 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07workdir\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x12\n\nsecret_ids\x18\x08 \x03(\t\x12,\n\x08pty_info\x18\t \x01(\x0b\x32\x15.modal.client.PTYInfoH\x02\x88\x01\x01\x12\x15\n\rruntime_debug\x18\n \x01(\x08\x12\x14\n\x0c\x63ontainer_id\x18\x0b \x01(\t\x12\x45\n\x03\x65nv\x18\x0c \x03(\x0b\x32\x38.modal.task_command_router.TaskExecStartRequest.EnvEntry\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_timeout_secsB\n\n\x08_workdirB\x0b\n\t_pty_info\"\x17\n\x15TaskExecStartResponse\">\n\x1aTaskExecStdinStatusRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"H\n\x1bTaskExecStdinStatusResponse\x12\x19\n\x11num_bytes_written\x18\x01 \x01(\x04\x12\x0e\n\x06\x63losed\x18\x02 \x01(\x08\"h\n\x19TaskExecStdinWriteRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x0b\n\x03\x65of\x18\x05 \x01(\x08\"\x1c\n\x1aTaskExecStdinWriteResponse\"\x87\x01\n\x1fTaskExecStdinWriteStreamRequest\x12I\n\x05start\x18\x01 \x01(\x0b\x32\x38.modal.task_command_router.TaskExecStdinWriteStreamStartH\x00\x12\x0e\n\x04\x64\x61ta\x18\x02 \x01(\x0cH\x00\x42\t\n\x07payload\"\"\n TaskExecStdinWriteStreamResponse\"Q\n\x1dTaskExecStdinWriteStreamStart\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\"\x9d\x01\n\x18TaskExecStdioReadRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12O\n\x0f\x66ile_descriptor\x18\x04 \x01(\x0e\x32\x36.modal.task_command_router.TaskExecStdioFileDescriptor\")\n\x19TaskExecStdioReadResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"7\n\x13TaskExecWaitRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"G\n\x14TaskExecWaitResponse\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x12\x10\n\x06signal\x18\x02 \x01(\x05H\x00\x42\r\n\x0b\x65xit_status\"\xa0\x01\n\x19TaskMountDirectoryRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\x0c\x12\x10\n\x08image_id\x18\x03 \x01(\t\x12-\n customer_supplied_encryption_key\x18\x04 \x01(\x0cH\x00\x88\x01\x01\x42#\n!_customer_supplied_encryption_key\"\xd0\x01\n\x1cTaskSnapshotDirectoryRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\x0c\x12\x13\n\x0bsnapshot_id\x18\x03 \x01(\t\x12\x18\n\x0bttl_seconds\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12-\n customer_supplied_encryption_key\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x42\x0e\n\x0c_ttl_secondsB#\n!_customer_supplied_encryption_key\"1\n\x1dTaskSnapshotDirectoryResponse\x12\x10\n\x08image_id\x18\x01 \x01(\t\"\xc3\x01\n\x1dTaskSnapshotFilesystemRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x13\n\x0bsnapshot_id\x18\x02 \x01(\t\x12\x18\n\x0bttl_seconds\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12-\n customer_supplied_encryption_key\x18\x04 \x01(\x0cH\x01\x88\x01\x01\x42\x0e\n\x0c_ttl_secondsB#\n!_customer_supplied_encryption_key\"2\n\x1eTaskSnapshotFilesystemResponse\x12\x10\n\x08image_id\x18\x01 \x01(\t\"<\n\x1bTaskUnmountDirectoryRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\x0c*p\n\x1aSandboxStdioFileDescriptor\x12(\n$SANDBOX_STDIO_FILE_DESCRIPTOR_STDOUT\x10\x00\x12(\n$SANDBOX_STDIO_FILE_DESCRIPTOR_STDERR\x10\x01*\x81\x01\n\x14TaskExecStderrConfig\x12#\n\x1fTASK_EXEC_STDERR_CONFIG_DEVNULL\x10\x00\x12 \n\x1cTASK_EXEC_STDERR_CONFIG_PIPE\x10\x01\x12\"\n\x1eTASK_EXEC_STDERR_CONFIG_STDOUT\x10\x02*u\n\x1bTaskExecStdioFileDescriptor\x12*\n&TASK_EXEC_STDIO_FILE_DESCRIPTOR_STDOUT\x10\x00\x12*\n&TASK_EXEC_STDIO_FILE_DESCRIPTOR_STDERR\x10\x01*]\n\x14TaskExecStdoutConfig\x12#\n\x1fTASK_EXEC_STDOUT_CONFIG_DEVNULL\x10\x00\x12 \n\x1cTASK_EXEC_STDOUT_CONFIG_PIPE\x10\x01\x32\x99\x12\n\x11TaskCommandRouter\x12\x84\x01\n\x13SandboxStdinWriteV2\x12\x35.modal.task_command_router.SandboxStdinWriteV2Request\x1a\x36.modal.task_command_router.SandboxStdinWriteV2Response\x12\x83\x01\n\x12SandboxStdioReadV2\x12\x34.modal.task_command_router.SandboxStdioReadV2Request\x1a\x35.modal.task_command_router.SandboxStdioReadV2Response0\x01\x12\x84\x01\n\x13TaskContainerCreate\x12\x35.modal.task_command_router.TaskContainerCreateRequest\x1a\x36.modal.task_command_router.TaskContainerCreateResponse\x12{\n\x10TaskContainerGet\x12\x32.modal.task_command_router.TaskContainerGetRequest\x1a\x33.modal.task_command_router.TaskContainerGetResponse\x12~\n\x11TaskContainerList\x12\x33.modal.task_command_router.TaskContainerListRequest\x1a\x34.modal.task_command_router.TaskContainerListResponse\x12\x8d\x01\n\x16TaskContainerTerminate\x12\x38.modal.task_command_router.TaskContainerTerminateRequest\x1a\x39.modal.task_command_router.TaskContainerTerminateResponse\x12~\n\x11TaskContainerWait\x12\x33.modal.task_command_router.TaskContainerWaitRequest\x1a\x34.modal.task_command_router.TaskContainerWaitResponse\x12o\n\x0cTaskExecPoll\x12..modal.task_command_router.TaskExecPollRequest\x1a/.modal.task_command_router.TaskExecPollResponse\x12r\n\rTaskExecStart\x12/.modal.task_command_router.TaskExecStartRequest\x1a\x30.modal.task_command_router.TaskExecStartResponse\x12\x84\x01\n\x13TaskExecStdinStatus\x12\x35.modal.task_command_router.TaskExecStdinStatusRequest\x1a\x36.modal.task_command_router.TaskExecStdinStatusResponse\x12\x81\x01\n\x12TaskExecStdinWrite\x12\x34.modal.task_command_router.TaskExecStdinWriteRequest\x1a\x35.modal.task_command_router.TaskExecStdinWriteResponse\x12\x95\x01\n\x18TaskExecStdinWriteStream\x12:.modal.task_command_router.TaskExecStdinWriteStreamRequest\x1a;.modal.task_command_router.TaskExecStdinWriteStreamResponse(\x01\x12\x80\x01\n\x11TaskExecStdioRead\x12\x33.modal.task_command_router.TaskExecStdioReadRequest\x1a\x34.modal.task_command_router.TaskExecStdioReadResponse0\x01\x12o\n\x0cTaskExecWait\x12..modal.task_command_router.TaskExecWaitRequest\x1a/.modal.task_command_router.TaskExecWaitResponse\x12\x62\n\x12TaskMountDirectory\x12\x34.modal.task_command_router.TaskMountDirectoryRequest\x1a\x16.google.protobuf.Empty\x12\x8a\x01\n\x15TaskSnapshotDirectory\x12\x37.modal.task_command_router.TaskSnapshotDirectoryRequest\x1a\x38.modal.task_command_router.TaskSnapshotDirectoryResponse\x12\x8d\x01\n\x16TaskSnapshotFilesystem\x12\x38.modal.task_command_router.TaskSnapshotFilesystemRequest\x1a\x39.modal.task_command_router.TaskSnapshotFilesystemResponse\x12\x66\n\x14TaskUnmountDirectory\x12\x36.modal.task_command_router.TaskUnmountDirectoryRequest\x1a\x16.google.protobuf.EmptyB&Z$github.com/modal-labs/modal/go/protob\x06proto3')
21
21
 
22
22
  _SANDBOXSTDIOFILEDESCRIPTOR = DESCRIPTOR.enum_types_by_name['SandboxStdioFileDescriptor']
23
23
  SandboxStdioFileDescriptor = enum_type_wrapper.EnumTypeWrapper(_SANDBOXSTDIOFILEDESCRIPTOR)
@@ -353,14 +353,14 @@ if _descriptor._USE_C_DESCRIPTORS == False:
353
353
  _TASKCONTAINERCREATEREQUEST_ENVENTRY._serialized_options = b'8\001'
354
354
  _TASKEXECSTARTREQUEST_ENVENTRY._options = None
355
355
  _TASKEXECSTARTREQUEST_ENVENTRY._serialized_options = b'8\001'
356
- _SANDBOXSTDIOFILEDESCRIPTOR._serialized_start=3754
357
- _SANDBOXSTDIOFILEDESCRIPTOR._serialized_end=3866
358
- _TASKEXECSTDERRCONFIG._serialized_start=3869
359
- _TASKEXECSTDERRCONFIG._serialized_end=3998
360
- _TASKEXECSTDIOFILEDESCRIPTOR._serialized_start=4000
361
- _TASKEXECSTDIOFILEDESCRIPTOR._serialized_end=4117
362
- _TASKEXECSTDOUTCONFIG._serialized_start=4119
363
- _TASKEXECSTDOUTCONFIG._serialized_end=4212
356
+ _SANDBOXSTDIOFILEDESCRIPTOR._serialized_start=3839
357
+ _SANDBOXSTDIOFILEDESCRIPTOR._serialized_end=3951
358
+ _TASKEXECSTDERRCONFIG._serialized_start=3954
359
+ _TASKEXECSTDERRCONFIG._serialized_end=4083
360
+ _TASKEXECSTDIOFILEDESCRIPTOR._serialized_start=4085
361
+ _TASKEXECSTDIOFILEDESCRIPTOR._serialized_end=4202
362
+ _TASKEXECSTDOUTCONFIG._serialized_start=4204
363
+ _TASKEXECSTDOUTCONFIG._serialized_end=4297
364
364
  _SANDBOXSTDINWRITEV2REQUEST._serialized_start=120
365
365
  _SANDBOXSTDINWRITEV2REQUEST._serialized_end=208
366
366
  _SANDBOXSTDINWRITEV2RESPONSE._serialized_start=210
@@ -431,12 +431,12 @@ if _descriptor._USE_C_DESCRIPTORS == False:
431
431
  _TASKSNAPSHOTDIRECTORYREQUEST._serialized_end=3474
432
432
  _TASKSNAPSHOTDIRECTORYRESPONSE._serialized_start=3476
433
433
  _TASKSNAPSHOTDIRECTORYRESPONSE._serialized_end=3525
434
- _TASKSNAPSHOTFILESYSTEMREQUEST._serialized_start=3527
435
- _TASKSNAPSHOTFILESYSTEMREQUEST._serialized_end=3638
436
- _TASKSNAPSHOTFILESYSTEMRESPONSE._serialized_start=3640
437
- _TASKSNAPSHOTFILESYSTEMRESPONSE._serialized_end=3690
438
- _TASKUNMOUNTDIRECTORYREQUEST._serialized_start=3692
439
- _TASKUNMOUNTDIRECTORYREQUEST._serialized_end=3752
440
- _TASKCOMMANDROUTER._serialized_start=4215
441
- _TASKCOMMANDROUTER._serialized_end=6544
434
+ _TASKSNAPSHOTFILESYSTEMREQUEST._serialized_start=3528
435
+ _TASKSNAPSHOTFILESYSTEMREQUEST._serialized_end=3723
436
+ _TASKSNAPSHOTFILESYSTEMRESPONSE._serialized_start=3725
437
+ _TASKSNAPSHOTFILESYSTEMRESPONSE._serialized_end=3775
438
+ _TASKUNMOUNTDIRECTORYREQUEST._serialized_start=3777
439
+ _TASKUNMOUNTDIRECTORYREQUEST._serialized_end=3837
440
+ _TASKCOMMANDROUTER._serialized_start=4300
441
+ _TASKCOMMANDROUTER._serialized_end=6629
442
442
  # @@protoc_insertion_point(module_scope)
@@ -858,6 +858,7 @@ class TaskSnapshotFilesystemRequest(google.protobuf.message.Message):
858
858
  TASK_ID_FIELD_NUMBER: builtins.int
859
859
  SNAPSHOT_ID_FIELD_NUMBER: builtins.int
860
860
  TTL_SECONDS_FIELD_NUMBER: builtins.int
861
+ CUSTOMER_SUPPLIED_ENCRYPTION_KEY_FIELD_NUMBER: builtins.int
861
862
  task_id: builtins.str
862
863
  snapshot_id: builtins.str
863
864
  """A unique ID to ensure idempotency of filesystem snapshot requests."""
@@ -870,15 +871,23 @@ class TaskSnapshotFilesystemRequest(google.protobuf.message.Message):
870
871
  0 and other negative values are invalid and rejected by the
871
872
  server.
872
873
  """
874
+ customer_supplied_encryption_key: builtins.bytes
875
+ """Customer-supplied encryption key used to encrypt the resulting image's data and tree
876
+ metadata keys. This key is not persisted by Modal.
877
+ """
873
878
  def __init__(
874
879
  self,
875
880
  *,
876
881
  task_id: builtins.str = ...,
877
882
  snapshot_id: builtins.str = ...,
878
883
  ttl_seconds: builtins.int | None = ...,
884
+ customer_supplied_encryption_key: builtins.bytes | None = ...,
879
885
  ) -> None: ...
880
- def HasField(self, field_name: typing_extensions.Literal["_ttl_seconds", b"_ttl_seconds", "ttl_seconds", b"ttl_seconds"]) -> builtins.bool: ...
881
- def ClearField(self, field_name: typing_extensions.Literal["_ttl_seconds", b"_ttl_seconds", "snapshot_id", b"snapshot_id", "task_id", b"task_id", "ttl_seconds", b"ttl_seconds"]) -> None: ...
886
+ def HasField(self, field_name: typing_extensions.Literal["_customer_supplied_encryption_key", b"_customer_supplied_encryption_key", "_ttl_seconds", b"_ttl_seconds", "customer_supplied_encryption_key", b"customer_supplied_encryption_key", "ttl_seconds", b"ttl_seconds"]) -> builtins.bool: ...
887
+ def ClearField(self, field_name: typing_extensions.Literal["_customer_supplied_encryption_key", b"_customer_supplied_encryption_key", "_ttl_seconds", b"_ttl_seconds", "customer_supplied_encryption_key", b"customer_supplied_encryption_key", "snapshot_id", b"snapshot_id", "task_id", b"task_id", "ttl_seconds", b"ttl_seconds"]) -> None: ...
888
+ @typing.overload
889
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_customer_supplied_encryption_key", b"_customer_supplied_encryption_key"]) -> typing_extensions.Literal["customer_supplied_encryption_key"] | None: ...
890
+ @typing.overload
882
891
  def WhichOneof(self, oneof_group: typing_extensions.Literal["_ttl_seconds", b"_ttl_seconds"]) -> typing_extensions.Literal["ttl_seconds"] | None: ...
883
892
 
884
893
  global___TaskSnapshotFilesystemRequest = TaskSnapshotFilesystemRequest
@@ -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.4.dev12"
4
+ __version__ = "1.4.4.dev13"
File without changes
File without changes
File without changes
File without changes
File without changes