modal 1.2.5.dev15__tar.gz → 1.2.5.dev16__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 (202) hide show
  1. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/PKG-INFO +1 -1
  2. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_functions.py +2 -0
  3. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_runtime/user_code_imports.py +1 -1
  4. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/function_utils.py +7 -10
  5. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/client.pyi +2 -2
  6. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal.egg-info/PKG-INFO +1 -1
  7. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_version/__init__.py +1 -1
  8. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/LICENSE +0 -0
  9. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/README.md +0 -0
  10. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/__init__.py +0 -0
  11. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/__main__.py +0 -0
  12. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_billing.py +0 -0
  13. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_clustered_functions.py +0 -0
  14. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_clustered_functions.pyi +0 -0
  15. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_container_entrypoint.py +0 -0
  16. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_grpc_client.py +0 -0
  17. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_ipython.py +0 -0
  18. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_load_context.py +0 -0
  19. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_location.py +0 -0
  20. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_object.py +0 -0
  21. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_output.py +0 -0
  22. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_partial_function.py +0 -0
  23. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_pty.py +0 -0
  24. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_resolver.py +0 -0
  25. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_resources.py +0 -0
  26. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_runtime/__init__.py +0 -0
  27. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_runtime/asgi.py +0 -0
  28. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_runtime/container_io_manager.py +0 -0
  29. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_runtime/container_io_manager.pyi +0 -0
  30. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_runtime/execution_context.py +0 -0
  31. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_runtime/execution_context.pyi +0 -0
  32. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  33. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_runtime/telemetry.py +0 -0
  34. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_runtime/user_code_event_loop.py +0 -0
  35. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_serialization.py +0 -0
  36. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_traceback.py +0 -0
  37. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_tunnel.py +0 -0
  38. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_tunnel.pyi +0 -0
  39. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_type_manager.py +0 -0
  40. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/__init__.py +0 -0
  41. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/app_utils.py +0 -0
  42. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/async_utils.py +0 -0
  43. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/auth_token_manager.py +0 -0
  44. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/blob_utils.py +0 -0
  45. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/bytes_io_segment_payload.py +0 -0
  46. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/deprecation.py +0 -0
  47. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/docker_utils.py +0 -0
  48. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/git_utils.py +0 -0
  49. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/grpc_testing.py +0 -0
  50. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/grpc_utils.py +0 -0
  51. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/hash_utils.py +0 -0
  52. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/http_utils.py +0 -0
  53. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/jwt_utils.py +0 -0
  54. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/logger.py +0 -0
  55. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/mount_utils.py +0 -0
  56. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/name_utils.py +0 -0
  57. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/package_utils.py +0 -0
  58. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/pattern_utils.py +0 -0
  59. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/rand_pb_testing.py +0 -0
  60. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/shell_utils.py +0 -0
  61. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/task_command_router_client.py +0 -0
  62. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_utils/time_utils.py +0 -0
  63. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_vendor/__init__.py +0 -0
  64. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  65. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_vendor/cloudpickle.py +0 -0
  66. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_vendor/tblib.py +0 -0
  67. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/_watcher.py +0 -0
  68. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/app.py +0 -0
  69. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/app.pyi +0 -0
  70. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/billing.py +0 -0
  71. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/builder/2023.12.312.txt +0 -0
  72. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/builder/2023.12.txt +0 -0
  73. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/builder/2024.04.txt +0 -0
  74. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/builder/2024.10.txt +0 -0
  75. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/builder/2025.06.txt +0 -0
  76. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/builder/PREVIEW.txt +0 -0
  77. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/builder/README.md +0 -0
  78. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/builder/base-images.json +0 -0
  79. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/call_graph.py +0 -0
  80. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/__init__.py +0 -0
  81. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/_download.py +0 -0
  82. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/_traceback.py +0 -0
  83. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/app.py +0 -0
  84. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/cluster.py +0 -0
  85. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/config.py +0 -0
  86. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/container.py +0 -0
  87. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/dict.py +0 -0
  88. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/entry_point.py +0 -0
  89. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/environment.py +0 -0
  90. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/import_refs.py +0 -0
  91. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/launch.py +0 -0
  92. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/network_file_system.py +0 -0
  93. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/profile.py +0 -0
  94. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/programs/__init__.py +0 -0
  95. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/programs/launch_instance_ssh.py +0 -0
  96. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/programs/run_jupyter.py +0 -0
  97. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/programs/run_marimo.py +0 -0
  98. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/programs/vscode.py +0 -0
  99. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/queues.py +0 -0
  100. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/run.py +0 -0
  101. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/secret.py +0 -0
  102. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/shell.py +0 -0
  103. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/token.py +0 -0
  104. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/utils.py +0 -0
  105. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cli/volume.py +0 -0
  106. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/client.py +0 -0
  107. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cloud_bucket_mount.py +0 -0
  108. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cloud_bucket_mount.pyi +0 -0
  109. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cls.py +0 -0
  110. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/cls.pyi +0 -0
  111. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/config.py +0 -0
  112. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/container_process.py +0 -0
  113. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/container_process.pyi +0 -0
  114. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/dict.py +0 -0
  115. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/dict.pyi +0 -0
  116. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/environments.py +0 -0
  117. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/environments.pyi +0 -0
  118. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/exception.py +0 -0
  119. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/experimental/__init__.py +0 -0
  120. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/experimental/flash.py +0 -0
  121. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/experimental/flash.pyi +0 -0
  122. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/experimental/ipython.py +0 -0
  123. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/file_io.py +0 -0
  124. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/file_io.pyi +0 -0
  125. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/file_pattern_matcher.py +0 -0
  126. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/functions.py +0 -0
  127. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/functions.pyi +0 -0
  128. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/gpu.py +0 -0
  129. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/image.py +0 -0
  130. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/image.pyi +0 -0
  131. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/io_streams.py +0 -0
  132. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/io_streams.pyi +0 -0
  133. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/mount.py +0 -0
  134. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/mount.pyi +0 -0
  135. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/network_file_system.py +0 -0
  136. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/network_file_system.pyi +0 -0
  137. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/object.py +0 -0
  138. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/object.pyi +0 -0
  139. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/output.py +0 -0
  140. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/parallel_map.py +0 -0
  141. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/parallel_map.pyi +0 -0
  142. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/partial_function.py +0 -0
  143. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/partial_function.pyi +0 -0
  144. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/proxy.py +0 -0
  145. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/proxy.pyi +0 -0
  146. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/py.typed +0 -0
  147. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/queue.py +0 -0
  148. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/queue.pyi +0 -0
  149. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/retries.py +0 -0
  150. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/runner.py +0 -0
  151. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/runner.pyi +0 -0
  152. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/running_app.py +0 -0
  153. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/sandbox.py +0 -0
  154. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/sandbox.pyi +0 -0
  155. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/schedule.py +0 -0
  156. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/scheduler_placement.py +0 -0
  157. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/secret.py +0 -0
  158. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/secret.pyi +0 -0
  159. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/serving.py +0 -0
  160. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/serving.pyi +0 -0
  161. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/snapshot.py +0 -0
  162. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/snapshot.pyi +0 -0
  163. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/stream_type.py +0 -0
  164. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/token_flow.py +0 -0
  165. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/token_flow.pyi +0 -0
  166. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/volume.py +0 -0
  167. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal/volume.pyi +0 -0
  168. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal.egg-info/SOURCES.txt +0 -0
  169. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal.egg-info/dependency_links.txt +0 -0
  170. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal.egg-info/entry_points.txt +0 -0
  171. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal.egg-info/requires.txt +0 -0
  172. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal.egg-info/top_level.txt +0 -0
  173. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_docs/__init__.py +0 -0
  174. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_docs/gen_cli_docs.py +0 -0
  175. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_docs/gen_reference_docs.py +0 -0
  176. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_docs/mdmd/__init__.py +0 -0
  177. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_docs/mdmd/mdmd.py +0 -0
  178. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_docs/mdmd/signatures.py +0 -0
  179. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/__init__.py +0 -0
  180. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/api.proto +0 -0
  181. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/api_grpc.py +0 -0
  182. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/api_pb2.py +0 -0
  183. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/api_pb2.pyi +0 -0
  184. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/api_pb2_grpc.py +0 -0
  185. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/api_pb2_grpc.pyi +0 -0
  186. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/modal_api_grpc.py +0 -0
  187. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/py.typed +0 -0
  188. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/sandbox_router.proto +0 -0
  189. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/sandbox_router_grpc.py +0 -0
  190. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/sandbox_router_pb2.py +0 -0
  191. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/sandbox_router_pb2.pyi +0 -0
  192. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/sandbox_router_pb2_grpc.py +0 -0
  193. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/sandbox_router_pb2_grpc.pyi +0 -0
  194. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/task_command_router.proto +0 -0
  195. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/task_command_router_grpc.py +0 -0
  196. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/task_command_router_pb2.py +0 -0
  197. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/task_command_router_pb2.pyi +0 -0
  198. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/task_command_router_pb2_grpc.py +0 -0
  199. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_proto/task_command_router_pb2_grpc.pyi +0 -0
  200. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/modal_version/__main__.py +0 -0
  201. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/pyproject.toml +0 -0
  202. {modal-1.2.5.dev15 → modal-1.2.5.dev16}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.2.5.dev15
3
+ Version: 1.2.5.dev16
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -988,6 +988,7 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
988
988
  function_definition = api_pb2.Function(
989
989
  module_name=info.module_name or "",
990
990
  function_name=info.function_name,
991
+ implementation_name=info.implementation_name,
991
992
  mount_ids=loaded_mount_ids,
992
993
  secret_ids=[secret.object_id for secret in secrets],
993
994
  image_id=(image.object_id if image else ""),
@@ -1054,6 +1055,7 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
1054
1055
  function_data = api_pb2.FunctionData(
1055
1056
  module_name=function_definition.module_name,
1056
1057
  function_name=function_definition.function_name,
1058
+ implementation_name=function_definition.implementation_name,
1057
1059
  function_type=function_definition.function_type,
1058
1060
  warm_pool_size=function_definition.warm_pool_size,
1059
1061
  concurrency_limit=function_definition.concurrency_limit,
@@ -465,7 +465,7 @@ def import_single_function_service(
465
465
  else:
466
466
  # Load the module dynamically
467
467
  module = importlib.import_module(function_def.module_name)
468
- qual_name: str = function_def.function_name
468
+ qual_name: str = function_def.implementation_name
469
469
 
470
470
  if not is_global_object(qual_name):
471
471
  raise LocalFunctionError("Attempted to load a function defined in a function scope")
@@ -129,6 +129,7 @@ class FunctionInfo:
129
129
 
130
130
  raw_f: Optional[Callable[..., Any]] # if None - this is a "class service function"
131
131
  function_name: str
132
+ implementation_name: str
132
133
  user_cls: Optional[type[Any]]
133
134
  module_name: Optional[str]
134
135
 
@@ -160,20 +161,16 @@ class FunctionInfo:
160
161
  self.raw_f = f
161
162
  self.user_cls = user_cls
162
163
 
163
- if name_override is not None:
164
- if not serialized:
165
- # We may relax this constraint in the future, but currently we don't track the distinction between
166
- # the Function's name inside modal and the name of the object that we need to import in a container.
167
- raise InvalidError("Setting a custom `name=` also requires setting `serialized=True`")
168
- self.function_name = name_override
169
- elif f is None and user_cls:
164
+ if f is None and user_cls:
170
165
  # "service function" for running all methods of a class
171
- self.function_name = f"{user_cls.__name__}.*"
166
+ self.implementation_name = f"{user_cls.__name__}.*"
172
167
  elif f and user_cls:
173
168
  # Method may be defined on superclass of the wrapped class
174
- self.function_name = f"{user_cls.__name__}.{f.__name__}"
169
+ self.implementation_name = f"{user_cls.__name__}.{f.__name__}"
175
170
  else:
176
- self.function_name = f.__qualname__
171
+ self.implementation_name = f.__qualname__
172
+
173
+ self.function_name = name_override or self.implementation_name
177
174
 
178
175
  # If it's a cls, the @method could be defined in a base class in a different file.
179
176
  if user_cls is not None:
@@ -32,7 +32,7 @@ class _Client:
32
32
  server_url: str,
33
33
  client_type: int,
34
34
  credentials: typing.Optional[tuple[str, str]],
35
- version: str = "1.2.5.dev15",
35
+ version: str = "1.2.5.dev16",
36
36
  ):
37
37
  """mdmd:hidden
38
38
  The Modal client object is not intended to be instantiated directly by users.
@@ -163,7 +163,7 @@ class Client:
163
163
  server_url: str,
164
164
  client_type: int,
165
165
  credentials: typing.Optional[tuple[str, str]],
166
- version: str = "1.2.5.dev15",
166
+ version: str = "1.2.5.dev16",
167
167
  ):
168
168
  """mdmd:hidden
169
169
  The Modal client object is not intended to be instantiated directly by users.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.2.5.dev15
3
+ Version: 1.2.5.dev16
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -1,4 +1,4 @@
1
1
  # Copyright Modal Labs 2025
2
2
  """Supplies the current version of the modal client library."""
3
3
 
4
- __version__ = "1.2.5.dev15"
4
+ __version__ = "1.2.5.dev16"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes