modal 1.0.0.dev7__tar.gz → 1.0.0.dev10__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 (183) hide show
  1. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/PKG-INFO +1 -1
  2. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_functions.py +1 -25
  3. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_serialization.py +2 -2
  4. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/function_utils.py +3 -6
  5. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/grpc_utils.py +6 -1
  6. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/programs/run_jupyter.py +1 -1
  7. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/programs/vscode.py +1 -1
  8. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/client.pyi +2 -2
  9. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/config.py +0 -5
  10. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal.egg-info/PKG-INFO +1 -1
  11. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_version/__init__.py +1 -1
  12. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/LICENSE +0 -0
  13. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/README.md +0 -0
  14. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/__init__.py +0 -0
  15. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/__main__.py +0 -0
  16. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_clustered_functions.py +0 -0
  17. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_clustered_functions.pyi +0 -0
  18. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_container_entrypoint.py +0 -0
  19. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_ipython.py +0 -0
  20. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_location.py +0 -0
  21. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_object.py +0 -0
  22. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_output.py +0 -0
  23. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_partial_function.py +0 -0
  24. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_pty.py +0 -0
  25. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_resolver.py +0 -0
  26. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_resources.py +0 -0
  27. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_runtime/__init__.py +0 -0
  28. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_runtime/asgi.py +0 -0
  29. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_runtime/container_io_manager.py +0 -0
  30. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_runtime/container_io_manager.pyi +0 -0
  31. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_runtime/execution_context.py +0 -0
  32. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_runtime/execution_context.pyi +0 -0
  33. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  34. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_runtime/telemetry.py +0 -0
  35. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_runtime/user_code_imports.py +0 -0
  36. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_traceback.py +0 -0
  37. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_tunnel.py +0 -0
  38. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_tunnel.pyi +0 -0
  39. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_type_manager.py +0 -0
  40. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/__init__.py +0 -0
  41. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/app_utils.py +0 -0
  42. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/async_utils.py +0 -0
  43. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/blob_utils.py +0 -0
  44. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/bytes_io_segment_payload.py +0 -0
  45. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/deprecation.py +0 -0
  46. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/docker_utils.py +0 -0
  47. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/git_utils.py +0 -0
  48. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/grpc_testing.py +0 -0
  49. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/hash_utils.py +0 -0
  50. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/http_utils.py +0 -0
  51. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/jwt_utils.py +0 -0
  52. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/logger.py +0 -0
  53. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/mount_utils.py +0 -0
  54. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/name_utils.py +0 -0
  55. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/package_utils.py +0 -0
  56. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/pattern_utils.py +0 -0
  57. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/rand_pb_testing.py +0 -0
  58. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_utils/shell_utils.py +0 -0
  59. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_vendor/__init__.py +0 -0
  60. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  61. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_vendor/cloudpickle.py +0 -0
  62. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_vendor/tblib.py +0 -0
  63. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/_watcher.py +0 -0
  64. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/app.py +0 -0
  65. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/app.pyi +0 -0
  66. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/call_graph.py +0 -0
  67. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/__init__.py +0 -0
  68. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/_download.py +0 -0
  69. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/_traceback.py +0 -0
  70. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/app.py +0 -0
  71. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/cluster.py +0 -0
  72. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/config.py +0 -0
  73. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/container.py +0 -0
  74. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/dict.py +0 -0
  75. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/entry_point.py +0 -0
  76. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/environment.py +0 -0
  77. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/import_refs.py +0 -0
  78. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/launch.py +0 -0
  79. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/network_file_system.py +0 -0
  80. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/profile.py +0 -0
  81. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/programs/__init__.py +0 -0
  82. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/queues.py +0 -0
  83. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/run.py +0 -0
  84. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/secret.py +0 -0
  85. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/token.py +0 -0
  86. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/utils.py +0 -0
  87. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cli/volume.py +0 -0
  88. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/client.py +0 -0
  89. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cloud_bucket_mount.py +0 -0
  90. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cloud_bucket_mount.pyi +0 -0
  91. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cls.py +0 -0
  92. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/cls.pyi +0 -0
  93. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/container_process.py +0 -0
  94. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/container_process.pyi +0 -0
  95. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/dict.py +0 -0
  96. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/dict.pyi +0 -0
  97. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/environments.py +0 -0
  98. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/environments.pyi +0 -0
  99. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/exception.py +0 -0
  100. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/experimental/__init__.py +0 -0
  101. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/experimental/ipython.py +0 -0
  102. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/file_io.py +0 -0
  103. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/file_io.pyi +0 -0
  104. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/file_pattern_matcher.py +0 -0
  105. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/functions.py +0 -0
  106. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/functions.pyi +0 -0
  107. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/gpu.py +0 -0
  108. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/image.py +0 -0
  109. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/image.pyi +0 -0
  110. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/io_streams.py +0 -0
  111. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/io_streams.pyi +0 -0
  112. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/mount.py +0 -0
  113. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/mount.pyi +0 -0
  114. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/network_file_system.py +0 -0
  115. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/network_file_system.pyi +0 -0
  116. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/object.py +0 -0
  117. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/object.pyi +0 -0
  118. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/output.py +0 -0
  119. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/parallel_map.py +0 -0
  120. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/parallel_map.pyi +0 -0
  121. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/partial_function.py +0 -0
  122. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/partial_function.pyi +0 -0
  123. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/proxy.py +0 -0
  124. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/proxy.pyi +0 -0
  125. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/py.typed +0 -0
  126. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/queue.py +0 -0
  127. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/queue.pyi +0 -0
  128. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/requirements/2023.12.312.txt +0 -0
  129. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/requirements/2023.12.txt +0 -0
  130. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/requirements/2024.04.txt +0 -0
  131. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/requirements/2024.10.txt +0 -0
  132. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/requirements/PREVIEW.txt +0 -0
  133. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/requirements/README.md +0 -0
  134. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/requirements/base-images.json +0 -0
  135. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/retries.py +0 -0
  136. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/runner.py +0 -0
  137. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/runner.pyi +0 -0
  138. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/running_app.py +0 -0
  139. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/sandbox.py +0 -0
  140. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/sandbox.pyi +0 -0
  141. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/schedule.py +0 -0
  142. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/scheduler_placement.py +0 -0
  143. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/secret.py +0 -0
  144. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/secret.pyi +0 -0
  145. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/serving.py +0 -0
  146. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/serving.pyi +0 -0
  147. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/snapshot.py +0 -0
  148. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/snapshot.pyi +0 -0
  149. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/stream_type.py +0 -0
  150. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/token_flow.py +0 -0
  151. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/token_flow.pyi +0 -0
  152. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/volume.py +0 -0
  153. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal/volume.pyi +0 -0
  154. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal.egg-info/SOURCES.txt +0 -0
  155. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal.egg-info/dependency_links.txt +0 -0
  156. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal.egg-info/entry_points.txt +0 -0
  157. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal.egg-info/requires.txt +0 -0
  158. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal.egg-info/top_level.txt +0 -0
  159. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_docs/__init__.py +0 -0
  160. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_docs/gen_cli_docs.py +0 -0
  161. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_docs/gen_reference_docs.py +0 -0
  162. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_docs/mdmd/__init__.py +0 -0
  163. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_docs/mdmd/mdmd.py +0 -0
  164. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_docs/mdmd/signatures.py +0 -0
  165. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_proto/__init__.py +0 -0
  166. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_proto/api.proto +0 -0
  167. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_proto/api_grpc.py +0 -0
  168. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_proto/api_pb2.py +0 -0
  169. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_proto/api_pb2.pyi +0 -0
  170. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_proto/api_pb2_grpc.py +0 -0
  171. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_proto/api_pb2_grpc.pyi +0 -0
  172. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_proto/modal_api_grpc.py +0 -0
  173. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_proto/modal_options_grpc.py +0 -0
  174. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_proto/options.proto +0 -0
  175. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_proto/options_grpc.py +0 -0
  176. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_proto/options_pb2.py +0 -0
  177. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_proto/options_pb2.pyi +0 -0
  178. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_proto/options_pb2_grpc.py +0 -0
  179. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_proto/options_pb2_grpc.pyi +0 -0
  180. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_proto/py.typed +0 -0
  181. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/modal_version/__main__.py +0 -0
  182. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/pyproject.toml +0 -0
  183. {modal-1.0.0.dev7 → modal-1.0.0.dev10}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.0.0.dev7
3
+ Version: 1.0.0.dev10
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -71,7 +71,7 @@ from .exception import (
71
71
  )
72
72
  from .gpu import GPU_T, parse_gpu_config
73
73
  from .image import _Image
74
- from .mount import _get_client_mount, _Mount, get_sys_modules_mounts
74
+ from .mount import _get_client_mount, _Mount
75
75
  from .network_file_system import _NetworkFileSystem, network_file_system_mount_protos
76
76
  from .output import _get_output_manager
77
77
  from .parallel_map import (
@@ -581,30 +581,6 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
581
581
  *entrypoint_mounts.values(),
582
582
  ]
583
583
 
584
- if include_source_mode is IncludeSourceMode.INCLUDE_FIRST_PARTY and is_local():
585
- auto_mounts = get_sys_modules_mounts()
586
- # don't need to add entrypoint modules to automounts:
587
- for entrypoint_module in entrypoint_mounts:
588
- auto_mounts.pop(entrypoint_module, None)
589
-
590
- warn_missing_modules = set(auto_mounts.keys()) - image._added_python_source_set
591
-
592
- if warn_missing_modules:
593
- python_stringified_modules = ", ".join(f'"{mod}"' for mod in sorted(warn_missing_modules))
594
- deprecation_warning(
595
- (2025, 2, 3),
596
- (
597
- 'Modal will stop implicitly adding local Python modules to the Image ("automounting") in a '
598
- "future update. The following modules need to be explicitly added for future "
599
- "compatibility:\n"
600
- )
601
- + "\n".join(sorted([f"* {m}" for m in warn_missing_modules]))
602
- + "\n\n"
603
- + (f"e.g.:\nimage_with_source = my_image.add_local_python_source({python_stringified_modules})\n\n")
604
- + "For more information, see https://modal.com/docs/guide/modal-1-0-migration",
605
- )
606
- all_mounts += auto_mounts.values()
607
-
608
584
  retry_policy = _parse_retries(
609
585
  retries, f"Function '{info.get_tag()}'" if info.raw_f else f"Class '{info.get_tag()}'"
610
586
  )
@@ -324,8 +324,8 @@ def _deserialize_asgi(asgi: api_pb2.Asgi) -> Any:
324
324
  elif msg_type == "websocket_send":
325
325
  return {
326
326
  "type": "websocket.send",
327
- "bytes": asgi.websocket_send.bytes if asgi.websocket_send.HasField("bytes") else None,
328
- "text": asgi.websocket_send.text if asgi.websocket_send.HasField("text") else None,
327
+ **({"bytes": asgi.websocket_send.bytes} if asgi.websocket_send.HasField("bytes") else {}),
328
+ **({"text": asgi.websocket_send.text} if asgi.websocket_send.HasField("text") else {}),
329
329
  }
330
330
  elif msg_type == "websocket_disconnect":
331
331
  return {
@@ -23,7 +23,7 @@ from .._serialization import (
23
23
  signature_to_parameter_specs,
24
24
  )
25
25
  from .._traceback import append_modal_tb
26
- from ..config import config, logger
26
+ from ..config import logger
27
27
  from ..exception import (
28
28
  DeserializationError,
29
29
  ExecutionError,
@@ -627,8 +627,7 @@ class FunctionCreationStatus:
627
627
 
628
628
  class IncludeSourceMode(enum.Enum):
629
629
  INCLUDE_NOTHING = False # can only be set in source, can't be set in config
630
- INCLUDE_MAIN_PACKAGE = True # also represented by AUTOMOUNT=0 in config
631
- INCLUDE_FIRST_PARTY = "legacy" # mounts all "local" modules in sys.modules - represented by AUTOMOUNT=1 in config
630
+ INCLUDE_MAIN_PACKAGE = True # Default behavior
632
631
 
633
632
 
634
633
  def get_include_source_mode(function_or_app_specific) -> IncludeSourceMode:
@@ -650,6 +649,4 @@ def get_include_source_mode(function_or_app_specific) -> IncludeSourceMode:
650
649
  # explicitly set in app/function
651
650
  return IncludeSourceMode(function_or_app_specific)
652
651
 
653
- # note that the automount config boolean isn't a 1-1 mapping with include_source!
654
- legacy_automount_mode: bool = config.get("automount")
655
- return IncludeSourceMode.INCLUDE_FIRST_PARTY if legacy_automount_mode else IncludeSourceMode.INCLUDE_MAIN_PACKAGE
652
+ return IncludeSourceMode.INCLUDE_MAIN_PACKAGE
@@ -148,15 +148,20 @@ def create_channel(
148
148
 
149
149
  logger.debug(f"Sending request to {event.method_name}")
150
150
 
151
- async def recv_trailing_metadata(trailing_metadata: grpclib.events.RecvTrailingMetadata) -> None:
151
+ async def recv_initial_metadata(initial_metadata: grpclib.events.RecvInitialMetadata) -> None:
152
152
  # If we receive an auth token from the server, include it in all future requests.
153
153
  # TODO(nathan): This isn't perfect because the metadata isn't propagated when the
154
154
  # process is forked and a new channel is created. This is OK for now since this
155
155
  # token is only used by the experimental input plane
156
+ if token := initial_metadata.metadata.get("x-modal-auth-token"):
157
+ metadata["x-modal-auth-token"] = str(token)
158
+
159
+ async def recv_trailing_metadata(trailing_metadata: grpclib.events.RecvTrailingMetadata) -> None:
156
160
  if token := trailing_metadata.metadata.get("x-modal-auth-token"):
157
161
  metadata["x-modal-auth-token"] = str(token)
158
162
 
159
163
  grpclib.events.listen(channel, grpclib.events.SendRequest, send_request)
164
+ grpclib.events.listen(channel, grpclib.events.RecvInitialMetadata, recv_initial_metadata)
160
165
  grpclib.events.listen(channel, grpclib.events.RecvTrailingMetadata, recv_trailing_metadata)
161
166
 
162
167
  return channel
@@ -15,7 +15,7 @@ from modal import App, Image, Queue, Secret, Volume, forward
15
15
  # Passed by `modal launch` locally via CLI, plumbed to remote runner through secrets.
16
16
  args: dict[str, Any] = json.loads(os.environ.get("MODAL_LAUNCH_ARGS", "{}"))
17
17
 
18
- app = App(include_source=True) # TODO: remove include_source=True when automount is disabled by default
18
+ app = App()
19
19
 
20
20
  image = Image.from_registry(args.get("image"), add_python=args.get("add_python")).pip_install("jupyterlab")
21
21
 
@@ -22,7 +22,7 @@ CODE_SERVER_ENTRYPOINT = (
22
22
  FIXUD_INSTALLER = "https://github.com/boxboat/fixuid/releases/download/v0.6.0/fixuid-0.6.0-linux-$ARCH.tar.gz"
23
23
 
24
24
 
25
- app = App(include_source=True) # TODO: remove include_source=True when automount is disabled by default
25
+ app = App()
26
26
  image = (
27
27
  Image.from_registry(args.get("image"), add_python="3.11")
28
28
  .apt_install("curl", "dumb-init", "git", "git-lfs")
@@ -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.0.dev7",
34
+ version: str = "1.0.0.dev10",
35
35
  ): ...
36
36
  def is_closed(self) -> bool: ...
37
37
  @property
@@ -94,7 +94,7 @@ class Client:
94
94
  server_url: str,
95
95
  client_type: int,
96
96
  credentials: typing.Optional[tuple[str, str]],
97
- version: str = "1.0.0.dev7",
97
+ version: str = "1.0.0.dev10",
98
98
  ): ...
99
99
  def is_closed(self) -> bool: ...
100
100
  @property
@@ -51,10 +51,6 @@ Other possible configuration options are:
51
51
  Defaults to 10.
52
52
  Number of seconds to wait for logs to drain when closing the session,
53
53
  before giving up.
54
- * `automount` (in the .toml file) / `MODAL_AUTOMOUNT` (as an env var).
55
- Defaults to True.
56
- By default, Modal automatically mounts modules imported in the current scope, that
57
- are deemed to be "local". This can be turned off by setting this to False.
58
54
  * `force_build` (in the .toml file) / `MODAL_FORCE_BUILD` (as an env var).
59
55
  Defaults to False.
60
56
  When set, ignores the Image cache and builds all Image layers. Note that this
@@ -233,7 +229,6 @@ _SETTINGS = {
233
229
  "sync_entrypoint": _Setting(),
234
230
  "logs_timeout": _Setting(10, float),
235
231
  "image_id": _Setting(),
236
- "automount": _Setting(True, transform=_to_boolean),
237
232
  "heartbeat_interval": _Setting(15, float),
238
233
  "function_runtime": _Setting(),
239
234
  "function_runtime_debug": _Setting(False, transform=_to_boolean), # For internal debugging use.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.0.0.dev7
3
+ Version: 1.0.0.dev10
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.0.dev7"
4
+ __version__ = "1.0.0.dev10"
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