modal 1.4.3.dev18__tar.gz → 1.4.3.dev20__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/PKG-INFO +1 -1
  2. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_output/rich.py +4 -4
  3. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/deprecation.py +5 -8
  4. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/app.py +0 -2
  5. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/client.pyi +2 -2
  6. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/exception.py +0 -5
  7. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/file_io.py +0 -3
  8. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/sandbox.py +5 -9
  9. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/sandbox.pyi +9 -18
  10. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal.egg-info/PKG-INFO +1 -1
  11. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_proto/api_pb2.pyi +1 -1
  12. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_version/__init__.py +1 -1
  13. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/LICENSE +0 -0
  14. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/README.md +0 -0
  15. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/__init__.py +0 -0
  16. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/__main__.py +0 -0
  17. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_billing.py +0 -0
  18. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_clustered_functions.py +0 -0
  19. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_clustered_functions.pyi +0 -0
  20. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_container_entrypoint.py +0 -0
  21. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_environments.py +0 -0
  22. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_functions.py +0 -0
  23. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_grpc_client.py +0 -0
  24. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_ipython.py +0 -0
  25. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_load_context.py +0 -0
  26. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_location.py +0 -0
  27. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_logs.py +0 -0
  28. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_object.py +0 -0
  29. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_output/__init__.py +0 -0
  30. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_output/manager.py +0 -0
  31. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_output/pty.py +0 -0
  32. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_output/status.py +0 -0
  33. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_partial_function.py +0 -0
  34. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_resolver.py +0 -0
  35. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_resources.py +0 -0
  36. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_runtime/__init__.py +0 -0
  37. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_runtime/asgi.py +0 -0
  38. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_runtime/container_io_manager.py +0 -0
  39. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_runtime/container_io_manager.pyi +0 -0
  40. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_runtime/execution_context.py +0 -0
  41. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_runtime/execution_context.pyi +0 -0
  42. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  43. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_runtime/telemetry.py +0 -0
  44. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_runtime/user_code_event_loop.py +0 -0
  45. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_runtime/user_code_imports.py +0 -0
  46. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_serialization.py +0 -0
  47. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_server.py +0 -0
  48. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_traceback.py +0 -0
  49. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_tunnel.py +0 -0
  50. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_tunnel.pyi +0 -0
  51. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_type_manager.py +0 -0
  52. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/__init__.py +0 -0
  53. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/app_utils.py +0 -0
  54. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/async_utils.py +0 -0
  55. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/auth_token_manager.py +0 -0
  56. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/blob_utils.py +0 -0
  57. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/browser_utils.py +0 -0
  58. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/bytes_io_segment_payload.py +0 -0
  59. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/docker_utils.py +0 -0
  60. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/function_utils.py +0 -0
  61. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/git_utils.py +0 -0
  62. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/grpc_testing.py +0 -0
  63. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/grpc_utils.py +0 -0
  64. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/hash_utils.py +0 -0
  65. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/http_utils.py +0 -0
  66. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/jwt_utils.py +0 -0
  67. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/logger.py +0 -0
  68. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/mount_utils.py +0 -0
  69. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/name_utils.py +0 -0
  70. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/package_utils.py +0 -0
  71. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/pattern_utils.py +0 -0
  72. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/rand_pb_testing.py +0 -0
  73. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/sandbox_fs_utils.py +0 -0
  74. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/shell_utils.py +0 -0
  75. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/task_command_router_client.py +0 -0
  76. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_utils/time_utils.py +0 -0
  77. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_vendor/__init__.py +0 -0
  78. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  79. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_vendor/cloudpickle.py +0 -0
  80. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_vendor/tblib.py +0 -0
  81. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_vendor/version.py +0 -0
  82. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/_watcher.py +0 -0
  83. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/app.pyi +0 -0
  84. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/billing.py +0 -0
  85. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/builder/2023.12.312.txt +0 -0
  86. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/builder/2023.12.txt +0 -0
  87. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/builder/2024.04.txt +0 -0
  88. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/builder/2024.10.txt +0 -0
  89. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/builder/2025.06.txt +0 -0
  90. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/builder/PREVIEW.txt +0 -0
  91. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/builder/README.md +0 -0
  92. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/builder/base-images.json +0 -0
  93. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/call_graph.py +0 -0
  94. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/__init__.py +0 -0
  95. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/_download.py +0 -0
  96. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/_help.py +0 -0
  97. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/_traceback.py +0 -0
  98. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/app.py +0 -0
  99. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/billing.py +0 -0
  100. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/bootstrap.py +0 -0
  101. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/changelog.py +0 -0
  102. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/cluster.py +0 -0
  103. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/config.py +0 -0
  104. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/container.py +0 -0
  105. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/dashboard.py +0 -0
  106. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/dict.py +0 -0
  107. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/entry_point.py +0 -0
  108. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/environment.py +0 -0
  109. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/import_refs.py +0 -0
  110. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/launch.py +0 -0
  111. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/logo.py +0 -0
  112. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/network_file_system.py +0 -0
  113. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/profile.py +0 -0
  114. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/programs/__init__.py +0 -0
  115. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/programs/run_jupyter.py +0 -0
  116. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/programs/vscode.py +0 -0
  117. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/queues.py +0 -0
  118. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/run.py +0 -0
  119. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/secret.py +0 -0
  120. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/selector.py +0 -0
  121. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/shell.py +0 -0
  122. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/token.py +0 -0
  123. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/utils.py +0 -0
  124. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cli/volume.py +0 -0
  125. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/client.py +0 -0
  126. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cloud_bucket_mount.py +0 -0
  127. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cloud_bucket_mount.pyi +0 -0
  128. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cls.py +0 -0
  129. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/cls.pyi +0 -0
  130. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/config.py +0 -0
  131. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/container_process.py +0 -0
  132. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/container_process.pyi +0 -0
  133. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/dict.py +0 -0
  134. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/dict.pyi +0 -0
  135. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/environments.py +0 -0
  136. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/environments.pyi +0 -0
  137. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/experimental/__init__.py +0 -0
  138. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/experimental/flash.py +0 -0
  139. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/experimental/flash.pyi +0 -0
  140. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/experimental/ipython.py +0 -0
  141. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/file_io.pyi +0 -0
  142. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/file_pattern_matcher.py +0 -0
  143. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/functions.py +0 -0
  144. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/functions.pyi +0 -0
  145. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/image.py +0 -0
  146. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/image.pyi +0 -0
  147. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/io_streams.py +0 -0
  148. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/io_streams.pyi +0 -0
  149. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/mount.py +0 -0
  150. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/mount.pyi +0 -0
  151. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/network_file_system.py +0 -0
  152. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/network_file_system.pyi +0 -0
  153. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/object.py +0 -0
  154. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/object.pyi +0 -0
  155. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/output.py +0 -0
  156. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/parallel_map.py +0 -0
  157. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/parallel_map.pyi +0 -0
  158. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/partial_function.py +0 -0
  159. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/partial_function.pyi +0 -0
  160. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/proxy.py +0 -0
  161. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/proxy.pyi +0 -0
  162. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/py.typed +0 -0
  163. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/queue.py +0 -0
  164. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/queue.pyi +0 -0
  165. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/retries.py +0 -0
  166. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/runner.py +0 -0
  167. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/runner.pyi +0 -0
  168. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/running_app.py +0 -0
  169. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/sandbox_fs.py +0 -0
  170. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/sandbox_fs.pyi +0 -0
  171. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/schedule.py +0 -0
  172. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/scheduler_placement.py +0 -0
  173. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/secret.py +0 -0
  174. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/secret.pyi +0 -0
  175. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/server.py +0 -0
  176. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/server.pyi +0 -0
  177. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/serving.py +0 -0
  178. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/serving.pyi +0 -0
  179. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/snapshot.py +0 -0
  180. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/snapshot.pyi +0 -0
  181. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/stream_type.py +0 -0
  182. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/token_flow.py +0 -0
  183. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/token_flow.pyi +0 -0
  184. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/volume.py +0 -0
  185. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal/volume.pyi +0 -0
  186. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal.egg-info/SOURCES.txt +0 -0
  187. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal.egg-info/dependency_links.txt +0 -0
  188. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal.egg-info/entry_points.txt +0 -0
  189. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal.egg-info/requires.txt +0 -0
  190. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal.egg-info/top_level.txt +0 -0
  191. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_docs/__init__.py +0 -0
  192. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_docs/gen_cli_docs.py +0 -0
  193. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_docs/gen_cli_docs_main.py +0 -0
  194. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_docs/gen_reference_docs.py +0 -0
  195. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_docs/gen_reference_docs_main.py +0 -0
  196. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_docs/mdmd/__init__.py +0 -0
  197. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_docs/mdmd/mdmd.py +0 -0
  198. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_docs/mdmd/signatures.py +0 -0
  199. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_proto/__init__.py +0 -0
  200. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_proto/api_grpc.py +0 -0
  201. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_proto/api_pb2.py +0 -0
  202. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_proto/api_pb2_grpc.py +0 -0
  203. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_proto/api_pb2_grpc.pyi +0 -0
  204. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_proto/modal_api_grpc.py +0 -0
  205. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_proto/py.typed +0 -0
  206. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_proto/task_command_router_grpc.py +0 -0
  207. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_proto/task_command_router_pb2.py +0 -0
  208. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_proto/task_command_router_pb2.pyi +0 -0
  209. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_proto/task_command_router_pb2_grpc.py +0 -0
  210. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_proto/task_command_router_pb2_grpc.pyi +0 -0
  211. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/modal_version/__main__.py +0 -0
  212. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/pyproject.toml +0 -0
  213. {modal-1.4.3.dev18 → modal-1.4.3.dev20}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.4.3.dev18
3
+ Version: 1.4.3.dev20
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License-Expression: Apache-2.0
@@ -49,7 +49,7 @@ from modal._output.manager import (
49
49
  )
50
50
  from modal._utils.time_utils import timestamp_to_localized_str
51
51
  from modal.config import logger
52
- from modal.exception import DeprecationError, PendingDeprecationError, ServerWarning
52
+ from modal.exception import DeprecationError, ServerWarning
53
53
  from modal_proto import api_pb2
54
54
 
55
55
  if platform.system() == "Windows":
@@ -359,14 +359,14 @@ class RichOutputManager(OutputManager):
359
359
  ) -> None:
360
360
  """Display a warning, using rich formatting for Modal-specific warnings.
361
361
 
362
- Modal warnings (DeprecationError, PendingDeprecationError, ServerWarning) are shown
362
+ Modal warnings (DeprecationError, ServerWarning) are shown
363
363
  in a yellow-bordered panel with source context. Other warnings fall back to the
364
364
  default Python warning display.
365
365
  """
366
366
  # For non-Modal warnings, fall back to the default display
367
367
  import modal
368
368
 
369
- is_modal_warning = issubclass(category, (DeprecationError, PendingDeprecationError, ServerWarning))
369
+ is_modal_warning = issubclass(category, (DeprecationError, ServerWarning))
370
370
  filename_in_modal = modal.__path__ and Path(filename).is_relative_to(modal.__path__[0])
371
371
  if not is_modal_warning and not filename_in_modal:
372
372
  base_showwarning(warning, category, filename, lineno, file=None, line=None)
@@ -392,7 +392,7 @@ class RichOutputManager(OutputManager):
392
392
  pass
393
393
 
394
394
  # Build title
395
- if issubclass(category, (DeprecationError, PendingDeprecationError)):
395
+ if issubclass(category, DeprecationError):
396
396
  title = "Modal Deprecation Warning"
397
397
  else:
398
398
  title = "Modal Warning"
@@ -7,7 +7,7 @@ from typing import Any, Callable, TypeVar
7
7
 
8
8
  from typing_extensions import ParamSpec # Needed for Python 3.9
9
9
 
10
- from ..exception import DeprecationError, PendingDeprecationError
10
+ from ..exception import DeprecationError
11
11
 
12
12
  _INTERNAL_MODULES = ["modal", "synchronicity"]
13
13
 
@@ -21,12 +21,11 @@ def deprecation_error(deprecated_on: tuple[int, int, int], msg: str):
21
21
  raise DeprecationError(f"Deprecated on {date(*deprecated_on)}: {msg}")
22
22
 
23
23
 
24
- def deprecation_warning(
25
- deprecated_on: tuple[int, int, int], msg: str, *, pending: bool = False, show_source: bool = True
26
- ) -> None:
24
+ def deprecation_warning(deprecated_on: tuple[int, int, int], msg: str, *, show_source: bool = True) -> None:
27
25
  """Issue a Modal deprecation warning with source optionally attributed to user code.
28
26
 
29
- See the implementation of the built-in [warnings.warn](https://docs.python.org/3/library/warnings.html#available-functions).
27
+ See the implementation of the built-in warnings.warn:
28
+ https://docs.python.org/3/library/warnings.html#available-functions.
30
29
  """
31
30
  filename, lineno = "<unknown>", 0
32
31
  if show_source:
@@ -42,10 +41,8 @@ def deprecation_warning(
42
41
  # Use the defaults from above
43
42
  pass
44
43
 
45
- warning_cls = PendingDeprecationError if pending else DeprecationError
46
-
47
44
  # This is a lower-level function that warnings.warn uses
48
- warnings.warn_explicit(f"{date(*deprecated_on)}: {msg}", warning_cls, filename, lineno)
45
+ warnings.warn_explicit(f"{date(*deprecated_on)}: {msg}", DeprecationError, filename, lineno)
49
46
 
50
47
 
51
48
  P = ParamSpec("P")
@@ -778,7 +778,6 @@ class _App:
778
778
  deprecation_warning(
779
779
  (2025, 12, 16),
780
780
  "The `max_inputs` parameter is deprecated. Please set `single_use_containers=True` instead.",
781
- pending=True,
782
781
  )
783
782
  single_use_containers = max_inputs == 1
784
783
 
@@ -987,7 +986,6 @@ class _App:
987
986
  deprecation_warning(
988
987
  (2025, 12, 16),
989
988
  "The `max_inputs` parameter is deprecated. Please set `single_use_containers=True` instead.",
990
- pending=True,
991
989
  )
992
990
  single_use_containers = max_inputs == 1
993
991
 
@@ -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.dev18",
38
+ version: str = "1.4.3.dev20",
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.dev18",
178
+ version: str = "1.4.3.dev20",
179
179
  ):
180
180
  """mdmd:hidden
181
181
  The Modal client object is not intended to be instantiated directly by users.
@@ -99,7 +99,6 @@ class _GRPCErrorWrapper(grpclib.GRPCError):
99
99
  "Modal will stop propagating the `grpclib.GRPCError` type in the future. "
100
100
  f"Update your code so that it catches `modal.exception.{exc_type}` directly "
101
101
  "to avoid changes to error handling behavior in the future.",
102
- pending=True,
103
102
  )
104
103
 
105
104
  @property
@@ -252,10 +251,6 @@ class DeprecationError(UserWarning):
252
251
  # Overloading it to evade the default filter, which excludes __main__.
253
252
 
254
253
 
255
- class PendingDeprecationError(UserWarning):
256
- """Soon to be deprecated feature. Only used intermittently because of multi-repo concerns."""
257
-
258
-
259
254
  class ServerWarning(UserWarning):
260
255
  """Warning originating from the Modal server and re-issued in client code."""
261
256
 
@@ -371,7 +371,6 @@ class _FileIO(Generic[T]):
371
371
  "`FileIO.seek()` is deprecated. Use the `Sandbox.filesystem` APIs instead."
372
372
  " If you specifically need the ability to write to specific offsets in a file,"
373
373
  " please contact support@modal.com.",
374
- pending=True,
375
374
  )
376
375
  self._check_closed()
377
376
  resp = await self._client.stub.ContainerFilesystemExec(
@@ -392,7 +391,6 @@ class _FileIO(Generic[T]):
392
391
  deprecation_warning(
393
392
  (2026, 3, 9),
394
393
  "`FileIO.ls()` is deprecated. Use `Sandbox.filesystem.list_files()` instead.",
395
- pending=True,
396
394
  )
397
395
  return await ls(path, client, task_id)
398
396
 
@@ -427,7 +425,6 @@ class _FileIO(Generic[T]):
427
425
  deprecation_warning(
428
426
  (2026, 3, 9),
429
427
  "`FileIO.watch()` is deprecated. Use `Sandbox.watch()` instead.",
430
- pending=True,
431
428
  )
432
429
  async for event in watch(path, client, task_id, filter, recursive, timeout):
433
430
  yield event
@@ -1617,8 +1617,7 @@ class _Sandbox(_Object, type_prefix="sb"):
1617
1617
  ):
1618
1618
  """[Alpha] Open a file in the Sandbox and return a FileIO handle.
1619
1619
 
1620
- .. deprecated:: 2026-03-09
1621
- Use the `Sandbox.filesystem` APIs instead.
1620
+ **Deprecated (2026-03-09):** Use the `Sandbox.filesystem` APIs instead.
1622
1621
 
1623
1622
  See the [`FileIO`](https://modal.com/docs/reference/modal.file_io#modalfile_iofileio) docs for more information.
1624
1623
 
@@ -1642,13 +1641,12 @@ class _Sandbox(_Object, type_prefix="sb"):
1642
1641
  async def ls(self, path: str) -> builtins.list[str]:
1643
1642
  """[Alpha] List the contents of a directory in the Sandbox.
1644
1643
 
1645
- .. deprecated:: 2026-04-15
1646
- Use `Sandbox.filesystem.list_files()` instead."""
1644
+ **Deprecated (2026-04-15):** Use `Sandbox.filesystem.list_files()` instead.
1645
+ """
1647
1646
  self._ensure_v1("ls")
1648
1647
  deprecation_warning(
1649
1648
  (2026, 4, 15),
1650
1649
  "`Sandbox.ls()` is deprecated. Use `Sandbox.filesystem.list_files()` instead.",
1651
- pending=True,
1652
1650
  )
1653
1651
  task_id = await self._get_task_id()
1654
1652
  return await ls(path, self._client, task_id)
@@ -1656,8 +1654,7 @@ class _Sandbox(_Object, type_prefix="sb"):
1656
1654
  async def mkdir(self, path: str, parents: bool = False) -> None:
1657
1655
  """[Alpha] Create a new directory in the Sandbox.
1658
1656
 
1659
- .. deprecated:: 2026-04-15
1660
- Use `Sandbox.filesystem.make_directory()` instead.
1657
+ **Deprecated (2026-04-15):** Use `Sandbox.filesystem.make_directory()` instead.
1661
1658
  """
1662
1659
  self._ensure_v1("mkdir")
1663
1660
  deprecation_warning(
@@ -1670,8 +1667,7 @@ class _Sandbox(_Object, type_prefix="sb"):
1670
1667
  async def rm(self, path: str, recursive: bool = False) -> None:
1671
1668
  """[Alpha] Remove a file or directory in the Sandbox.
1672
1669
 
1673
- .. deprecated:: 2026-04-15
1674
- Use `Sandbox.filesystem.remove()` instead.
1670
+ **Deprecated (2026-04-15):** Use `Sandbox.filesystem.remove()` instead.
1675
1671
  """
1676
1672
  self._ensure_v1("rm")
1677
1673
  deprecation_warning(
@@ -615,24 +615,21 @@ class _Sandbox(modal._object._Object):
615
615
  async def ls(self, path: str) -> list[str]:
616
616
  """[Alpha] List the contents of a directory in the Sandbox.
617
617
 
618
- .. deprecated:: 2026-04-15
619
- Use `Sandbox.filesystem.list_files()` instead.
618
+ **Deprecated (2026-04-15):** Use `Sandbox.filesystem.list_files()` instead.
620
619
  """
621
620
  ...
622
621
 
623
622
  async def mkdir(self, path: str, parents: bool = False) -> None:
624
623
  """[Alpha] Create a new directory in the Sandbox.
625
624
 
626
- .. deprecated:: 2026-04-15
627
- Use `Sandbox.filesystem.make_directory()` instead.
625
+ **Deprecated (2026-04-15):** Use `Sandbox.filesystem.make_directory()` instead.
628
626
  """
629
627
  ...
630
628
 
631
629
  async def rm(self, path: str, recursive: bool = False) -> None:
632
630
  """[Alpha] Remove a file or directory in the Sandbox.
633
631
 
634
- .. deprecated:: 2026-04-15
635
- Use `Sandbox.filesystem.remove()` instead.
632
+ **Deprecated (2026-04-15):** Use `Sandbox.filesystem.remove()` instead.
636
633
  """
637
634
  ...
638
635
 
@@ -1914,16 +1911,14 @@ class Sandbox(modal.object.Object):
1914
1911
  def __call__(self, /, path: str) -> list[str]:
1915
1912
  """[Alpha] List the contents of a directory in the Sandbox.
1916
1913
 
1917
- .. deprecated:: 2026-04-15
1918
- Use `Sandbox.filesystem.list_files()` instead.
1914
+ **Deprecated (2026-04-15):** Use `Sandbox.filesystem.list_files()` instead.
1919
1915
  """
1920
1916
  ...
1921
1917
 
1922
1918
  async def aio(self, /, path: str) -> list[str]:
1923
1919
  """[Alpha] List the contents of a directory in the Sandbox.
1924
1920
 
1925
- .. deprecated:: 2026-04-15
1926
- Use `Sandbox.filesystem.list_files()` instead.
1921
+ **Deprecated (2026-04-15):** Use `Sandbox.filesystem.list_files()` instead.
1927
1922
  """
1928
1923
  ...
1929
1924
 
@@ -1933,16 +1928,14 @@ class Sandbox(modal.object.Object):
1933
1928
  def __call__(self, /, path: str, parents: bool = False) -> None:
1934
1929
  """[Alpha] Create a new directory in the Sandbox.
1935
1930
 
1936
- .. deprecated:: 2026-04-15
1937
- Use `Sandbox.filesystem.make_directory()` instead.
1931
+ **Deprecated (2026-04-15):** Use `Sandbox.filesystem.make_directory()` instead.
1938
1932
  """
1939
1933
  ...
1940
1934
 
1941
1935
  async def aio(self, /, path: str, parents: bool = False) -> None:
1942
1936
  """[Alpha] Create a new directory in the Sandbox.
1943
1937
 
1944
- .. deprecated:: 2026-04-15
1945
- Use `Sandbox.filesystem.make_directory()` instead.
1938
+ **Deprecated (2026-04-15):** Use `Sandbox.filesystem.make_directory()` instead.
1946
1939
  """
1947
1940
  ...
1948
1941
 
@@ -1952,16 +1945,14 @@ class Sandbox(modal.object.Object):
1952
1945
  def __call__(self, /, path: str, recursive: bool = False) -> None:
1953
1946
  """[Alpha] Remove a file or directory in the Sandbox.
1954
1947
 
1955
- .. deprecated:: 2026-04-15
1956
- Use `Sandbox.filesystem.remove()` instead.
1948
+ **Deprecated (2026-04-15):** Use `Sandbox.filesystem.remove()` instead.
1957
1949
  """
1958
1950
  ...
1959
1951
 
1960
1952
  async def aio(self, /, path: str, recursive: bool = False) -> None:
1961
1953
  """[Alpha] Remove a file or directory in the Sandbox.
1962
1954
 
1963
- .. deprecated:: 2026-04-15
1964
- Use `Sandbox.filesystem.remove()` instead.
1955
+ **Deprecated (2026-04-15):** Use `Sandbox.filesystem.remove()` instead.
1965
1956
  """
1966
1957
  ...
1967
1958
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.4.3.dev18
3
+ Version: 1.4.3.dev20
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License-Expression: Apache-2.0
@@ -5304,7 +5304,7 @@ class Function(google.protobuf.message.Message):
5304
5304
  def object_dependencies(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ObjectDependency]: ...
5305
5305
  block_network: builtins.bool
5306
5306
  max_inputs: builtins.int
5307
- """In the SDK, we've deprecated `max_inputs` (which only every implemented `max_inputs=1`)
5307
+ """In the SDK, we've deprecated `max_inputs` (which only ever implemented `max_inputs=1`)
5308
5308
  in favor of a boolean `single_use_containers` parameter.
5309
5309
  """
5310
5310
  @property
@@ -1,4 +1,4 @@
1
1
  # Copyright Modal Labs 2026
2
2
  """Supplies the current version of the modal client library."""
3
3
 
4
- __version__ = "1.4.3.dev18"
4
+ __version__ = "1.4.3.dev20"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes