modal 1.2.0__tar.gz → 1.2.1.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.

Potentially problematic release.


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

Files changed (197) hide show
  1. {modal-1.2.0 → modal-1.2.1.dev1}/PKG-INFO +5 -5
  2. {modal-1.2.0 → modal-1.2.1.dev1}/README.md +4 -4
  3. {modal-1.2.0 → modal-1.2.1.dev1}/modal/client.pyi +10 -2
  4. {modal-1.2.0 → modal-1.2.1.dev1}/modal.egg-info/PKG-INFO +5 -5
  5. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/task_command_router.proto +1 -1
  6. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/task_command_router_pb2.py +2 -2
  7. {modal-1.2.0 → modal-1.2.1.dev1}/modal_version/__init__.py +1 -1
  8. {modal-1.2.0 → modal-1.2.1.dev1}/LICENSE +0 -0
  9. {modal-1.2.0 → modal-1.2.1.dev1}/modal/__init__.py +0 -0
  10. {modal-1.2.0 → modal-1.2.1.dev1}/modal/__main__.py +0 -0
  11. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_billing.py +0 -0
  12. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_clustered_functions.py +0 -0
  13. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_clustered_functions.pyi +0 -0
  14. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_container_entrypoint.py +0 -0
  15. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_functions.py +0 -0
  16. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_ipython.py +0 -0
  17. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_location.py +0 -0
  18. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_object.py +0 -0
  19. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_output.py +0 -0
  20. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_partial_function.py +0 -0
  21. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_pty.py +0 -0
  22. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_resolver.py +0 -0
  23. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_resources.py +0 -0
  24. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_runtime/__init__.py +0 -0
  25. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_runtime/asgi.py +0 -0
  26. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_runtime/container_io_manager.py +0 -0
  27. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_runtime/container_io_manager.pyi +0 -0
  28. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_runtime/execution_context.py +0 -0
  29. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_runtime/execution_context.pyi +0 -0
  30. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  31. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_runtime/telemetry.py +0 -0
  32. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_runtime/user_code_imports.py +0 -0
  33. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_serialization.py +0 -0
  34. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_traceback.py +0 -0
  35. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_tunnel.py +0 -0
  36. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_tunnel.pyi +0 -0
  37. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_type_manager.py +0 -0
  38. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/__init__.py +0 -0
  39. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/app_utils.py +0 -0
  40. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/async_utils.py +0 -0
  41. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/auth_token_manager.py +0 -0
  42. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/blob_utils.py +0 -0
  43. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/bytes_io_segment_payload.py +0 -0
  44. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/deprecation.py +0 -0
  45. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/docker_utils.py +0 -0
  46. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/function_utils.py +0 -0
  47. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/git_utils.py +0 -0
  48. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/grpc_testing.py +0 -0
  49. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/grpc_utils.py +0 -0
  50. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/hash_utils.py +0 -0
  51. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/http_utils.py +0 -0
  52. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/jwt_utils.py +0 -0
  53. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/logger.py +0 -0
  54. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/mount_utils.py +0 -0
  55. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/name_utils.py +0 -0
  56. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/package_utils.py +0 -0
  57. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/pattern_utils.py +0 -0
  58. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/rand_pb_testing.py +0 -0
  59. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/shell_utils.py +0 -0
  60. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_utils/time_utils.py +0 -0
  61. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_vendor/__init__.py +0 -0
  62. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  63. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_vendor/cloudpickle.py +0 -0
  64. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_vendor/tblib.py +0 -0
  65. {modal-1.2.0 → modal-1.2.1.dev1}/modal/_watcher.py +0 -0
  66. {modal-1.2.0 → modal-1.2.1.dev1}/modal/app.py +0 -0
  67. {modal-1.2.0 → modal-1.2.1.dev1}/modal/app.pyi +0 -0
  68. {modal-1.2.0 → modal-1.2.1.dev1}/modal/billing.py +0 -0
  69. {modal-1.2.0 → modal-1.2.1.dev1}/modal/builder/2023.12.312.txt +0 -0
  70. {modal-1.2.0 → modal-1.2.1.dev1}/modal/builder/2023.12.txt +0 -0
  71. {modal-1.2.0 → modal-1.2.1.dev1}/modal/builder/2024.04.txt +0 -0
  72. {modal-1.2.0 → modal-1.2.1.dev1}/modal/builder/2024.10.txt +0 -0
  73. {modal-1.2.0 → modal-1.2.1.dev1}/modal/builder/2025.06.txt +0 -0
  74. {modal-1.2.0 → modal-1.2.1.dev1}/modal/builder/PREVIEW.txt +0 -0
  75. {modal-1.2.0 → modal-1.2.1.dev1}/modal/builder/README.md +0 -0
  76. {modal-1.2.0 → modal-1.2.1.dev1}/modal/builder/base-images.json +0 -0
  77. {modal-1.2.0 → modal-1.2.1.dev1}/modal/call_graph.py +0 -0
  78. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/__init__.py +0 -0
  79. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/_download.py +0 -0
  80. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/_traceback.py +0 -0
  81. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/app.py +0 -0
  82. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/cluster.py +0 -0
  83. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/config.py +0 -0
  84. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/container.py +0 -0
  85. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/dict.py +0 -0
  86. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/entry_point.py +0 -0
  87. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/environment.py +0 -0
  88. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/import_refs.py +0 -0
  89. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/launch.py +0 -0
  90. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/network_file_system.py +0 -0
  91. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/profile.py +0 -0
  92. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/programs/__init__.py +0 -0
  93. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/programs/launch_instance_ssh.py +0 -0
  94. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/programs/run_jupyter.py +0 -0
  95. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/programs/run_marimo.py +0 -0
  96. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/programs/vscode.py +0 -0
  97. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/queues.py +0 -0
  98. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/run.py +0 -0
  99. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/secret.py +0 -0
  100. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/token.py +0 -0
  101. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/utils.py +0 -0
  102. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cli/volume.py +0 -0
  103. {modal-1.2.0 → modal-1.2.1.dev1}/modal/client.py +0 -0
  104. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cloud_bucket_mount.py +0 -0
  105. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cloud_bucket_mount.pyi +0 -0
  106. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cls.py +0 -0
  107. {modal-1.2.0 → modal-1.2.1.dev1}/modal/cls.pyi +0 -0
  108. {modal-1.2.0 → modal-1.2.1.dev1}/modal/config.py +0 -0
  109. {modal-1.2.0 → modal-1.2.1.dev1}/modal/container_process.py +0 -0
  110. {modal-1.2.0 → modal-1.2.1.dev1}/modal/container_process.pyi +0 -0
  111. {modal-1.2.0 → modal-1.2.1.dev1}/modal/dict.py +0 -0
  112. {modal-1.2.0 → modal-1.2.1.dev1}/modal/dict.pyi +0 -0
  113. {modal-1.2.0 → modal-1.2.1.dev1}/modal/environments.py +0 -0
  114. {modal-1.2.0 → modal-1.2.1.dev1}/modal/environments.pyi +0 -0
  115. {modal-1.2.0 → modal-1.2.1.dev1}/modal/exception.py +0 -0
  116. {modal-1.2.0 → modal-1.2.1.dev1}/modal/experimental/__init__.py +0 -0
  117. {modal-1.2.0 → modal-1.2.1.dev1}/modal/experimental/flash.py +0 -0
  118. {modal-1.2.0 → modal-1.2.1.dev1}/modal/experimental/flash.pyi +0 -0
  119. {modal-1.2.0 → modal-1.2.1.dev1}/modal/experimental/ipython.py +0 -0
  120. {modal-1.2.0 → modal-1.2.1.dev1}/modal/file_io.py +0 -0
  121. {modal-1.2.0 → modal-1.2.1.dev1}/modal/file_io.pyi +0 -0
  122. {modal-1.2.0 → modal-1.2.1.dev1}/modal/file_pattern_matcher.py +0 -0
  123. {modal-1.2.0 → modal-1.2.1.dev1}/modal/functions.py +0 -0
  124. {modal-1.2.0 → modal-1.2.1.dev1}/modal/functions.pyi +0 -0
  125. {modal-1.2.0 → modal-1.2.1.dev1}/modal/gpu.py +0 -0
  126. {modal-1.2.0 → modal-1.2.1.dev1}/modal/image.py +0 -0
  127. {modal-1.2.0 → modal-1.2.1.dev1}/modal/image.pyi +0 -0
  128. {modal-1.2.0 → modal-1.2.1.dev1}/modal/io_streams.py +0 -0
  129. {modal-1.2.0 → modal-1.2.1.dev1}/modal/io_streams.pyi +0 -0
  130. {modal-1.2.0 → modal-1.2.1.dev1}/modal/mount.py +0 -0
  131. {modal-1.2.0 → modal-1.2.1.dev1}/modal/mount.pyi +0 -0
  132. {modal-1.2.0 → modal-1.2.1.dev1}/modal/network_file_system.py +0 -0
  133. {modal-1.2.0 → modal-1.2.1.dev1}/modal/network_file_system.pyi +0 -0
  134. {modal-1.2.0 → modal-1.2.1.dev1}/modal/object.py +0 -0
  135. {modal-1.2.0 → modal-1.2.1.dev1}/modal/object.pyi +0 -0
  136. {modal-1.2.0 → modal-1.2.1.dev1}/modal/output.py +0 -0
  137. {modal-1.2.0 → modal-1.2.1.dev1}/modal/parallel_map.py +0 -0
  138. {modal-1.2.0 → modal-1.2.1.dev1}/modal/parallel_map.pyi +0 -0
  139. {modal-1.2.0 → modal-1.2.1.dev1}/modal/partial_function.py +0 -0
  140. {modal-1.2.0 → modal-1.2.1.dev1}/modal/partial_function.pyi +0 -0
  141. {modal-1.2.0 → modal-1.2.1.dev1}/modal/proxy.py +0 -0
  142. {modal-1.2.0 → modal-1.2.1.dev1}/modal/proxy.pyi +0 -0
  143. {modal-1.2.0 → modal-1.2.1.dev1}/modal/py.typed +0 -0
  144. {modal-1.2.0 → modal-1.2.1.dev1}/modal/queue.py +0 -0
  145. {modal-1.2.0 → modal-1.2.1.dev1}/modal/queue.pyi +0 -0
  146. {modal-1.2.0 → modal-1.2.1.dev1}/modal/retries.py +0 -0
  147. {modal-1.2.0 → modal-1.2.1.dev1}/modal/runner.py +0 -0
  148. {modal-1.2.0 → modal-1.2.1.dev1}/modal/runner.pyi +0 -0
  149. {modal-1.2.0 → modal-1.2.1.dev1}/modal/running_app.py +0 -0
  150. {modal-1.2.0 → modal-1.2.1.dev1}/modal/sandbox.py +0 -0
  151. {modal-1.2.0 → modal-1.2.1.dev1}/modal/sandbox.pyi +0 -0
  152. {modal-1.2.0 → modal-1.2.1.dev1}/modal/schedule.py +0 -0
  153. {modal-1.2.0 → modal-1.2.1.dev1}/modal/scheduler_placement.py +0 -0
  154. {modal-1.2.0 → modal-1.2.1.dev1}/modal/secret.py +0 -0
  155. {modal-1.2.0 → modal-1.2.1.dev1}/modal/secret.pyi +0 -0
  156. {modal-1.2.0 → modal-1.2.1.dev1}/modal/serving.py +0 -0
  157. {modal-1.2.0 → modal-1.2.1.dev1}/modal/serving.pyi +0 -0
  158. {modal-1.2.0 → modal-1.2.1.dev1}/modal/snapshot.py +0 -0
  159. {modal-1.2.0 → modal-1.2.1.dev1}/modal/snapshot.pyi +0 -0
  160. {modal-1.2.0 → modal-1.2.1.dev1}/modal/stream_type.py +0 -0
  161. {modal-1.2.0 → modal-1.2.1.dev1}/modal/token_flow.py +0 -0
  162. {modal-1.2.0 → modal-1.2.1.dev1}/modal/token_flow.pyi +0 -0
  163. {modal-1.2.0 → modal-1.2.1.dev1}/modal/volume.py +0 -0
  164. {modal-1.2.0 → modal-1.2.1.dev1}/modal/volume.pyi +0 -0
  165. {modal-1.2.0 → modal-1.2.1.dev1}/modal.egg-info/SOURCES.txt +0 -0
  166. {modal-1.2.0 → modal-1.2.1.dev1}/modal.egg-info/dependency_links.txt +0 -0
  167. {modal-1.2.0 → modal-1.2.1.dev1}/modal.egg-info/entry_points.txt +0 -0
  168. {modal-1.2.0 → modal-1.2.1.dev1}/modal.egg-info/requires.txt +0 -0
  169. {modal-1.2.0 → modal-1.2.1.dev1}/modal.egg-info/top_level.txt +0 -0
  170. {modal-1.2.0 → modal-1.2.1.dev1}/modal_docs/__init__.py +0 -0
  171. {modal-1.2.0 → modal-1.2.1.dev1}/modal_docs/gen_cli_docs.py +0 -0
  172. {modal-1.2.0 → modal-1.2.1.dev1}/modal_docs/gen_reference_docs.py +0 -0
  173. {modal-1.2.0 → modal-1.2.1.dev1}/modal_docs/mdmd/__init__.py +0 -0
  174. {modal-1.2.0 → modal-1.2.1.dev1}/modal_docs/mdmd/mdmd.py +0 -0
  175. {modal-1.2.0 → modal-1.2.1.dev1}/modal_docs/mdmd/signatures.py +0 -0
  176. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/__init__.py +0 -0
  177. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/api.proto +0 -0
  178. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/api_grpc.py +0 -0
  179. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/api_pb2.py +0 -0
  180. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/api_pb2.pyi +0 -0
  181. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/api_pb2_grpc.py +0 -0
  182. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/api_pb2_grpc.pyi +0 -0
  183. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/modal_api_grpc.py +0 -0
  184. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/py.typed +0 -0
  185. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/sandbox_router.proto +0 -0
  186. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/sandbox_router_grpc.py +0 -0
  187. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/sandbox_router_pb2.py +0 -0
  188. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/sandbox_router_pb2.pyi +0 -0
  189. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/sandbox_router_pb2_grpc.py +0 -0
  190. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/sandbox_router_pb2_grpc.pyi +0 -0
  191. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/task_command_router_grpc.py +0 -0
  192. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/task_command_router_pb2.pyi +0 -0
  193. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/task_command_router_pb2_grpc.py +0 -0
  194. {modal-1.2.0 → modal-1.2.1.dev1}/modal_proto/task_command_router_pb2_grpc.pyi +0 -0
  195. {modal-1.2.0 → modal-1.2.1.dev1}/modal_version/__main__.py +0 -0
  196. {modal-1.2.0 → modal-1.2.1.dev1}/pyproject.toml +0 -0
  197. {modal-1.2.0 → modal-1.2.1.dev1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.2.0
3
+ Version: 1.2.1.dev1
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -32,14 +32,14 @@ Requires-Dist: watchfiles
32
32
  Requires-Dist: typing_extensions~=4.6
33
33
  Dynamic: license-file
34
34
 
35
- # Modal Python Library
35
+ # Modal Python SDK
36
36
 
37
37
  [![PyPI Version](https://img.shields.io/pypi/v/modal.svg)](https://pypi.org/project/modal/)
38
38
  [![License](https://img.shields.io/badge/license-apache_2.0-darkviolet.svg)](https://github.com/modal-labs/modal-client/blob/master/LICENSE)
39
39
  [![Tests](https://github.com/modal-labs/modal-client/actions/workflows/ci-cd.yml/badge.svg)](https://github.com/modal-labs/modal-client/actions/workflows/ci-cd.yml)
40
40
  [![Slack](https://img.shields.io/badge/slack-join-blue.svg?logo=slack)](https://modal.com/slack)
41
41
 
42
- The [Modal](https://modal.com/) Python library provides convenient, on-demand
42
+ The [Modal](https://modal.com/) Python SDK provides convenient, on-demand
43
43
  access to serverless cloud compute from Python scripts on your local computer.
44
44
 
45
45
  ## Documentation
@@ -53,10 +53,10 @@ a [user guide](https://modal.com/docs/guide), and the detailed
53
53
 
54
54
  **This library requires Python 3.9 – 3.13.**
55
55
 
56
- Install the package with `pip`:
56
+ Install the package with `uv` or `pip`:
57
57
 
58
58
  ```bash
59
- pip install modal
59
+ uv pip install modal
60
60
  ```
61
61
 
62
62
  You can create a Modal account (or link your existing one) directly on the
@@ -1,11 +1,11 @@
1
- # Modal Python Library
1
+ # Modal Python SDK
2
2
 
3
3
  [![PyPI Version](https://img.shields.io/pypi/v/modal.svg)](https://pypi.org/project/modal/)
4
4
  [![License](https://img.shields.io/badge/license-apache_2.0-darkviolet.svg)](https://github.com/modal-labs/modal-client/blob/master/LICENSE)
5
5
  [![Tests](https://github.com/modal-labs/modal-client/actions/workflows/ci-cd.yml/badge.svg)](https://github.com/modal-labs/modal-client/actions/workflows/ci-cd.yml)
6
6
  [![Slack](https://img.shields.io/badge/slack-join-blue.svg?logo=slack)](https://modal.com/slack)
7
7
 
8
- The [Modal](https://modal.com/) Python library provides convenient, on-demand
8
+ The [Modal](https://modal.com/) Python SDK provides convenient, on-demand
9
9
  access to serverless cloud compute from Python scripts on your local computer.
10
10
 
11
11
  ## Documentation
@@ -19,10 +19,10 @@ a [user guide](https://modal.com/docs/guide), and the detailed
19
19
 
20
20
  **This library requires Python 3.9 – 3.13.**
21
21
 
22
- Install the package with `pip`:
22
+ Install the package with `uv` or `pip`:
23
23
 
24
24
  ```bash
25
- pip install modal
25
+ uv pip install modal
26
26
  ```
27
27
 
28
28
  You can create a Modal account (or link your existing one) directly on the
@@ -29,7 +29,11 @@ class _Client:
29
29
  _snapshotted: bool
30
30
 
31
31
  def __init__(
32
- self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "1.2.0"
32
+ self,
33
+ server_url: str,
34
+ client_type: int,
35
+ credentials: typing.Optional[tuple[str, str]],
36
+ version: str = "1.2.1.dev1",
33
37
  ):
34
38
  """mdmd:hidden
35
39
  The Modal client object is not intended to be instantiated directly by users.
@@ -156,7 +160,11 @@ class Client:
156
160
  _snapshotted: bool
157
161
 
158
162
  def __init__(
159
- self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "1.2.0"
163
+ self,
164
+ server_url: str,
165
+ client_type: int,
166
+ credentials: typing.Optional[tuple[str, str]],
167
+ version: str = "1.2.1.dev1",
160
168
  ):
161
169
  """mdmd:hidden
162
170
  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.0
3
+ Version: 1.2.1.dev1
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -32,14 +32,14 @@ Requires-Dist: watchfiles
32
32
  Requires-Dist: typing_extensions~=4.6
33
33
  Dynamic: license-file
34
34
 
35
- # Modal Python Library
35
+ # Modal Python SDK
36
36
 
37
37
  [![PyPI Version](https://img.shields.io/pypi/v/modal.svg)](https://pypi.org/project/modal/)
38
38
  [![License](https://img.shields.io/badge/license-apache_2.0-darkviolet.svg)](https://github.com/modal-labs/modal-client/blob/master/LICENSE)
39
39
  [![Tests](https://github.com/modal-labs/modal-client/actions/workflows/ci-cd.yml/badge.svg)](https://github.com/modal-labs/modal-client/actions/workflows/ci-cd.yml)
40
40
  [![Slack](https://img.shields.io/badge/slack-join-blue.svg?logo=slack)](https://modal.com/slack)
41
41
 
42
- The [Modal](https://modal.com/) Python library provides convenient, on-demand
42
+ The [Modal](https://modal.com/) Python SDK provides convenient, on-demand
43
43
  access to serverless cloud compute from Python scripts on your local computer.
44
44
 
45
45
  ## Documentation
@@ -53,10 +53,10 @@ a [user guide](https://modal.com/docs/guide), and the detailed
53
53
 
54
54
  **This library requires Python 3.9 – 3.13.**
55
55
 
56
- Install the package with `pip`:
56
+ Install the package with `uv` or `pip`:
57
57
 
58
58
  ```bash
59
- pip install modal
59
+ uv pip install modal
60
60
  ```
61
61
 
62
62
  You can create a Modal account (or link your existing one) directly on the
@@ -1,6 +1,6 @@
1
1
  syntax = "proto3";
2
2
 
3
- option go_package = "github.com/modal-labs/modal/go/proto/task_command_router";
3
+ option go_package = "github.com/modal-labs/modal/go/proto";
4
4
 
5
5
  import "modal_proto/api.proto";
6
6
 
@@ -16,7 +16,7 @@ _sym_db = _symbol_database.Default()
16
16
  from modal_proto import api_pb2 as modal__proto_dot_api__pb2
17
17
 
18
18
 
19
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%modal_proto/task_command_router.proto\x12\x19modal.task_command_router\x1a\x15modal_proto/api.proto\"7\n\x13TaskExecPollRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"G\n\x14TaskExecPollResponse\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x12\x10\n\x06signal\x18\x02 \x01(\x05H\x00\x42\r\n\x0b\x65xit_status\"\x92\x03\n\x14TaskExecStartRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x14\n\x0c\x63ommand_args\x18\x03 \x03(\t\x12\x46\n\rstdout_config\x18\x04 \x01(\x0e\x32/.modal.task_command_router.TaskExecStdoutConfig\x12\x46\n\rstderr_config\x18\x05 \x01(\x0e\x32/.modal.task_command_router.TaskExecStderrConfig\x12\x19\n\x0ctimeout_secs\x18\x06 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07workdir\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x12\n\nsecret_ids\x18\x08 \x03(\t\x12,\n\x08pty_info\x18\t \x01(\x0b\x32\x15.modal.client.PTYInfoH\x02\x88\x01\x01\x12\x15\n\rruntime_debug\x18\n \x01(\x08\x42\x0f\n\r_timeout_secsB\n\n\x08_workdirB\x0b\n\t_pty_info\"\x17\n\x15TaskExecStartResponse\"h\n\x19TaskExecStdinWriteRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x0b\n\x03\x65of\x18\x05 \x01(\x08\"\x1c\n\x1aTaskExecStdinWriteResponse\"\x9d\x01\n\x18TaskExecStdioReadRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12O\n\x0f\x66ile_descriptor\x18\x04 \x01(\x0e\x32\x36.modal.task_command_router.TaskExecStdioFileDescriptor\")\n\x19TaskExecStdioReadResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"7\n\x13TaskExecWaitRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"G\n\x14TaskExecWaitResponse\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x12\x10\n\x06signal\x18\x02 \x01(\x05H\x00\x42\r\n\x0b\x65xit_status*\x81\x01\n\x14TaskExecStderrConfig\x12#\n\x1fTASK_EXEC_STDERR_CONFIG_DEVNULL\x10\x00\x12 \n\x1cTASK_EXEC_STDERR_CONFIG_PIPE\x10\x01\x12\"\n\x1eTASK_EXEC_STDERR_CONFIG_STDOUT\x10\x02*u\n\x1bTaskExecStdioFileDescriptor\x12*\n&TASK_EXEC_STDIO_FILE_DESCRIPTOR_STDOUT\x10\x00\x12*\n&TASK_EXEC_STDIO_FILE_DESCRIPTOR_STDERR\x10\x01*]\n\x14TaskExecStdoutConfig\x12#\n\x1fTASK_EXEC_STDOUT_CONFIG_DEVNULL\x10\x00\x12 \n\x1cTASK_EXEC_STDOUT_CONFIG_PIPE\x10\x01\x32\xf0\x04\n\x11TaskCommandRouter\x12o\n\x0cTaskExecPoll\x12..modal.task_command_router.TaskExecPollRequest\x1a/.modal.task_command_router.TaskExecPollResponse\x12r\n\rTaskExecStart\x12/.modal.task_command_router.TaskExecStartRequest\x1a\x30.modal.task_command_router.TaskExecStartResponse\x12\x81\x01\n\x12TaskExecStdinWrite\x12\x34.modal.task_command_router.TaskExecStdinWriteRequest\x1a\x35.modal.task_command_router.TaskExecStdinWriteResponse\x12\x80\x01\n\x11TaskExecStdioRead\x12\x33.modal.task_command_router.TaskExecStdioReadRequest\x1a\x34.modal.task_command_router.TaskExecStdioReadResponse0\x01\x12o\n\x0cTaskExecWait\x12..modal.task_command_router.TaskExecWaitRequest\x1a/.modal.task_command_router.TaskExecWaitResponseB:Z8github.com/modal-labs/modal/go/proto/task_command_routerb\x06proto3')
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%modal_proto/task_command_router.proto\x12\x19modal.task_command_router\x1a\x15modal_proto/api.proto\"7\n\x13TaskExecPollRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"G\n\x14TaskExecPollResponse\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x12\x10\n\x06signal\x18\x02 \x01(\x05H\x00\x42\r\n\x0b\x65xit_status\"\x92\x03\n\x14TaskExecStartRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x14\n\x0c\x63ommand_args\x18\x03 \x03(\t\x12\x46\n\rstdout_config\x18\x04 \x01(\x0e\x32/.modal.task_command_router.TaskExecStdoutConfig\x12\x46\n\rstderr_config\x18\x05 \x01(\x0e\x32/.modal.task_command_router.TaskExecStderrConfig\x12\x19\n\x0ctimeout_secs\x18\x06 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07workdir\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x12\n\nsecret_ids\x18\x08 \x03(\t\x12,\n\x08pty_info\x18\t \x01(\x0b\x32\x15.modal.client.PTYInfoH\x02\x88\x01\x01\x12\x15\n\rruntime_debug\x18\n \x01(\x08\x42\x0f\n\r_timeout_secsB\n\n\x08_workdirB\x0b\n\t_pty_info\"\x17\n\x15TaskExecStartResponse\"h\n\x19TaskExecStdinWriteRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x0b\n\x03\x65of\x18\x05 \x01(\x08\"\x1c\n\x1aTaskExecStdinWriteResponse\"\x9d\x01\n\x18TaskExecStdioReadRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12O\n\x0f\x66ile_descriptor\x18\x04 \x01(\x0e\x32\x36.modal.task_command_router.TaskExecStdioFileDescriptor\")\n\x19TaskExecStdioReadResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"7\n\x13TaskExecWaitRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"G\n\x14TaskExecWaitResponse\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x12\x10\n\x06signal\x18\x02 \x01(\x05H\x00\x42\r\n\x0b\x65xit_status*\x81\x01\n\x14TaskExecStderrConfig\x12#\n\x1fTASK_EXEC_STDERR_CONFIG_DEVNULL\x10\x00\x12 \n\x1cTASK_EXEC_STDERR_CONFIG_PIPE\x10\x01\x12\"\n\x1eTASK_EXEC_STDERR_CONFIG_STDOUT\x10\x02*u\n\x1bTaskExecStdioFileDescriptor\x12*\n&TASK_EXEC_STDIO_FILE_DESCRIPTOR_STDOUT\x10\x00\x12*\n&TASK_EXEC_STDIO_FILE_DESCRIPTOR_STDERR\x10\x01*]\n\x14TaskExecStdoutConfig\x12#\n\x1fTASK_EXEC_STDOUT_CONFIG_DEVNULL\x10\x00\x12 \n\x1cTASK_EXEC_STDOUT_CONFIG_PIPE\x10\x01\x32\xf0\x04\n\x11TaskCommandRouter\x12o\n\x0cTaskExecPoll\x12..modal.task_command_router.TaskExecPollRequest\x1a/.modal.task_command_router.TaskExecPollResponse\x12r\n\rTaskExecStart\x12/.modal.task_command_router.TaskExecStartRequest\x1a\x30.modal.task_command_router.TaskExecStartResponse\x12\x81\x01\n\x12TaskExecStdinWrite\x12\x34.modal.task_command_router.TaskExecStdinWriteRequest\x1a\x35.modal.task_command_router.TaskExecStdinWriteResponse\x12\x80\x01\n\x11TaskExecStdioRead\x12\x33.modal.task_command_router.TaskExecStdioReadRequest\x1a\x34.modal.task_command_router.TaskExecStdioReadResponse0\x01\x12o\n\x0cTaskExecWait\x12..modal.task_command_router.TaskExecWaitRequest\x1a/.modal.task_command_router.TaskExecWaitResponseB&Z$github.com/modal-labs/modal/go/protob\x06proto3')
20
20
 
21
21
  _TASKEXECSTDERRCONFIG = DESCRIPTOR.enum_types_by_name['TaskExecStderrConfig']
22
22
  TaskExecStderrConfig = enum_type_wrapper.EnumTypeWrapper(_TASKEXECSTDERRCONFIG)
@@ -117,7 +117,7 @@ _TASKCOMMANDROUTER = DESCRIPTOR.services_by_name['TaskCommandRouter']
117
117
  if _descriptor._USE_C_DESCRIPTORS == False:
118
118
 
119
119
  DESCRIPTOR._options = None
120
- DESCRIPTOR._serialized_options = b'Z8github.com/modal-labs/modal/go/proto/task_command_router'
120
+ DESCRIPTOR._serialized_options = b'Z$github.com/modal-labs/modal/go/proto'
121
121
  _TASKEXECSTDERRCONFIG._serialized_start=1121
122
122
  _TASKEXECSTDERRCONFIG._serialized_end=1250
123
123
  _TASKEXECSTDIOFILEDESCRIPTOR._serialized_start=1252
@@ -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.0"
4
+ __version__ = "1.2.1.dev1"
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
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
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
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