modal 1.4.3.dev7__tar.gz → 1.4.3.dev9__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 (212) hide show
  1. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/PKG-INFO +1 -1
  2. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/cluster.py +25 -7
  3. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/container.py +22 -7
  4. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/client.pyi +2 -2
  5. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/functions.pyi +6 -6
  6. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/sandbox.py +2 -2
  7. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/sandbox.pyi +3 -3
  8. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal.egg-info/PKG-INFO +1 -1
  9. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_proto/task_command_router_grpc.py +32 -0
  10. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_proto/task_command_router_pb2.py +109 -63
  11. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_proto/task_command_router_pb2.pyi +81 -0
  12. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_proto/task_command_router_pb2_grpc.py +66 -0
  13. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_proto/task_command_router_pb2_grpc.pyi +20 -0
  14. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_version/__init__.py +1 -1
  15. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/LICENSE +0 -0
  16. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/README.md +0 -0
  17. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/__init__.py +0 -0
  18. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/__main__.py +0 -0
  19. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_billing.py +0 -0
  20. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_clustered_functions.py +0 -0
  21. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_clustered_functions.pyi +0 -0
  22. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_container_entrypoint.py +0 -0
  23. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_functions.py +0 -0
  24. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_grpc_client.py +0 -0
  25. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_ipython.py +0 -0
  26. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_load_context.py +0 -0
  27. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_location.py +0 -0
  28. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_logs.py +0 -0
  29. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_object.py +0 -0
  30. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_output/__init__.py +0 -0
  31. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_output/manager.py +0 -0
  32. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_output/pty.py +0 -0
  33. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_output/rich.py +0 -0
  34. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_output/status.py +0 -0
  35. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_partial_function.py +0 -0
  36. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_resolver.py +0 -0
  37. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_resources.py +0 -0
  38. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_runtime/__init__.py +0 -0
  39. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_runtime/asgi.py +0 -0
  40. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_runtime/container_io_manager.py +0 -0
  41. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_runtime/container_io_manager.pyi +0 -0
  42. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_runtime/execution_context.py +0 -0
  43. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_runtime/execution_context.pyi +0 -0
  44. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  45. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_runtime/telemetry.py +0 -0
  46. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_runtime/user_code_event_loop.py +0 -0
  47. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_runtime/user_code_imports.py +0 -0
  48. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_serialization.py +0 -0
  49. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_server.py +0 -0
  50. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_traceback.py +0 -0
  51. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_tunnel.py +0 -0
  52. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_tunnel.pyi +0 -0
  53. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_type_manager.py +0 -0
  54. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/__init__.py +0 -0
  55. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/app_utils.py +0 -0
  56. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/async_utils.py +0 -0
  57. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/auth_token_manager.py +0 -0
  58. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/blob_utils.py +0 -0
  59. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/browser_utils.py +0 -0
  60. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/bytes_io_segment_payload.py +0 -0
  61. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/deprecation.py +0 -0
  62. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/docker_utils.py +0 -0
  63. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/function_utils.py +0 -0
  64. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/git_utils.py +0 -0
  65. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/grpc_testing.py +0 -0
  66. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/grpc_utils.py +0 -0
  67. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/hash_utils.py +0 -0
  68. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/http_utils.py +0 -0
  69. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/jwt_utils.py +0 -0
  70. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/logger.py +0 -0
  71. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/mount_utils.py +0 -0
  72. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/name_utils.py +0 -0
  73. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/package_utils.py +0 -0
  74. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/pattern_utils.py +0 -0
  75. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/rand_pb_testing.py +0 -0
  76. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/sandbox_fs_utils.py +0 -0
  77. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/shell_utils.py +0 -0
  78. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/task_command_router_client.py +0 -0
  79. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_utils/time_utils.py +0 -0
  80. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_vendor/__init__.py +0 -0
  81. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  82. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_vendor/cloudpickle.py +0 -0
  83. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_vendor/tblib.py +0 -0
  84. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_vendor/version.py +0 -0
  85. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/_watcher.py +0 -0
  86. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/app.py +0 -0
  87. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/app.pyi +0 -0
  88. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/billing.py +0 -0
  89. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/builder/2023.12.312.txt +0 -0
  90. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/builder/2023.12.txt +0 -0
  91. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/builder/2024.04.txt +0 -0
  92. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/builder/2024.10.txt +0 -0
  93. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/builder/2025.06.txt +0 -0
  94. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/builder/PREVIEW.txt +0 -0
  95. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/builder/README.md +0 -0
  96. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/builder/base-images.json +0 -0
  97. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/call_graph.py +0 -0
  98. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/__init__.py +0 -0
  99. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/_download.py +0 -0
  100. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/_help.py +0 -0
  101. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/_traceback.py +0 -0
  102. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/app.py +0 -0
  103. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/billing.py +0 -0
  104. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/bootstrap.py +0 -0
  105. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/changelog.py +0 -0
  106. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/config.py +0 -0
  107. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/dashboard.py +0 -0
  108. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/dict.py +0 -0
  109. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/entry_point.py +0 -0
  110. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/environment.py +0 -0
  111. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/import_refs.py +0 -0
  112. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/launch.py +0 -0
  113. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/logo.py +0 -0
  114. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/network_file_system.py +0 -0
  115. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/profile.py +0 -0
  116. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/programs/__init__.py +0 -0
  117. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/programs/run_jupyter.py +0 -0
  118. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/programs/vscode.py +0 -0
  119. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/queues.py +0 -0
  120. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/run.py +0 -0
  121. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/secret.py +0 -0
  122. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/selector.py +0 -0
  123. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/shell.py +0 -0
  124. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/token.py +0 -0
  125. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/utils.py +0 -0
  126. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cli/volume.py +0 -0
  127. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/client.py +0 -0
  128. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cloud_bucket_mount.py +0 -0
  129. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cloud_bucket_mount.pyi +0 -0
  130. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cls.py +0 -0
  131. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/cls.pyi +0 -0
  132. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/config.py +0 -0
  133. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/container_process.py +0 -0
  134. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/container_process.pyi +0 -0
  135. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/dict.py +0 -0
  136. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/dict.pyi +0 -0
  137. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/environments.py +0 -0
  138. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/environments.pyi +0 -0
  139. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/exception.py +0 -0
  140. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/experimental/__init__.py +0 -0
  141. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/experimental/flash.py +0 -0
  142. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/experimental/flash.pyi +0 -0
  143. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/experimental/ipython.py +0 -0
  144. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/file_io.py +0 -0
  145. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/file_io.pyi +0 -0
  146. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/file_pattern_matcher.py +0 -0
  147. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/functions.py +0 -0
  148. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/image.py +0 -0
  149. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/image.pyi +0 -0
  150. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/io_streams.py +0 -0
  151. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/io_streams.pyi +0 -0
  152. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/mount.py +0 -0
  153. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/mount.pyi +0 -0
  154. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/network_file_system.py +0 -0
  155. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/network_file_system.pyi +0 -0
  156. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/object.py +0 -0
  157. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/object.pyi +0 -0
  158. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/output.py +0 -0
  159. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/parallel_map.py +0 -0
  160. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/parallel_map.pyi +0 -0
  161. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/partial_function.py +0 -0
  162. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/partial_function.pyi +0 -0
  163. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/proxy.py +0 -0
  164. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/proxy.pyi +0 -0
  165. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/py.typed +0 -0
  166. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/queue.py +0 -0
  167. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/queue.pyi +0 -0
  168. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/retries.py +0 -0
  169. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/runner.py +0 -0
  170. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/runner.pyi +0 -0
  171. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/running_app.py +0 -0
  172. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/sandbox_fs.py +0 -0
  173. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/sandbox_fs.pyi +0 -0
  174. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/schedule.py +0 -0
  175. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/scheduler_placement.py +0 -0
  176. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/secret.py +0 -0
  177. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/secret.pyi +0 -0
  178. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/server.py +0 -0
  179. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/server.pyi +0 -0
  180. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/serving.py +0 -0
  181. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/serving.pyi +0 -0
  182. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/snapshot.py +0 -0
  183. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/snapshot.pyi +0 -0
  184. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/stream_type.py +0 -0
  185. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/token_flow.py +0 -0
  186. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/token_flow.pyi +0 -0
  187. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/volume.py +0 -0
  188. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal/volume.pyi +0 -0
  189. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal.egg-info/SOURCES.txt +0 -0
  190. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal.egg-info/dependency_links.txt +0 -0
  191. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal.egg-info/entry_points.txt +0 -0
  192. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal.egg-info/requires.txt +0 -0
  193. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal.egg-info/top_level.txt +0 -0
  194. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_docs/__init__.py +0 -0
  195. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_docs/gen_cli_docs.py +0 -0
  196. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_docs/gen_cli_docs_main.py +0 -0
  197. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_docs/gen_reference_docs.py +0 -0
  198. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_docs/gen_reference_docs_main.py +0 -0
  199. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_docs/mdmd/__init__.py +0 -0
  200. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_docs/mdmd/mdmd.py +0 -0
  201. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_docs/mdmd/signatures.py +0 -0
  202. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_proto/__init__.py +0 -0
  203. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_proto/api_grpc.py +0 -0
  204. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_proto/api_pb2.py +0 -0
  205. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_proto/api_pb2.pyi +0 -0
  206. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_proto/api_pb2_grpc.py +0 -0
  207. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_proto/api_pb2_grpc.pyi +0 -0
  208. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_proto/modal_api_grpc.py +0 -0
  209. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_proto/py.typed +0 -0
  210. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/modal_version/__main__.py +0 -0
  211. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/pyproject.toml +0 -0
  212. {modal-1.4.3.dev7 → modal-1.4.3.dev9}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.4.3.dev7
3
+ Version: 1.4.3.dev9
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,5 @@
1
1
  # Copyright Modal Labs 2022
2
+ import uuid
2
3
  from typing import Optional, Union
3
4
 
4
5
  import click
@@ -8,15 +9,17 @@ from rich.text import Text
8
9
  from modal._object import _get_environment_name
9
10
  from modal._output.pty import get_pty_info
10
11
  from modal._utils.async_utils import synchronizer
12
+ from modal._utils.task_command_router_client import TaskCommandRouterClient
11
13
  from modal._utils.time_utils import timestamp_to_localized_str
12
14
  from modal.cli.utils import display_table, env_option, is_tty
13
15
  from modal.client import _Client
14
16
  from modal.config import config
15
17
  from modal.container_process import _ContainerProcess
16
18
  from modal.environments import ensure_env
19
+ from modal.exception import InvalidError
17
20
  from modal.output import OutputManager
18
21
  from modal.stream_type import StreamType
19
- from modal_proto import api_pb2
22
+ from modal_proto import api_pb2, task_command_router_pb2 as sr_pb2
20
23
 
21
24
  from ._help import ModalGroup
22
25
 
@@ -75,17 +78,32 @@ async def shell(cluster_id: str, rank: int = 0):
75
78
  )
76
79
 
77
80
  pty = is_tty()
78
- req = api_pb2.ContainerExecRequest(
81
+
82
+ command_router_client = await TaskCommandRouterClient.try_init(client, task_id)
83
+ if command_router_client is None:
84
+ raise InvalidError(f"Command router access is not available for container {task_id}")
85
+
86
+ process_id = str(uuid.uuid4())
87
+
88
+ start_req = sr_pb2.TaskExecStartRequest(
79
89
  task_id=task_id,
80
- command=["/bin/bash"],
90
+ exec_id=process_id,
91
+ command_args=["/bin/bash"],
92
+ stdout_config=sr_pb2.TaskExecStdoutConfig.TASK_EXEC_STDOUT_CONFIG_PIPE,
93
+ stderr_config=sr_pb2.TaskExecStderrConfig.TASK_EXEC_STDERR_CONFIG_PIPE,
81
94
  pty_info=get_pty_info(shell=True) if pty else None,
82
95
  runtime_debug=config.get("function_runtime_debug"),
83
96
  )
84
- exec_res: api_pb2.ContainerExecResponse = await client.stub.ContainerExec(req)
97
+ await command_router_client.exec_start(start_req)
98
+
85
99
  if pty:
86
- await _ContainerProcess(exec_res.exec_id, task_id, client).attach()
100
+ await _ContainerProcess(process_id, task_id, client, command_router_client=command_router_client).attach()
87
101
  else:
88
- # TODO: redirect stderr to its own stream?
89
102
  await _ContainerProcess(
90
- exec_res.exec_id, task_id, client, stdout=StreamType.STDOUT, stderr=StreamType.STDOUT
103
+ process_id,
104
+ task_id,
105
+ client,
106
+ command_router_client=command_router_client,
107
+ stdout=StreamType.STDOUT,
108
+ stderr=StreamType.STDOUT,
91
109
  ).wait()
@@ -1,4 +1,5 @@
1
1
  # Copyright Modal Labs 2022
2
+ import uuid
2
3
  import warnings
3
4
  from datetime import datetime, timezone
4
5
  from typing import Optional, Union
@@ -12,6 +13,7 @@ from modal._logs import _FETCH_LIMIT, _MAX_FETCH_RANGE, LogsFilters
12
13
  from modal._object import _get_environment_name
13
14
  from modal._output.pty import get_pty_info
14
15
  from modal._utils.async_utils import synchronizer
16
+ from modal._utils.task_command_router_client import TaskCommandRouterClient
15
17
  from modal._utils.time_utils import timestamp_to_localized_str
16
18
  from modal.cli.app import _DEFAULT_LOGS_TAIL, _SOURCE_OPTIONS, _parse_time_arg
17
19
  from modal.cli.utils import (
@@ -30,7 +32,7 @@ from modal.container_process import _ContainerProcess
30
32
  from modal.environments import ensure_env
31
33
  from modal.exception import InvalidError
32
34
  from modal.stream_type import StreamType
33
- from modal_proto import api_pb2
35
+ from modal_proto import api_pb2, task_command_router_pb2 as sr_pb2
34
36
 
35
37
  from ._help import ModalGroup
36
38
 
@@ -276,20 +278,33 @@ async def _exec_impl(
276
278
 
277
279
  client = await _Client.from_env()
278
280
 
279
- req = api_pb2.ContainerExecRequest(
281
+ command_router_client = await TaskCommandRouterClient.try_init(client, container_id)
282
+ if command_router_client is None:
283
+ raise InvalidError(f"Command router access is not available for container {container_id}")
284
+
285
+ process_id = str(uuid.uuid4())
286
+
287
+ start_req = sr_pb2.TaskExecStartRequest(
280
288
  task_id=container_id,
281
- command=command,
289
+ exec_id=process_id,
290
+ command_args=command,
291
+ stdout_config=sr_pb2.TaskExecStdoutConfig.TASK_EXEC_STDOUT_CONFIG_PIPE,
292
+ stderr_config=sr_pb2.TaskExecStderrConfig.TASK_EXEC_STDERR_CONFIG_PIPE,
282
293
  pty_info=get_pty_info(shell=True) if pty else None,
283
294
  runtime_debug=config.get("function_runtime_debug"),
284
295
  )
285
- res: api_pb2.ContainerExecResponse = await client.stub.ContainerExec(req)
296
+ await command_router_client.exec_start(start_req)
286
297
 
287
298
  if pty:
288
- await _ContainerProcess(res.exec_id, container_id, client).attach()
299
+ await _ContainerProcess(process_id, container_id, client, command_router_client=command_router_client).attach()
289
300
  else:
290
- # TODO: redirect stderr to its own stream?
291
301
  await _ContainerProcess(
292
- res.exec_id, container_id, client, stdout=StreamType.STDOUT, stderr=StreamType.STDOUT
302
+ process_id,
303
+ container_id,
304
+ client,
305
+ command_router_client=command_router_client,
306
+ stdout=StreamType.STDOUT,
307
+ stderr=StreamType.STDOUT,
293
308
  ).wait()
294
309
 
295
310
 
@@ -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.dev7",
38
+ version: str = "1.4.3.dev9",
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.dev7",
178
+ version: str = "1.4.3.dev9",
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[P_INNER, ReturnType_INNER]):
350
+ class __remote_spec(typing_extensions.Protocol[ReturnType_INNER, P_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.P, modal._functions.ReturnType]
359
+ remote: __remote_spec[modal._functions.ReturnType, modal._functions.P]
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[P_INNER, ReturnType_INNER]):
386
+ class ___experimental_spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_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.P, modal._functions.ReturnType]
409
+ _experimental_spawn: ___experimental_spawn_spec[modal._functions.ReturnType, modal._functions.P]
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[P_INNER, ReturnType_INNER]):
417
+ class __spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_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.P, modal._functions.ReturnType]
438
+ spawn: __spawn_spec[modal._functions.ReturnType, modal._functions.P]
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."""
@@ -628,6 +628,7 @@ class _Sandbox(_Object, type_prefix="sb"):
628
628
  idle_timeout: Optional[int] = None,
629
629
  workdir: Optional[str] = None,
630
630
  cpu: Optional[float] = None,
631
+ memory: Optional[int] = None,
631
632
  cloud: Optional[str] = None,
632
633
  region: Optional[Union[str, Sequence[str]]] = None,
633
634
  block_network: bool = False,
@@ -642,7 +643,6 @@ class _Sandbox(_Object, type_prefix="sb"):
642
643
  ) -> "_Sandbox":
643
644
  """Create a sandbox using the V2 backend.
644
645
 
645
- Only CPU is configurable; memory is derived as a fixed ratio of CPU.
646
646
  Features like tags, snapshots, exec, volumes, network file systems,
647
647
  GPUs, custom domains, and proxies are not supported.
648
648
  """
@@ -714,7 +714,7 @@ class _Sandbox(_Object, type_prefix="sb"):
714
714
  timeout_secs=timeout,
715
715
  idle_timeout_secs=idle_timeout,
716
716
  workdir=workdir,
717
- resources=convert_fn_config_to_resources_config(cpu=cpu, memory=0, gpu=None, ephemeral_disk=None),
717
+ resources=convert_fn_config_to_resources_config(cpu=cpu, memory=memory, gpu=None, ephemeral_disk=None),
718
718
  cloud_provider_str=cloud if cloud else None,
719
719
  runtime=config.get("function_runtime"),
720
720
  runtime_debug=config.get("function_runtime_debug"),
@@ -304,6 +304,7 @@ class _Sandbox(modal._object._Object):
304
304
  idle_timeout: typing.Optional[int] = None,
305
305
  workdir: typing.Optional[str] = None,
306
306
  cpu: typing.Optional[float] = None,
307
+ memory: typing.Optional[int] = None,
307
308
  cloud: typing.Optional[str] = None,
308
309
  region: typing.Union[str, collections.abc.Sequence[str], None] = None,
309
310
  block_network: bool = False,
@@ -318,7 +319,6 @@ class _Sandbox(modal._object._Object):
318
319
  ) -> _Sandbox:
319
320
  """Create a sandbox using the V2 backend.
320
321
 
321
- Only CPU is configurable; memory is derived as a fixed ratio of CPU.
322
322
  Features like tags, snapshots, exec, volumes, network file systems,
323
323
  GPUs, custom domains, and proxies are not supported.
324
324
  """
@@ -1190,6 +1190,7 @@ class Sandbox(modal.object.Object):
1190
1190
  idle_timeout: typing.Optional[int] = None,
1191
1191
  workdir: typing.Optional[str] = None,
1192
1192
  cpu: typing.Optional[float] = None,
1193
+ memory: typing.Optional[int] = None,
1193
1194
  cloud: typing.Optional[str] = None,
1194
1195
  region: typing.Union[str, collections.abc.Sequence[str], None] = None,
1195
1196
  block_network: bool = False,
@@ -1204,7 +1205,6 @@ class Sandbox(modal.object.Object):
1204
1205
  ) -> Sandbox:
1205
1206
  """Create a sandbox using the V2 backend.
1206
1207
 
1207
- Only CPU is configurable; memory is derived as a fixed ratio of CPU.
1208
1208
  Features like tags, snapshots, exec, volumes, network file systems,
1209
1209
  GPUs, custom domains, and proxies are not supported.
1210
1210
  """
@@ -1223,6 +1223,7 @@ class Sandbox(modal.object.Object):
1223
1223
  idle_timeout: typing.Optional[int] = None,
1224
1224
  workdir: typing.Optional[str] = None,
1225
1225
  cpu: typing.Optional[float] = None,
1226
+ memory: typing.Optional[int] = None,
1226
1227
  cloud: typing.Optional[str] = None,
1227
1228
  region: typing.Union[str, collections.abc.Sequence[str], None] = None,
1228
1229
  block_network: bool = False,
@@ -1237,7 +1238,6 @@ class Sandbox(modal.object.Object):
1237
1238
  ) -> Sandbox:
1238
1239
  """Create a sandbox using the V2 backend.
1239
1240
 
1240
- Only CPU is configurable; memory is derived as a fixed ratio of CPU.
1241
1241
  Features like tags, snapshots, exec, volumes, network file systems,
1242
1242
  GPUs, custom domains, and proxies are not supported.
1243
1243
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.4.3.dev7
3
+ Version: 1.4.3.dev9
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License-Expression: Apache-2.0
@@ -16,6 +16,14 @@ import modal_proto.task_command_router_pb2
16
16
 
17
17
  class TaskCommandRouterBase(abc.ABC):
18
18
 
19
+ @abc.abstractmethod
20
+ async def SandboxStdinWriteV2(self, stream: 'grpclib.server.Stream[modal_proto.task_command_router_pb2.SandboxStdinWriteV2Request, modal_proto.task_command_router_pb2.SandboxStdinWriteV2Response]') -> None:
21
+ pass
22
+
23
+ @abc.abstractmethod
24
+ async def SandboxStdioReadV2(self, stream: 'grpclib.server.Stream[modal_proto.task_command_router_pb2.SandboxStdioReadV2Request, modal_proto.task_command_router_pb2.SandboxStdioReadV2Response]') -> None:
25
+ pass
26
+
19
27
  @abc.abstractmethod
20
28
  async def TaskContainerCreate(self, stream: 'grpclib.server.Stream[modal_proto.task_command_router_pb2.TaskContainerCreateRequest, modal_proto.task_command_router_pb2.TaskContainerCreateResponse]') -> None:
21
29
  pass
@@ -70,6 +78,18 @@ class TaskCommandRouterBase(abc.ABC):
70
78
 
71
79
  def __mapping__(self) -> typing.Dict[str, grpclib.const.Handler]:
72
80
  return {
81
+ '/modal.task_command_router.TaskCommandRouter/SandboxStdinWriteV2': grpclib.const.Handler(
82
+ self.SandboxStdinWriteV2,
83
+ grpclib.const.Cardinality.UNARY_UNARY,
84
+ modal_proto.task_command_router_pb2.SandboxStdinWriteV2Request,
85
+ modal_proto.task_command_router_pb2.SandboxStdinWriteV2Response,
86
+ ),
87
+ '/modal.task_command_router.TaskCommandRouter/SandboxStdioReadV2': grpclib.const.Handler(
88
+ self.SandboxStdioReadV2,
89
+ grpclib.const.Cardinality.UNARY_STREAM,
90
+ modal_proto.task_command_router_pb2.SandboxStdioReadV2Request,
91
+ modal_proto.task_command_router_pb2.SandboxStdioReadV2Response,
92
+ ),
73
93
  '/modal.task_command_router.TaskCommandRouter/TaskContainerCreate': grpclib.const.Handler(
74
94
  self.TaskContainerCreate,
75
95
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -154,6 +174,18 @@ class TaskCommandRouterBase(abc.ABC):
154
174
  class TaskCommandRouterStub:
155
175
 
156
176
  def __init__(self, channel: grpclib.client.Channel) -> None:
177
+ self.SandboxStdinWriteV2 = grpclib.client.UnaryUnaryMethod(
178
+ channel,
179
+ '/modal.task_command_router.TaskCommandRouter/SandboxStdinWriteV2',
180
+ modal_proto.task_command_router_pb2.SandboxStdinWriteV2Request,
181
+ modal_proto.task_command_router_pb2.SandboxStdinWriteV2Response,
182
+ )
183
+ self.SandboxStdioReadV2 = grpclib.client.UnaryStreamMethod(
184
+ channel,
185
+ '/modal.task_command_router.TaskCommandRouter/SandboxStdioReadV2',
186
+ modal_proto.task_command_router_pb2.SandboxStdioReadV2Request,
187
+ modal_proto.task_command_router_pb2.SandboxStdioReadV2Response,
188
+ )
157
189
  self.TaskContainerCreate = grpclib.client.UnaryUnaryMethod(
158
190
  channel,
159
191
  '/modal.task_command_router.TaskCommandRouter/TaskContainerCreate',
@@ -17,14 +17,18 @@ 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\"\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\"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\"\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\"L\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\"R\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\"1\n\x1dTaskSnapshotDirectoryResponse\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*\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\xdd\x0c\n\x11TaskCommandRouter\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\x81\x01\n\x12TaskExecStdinWrite\x12\x34.modal.task_command_router.TaskExecStdinWriteRequest\x1a\x35.modal.task_command_router.TaskExecStdinWriteResponse\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\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\"*\n\x1aSandboxStdioReadV2Response\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\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\"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\"\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\"L\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\"R\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\"1\n\x1dTaskSnapshotDirectoryResponse\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\xea\x0e\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\x81\x01\n\x12TaskExecStdinWrite\x12\x34.modal.task_command_router.TaskExecStdinWriteRequest\x1a\x35.modal.task_command_router.TaskExecStdinWriteResponse\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\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
+ _SANDBOXSTDIOFILEDESCRIPTOR = DESCRIPTOR.enum_types_by_name['SandboxStdioFileDescriptor']
23
+ SandboxStdioFileDescriptor = enum_type_wrapper.EnumTypeWrapper(_SANDBOXSTDIOFILEDESCRIPTOR)
22
24
  _TASKEXECSTDERRCONFIG = DESCRIPTOR.enum_types_by_name['TaskExecStderrConfig']
23
25
  TaskExecStderrConfig = enum_type_wrapper.EnumTypeWrapper(_TASKEXECSTDERRCONFIG)
24
26
  _TASKEXECSTDIOFILEDESCRIPTOR = DESCRIPTOR.enum_types_by_name['TaskExecStdioFileDescriptor']
25
27
  TaskExecStdioFileDescriptor = enum_type_wrapper.EnumTypeWrapper(_TASKEXECSTDIOFILEDESCRIPTOR)
26
28
  _TASKEXECSTDOUTCONFIG = DESCRIPTOR.enum_types_by_name['TaskExecStdoutConfig']
27
29
  TaskExecStdoutConfig = enum_type_wrapper.EnumTypeWrapper(_TASKEXECSTDOUTCONFIG)
30
+ SANDBOX_STDIO_FILE_DESCRIPTOR_STDOUT = 0
31
+ SANDBOX_STDIO_FILE_DESCRIPTOR_STDERR = 1
28
32
  TASK_EXEC_STDERR_CONFIG_DEVNULL = 0
29
33
  TASK_EXEC_STDERR_CONFIG_PIPE = 1
30
34
  TASK_EXEC_STDERR_CONFIG_STDOUT = 2
@@ -34,6 +38,10 @@ TASK_EXEC_STDOUT_CONFIG_DEVNULL = 0
34
38
  TASK_EXEC_STDOUT_CONFIG_PIPE = 1
35
39
 
36
40
 
41
+ _SANDBOXSTDINWRITEV2REQUEST = DESCRIPTOR.message_types_by_name['SandboxStdinWriteV2Request']
42
+ _SANDBOXSTDINWRITEV2RESPONSE = DESCRIPTOR.message_types_by_name['SandboxStdinWriteV2Response']
43
+ _SANDBOXSTDIOREADV2REQUEST = DESCRIPTOR.message_types_by_name['SandboxStdioReadV2Request']
44
+ _SANDBOXSTDIOREADV2RESPONSE = DESCRIPTOR.message_types_by_name['SandboxStdioReadV2Response']
37
45
  _TASKCONTAINERCREATEREQUEST = DESCRIPTOR.message_types_by_name['TaskContainerCreateRequest']
38
46
  _TASKCONTAINERCREATEREQUEST_ENVENTRY = _TASKCONTAINERCREATEREQUEST.nested_types_by_name['EnvEntry']
39
47
  _TASKCONTAINERCREATERESPONSE = DESCRIPTOR.message_types_by_name['TaskContainerCreateResponse']
@@ -61,6 +69,34 @@ _TASKMOUNTDIRECTORYREQUEST = DESCRIPTOR.message_types_by_name['TaskMountDirector
61
69
  _TASKSNAPSHOTDIRECTORYREQUEST = DESCRIPTOR.message_types_by_name['TaskSnapshotDirectoryRequest']
62
70
  _TASKSNAPSHOTDIRECTORYRESPONSE = DESCRIPTOR.message_types_by_name['TaskSnapshotDirectoryResponse']
63
71
  _TASKUNMOUNTDIRECTORYREQUEST = DESCRIPTOR.message_types_by_name['TaskUnmountDirectoryRequest']
72
+ SandboxStdinWriteV2Request = _reflection.GeneratedProtocolMessageType('SandboxStdinWriteV2Request', (_message.Message,), {
73
+ 'DESCRIPTOR' : _SANDBOXSTDINWRITEV2REQUEST,
74
+ '__module__' : 'modal_proto.task_command_router_pb2'
75
+ # @@protoc_insertion_point(class_scope:modal.task_command_router.SandboxStdinWriteV2Request)
76
+ })
77
+ _sym_db.RegisterMessage(SandboxStdinWriteV2Request)
78
+
79
+ SandboxStdinWriteV2Response = _reflection.GeneratedProtocolMessageType('SandboxStdinWriteV2Response', (_message.Message,), {
80
+ 'DESCRIPTOR' : _SANDBOXSTDINWRITEV2RESPONSE,
81
+ '__module__' : 'modal_proto.task_command_router_pb2'
82
+ # @@protoc_insertion_point(class_scope:modal.task_command_router.SandboxStdinWriteV2Response)
83
+ })
84
+ _sym_db.RegisterMessage(SandboxStdinWriteV2Response)
85
+
86
+ SandboxStdioReadV2Request = _reflection.GeneratedProtocolMessageType('SandboxStdioReadV2Request', (_message.Message,), {
87
+ 'DESCRIPTOR' : _SANDBOXSTDIOREADV2REQUEST,
88
+ '__module__' : 'modal_proto.task_command_router_pb2'
89
+ # @@protoc_insertion_point(class_scope:modal.task_command_router.SandboxStdioReadV2Request)
90
+ })
91
+ _sym_db.RegisterMessage(SandboxStdioReadV2Request)
92
+
93
+ SandboxStdioReadV2Response = _reflection.GeneratedProtocolMessageType('SandboxStdioReadV2Response', (_message.Message,), {
94
+ 'DESCRIPTOR' : _SANDBOXSTDIOREADV2RESPONSE,
95
+ '__module__' : 'modal_proto.task_command_router_pb2'
96
+ # @@protoc_insertion_point(class_scope:modal.task_command_router.SandboxStdioReadV2Response)
97
+ })
98
+ _sym_db.RegisterMessage(SandboxStdioReadV2Response)
99
+
64
100
  TaskContainerCreateRequest = _reflection.GeneratedProtocolMessageType('TaskContainerCreateRequest', (_message.Message,), {
65
101
 
66
102
  'EnvEntry' : _reflection.GeneratedProtocolMessageType('EnvEntry', (_message.Message,), {
@@ -261,66 +297,76 @@ if _descriptor._USE_C_DESCRIPTORS == False:
261
297
  _TASKCONTAINERCREATEREQUEST_ENVENTRY._serialized_options = b'8\001'
262
298
  _TASKEXECSTARTREQUEST_ENVENTRY._options = None
263
299
  _TASKEXECSTARTREQUEST_ENVENTRY._serialized_options = b'8\001'
264
- _TASKEXECSTDERRCONFIG._serialized_start=2650
265
- _TASKEXECSTDERRCONFIG._serialized_end=2779
266
- _TASKEXECSTDIOFILEDESCRIPTOR._serialized_start=2781
267
- _TASKEXECSTDIOFILEDESCRIPTOR._serialized_end=2898
268
- _TASKEXECSTDOUTCONFIG._serialized_start=2900
269
- _TASKEXECSTDOUTCONFIG._serialized_end=2993
270
- _TASKCONTAINERCREATEREQUEST._serialized_start=121
271
- _TASKCONTAINERCREATEREQUEST._serialized_end=380
272
- _TASKCONTAINERCREATEREQUEST_ENVENTRY._serialized_start=338
273
- _TASKCONTAINERCREATEREQUEST_ENVENTRY._serialized_end=380
274
- _TASKCONTAINERCREATERESPONSE._serialized_start=382
275
- _TASKCONTAINERCREATERESPONSE._serialized_end=457
276
- _TASKCONTAINERGETREQUEST._serialized_start=459
277
- _TASKCONTAINERGETREQUEST._serialized_end=553
278
- _TASKCONTAINERGETRESPONSE._serialized_start=555
279
- _TASKCONTAINERGETRESPONSE._serialized_end=646
280
- _TASKCONTAINERINFO._serialized_start=648
281
- _TASKCONTAINERINFO._serialized_end=774
282
- _TASKCONTAINERLISTREQUEST._serialized_start=776
283
- _TASKCONTAINERLISTREQUEST._serialized_end=847
284
- _TASKCONTAINERLISTRESPONSE._serialized_start=849
285
- _TASKCONTAINERLISTRESPONSE._serialized_end=942
286
- _TASKCONTAINERTERMINATEREQUEST._serialized_start=944
287
- _TASKCONTAINERTERMINATEREQUEST._serialized_end=1014
288
- _TASKCONTAINERTERMINATERESPONSE._serialized_start=1016
289
- _TASKCONTAINERTERMINATERESPONSE._serialized_end=1048
290
- _TASKCONTAINERWAITREQUEST._serialized_start=1050
291
- _TASKCONTAINERWAITREQUEST._serialized_end=1132
292
- _TASKCONTAINERWAITRESPONSE._serialized_start=1134
293
- _TASKCONTAINERWAITRESPONSE._serialized_end=1206
294
- _TASKEXECPOLLREQUEST._serialized_start=1208
295
- _TASKEXECPOLLREQUEST._serialized_end=1263
296
- _TASKEXECPOLLRESPONSE._serialized_start=1265
297
- _TASKEXECPOLLRESPONSE._serialized_end=1336
298
- _TASKEXECSTARTREQUEST._serialized_start=1339
299
- _TASKEXECSTARTREQUEST._serialized_end=1878
300
- _TASKEXECSTARTREQUEST_ENVENTRY._serialized_start=338
301
- _TASKEXECSTARTREQUEST_ENVENTRY._serialized_end=380
302
- _TASKEXECSTARTRESPONSE._serialized_start=1880
303
- _TASKEXECSTARTRESPONSE._serialized_end=1903
304
- _TASKEXECSTDINWRITEREQUEST._serialized_start=1905
305
- _TASKEXECSTDINWRITEREQUEST._serialized_end=2009
306
- _TASKEXECSTDINWRITERESPONSE._serialized_start=2011
307
- _TASKEXECSTDINWRITERESPONSE._serialized_end=2039
308
- _TASKEXECSTDIOREADREQUEST._serialized_start=2042
309
- _TASKEXECSTDIOREADREQUEST._serialized_end=2199
310
- _TASKEXECSTDIOREADRESPONSE._serialized_start=2201
311
- _TASKEXECSTDIOREADRESPONSE._serialized_end=2242
312
- _TASKEXECWAITREQUEST._serialized_start=2244
313
- _TASKEXECWAITREQUEST._serialized_end=2299
314
- _TASKEXECWAITRESPONSE._serialized_start=2301
315
- _TASKEXECWAITRESPONSE._serialized_end=2372
316
- _TASKMOUNTDIRECTORYREQUEST._serialized_start=2374
317
- _TASKMOUNTDIRECTORYREQUEST._serialized_end=2450
318
- _TASKSNAPSHOTDIRECTORYREQUEST._serialized_start=2452
319
- _TASKSNAPSHOTDIRECTORYREQUEST._serialized_end=2534
320
- _TASKSNAPSHOTDIRECTORYRESPONSE._serialized_start=2536
321
- _TASKSNAPSHOTDIRECTORYRESPONSE._serialized_end=2585
322
- _TASKUNMOUNTDIRECTORYREQUEST._serialized_start=2587
323
- _TASKUNMOUNTDIRECTORYREQUEST._serialized_end=2647
324
- _TASKCOMMANDROUTER._serialized_start=2996
325
- _TASKCOMMANDROUTER._serialized_end=4625
300
+ _SANDBOXSTDIOFILEDESCRIPTOR._serialized_start=2957
301
+ _SANDBOXSTDIOFILEDESCRIPTOR._serialized_end=3069
302
+ _TASKEXECSTDERRCONFIG._serialized_start=3072
303
+ _TASKEXECSTDERRCONFIG._serialized_end=3201
304
+ _TASKEXECSTDIOFILEDESCRIPTOR._serialized_start=3203
305
+ _TASKEXECSTDIOFILEDESCRIPTOR._serialized_end=3320
306
+ _TASKEXECSTDOUTCONFIG._serialized_start=3322
307
+ _TASKEXECSTDOUTCONFIG._serialized_end=3415
308
+ _SANDBOXSTDINWRITEV2REQUEST._serialized_start=120
309
+ _SANDBOXSTDINWRITEV2REQUEST._serialized_end=208
310
+ _SANDBOXSTDINWRITEV2RESPONSE._serialized_start=210
311
+ _SANDBOXSTDINWRITEV2RESPONSE._serialized_end=239
312
+ _SANDBOXSTDIOREADV2REQUEST._serialized_start=242
313
+ _SANDBOXSTDIOREADV2REQUEST._serialized_end=382
314
+ _SANDBOXSTDIOREADV2RESPONSE._serialized_start=384
315
+ _SANDBOXSTDIOREADV2RESPONSE._serialized_end=426
316
+ _TASKCONTAINERCREATEREQUEST._serialized_start=429
317
+ _TASKCONTAINERCREATEREQUEST._serialized_end=688
318
+ _TASKCONTAINERCREATEREQUEST_ENVENTRY._serialized_start=646
319
+ _TASKCONTAINERCREATEREQUEST_ENVENTRY._serialized_end=688
320
+ _TASKCONTAINERCREATERESPONSE._serialized_start=690
321
+ _TASKCONTAINERCREATERESPONSE._serialized_end=765
322
+ _TASKCONTAINERGETREQUEST._serialized_start=767
323
+ _TASKCONTAINERGETREQUEST._serialized_end=861
324
+ _TASKCONTAINERGETRESPONSE._serialized_start=863
325
+ _TASKCONTAINERGETRESPONSE._serialized_end=954
326
+ _TASKCONTAINERINFO._serialized_start=956
327
+ _TASKCONTAINERINFO._serialized_end=1082
328
+ _TASKCONTAINERLISTREQUEST._serialized_start=1084
329
+ _TASKCONTAINERLISTREQUEST._serialized_end=1155
330
+ _TASKCONTAINERLISTRESPONSE._serialized_start=1157
331
+ _TASKCONTAINERLISTRESPONSE._serialized_end=1250
332
+ _TASKCONTAINERTERMINATEREQUEST._serialized_start=1252
333
+ _TASKCONTAINERTERMINATEREQUEST._serialized_end=1322
334
+ _TASKCONTAINERTERMINATERESPONSE._serialized_start=1324
335
+ _TASKCONTAINERTERMINATERESPONSE._serialized_end=1356
336
+ _TASKCONTAINERWAITREQUEST._serialized_start=1358
337
+ _TASKCONTAINERWAITREQUEST._serialized_end=1440
338
+ _TASKCONTAINERWAITRESPONSE._serialized_start=1442
339
+ _TASKCONTAINERWAITRESPONSE._serialized_end=1514
340
+ _TASKEXECPOLLREQUEST._serialized_start=1516
341
+ _TASKEXECPOLLREQUEST._serialized_end=1571
342
+ _TASKEXECPOLLRESPONSE._serialized_start=1573
343
+ _TASKEXECPOLLRESPONSE._serialized_end=1644
344
+ _TASKEXECSTARTREQUEST._serialized_start=1647
345
+ _TASKEXECSTARTREQUEST._serialized_end=2186
346
+ _TASKEXECSTARTREQUEST_ENVENTRY._serialized_start=646
347
+ _TASKEXECSTARTREQUEST_ENVENTRY._serialized_end=688
348
+ _TASKEXECSTARTRESPONSE._serialized_start=2188
349
+ _TASKEXECSTARTRESPONSE._serialized_end=2211
350
+ _TASKEXECSTDINWRITEREQUEST._serialized_start=2213
351
+ _TASKEXECSTDINWRITEREQUEST._serialized_end=2317
352
+ _TASKEXECSTDINWRITERESPONSE._serialized_start=2319
353
+ _TASKEXECSTDINWRITERESPONSE._serialized_end=2347
354
+ _TASKEXECSTDIOREADREQUEST._serialized_start=2350
355
+ _TASKEXECSTDIOREADREQUEST._serialized_end=2507
356
+ _TASKEXECSTDIOREADRESPONSE._serialized_start=2509
357
+ _TASKEXECSTDIOREADRESPONSE._serialized_end=2550
358
+ _TASKEXECWAITREQUEST._serialized_start=2552
359
+ _TASKEXECWAITREQUEST._serialized_end=2607
360
+ _TASKEXECWAITRESPONSE._serialized_start=2609
361
+ _TASKEXECWAITRESPONSE._serialized_end=2680
362
+ _TASKMOUNTDIRECTORYREQUEST._serialized_start=2682
363
+ _TASKMOUNTDIRECTORYREQUEST._serialized_end=2758
364
+ _TASKSNAPSHOTDIRECTORYREQUEST._serialized_start=2760
365
+ _TASKSNAPSHOTDIRECTORYREQUEST._serialized_end=2842
366
+ _TASKSNAPSHOTDIRECTORYRESPONSE._serialized_start=2844
367
+ _TASKSNAPSHOTDIRECTORYRESPONSE._serialized_end=2893
368
+ _TASKUNMOUNTDIRECTORYREQUEST._serialized_start=2895
369
+ _TASKUNMOUNTDIRECTORYREQUEST._serialized_end=2955
370
+ _TASKCOMMANDROUTER._serialized_start=3418
371
+ _TASKCOMMANDROUTER._serialized_end=5316
326
372
  # @@protoc_insertion_point(module_scope)