modal 1.0.6.dev31__tar.gz → 1.0.6.dev32__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 (185) hide show
  1. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/PKG-INFO +1 -1
  2. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/client.pyi +2 -2
  3. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/file_io.py +7 -2
  4. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/file_io.pyi +12 -2
  5. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/sandbox.py +5 -5
  6. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/sandbox.pyi +12 -12
  7. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal.egg-info/PKG-INFO +1 -1
  8. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_version/__init__.py +1 -1
  9. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/LICENSE +0 -0
  10. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/README.md +0 -0
  11. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/__init__.py +0 -0
  12. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/__main__.py +0 -0
  13. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_clustered_functions.py +0 -0
  14. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_clustered_functions.pyi +0 -0
  15. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_container_entrypoint.py +0 -0
  16. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_functions.py +0 -0
  17. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_ipython.py +0 -0
  18. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_location.py +0 -0
  19. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_object.py +0 -0
  20. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_output.py +0 -0
  21. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_partial_function.py +0 -0
  22. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_pty.py +0 -0
  23. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_resolver.py +0 -0
  24. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_resources.py +0 -0
  25. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_runtime/__init__.py +0 -0
  26. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_runtime/asgi.py +0 -0
  27. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_runtime/container_io_manager.py +0 -0
  28. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_runtime/container_io_manager.pyi +0 -0
  29. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_runtime/execution_context.py +0 -0
  30. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_runtime/execution_context.pyi +0 -0
  31. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  32. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_runtime/telemetry.py +0 -0
  33. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_runtime/user_code_imports.py +0 -0
  34. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_serialization.py +0 -0
  35. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_traceback.py +0 -0
  36. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_tunnel.py +0 -0
  37. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_tunnel.pyi +0 -0
  38. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_type_manager.py +0 -0
  39. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/__init__.py +0 -0
  40. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/app_utils.py +0 -0
  41. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/async_utils.py +0 -0
  42. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/blob_utils.py +0 -0
  43. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/bytes_io_segment_payload.py +0 -0
  44. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/deprecation.py +0 -0
  45. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/docker_utils.py +0 -0
  46. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/function_utils.py +0 -0
  47. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/git_utils.py +0 -0
  48. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/grpc_testing.py +0 -0
  49. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/grpc_utils.py +0 -0
  50. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/hash_utils.py +0 -0
  51. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/http_utils.py +0 -0
  52. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/jwt_utils.py +0 -0
  53. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/logger.py +0 -0
  54. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/mount_utils.py +0 -0
  55. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/name_utils.py +0 -0
  56. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/package_utils.py +0 -0
  57. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/pattern_utils.py +0 -0
  58. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/rand_pb_testing.py +0 -0
  59. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/shell_utils.py +0 -0
  60. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_utils/time_utils.py +0 -0
  61. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_vendor/__init__.py +0 -0
  62. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  63. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_vendor/cloudpickle.py +0 -0
  64. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_vendor/tblib.py +0 -0
  65. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/_watcher.py +0 -0
  66. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/app.py +0 -0
  67. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/app.pyi +0 -0
  68. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/call_graph.py +0 -0
  69. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/__init__.py +0 -0
  70. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/_download.py +0 -0
  71. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/_traceback.py +0 -0
  72. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/app.py +0 -0
  73. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/cluster.py +0 -0
  74. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/config.py +0 -0
  75. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/container.py +0 -0
  76. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/dict.py +0 -0
  77. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/entry_point.py +0 -0
  78. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/environment.py +0 -0
  79. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/import_refs.py +0 -0
  80. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/launch.py +0 -0
  81. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/network_file_system.py +0 -0
  82. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/profile.py +0 -0
  83. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/programs/__init__.py +0 -0
  84. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/programs/run_jupyter.py +0 -0
  85. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/programs/vscode.py +0 -0
  86. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/queues.py +0 -0
  87. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/run.py +0 -0
  88. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/secret.py +0 -0
  89. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/token.py +0 -0
  90. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/utils.py +0 -0
  91. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cli/volume.py +0 -0
  92. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/client.py +0 -0
  93. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cloud_bucket_mount.py +0 -0
  94. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cloud_bucket_mount.pyi +0 -0
  95. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cls.py +0 -0
  96. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/cls.pyi +0 -0
  97. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/config.py +0 -0
  98. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/container_process.py +0 -0
  99. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/container_process.pyi +0 -0
  100. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/dict.py +0 -0
  101. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/dict.pyi +0 -0
  102. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/environments.py +0 -0
  103. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/environments.pyi +0 -0
  104. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/exception.py +0 -0
  105. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/experimental/__init__.py +0 -0
  106. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/experimental/ipython.py +0 -0
  107. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/file_pattern_matcher.py +0 -0
  108. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/functions.py +0 -0
  109. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/functions.pyi +0 -0
  110. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/gpu.py +0 -0
  111. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/image.py +0 -0
  112. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/image.pyi +0 -0
  113. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/io_streams.py +0 -0
  114. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/io_streams.pyi +0 -0
  115. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/mount.py +0 -0
  116. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/mount.pyi +0 -0
  117. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/network_file_system.py +0 -0
  118. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/network_file_system.pyi +0 -0
  119. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/object.py +0 -0
  120. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/object.pyi +0 -0
  121. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/output.py +0 -0
  122. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/parallel_map.py +0 -0
  123. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/parallel_map.pyi +0 -0
  124. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/partial_function.py +0 -0
  125. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/partial_function.pyi +0 -0
  126. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/proxy.py +0 -0
  127. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/proxy.pyi +0 -0
  128. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/py.typed +0 -0
  129. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/queue.py +0 -0
  130. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/queue.pyi +0 -0
  131. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/requirements/2023.12.312.txt +0 -0
  132. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/requirements/2023.12.txt +0 -0
  133. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/requirements/2024.04.txt +0 -0
  134. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/requirements/2024.10.txt +0 -0
  135. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/requirements/2025.06.txt +0 -0
  136. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/requirements/PREVIEW.txt +0 -0
  137. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/requirements/README.md +0 -0
  138. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/requirements/base-images.json +0 -0
  139. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/retries.py +0 -0
  140. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/runner.py +0 -0
  141. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/runner.pyi +0 -0
  142. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/running_app.py +0 -0
  143. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/schedule.py +0 -0
  144. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/scheduler_placement.py +0 -0
  145. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/secret.py +0 -0
  146. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/secret.pyi +0 -0
  147. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/serving.py +0 -0
  148. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/serving.pyi +0 -0
  149. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/snapshot.py +0 -0
  150. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/snapshot.pyi +0 -0
  151. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/stream_type.py +0 -0
  152. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/token_flow.py +0 -0
  153. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/token_flow.pyi +0 -0
  154. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/volume.py +0 -0
  155. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal/volume.pyi +0 -0
  156. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal.egg-info/SOURCES.txt +0 -0
  157. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal.egg-info/dependency_links.txt +0 -0
  158. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal.egg-info/entry_points.txt +0 -0
  159. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal.egg-info/requires.txt +0 -0
  160. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal.egg-info/top_level.txt +0 -0
  161. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_docs/__init__.py +0 -0
  162. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_docs/gen_cli_docs.py +0 -0
  163. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_docs/gen_reference_docs.py +0 -0
  164. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_docs/mdmd/__init__.py +0 -0
  165. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_docs/mdmd/mdmd.py +0 -0
  166. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_docs/mdmd/signatures.py +0 -0
  167. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_proto/__init__.py +0 -0
  168. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_proto/api.proto +0 -0
  169. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_proto/api_grpc.py +0 -0
  170. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_proto/api_pb2.py +0 -0
  171. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_proto/api_pb2.pyi +0 -0
  172. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_proto/api_pb2_grpc.py +0 -0
  173. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_proto/api_pb2_grpc.pyi +0 -0
  174. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_proto/modal_api_grpc.py +0 -0
  175. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_proto/modal_options_grpc.py +0 -0
  176. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_proto/options.proto +0 -0
  177. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_proto/options_grpc.py +0 -0
  178. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_proto/options_pb2.py +0 -0
  179. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_proto/options_pb2.pyi +0 -0
  180. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_proto/options_pb2_grpc.py +0 -0
  181. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_proto/options_pb2_grpc.pyi +0 -0
  182. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_proto/py.typed +0 -0
  183. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/modal_version/__main__.py +0 -0
  184. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/pyproject.toml +0 -0
  185. {modal-1.0.6.dev31 → modal-1.0.6.dev32}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.0.6.dev31
3
+ Version: 1.0.6.dev32
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -31,7 +31,7 @@ class _Client:
31
31
  server_url: str,
32
32
  client_type: int,
33
33
  credentials: typing.Optional[tuple[str, str]],
34
- version: str = "1.0.6.dev31",
34
+ version: str = "1.0.6.dev32",
35
35
  ):
36
36
  """mdmd:hidden
37
37
  The Modal client object is not intended to be instantiated directly by users.
@@ -160,7 +160,7 @@ class Client:
160
160
  server_url: str,
161
161
  client_type: int,
162
162
  credentials: typing.Optional[tuple[str, str]],
163
- version: str = "1.0.6.dev31",
163
+ version: str = "1.0.6.dev32",
164
164
  ):
165
165
  """mdmd:hidden
166
166
  The Modal client object is not intended to be instantiated directly by users.
@@ -117,10 +117,15 @@ class FileWatchEvent:
117
117
  # The FileIO class is designed to mimic Python's io.FileIO
118
118
  # See https://github.com/python/cpython/blob/main/Lib/_pyio.py#L1459
119
119
  class _FileIO(Generic[T]):
120
- """FileIO handle, used in the Sandbox filesystem API.
120
+ """[Alpha] FileIO handle, used in the Sandbox filesystem API.
121
121
 
122
122
  The API is designed to mimic Python's io.FileIO.
123
123
 
124
+ Currently this API is in Alpha and is subject to change. File I/O operations
125
+ may be limited in size to 100 MiB, and the throughput of requests is
126
+ restricted in the current implementation. For our recommendations on large file transfers
127
+ see the Sandbox [filesystem access guide](https://modal.com/docs/guide/sandbox-files).
128
+
124
129
  **Usage**
125
130
 
126
131
  ```python
@@ -144,7 +149,7 @@ class _FileIO(Generic[T]):
144
149
  _task_id: str = ""
145
150
  _file_descriptor: str = ""
146
151
  _client: _Client
147
- _watch_output_buffer: list[Union[Optional[bytes],Exception]] = []
152
+ _watch_output_buffer: list[Union[Optional[bytes], Exception]] = []
148
153
 
149
154
  def __init__(self, client: _Client, task_id: str) -> None:
150
155
  self._client = client
@@ -51,10 +51,15 @@ class FileWatchEvent:
51
51
  ...
52
52
 
53
53
  class _FileIO(typing.Generic[T]):
54
- """FileIO handle, used in the Sandbox filesystem API.
54
+ """[Alpha] FileIO handle, used in the Sandbox filesystem API.
55
55
 
56
56
  The API is designed to mimic Python's io.FileIO.
57
57
 
58
+ Currently this API is in Alpha and is subject to change. File I/O operations
59
+ may be limited in size to 100 MiB, and the throughput of requests is
60
+ restricted in the current implementation. For our recommendations on large file transfers
61
+ see the Sandbox [filesystem access guide](https://modal.com/docs/guide/sandbox-files).
62
+
58
63
  **Usage**
59
64
 
60
65
  ```python
@@ -216,10 +221,15 @@ SUPERSELF = typing.TypeVar("SUPERSELF", covariant=True)
216
221
  T_INNER = typing.TypeVar("T_INNER", covariant=True)
217
222
 
218
223
  class FileIO(typing.Generic[T]):
219
- """FileIO handle, used in the Sandbox filesystem API.
224
+ """[Alpha] FileIO handle, used in the Sandbox filesystem API.
220
225
 
221
226
  The API is designed to mimic Python's io.FileIO.
222
227
 
228
+ Currently this API is in Alpha and is subject to change. File I/O operations
229
+ may be limited in size to 100 MiB, and the throughput of requests is
230
+ restricted in the current implementation. For our recommendations on large file transfers
231
+ see the Sandbox [filesystem access guide](https://modal.com/docs/guide/sandbox-files).
232
+
223
233
  **Usage**
224
234
 
225
235
  ```python
@@ -745,7 +745,7 @@ class _Sandbox(_Object, type_prefix="sb"):
745
745
  path: str,
746
746
  mode: Union["_typeshed.OpenTextMode", "_typeshed.OpenBinaryMode"] = "r",
747
747
  ):
748
- """Open a file in the Sandbox and return a FileIO handle.
748
+ """[Alpha] Open a file in the Sandbox and return a FileIO handle.
749
749
 
750
750
  See the [`FileIO`](https://modal.com/docs/reference/modal.file_io#modalfile_iofileio) docs for more information.
751
751
 
@@ -762,17 +762,17 @@ class _Sandbox(_Object, type_prefix="sb"):
762
762
  return await _FileIO.create(path, mode, self._client, task_id)
763
763
 
764
764
  async def ls(self, path: str) -> list[str]:
765
- """List the contents of a directory in the Sandbox."""
765
+ """[Alpha] List the contents of a directory in the Sandbox."""
766
766
  task_id = await self._get_task_id()
767
767
  return await _FileIO.ls(path, self._client, task_id)
768
768
 
769
769
  async def mkdir(self, path: str, parents: bool = False) -> None:
770
- """Create a new directory in the Sandbox."""
770
+ """[Alpha] Create a new directory in the Sandbox."""
771
771
  task_id = await self._get_task_id()
772
772
  return await _FileIO.mkdir(path, self._client, task_id, parents)
773
773
 
774
774
  async def rm(self, path: str, recursive: bool = False) -> None:
775
- """Remove a file or directory in the Sandbox."""
775
+ """[Alpha] Remove a file or directory in the Sandbox."""
776
776
  task_id = await self._get_task_id()
777
777
  return await _FileIO.rm(path, self._client, task_id, recursive)
778
778
 
@@ -783,7 +783,7 @@ class _Sandbox(_Object, type_prefix="sb"):
783
783
  recursive: Optional[bool] = None,
784
784
  timeout: Optional[int] = None,
785
785
  ) -> AsyncIterator[FileWatchEvent]:
786
- """Watch a file or directory in the Sandbox for changes."""
786
+ """[Alpha] Watch a file or directory in the Sandbox for changes."""
787
787
  task_id = await self._get_task_id()
788
788
  async for event in _FileIO.watch(path, self._client, task_id, filter, recursive, timeout):
789
789
  yield event
@@ -245,15 +245,15 @@ class _Sandbox(modal._object._Object):
245
245
  @typing.overload
246
246
  async def open(self, path: str, mode: _typeshed.OpenBinaryMode) -> modal.file_io._FileIO[bytes]: ...
247
247
  async def ls(self, path: str) -> list[str]:
248
- """List the contents of a directory in the Sandbox."""
248
+ """[Alpha] List the contents of a directory in the Sandbox."""
249
249
  ...
250
250
 
251
251
  async def mkdir(self, path: str, parents: bool = False) -> None:
252
- """Create a new directory in the Sandbox."""
252
+ """[Alpha] Create a new directory in the Sandbox."""
253
253
  ...
254
254
 
255
255
  async def rm(self, path: str, recursive: bool = False) -> None:
256
- """Remove a file or directory in the Sandbox."""
256
+ """[Alpha] Remove a file or directory in the Sandbox."""
257
257
  ...
258
258
 
259
259
  def watch(
@@ -263,7 +263,7 @@ class _Sandbox(modal._object._Object):
263
263
  recursive: typing.Optional[bool] = None,
264
264
  timeout: typing.Optional[int] = None,
265
265
  ) -> typing.AsyncIterator[modal.file_io.FileWatchEvent]:
266
- """Watch a file or directory in the Sandbox for changes."""
266
+ """[Alpha] Watch a file or directory in the Sandbox for changes."""
267
267
  ...
268
268
 
269
269
  @property
@@ -761,33 +761,33 @@ class Sandbox(modal.object.Object):
761
761
 
762
762
  class __ls_spec(typing_extensions.Protocol[SUPERSELF]):
763
763
  def __call__(self, /, path: str) -> list[str]:
764
- """List the contents of a directory in the Sandbox."""
764
+ """[Alpha] List the contents of a directory in the Sandbox."""
765
765
  ...
766
766
 
767
767
  async def aio(self, /, path: str) -> list[str]:
768
- """List the contents of a directory in the Sandbox."""
768
+ """[Alpha] List the contents of a directory in the Sandbox."""
769
769
  ...
770
770
 
771
771
  ls: __ls_spec[typing_extensions.Self]
772
772
 
773
773
  class __mkdir_spec(typing_extensions.Protocol[SUPERSELF]):
774
774
  def __call__(self, /, path: str, parents: bool = False) -> None:
775
- """Create a new directory in the Sandbox."""
775
+ """[Alpha] Create a new directory in the Sandbox."""
776
776
  ...
777
777
 
778
778
  async def aio(self, /, path: str, parents: bool = False) -> None:
779
- """Create a new directory in the Sandbox."""
779
+ """[Alpha] Create a new directory in the Sandbox."""
780
780
  ...
781
781
 
782
782
  mkdir: __mkdir_spec[typing_extensions.Self]
783
783
 
784
784
  class __rm_spec(typing_extensions.Protocol[SUPERSELF]):
785
785
  def __call__(self, /, path: str, recursive: bool = False) -> None:
786
- """Remove a file or directory in the Sandbox."""
786
+ """[Alpha] Remove a file or directory in the Sandbox."""
787
787
  ...
788
788
 
789
789
  async def aio(self, /, path: str, recursive: bool = False) -> None:
790
- """Remove a file or directory in the Sandbox."""
790
+ """[Alpha] Remove a file or directory in the Sandbox."""
791
791
  ...
792
792
 
793
793
  rm: __rm_spec[typing_extensions.Self]
@@ -801,7 +801,7 @@ class Sandbox(modal.object.Object):
801
801
  recursive: typing.Optional[bool] = None,
802
802
  timeout: typing.Optional[int] = None,
803
803
  ) -> typing.Iterator[modal.file_io.FileWatchEvent]:
804
- """Watch a file or directory in the Sandbox for changes."""
804
+ """[Alpha] Watch a file or directory in the Sandbox for changes."""
805
805
  ...
806
806
 
807
807
  def aio(
@@ -812,7 +812,7 @@ class Sandbox(modal.object.Object):
812
812
  recursive: typing.Optional[bool] = None,
813
813
  timeout: typing.Optional[int] = None,
814
814
  ) -> typing.AsyncIterator[modal.file_io.FileWatchEvent]:
815
- """Watch a file or directory in the Sandbox for changes."""
815
+ """[Alpha] Watch a file or directory in the Sandbox for changes."""
816
816
  ...
817
817
 
818
818
  watch: __watch_spec[typing_extensions.Self]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.0.6.dev31
3
+ Version: 1.0.6.dev32
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.0.6.dev31"
4
+ __version__ = "1.0.6.dev32"
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