modal 1.1.2.dev3__tar.gz → 1.1.2.dev5__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.

Potentially problematic release.


This version of modal might be problematic. Click here for more details.

Files changed (188) hide show
  1. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/PKG-INFO +1 -1
  2. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/__main__.py +1 -2
  3. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/client.pyi +2 -2
  4. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/config.py +7 -7
  5. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/functions.pyi +6 -6
  6. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal.egg-info/PKG-INFO +1 -1
  7. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_proto/api.proto +1 -0
  8. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_proto/api_pb2.py +536 -536
  9. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_proto/api_pb2.pyi +8 -2
  10. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_version/__init__.py +1 -1
  11. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/LICENSE +0 -0
  12. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/README.md +0 -0
  13. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/__init__.py +0 -0
  14. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_clustered_functions.py +0 -0
  15. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_clustered_functions.pyi +0 -0
  16. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_container_entrypoint.py +0 -0
  17. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_functions.py +0 -0
  18. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_ipython.py +0 -0
  19. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_location.py +0 -0
  20. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_object.py +0 -0
  21. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_output.py +0 -0
  22. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_partial_function.py +0 -0
  23. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_pty.py +0 -0
  24. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_resolver.py +0 -0
  25. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_resources.py +0 -0
  26. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_runtime/__init__.py +0 -0
  27. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_runtime/asgi.py +0 -0
  28. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_runtime/container_io_manager.py +0 -0
  29. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_runtime/container_io_manager.pyi +0 -0
  30. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_runtime/execution_context.py +0 -0
  31. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_runtime/execution_context.pyi +0 -0
  32. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  33. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_runtime/telemetry.py +0 -0
  34. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_runtime/user_code_imports.py +0 -0
  35. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_serialization.py +0 -0
  36. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_traceback.py +0 -0
  37. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_tunnel.py +0 -0
  38. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_tunnel.pyi +0 -0
  39. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_type_manager.py +0 -0
  40. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/__init__.py +0 -0
  41. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/app_utils.py +0 -0
  42. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/async_utils.py +0 -0
  43. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/auth_token_manager.py +0 -0
  44. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/blob_utils.py +0 -0
  45. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/bytes_io_segment_payload.py +0 -0
  46. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/deprecation.py +0 -0
  47. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/docker_utils.py +0 -0
  48. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/function_utils.py +0 -0
  49. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/git_utils.py +0 -0
  50. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/grpc_testing.py +0 -0
  51. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/grpc_utils.py +0 -0
  52. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/hash_utils.py +0 -0
  53. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/http_utils.py +0 -0
  54. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/jwt_utils.py +0 -0
  55. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/logger.py +0 -0
  56. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/mount_utils.py +0 -0
  57. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/name_utils.py +0 -0
  58. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/package_utils.py +0 -0
  59. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/pattern_utils.py +0 -0
  60. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/rand_pb_testing.py +0 -0
  61. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/shell_utils.py +0 -0
  62. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_utils/time_utils.py +0 -0
  63. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_vendor/__init__.py +0 -0
  64. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  65. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_vendor/cloudpickle.py +0 -0
  66. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_vendor/tblib.py +0 -0
  67. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/_watcher.py +0 -0
  68. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/app.py +0 -0
  69. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/app.pyi +0 -0
  70. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/builder/2023.12.312.txt +0 -0
  71. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/builder/2023.12.txt +0 -0
  72. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/builder/2024.04.txt +0 -0
  73. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/builder/2024.10.txt +0 -0
  74. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/builder/2025.06.txt +0 -0
  75. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/builder/PREVIEW.txt +0 -0
  76. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/builder/README.md +0 -0
  77. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/builder/base-images.json +0 -0
  78. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/call_graph.py +0 -0
  79. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/__init__.py +0 -0
  80. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/_download.py +0 -0
  81. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/_traceback.py +0 -0
  82. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/app.py +0 -0
  83. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/cluster.py +0 -0
  84. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/config.py +0 -0
  85. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/container.py +0 -0
  86. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/dict.py +0 -0
  87. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/entry_point.py +0 -0
  88. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/environment.py +0 -0
  89. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/import_refs.py +0 -0
  90. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/launch.py +0 -0
  91. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/network_file_system.py +0 -0
  92. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/profile.py +0 -0
  93. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/programs/__init__.py +0 -0
  94. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/programs/run_jupyter.py +0 -0
  95. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/programs/vscode.py +0 -0
  96. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/queues.py +0 -0
  97. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/run.py +0 -0
  98. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/secret.py +0 -0
  99. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/token.py +0 -0
  100. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/utils.py +0 -0
  101. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cli/volume.py +0 -0
  102. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/client.py +0 -0
  103. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cloud_bucket_mount.py +0 -0
  104. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cloud_bucket_mount.pyi +0 -0
  105. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cls.py +0 -0
  106. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/cls.pyi +0 -0
  107. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/container_process.py +0 -0
  108. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/container_process.pyi +0 -0
  109. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/dict.py +0 -0
  110. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/dict.pyi +0 -0
  111. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/environments.py +0 -0
  112. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/environments.pyi +0 -0
  113. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/exception.py +0 -0
  114. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/experimental/__init__.py +0 -0
  115. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/experimental/flash.py +0 -0
  116. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/experimental/flash.pyi +0 -0
  117. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/experimental/ipython.py +0 -0
  118. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/file_io.py +0 -0
  119. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/file_io.pyi +0 -0
  120. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/file_pattern_matcher.py +0 -0
  121. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/functions.py +0 -0
  122. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/gpu.py +0 -0
  123. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/image.py +0 -0
  124. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/image.pyi +0 -0
  125. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/io_streams.py +0 -0
  126. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/io_streams.pyi +0 -0
  127. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/mount.py +0 -0
  128. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/mount.pyi +0 -0
  129. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/network_file_system.py +0 -0
  130. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/network_file_system.pyi +0 -0
  131. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/object.py +0 -0
  132. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/object.pyi +0 -0
  133. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/output.py +0 -0
  134. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/parallel_map.py +0 -0
  135. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/parallel_map.pyi +0 -0
  136. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/partial_function.py +0 -0
  137. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/partial_function.pyi +0 -0
  138. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/proxy.py +0 -0
  139. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/proxy.pyi +0 -0
  140. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/py.typed +0 -0
  141. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/queue.py +0 -0
  142. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/queue.pyi +0 -0
  143. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/retries.py +0 -0
  144. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/runner.py +0 -0
  145. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/runner.pyi +0 -0
  146. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/running_app.py +0 -0
  147. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/sandbox.py +0 -0
  148. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/sandbox.pyi +0 -0
  149. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/schedule.py +0 -0
  150. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/scheduler_placement.py +0 -0
  151. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/secret.py +0 -0
  152. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/secret.pyi +0 -0
  153. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/serving.py +0 -0
  154. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/serving.pyi +0 -0
  155. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/snapshot.py +0 -0
  156. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/snapshot.pyi +0 -0
  157. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/stream_type.py +0 -0
  158. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/token_flow.py +0 -0
  159. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/token_flow.pyi +0 -0
  160. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/volume.py +0 -0
  161. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal/volume.pyi +0 -0
  162. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal.egg-info/SOURCES.txt +0 -0
  163. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal.egg-info/dependency_links.txt +0 -0
  164. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal.egg-info/entry_points.txt +0 -0
  165. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal.egg-info/requires.txt +0 -0
  166. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal.egg-info/top_level.txt +0 -0
  167. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_docs/__init__.py +0 -0
  168. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_docs/gen_cli_docs.py +0 -0
  169. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_docs/gen_reference_docs.py +0 -0
  170. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_docs/mdmd/__init__.py +0 -0
  171. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_docs/mdmd/mdmd.py +0 -0
  172. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_docs/mdmd/signatures.py +0 -0
  173. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_proto/__init__.py +0 -0
  174. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_proto/api_grpc.py +0 -0
  175. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_proto/api_pb2_grpc.py +0 -0
  176. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_proto/api_pb2_grpc.pyi +0 -0
  177. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_proto/modal_api_grpc.py +0 -0
  178. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_proto/modal_options_grpc.py +0 -0
  179. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_proto/options.proto +0 -0
  180. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_proto/options_grpc.py +0 -0
  181. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_proto/options_pb2.py +0 -0
  182. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_proto/options_pb2.pyi +0 -0
  183. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_proto/options_pb2_grpc.py +0 -0
  184. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_proto/options_pb2_grpc.pyi +0 -0
  185. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_proto/py.typed +0 -0
  186. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/modal_version/__main__.py +0 -0
  187. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/pyproject.toml +0 -0
  188. {modal-1.1.2.dev3 → modal-1.1.2.dev5}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.2.dev3
3
+ Version: 1.1.2.dev5
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -37,7 +37,6 @@ def main():
37
37
 
38
38
  from grpclib import GRPCError, Status
39
39
  from rich.panel import Panel
40
- from rich.text import Text
41
40
 
42
41
  if isinstance(exc, GRPCError):
43
42
  status_map = {
@@ -69,7 +68,7 @@ def main():
69
68
  content = f"{content}\n\nNote: {' '.join(notes)}"
70
69
 
71
70
  console = make_console(stderr=True)
72
- panel = Panel(Text(content), title=title, title_align="left", border_style="red")
71
+ panel = Panel(content, title=title, title_align="left", border_style="red")
73
72
  console.print(panel, highlight=False)
74
73
  sys.exit(1)
75
74
 
@@ -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.1.2.dev3",
36
+ version: str = "1.1.2.dev5",
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.1.2.dev3",
167
+ version: str = "1.1.2.dev5",
168
168
  ):
169
169
  """mdmd:hidden
170
170
  The Modal client object is not intended to be instantiated directly by users.
@@ -94,7 +94,7 @@ from google.protobuf.empty_pb2 import Empty
94
94
  from modal_proto import api_pb2
95
95
 
96
96
  from ._utils.logger import configure_logger
97
- from .exception import InvalidError
97
+ from .exception import InvalidError, NotFoundError
98
98
 
99
99
  DEFAULT_SERVER_URL = "https://api.modal.com"
100
100
 
@@ -158,15 +158,15 @@ def _config_active_profile() -> str:
158
158
  return "default"
159
159
 
160
160
 
161
- def config_set_active_profile(env: str) -> None:
161
+ def config_set_active_profile(profile: str) -> None:
162
162
  """Set the user's active modal profile by writing it to the `.modal.toml` file."""
163
- if env not in _user_config:
164
- raise KeyError(env)
163
+ if profile not in _user_config:
164
+ raise NotFoundError(f"No profile named '{profile}' found in {user_config_path}")
165
165
 
166
- for key, values in _user_config.items():
167
- values.pop("active", None)
166
+ for profile_data in _user_config.values():
167
+ profile_data.pop("active", None)
168
168
 
169
- _user_config[env]["active"] = True
169
+ _user_config[profile]["active"] = True # type: ignore
170
170
  _write_user_config(_user_config)
171
171
 
172
172
 
@@ -427,7 +427,7 @@ class Function(
427
427
 
428
428
  _call_generator: ___call_generator_spec[typing_extensions.Self]
429
429
 
430
- class __remote_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
430
+ class __remote_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
431
431
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER:
432
432
  """Calls the function remotely, executing it with the given arguments and returning the execution's result."""
433
433
  ...
@@ -436,7 +436,7 @@ class Function(
436
436
  """Calls the function remotely, executing it with the given arguments and returning the execution's result."""
437
437
  ...
438
438
 
439
- remote: __remote_spec[modal._functions.P, modal._functions.ReturnType, typing_extensions.Self]
439
+ remote: __remote_spec[modal._functions.ReturnType, modal._functions.P, typing_extensions.Self]
440
440
 
441
441
  class __remote_gen_spec(typing_extensions.Protocol[SUPERSELF]):
442
442
  def __call__(self, /, *args, **kwargs) -> typing.Generator[typing.Any, None, None]:
@@ -463,7 +463,7 @@ class Function(
463
463
  """
464
464
  ...
465
465
 
466
- class ___experimental_spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
466
+ class ___experimental_spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
467
467
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
468
468
  """[Experimental] Calls the function with the given arguments, without waiting for the results.
469
469
 
@@ -487,7 +487,7 @@ class Function(
487
487
  ...
488
488
 
489
489
  _experimental_spawn: ___experimental_spawn_spec[
490
- modal._functions.P, modal._functions.ReturnType, typing_extensions.Self
490
+ modal._functions.ReturnType, modal._functions.P, typing_extensions.Self
491
491
  ]
492
492
 
493
493
  class ___spawn_map_inner_spec(typing_extensions.Protocol[P_INNER, SUPERSELF]):
@@ -496,7 +496,7 @@ class Function(
496
496
 
497
497
  _spawn_map_inner: ___spawn_map_inner_spec[modal._functions.P, typing_extensions.Self]
498
498
 
499
- class __spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
499
+ class __spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
500
500
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
501
501
  """Calls the function with the given arguments, without waiting for the results.
502
502
 
@@ -517,7 +517,7 @@ class Function(
517
517
  """
518
518
  ...
519
519
 
520
- spawn: __spawn_spec[modal._functions.P, modal._functions.ReturnType, typing_extensions.Self]
520
+ spawn: __spawn_spec[modal._functions.ReturnType, modal._functions.P, typing_extensions.Self]
521
521
 
522
522
  def get_raw_f(self) -> collections.abc.Callable[..., typing.Any]:
523
523
  """Return the inner Python object wrapped by this Modal Function."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.2.dev3
3
+ Version: 1.1.2.dev5
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -1819,6 +1819,7 @@ message FunctionOptions {
1819
1819
  optional uint32 max_concurrent_inputs = 14;
1820
1820
  optional uint32 batch_max_size = 15;
1821
1821
  optional uint64 batch_linger_ms = 16;
1822
+ optional SchedulerPlacement scheduler_placement = 17;
1822
1823
  }
1823
1824
 
1824
1825
  message FunctionPrecreateRequest {