modal 1.6.4.dev0__tar.gz → 1.6.4.dev1__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 (250) hide show
  1. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/PKG-INFO +1 -1
  2. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/client.pyi +2 -2
  3. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/functions.pyi +6 -6
  4. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/secret.py +15 -7
  5. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/secret.pyi +3 -3
  6. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/types.py +1 -0
  7. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal.egg-info/PKG-INFO +1 -1
  8. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_proto/api_pb2.py +407 -407
  9. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_proto/api_pb2.pyi +7 -1
  10. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_version/__init__.py +1 -1
  11. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/pyproject.toml +2 -2
  12. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/LICENSE +0 -0
  13. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/README.md +0 -0
  14. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/__init__.py +0 -0
  15. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/__main__.py +0 -0
  16. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_billing.py +0 -0
  17. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_cluster.py +0 -0
  18. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_cluster.pyi +0 -0
  19. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_container_entrypoint.py +0 -0
  20. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_environments.py +0 -0
  21. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_function_variants.py +0 -0
  22. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_functions.py +0 -0
  23. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_grpc_client.py +0 -0
  24. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_image.py +0 -0
  25. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_ipython.py +0 -0
  26. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_load_context.py +0 -0
  27. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_location.py +0 -0
  28. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_logs.py +0 -0
  29. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_logs_manager.py +0 -0
  30. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_logs_manager.pyi +0 -0
  31. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_metrics.py +0 -0
  32. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_metrics.pyi +0 -0
  33. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_object.py +0 -0
  34. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_outbound_policy.py +0 -0
  35. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_outbound_policy.pyi +0 -0
  36. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_output/__init__.py +0 -0
  37. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_output/manager.py +0 -0
  38. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_output/pty.py +0 -0
  39. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_output/rich.py +0 -0
  40. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_output/status.py +0 -0
  41. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_partial_function.py +0 -0
  42. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_resolver.py +0 -0
  43. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_resources.py +0 -0
  44. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_runtime/__init__.py +0 -0
  45. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_runtime/asgi.py +0 -0
  46. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_runtime/container_io_manager.py +0 -0
  47. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_runtime/container_io_manager.pyi +0 -0
  48. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_runtime/execution_context.py +0 -0
  49. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_runtime/execution_context.pyi +0 -0
  50. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  51. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_runtime/task_lifecycle_manager.py +0 -0
  52. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_runtime/task_lifecycle_manager.pyi +0 -0
  53. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_runtime/telemetry.py +0 -0
  54. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_runtime/user_code_event_loop.py +0 -0
  55. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_runtime/user_code_imports.py +0 -0
  56. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_serialization.py +0 -0
  57. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_server.py +0 -0
  58. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_server.pyi +0 -0
  59. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_supports_logs.py +0 -0
  60. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_traceback.py +0 -0
  61. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_tunnel.py +0 -0
  62. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_tunnel.pyi +0 -0
  63. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_type_manager.py +0 -0
  64. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/__init__.py +0 -0
  65. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/app_utils.py +0 -0
  66. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/async_utils.py +0 -0
  67. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/auth_token_manager.py +0 -0
  68. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/blob_utils.py +0 -0
  69. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/browser_utils.py +0 -0
  70. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/bytes_io_segment_payload.py +0 -0
  71. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/curl_utils.py +0 -0
  72. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/deprecation.py +0 -0
  73. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/display_utils.py +0 -0
  74. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/docker_utils.py +0 -0
  75. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/function_utils.py +0 -0
  76. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/git_utils.py +0 -0
  77. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/grpc_testing.py +0 -0
  78. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/grpc_utils.py +0 -0
  79. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/hash_utils.py +0 -0
  80. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/http_utils.py +0 -0
  81. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/idle_countdown.py +0 -0
  82. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/jwt_utils.py +0 -0
  83. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/logger.py +0 -0
  84. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/mount_utils.py +0 -0
  85. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/name_utils.py +0 -0
  86. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/oauth.py +0 -0
  87. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/package_utils.py +0 -0
  88. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/pattern_utils.py +0 -0
  89. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/proxy_support.py +0 -0
  90. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/rand_pb_testing.py +0 -0
  91. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/sandbox_fs_utils.py +0 -0
  92. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/shell_utils.py +0 -0
  93. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_utils/time_utils.py +0 -0
  94. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_vendor/__init__.py +0 -0
  95. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  96. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_vendor/cloudpickle.py +0 -0
  97. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_vendor/tblib.py +0 -0
  98. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_vendor/version.py +0 -0
  99. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_watcher.py +0 -0
  100. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/_workspace.py +0 -0
  101. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/app.py +0 -0
  102. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/app.pyi +0 -0
  103. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/billing.py +0 -0
  104. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/billing.pyi +0 -0
  105. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/builder/2023.12.312.txt +0 -0
  106. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/builder/2023.12.txt +0 -0
  107. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/builder/2024.04.txt +0 -0
  108. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/builder/2024.10.txt +0 -0
  109. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/builder/2025.06.txt +0 -0
  110. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/builder/2026.10.txt +0 -0
  111. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/builder/PREVIEW.txt +0 -0
  112. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/builder/README.md +0 -0
  113. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/builder/base-images.json +0 -0
  114. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/call_graph.py +0 -0
  115. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/__init__.py +0 -0
  116. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/_download.py +0 -0
  117. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/_help.py +0 -0
  118. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/_logs.py +0 -0
  119. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/_stats.py +0 -0
  120. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/_traceback.py +0 -0
  121. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/app.py +0 -0
  122. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/billing.py +0 -0
  123. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/changelog.py +0 -0
  124. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/config.py +0 -0
  125. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/container.py +0 -0
  126. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/curl.py +0 -0
  127. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/dashboard.py +0 -0
  128. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/dict.py +0 -0
  129. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/endpoint.py +0 -0
  130. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/entry_point.py +0 -0
  131. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/environment.py +0 -0
  132. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/function.py +0 -0
  133. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/image.py +0 -0
  134. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/import_refs.py +0 -0
  135. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/logo.py +0 -0
  136. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/network_file_system.py +0 -0
  137. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/profile.py +0 -0
  138. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/queues.py +0 -0
  139. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/run.py +0 -0
  140. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/secret.py +0 -0
  141. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/selector.py +0 -0
  142. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/server.py +0 -0
  143. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/shell.py +0 -0
  144. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/skills.py +0 -0
  145. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/token.py +0 -0
  146. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/utils.py +0 -0
  147. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/volume.py +0 -0
  148. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cli/workspace.py +0 -0
  149. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/client.py +0 -0
  150. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cloud_bucket_mount.py +0 -0
  151. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cloud_bucket_mount.pyi +0 -0
  152. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cls.py +0 -0
  153. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cls.pyi +0 -0
  154. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cluster.py +0 -0
  155. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/cluster.pyi +0 -0
  156. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/config.py +0 -0
  157. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/container_process.py +0 -0
  158. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/container_process.pyi +0 -0
  159. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/dict.py +0 -0
  160. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/dict.pyi +0 -0
  161. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/environments.py +0 -0
  162. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/environments.pyi +0 -0
  163. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/exception.py +0 -0
  164. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/experimental/__init__.py +0 -0
  165. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/experimental/_flash_container_entry.py +0 -0
  166. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/experimental/flash.py +0 -0
  167. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/experimental/flash.pyi +0 -0
  168. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/experimental/flash_server.py +0 -0
  169. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/experimental/flash_server.pyi +0 -0
  170. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/experimental/ipython.py +0 -0
  171. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/file_pattern_matcher.py +0 -0
  172. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/functions.py +0 -0
  173. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/image.py +0 -0
  174. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/image.pyi +0 -0
  175. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/io_streams.py +0 -0
  176. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/io_streams.pyi +0 -0
  177. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/mount.py +0 -0
  178. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/mount.pyi +0 -0
  179. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/network_file_system.py +0 -0
  180. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/network_file_system.pyi +0 -0
  181. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/object.py +0 -0
  182. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/object.pyi +0 -0
  183. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/output.py +0 -0
  184. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/parallel_map.py +0 -0
  185. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/parallel_map.pyi +0 -0
  186. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/partial_function.py +0 -0
  187. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/partial_function.pyi +0 -0
  188. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/proxy.py +0 -0
  189. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/proxy.pyi +0 -0
  190. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/py.typed +0 -0
  191. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/queue.py +0 -0
  192. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/queue.pyi +0 -0
  193. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/retries.py +0 -0
  194. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/runner.py +0 -0
  195. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/runner.pyi +0 -0
  196. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/running_app.py +0 -0
  197. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/sandbox/__init__.py +0 -0
  198. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/sandbox/_common.py +0 -0
  199. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/sandbox/_filesystem.py +0 -0
  200. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/sandbox/_impl_persistent.py +0 -0
  201. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/sandbox/_impl_v1.py +0 -0
  202. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/sandbox/_impl_v2.py +0 -0
  203. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/sandbox/_sandbox.py +0 -0
  204. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/sandbox/_sidecar.py +0 -0
  205. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/sandbox/_snapshot.py +0 -0
  206. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/sandbox/_task_command_router_client.py +0 -0
  207. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/sandbox/sandbox.py +0 -0
  208. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/sandbox/sandbox.pyi +0 -0
  209. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/schedule.py +0 -0
  210. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/scheduler_placement.py +0 -0
  211. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/server.py +0 -0
  212. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/server.pyi +0 -0
  213. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/serving.py +0 -0
  214. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/serving.pyi +0 -0
  215. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/skills/modal/SKILL.md +0 -0
  216. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/stream_type.py +0 -0
  217. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/token_flow.py +0 -0
  218. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/token_flow.pyi +0 -0
  219. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/volume.py +0 -0
  220. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/volume.pyi +0 -0
  221. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/workspace.py +0 -0
  222. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal/workspace.pyi +0 -0
  223. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal.egg-info/SOURCES.txt +0 -0
  224. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal.egg-info/dependency_links.txt +0 -0
  225. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal.egg-info/entry_points.txt +0 -0
  226. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal.egg-info/requires.txt +0 -0
  227. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal.egg-info/top_level.txt +0 -0
  228. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_docs/__init__.py +0 -0
  229. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_docs/gen_cli_docs.py +0 -0
  230. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_docs/gen_cli_docs_main.py +0 -0
  231. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_docs/gen_reference_docs.py +0 -0
  232. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_docs/gen_reference_docs_main.py +0 -0
  233. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_docs/mdmd/__init__.py +0 -0
  234. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_docs/mdmd/mdmd.py +0 -0
  235. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_docs/mdmd/signatures.py +0 -0
  236. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_docs/mdmd/types.py +0 -0
  237. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_docs/reference_intro.md +0 -0
  238. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_proto/__init__.py +0 -0
  239. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_proto/api_grpc.py +0 -0
  240. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_proto/api_pb2_grpc.py +0 -0
  241. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_proto/api_pb2_grpc.pyi +0 -0
  242. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_proto/modal_api_grpc.py +0 -0
  243. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_proto/py.typed +0 -0
  244. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_proto/task_command_router_grpc.py +0 -0
  245. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_proto/task_command_router_pb2.py +0 -0
  246. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_proto/task_command_router_pb2.pyi +0 -0
  247. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_proto/task_command_router_pb2_grpc.py +0 -0
  248. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_proto/task_command_router_pb2_grpc.pyi +0 -0
  249. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/modal_version/__main__.py +0 -0
  250. {modal-1.6.4.dev0 → modal-1.6.4.dev1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.6.4.dev0
3
+ Version: 1.6.4.dev1
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License-Expression: Apache-2.0
@@ -87,7 +87,7 @@ class _Client:
87
87
  server_url: str,
88
88
  client_type: int,
89
89
  credentials: typing.Optional[tuple[str, str]],
90
- version: str = "1.6.4.dev0",
90
+ version: str = "1.6.4.dev1",
91
91
  *,
92
92
  oauth_credentials: typing.Optional[_OAuthCredentials] = None,
93
93
  ):
@@ -304,7 +304,7 @@ class Client:
304
304
  server_url: str,
305
305
  client_type: int,
306
306
  credentials: typing.Optional[tuple[str, str]],
307
- version: str = "1.6.4.dev0",
307
+ version: str = "1.6.4.dev1",
308
308
  *,
309
309
  oauth_credentials: typing.Optional[_OAuthCredentials] = None,
310
310
  ):
@@ -619,7 +619,7 @@ class Function(
619
619
 
620
620
  _call_generator: ___call_generator_spec
621
621
 
622
- class __remote_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER]):
622
+ class __remote_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
623
623
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER:
624
624
  """Calls the function remotely, executing it with the given arguments and returning the execution's result.
625
625
 
@@ -644,7 +644,7 @@ class Function(
644
644
  """
645
645
  ...
646
646
 
647
- remote: __remote_spec[modal._functions.P, modal._functions.ReturnType]
647
+ remote: __remote_spec[modal._functions.ReturnType, modal._functions.P]
648
648
 
649
649
  class __remote_gen_spec(typing_extensions.Protocol):
650
650
  def __call__(self, /, *args, **kwargs) -> typing.Generator[typing.Any, None, None]:
@@ -694,7 +694,7 @@ class Function(
694
694
  """
695
695
  ...
696
696
 
697
- class ___experimental_spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER]):
697
+ class ___experimental_spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
698
698
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
699
699
  """[Experimental] Calls the function with the given arguments, without waiting for the results.
700
700
 
@@ -727,7 +727,7 @@ class Function(
727
727
  """
728
728
  ...
729
729
 
730
- _experimental_spawn: ___experimental_spawn_spec[modal._functions.P, modal._functions.ReturnType]
730
+ _experimental_spawn: ___experimental_spawn_spec[modal._functions.ReturnType, modal._functions.P]
731
731
 
732
732
  class ___spawn_map_inner_spec(typing_extensions.Protocol[P_INNER]):
733
733
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> None: ...
@@ -735,7 +735,7 @@ class Function(
735
735
 
736
736
  _spawn_map_inner: ___spawn_map_inner_spec[modal._functions.P]
737
737
 
738
- class __spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER]):
738
+ class __spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
739
739
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
740
740
  """Calls the function with the given arguments, without waiting for the results.
741
741
 
@@ -768,7 +768,7 @@ class Function(
768
768
  """
769
769
  ...
770
770
 
771
- spawn: __spawn_spec[modal._functions.P, modal._functions.ReturnType]
771
+ spawn: __spawn_spec[modal._functions.ReturnType, modal._functions.P]
772
772
 
773
773
  @property
774
774
  def _raw_f_(self) -> collections.abc.Callable[..., typing.Any]: ...
@@ -2,7 +2,7 @@
2
2
  import builtins
3
3
  import os
4
4
  from collections.abc import Collection
5
- from datetime import datetime
5
+ from datetime import datetime, timezone
6
6
  from pathlib import Path
7
7
  from typing import Callable
8
8
 
@@ -316,13 +316,15 @@ class _Secret(_Object, type_prefix="st"):
316
316
  ```
317
317
  """
318
318
  if not isinstance(env_dict, dict):
319
- raise InvalidError(ENV_DICT_WRONG_TYPE_ERR)
319
+ raise InvalidError(f"{ENV_DICT_WRONG_TYPE_ERR}, got {type(env_dict).__name__}")
320
320
 
321
321
  env_dict_filtered: dict[str, str] = {k: v for k, v in env_dict.items() if v is not None}
322
- if not all(isinstance(k, str) for k in env_dict_filtered.keys()):
323
- raise InvalidError(ENV_DICT_WRONG_TYPE_ERR)
324
- if not all(isinstance(v, str) for v in env_dict_filtered.values()):
325
- raise InvalidError(ENV_DICT_WRONG_TYPE_ERR)
322
+ for key in env_dict_filtered.keys():
323
+ if not isinstance(key, str):
324
+ raise InvalidError(f"{ENV_DICT_WRONG_TYPE_ERR}, key has type {type(key).__name__}")
325
+ for key, value in env_dict_filtered.items():
326
+ if not isinstance(value, str):
327
+ raise InvalidError(f"{ENV_DICT_WRONG_TYPE_ERR}, value for key {key!r} has type {type(value).__name__}")
326
328
 
327
329
  def _load_env_dict() -> dict[str, str]:
328
330
  return env_dict_filtered
@@ -551,15 +553,21 @@ class _Secret(_Object, type_prefix="st"):
551
553
  return resp.secret_id
552
554
 
553
555
  @live_method
554
- async def info(self) -> SecretInfo:
556
+ async def info(self, *, refresh: bool = False) -> SecretInfo:
555
557
  """Return information about the Secret object."""
558
+ if refresh:
559
+ await self._refresh_metadata()
560
+
556
561
  metadata = self._get_metadata()
557
562
  creation_info = metadata.creation_info
563
+ last_used = datetime.fromtimestamp(metadata.last_used_at, tz=timezone.utc)
564
+
558
565
  return SecretInfo(
559
566
  name=metadata.name or None,
560
567
  created_at=timestamp_to_localized_dt(creation_info.created_at),
561
568
  created_by=creation_info.created_by or None,
562
569
  environment_name=metadata.environment_name,
570
+ last_used=last_used if last_used.timestamp() > 0 else None,
563
571
  )
564
572
 
565
573
  @live_method
@@ -588,7 +588,7 @@ class _Secret(modal._object._Object):
588
588
  """mdmd:hidden"""
589
589
  ...
590
590
 
591
- async def info(self) -> modal.types.SecretInfo:
591
+ async def info(self, *, refresh: bool = False) -> modal.types.SecretInfo:
592
592
  """Return information about the Secret object."""
593
593
  ...
594
594
 
@@ -820,11 +820,11 @@ class Secret(modal.object.Object):
820
820
  _create_deployed: typing.ClassVar[___create_deployed_spec]
821
821
 
822
822
  class __info_spec(typing_extensions.Protocol):
823
- def __call__(self, /) -> modal.types.SecretInfo:
823
+ def __call__(self, /, *, refresh: bool = False) -> modal.types.SecretInfo:
824
824
  """Return information about the Secret object."""
825
825
  ...
826
826
 
827
- async def aio(self, /) -> modal.types.SecretInfo:
827
+ async def aio(self, /, *, refresh: bool = False) -> modal.types.SecretInfo:
828
828
  """Return information about the Secret object."""
829
829
  ...
830
830
 
@@ -165,6 +165,7 @@ class SecretInfo:
165
165
  environment_name: str
166
166
  created_at: datetime
167
167
  created_by: str | None
168
+ last_used: datetime | None
168
169
 
169
170
 
170
171
  class VolumeCreateOptions(TypedDict, total=False):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.6.4.dev0
3
+ Version: 1.6.4.dev1
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License-Expression: Apache-2.0