modal 1.2.2.dev19__tar.gz → 1.2.2.dev24__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 (199) hide show
  1. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/PKG-INFO +2 -2
  2. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/client.pyi +2 -2
  3. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/sandbox.py +3 -13
  4. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/sandbox.pyi +0 -1
  5. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal.egg-info/PKG-INFO +2 -2
  6. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/api.proto +1 -0
  7. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/api_pb2.py +1028 -1015
  8. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/api_pb2.pyi +21 -1
  9. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_version/__init__.py +1 -1
  10. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/pyproject.toml +1 -1
  11. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/LICENSE +0 -0
  12. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/README.md +0 -0
  13. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/__init__.py +0 -0
  14. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/__main__.py +0 -0
  15. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_billing.py +0 -0
  16. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_clustered_functions.py +0 -0
  17. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_clustered_functions.pyi +0 -0
  18. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_container_entrypoint.py +0 -0
  19. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_functions.py +0 -0
  20. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_grpc_client.py +0 -0
  21. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_ipython.py +0 -0
  22. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_location.py +0 -0
  23. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_object.py +0 -0
  24. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_output.py +0 -0
  25. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_partial_function.py +0 -0
  26. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_pty.py +0 -0
  27. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_resolver.py +0 -0
  28. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_resources.py +0 -0
  29. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_runtime/__init__.py +0 -0
  30. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_runtime/asgi.py +0 -0
  31. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_runtime/container_io_manager.py +0 -0
  32. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_runtime/container_io_manager.pyi +0 -0
  33. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_runtime/execution_context.py +0 -0
  34. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_runtime/execution_context.pyi +0 -0
  35. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  36. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_runtime/telemetry.py +0 -0
  37. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_runtime/user_code_imports.py +0 -0
  38. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_serialization.py +0 -0
  39. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_traceback.py +0 -0
  40. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_tunnel.py +0 -0
  41. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_tunnel.pyi +0 -0
  42. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_type_manager.py +0 -0
  43. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/__init__.py +0 -0
  44. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/app_utils.py +0 -0
  45. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/async_utils.py +0 -0
  46. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/auth_token_manager.py +0 -0
  47. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/blob_utils.py +0 -0
  48. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/bytes_io_segment_payload.py +0 -0
  49. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/deprecation.py +0 -0
  50. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/docker_utils.py +0 -0
  51. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/function_utils.py +0 -0
  52. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/git_utils.py +0 -0
  53. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/grpc_testing.py +0 -0
  54. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/grpc_utils.py +0 -0
  55. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/hash_utils.py +0 -0
  56. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/http_utils.py +0 -0
  57. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/jwt_utils.py +0 -0
  58. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/logger.py +0 -0
  59. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/mount_utils.py +0 -0
  60. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/name_utils.py +0 -0
  61. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/package_utils.py +0 -0
  62. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/pattern_utils.py +0 -0
  63. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/rand_pb_testing.py +0 -0
  64. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/shell_utils.py +0 -0
  65. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/task_command_router_client.py +0 -0
  66. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_utils/time_utils.py +0 -0
  67. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_vendor/__init__.py +0 -0
  68. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  69. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_vendor/cloudpickle.py +0 -0
  70. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_vendor/tblib.py +0 -0
  71. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/_watcher.py +0 -0
  72. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/app.py +0 -0
  73. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/app.pyi +0 -0
  74. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/billing.py +0 -0
  75. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/builder/2023.12.312.txt +0 -0
  76. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/builder/2023.12.txt +0 -0
  77. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/builder/2024.04.txt +0 -0
  78. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/builder/2024.10.txt +0 -0
  79. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/builder/2025.06.txt +0 -0
  80. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/builder/PREVIEW.txt +0 -0
  81. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/builder/README.md +0 -0
  82. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/builder/base-images.json +0 -0
  83. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/call_graph.py +0 -0
  84. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/__init__.py +0 -0
  85. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/_download.py +0 -0
  86. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/_traceback.py +0 -0
  87. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/app.py +0 -0
  88. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/cluster.py +0 -0
  89. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/config.py +0 -0
  90. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/container.py +0 -0
  91. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/dict.py +0 -0
  92. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/entry_point.py +0 -0
  93. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/environment.py +0 -0
  94. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/import_refs.py +0 -0
  95. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/launch.py +0 -0
  96. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/network_file_system.py +0 -0
  97. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/profile.py +0 -0
  98. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/programs/__init__.py +0 -0
  99. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/programs/launch_instance_ssh.py +0 -0
  100. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/programs/run_jupyter.py +0 -0
  101. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/programs/run_marimo.py +0 -0
  102. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/programs/vscode.py +0 -0
  103. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/queues.py +0 -0
  104. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/run.py +0 -0
  105. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/secret.py +0 -0
  106. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/token.py +0 -0
  107. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/utils.py +0 -0
  108. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cli/volume.py +0 -0
  109. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/client.py +0 -0
  110. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cloud_bucket_mount.py +0 -0
  111. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cloud_bucket_mount.pyi +0 -0
  112. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cls.py +0 -0
  113. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/cls.pyi +0 -0
  114. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/config.py +0 -0
  115. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/container_process.py +0 -0
  116. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/container_process.pyi +0 -0
  117. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/dict.py +0 -0
  118. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/dict.pyi +0 -0
  119. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/environments.py +0 -0
  120. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/environments.pyi +0 -0
  121. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/exception.py +0 -0
  122. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/experimental/__init__.py +0 -0
  123. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/experimental/flash.py +0 -0
  124. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/experimental/flash.pyi +0 -0
  125. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/experimental/ipython.py +0 -0
  126. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/file_io.py +0 -0
  127. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/file_io.pyi +0 -0
  128. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/file_pattern_matcher.py +0 -0
  129. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/functions.py +0 -0
  130. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/functions.pyi +0 -0
  131. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/gpu.py +0 -0
  132. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/image.py +0 -0
  133. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/image.pyi +0 -0
  134. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/io_streams.py +0 -0
  135. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/io_streams.pyi +0 -0
  136. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/mount.py +0 -0
  137. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/mount.pyi +0 -0
  138. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/network_file_system.py +0 -0
  139. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/network_file_system.pyi +0 -0
  140. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/object.py +0 -0
  141. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/object.pyi +0 -0
  142. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/output.py +0 -0
  143. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/parallel_map.py +0 -0
  144. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/parallel_map.pyi +0 -0
  145. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/partial_function.py +0 -0
  146. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/partial_function.pyi +0 -0
  147. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/proxy.py +0 -0
  148. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/proxy.pyi +0 -0
  149. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/py.typed +0 -0
  150. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/queue.py +0 -0
  151. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/queue.pyi +0 -0
  152. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/retries.py +0 -0
  153. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/runner.py +0 -0
  154. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/runner.pyi +0 -0
  155. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/running_app.py +0 -0
  156. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/schedule.py +0 -0
  157. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/scheduler_placement.py +0 -0
  158. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/secret.py +0 -0
  159. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/secret.pyi +0 -0
  160. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/serving.py +0 -0
  161. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/serving.pyi +0 -0
  162. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/snapshot.py +0 -0
  163. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/snapshot.pyi +0 -0
  164. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/stream_type.py +0 -0
  165. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/token_flow.py +0 -0
  166. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/token_flow.pyi +0 -0
  167. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/volume.py +0 -0
  168. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal/volume.pyi +0 -0
  169. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal.egg-info/SOURCES.txt +0 -0
  170. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal.egg-info/dependency_links.txt +0 -0
  171. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal.egg-info/entry_points.txt +0 -0
  172. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal.egg-info/requires.txt +0 -0
  173. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal.egg-info/top_level.txt +0 -0
  174. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_docs/__init__.py +0 -0
  175. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_docs/gen_cli_docs.py +0 -0
  176. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_docs/gen_reference_docs.py +0 -0
  177. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_docs/mdmd/__init__.py +0 -0
  178. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_docs/mdmd/mdmd.py +0 -0
  179. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_docs/mdmd/signatures.py +0 -0
  180. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/__init__.py +0 -0
  181. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/api_grpc.py +0 -0
  182. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/api_pb2_grpc.py +0 -0
  183. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/api_pb2_grpc.pyi +0 -0
  184. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/modal_api_grpc.py +0 -0
  185. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/py.typed +0 -0
  186. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/sandbox_router.proto +0 -0
  187. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/sandbox_router_grpc.py +0 -0
  188. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/sandbox_router_pb2.py +0 -0
  189. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/sandbox_router_pb2.pyi +0 -0
  190. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/sandbox_router_pb2_grpc.py +0 -0
  191. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/sandbox_router_pb2_grpc.pyi +0 -0
  192. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/task_command_router.proto +0 -0
  193. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/task_command_router_grpc.py +0 -0
  194. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/task_command_router_pb2.py +0 -0
  195. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/task_command_router_pb2.pyi +0 -0
  196. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/task_command_router_pb2_grpc.py +0 -0
  197. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_proto/task_command_router_pb2_grpc.pyi +0 -0
  198. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/modal_version/__main__.py +0 -0
  199. {modal-1.2.2.dev19 → modal-1.2.2.dev24}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.2.2.dev19
3
+ Version: 1.2.2.dev24
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -13,7 +13,7 @@ Classifier: Topic :: System :: Distributed Computing
13
13
  Classifier: Operating System :: OS Independent
14
14
  Classifier: License :: OSI Approved :: Apache Software License
15
15
  Classifier: Programming Language :: Python :: 3
16
- Requires-Python: >=3.9
16
+ Requires-Python: <3.14,>=3.9
17
17
  Description-Content-Type: text/markdown
18
18
  License-File: LICENSE
19
19
  Requires-Dist: aiohttp
@@ -33,7 +33,7 @@ class _Client:
33
33
  server_url: str,
34
34
  client_type: int,
35
35
  credentials: typing.Optional[tuple[str, str]],
36
- version: str = "1.2.2.dev19",
36
+ version: str = "1.2.2.dev24",
37
37
  ):
38
38
  """mdmd:hidden
39
39
  The Modal client object is not intended to be instantiated directly by users.
@@ -164,7 +164,7 @@ class Client:
164
164
  server_url: str,
165
165
  client_type: int,
166
166
  credentials: typing.Optional[tuple[str, str]],
167
- version: str = "1.2.2.dev19",
167
+ version: str = "1.2.2.dev24",
168
168
  ):
169
169
  """mdmd:hidden
170
170
  The Modal client object is not intended to be instantiated directly by users.
@@ -29,7 +29,7 @@ from ._resources import convert_fn_config_to_resources_config
29
29
  from ._utils.async_utils import TaskContext, synchronize_api
30
30
  from ._utils.deprecation import deprecation_warning
31
31
  from ._utils.mount_utils import validate_network_file_systems, validate_volumes
32
- from ._utils.name_utils import is_valid_object_name
32
+ from ._utils.name_utils import check_object_name
33
33
  from ._utils.task_command_router_client import TaskCommandRouterClient
34
34
  from .client import _Client
35
35
  from .container_process import _ContainerProcess
@@ -79,16 +79,6 @@ def _validate_exec_args(args: Sequence[str]) -> None:
79
79
  )
80
80
 
81
81
 
82
- def _warn_if_invalid_name(name: str) -> None:
83
- if not is_valid_object_name(name):
84
- deprecation_warning(
85
- (2025, 9, 3),
86
- f"Sandbox name '{name}' will be considered invalid in a future release."
87
- "\n\nNames may contain only alphanumeric characters, dashes, periods, and underscores,"
88
- " must be shorter than 64 characters, and cannot conflict with App ID strings.",
89
- )
90
-
91
-
92
82
  class DefaultSandboxNameOverride(str):
93
83
  """A singleton class that represents the default sandbox name override.
94
84
 
@@ -440,7 +430,7 @@ class _Sandbox(_Object, type_prefix="sb"):
440
430
 
441
431
  _validate_exec_args(args)
442
432
  if name is not None:
443
- _warn_if_invalid_name(name)
433
+ check_object_name(name, "Sandbox")
444
434
 
445
435
  if block_network and (encrypted_ports or h2_ports or unencrypted_ports):
446
436
  raise InvalidError("Cannot specify open ports when `block_network` is enabled")
@@ -1020,7 +1010,7 @@ class _Sandbox(_Object, type_prefix="sb"):
1020
1010
  client = client or await _Client.from_env()
1021
1011
 
1022
1012
  if name is not None and name != _DEFAULT_SANDBOX_NAME_OVERRIDE:
1023
- _warn_if_invalid_name(name)
1013
+ check_object_name(name, "Sandbox")
1024
1014
 
1025
1015
  if name is _DEFAULT_SANDBOX_NAME_OVERRIDE:
1026
1016
  restore_req = api_pb2.SandboxRestoreRequest(
@@ -27,7 +27,6 @@ import typing
27
27
  import typing_extensions
28
28
 
29
29
  def _validate_exec_args(args: collections.abc.Sequence[str]) -> None: ...
30
- def _warn_if_invalid_name(name: str) -> None: ...
31
30
 
32
31
  class DefaultSandboxNameOverride(str):
33
32
  """A singleton class that represents the default sandbox name override.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.2.2.dev19
3
+ Version: 1.2.2.dev24
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -13,7 +13,7 @@ Classifier: Topic :: System :: Distributed Computing
13
13
  Classifier: Operating System :: OS Independent
14
14
  Classifier: License :: OSI Approved :: Apache Software License
15
15
  Classifier: Programming Language :: Python :: 3
16
- Requires-Python: >=3.9
16
+ Requires-Python: <3.14,>=3.9
17
17
  Description-Content-Type: text/markdown
18
18
  License-File: LICENSE
19
19
  Requires-Dist: aiohttp
@@ -301,6 +301,7 @@ message AppCreateRequest {
301
301
  string description = 2; // Human readable label for the app
302
302
  string environment_name = 5;
303
303
  AppState app_state = 6;
304
+ map<string, string> tags = 7; // Additional metadata to attach to the App
304
305
  }
305
306
 
306
307
  message AppCreateResponse {