modal 1.0.6.dev0__tar.gz → 1.0.6.dev2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/PKG-INFO +1 -1
  2. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/client.pyi +2 -2
  3. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/image.py +16 -4
  4. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/image.pyi +12 -2
  5. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal.egg-info/PKG-INFO +1 -1
  6. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_version/__init__.py +1 -1
  7. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/LICENSE +0 -0
  8. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/README.md +0 -0
  9. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/__init__.py +0 -0
  10. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/__main__.py +0 -0
  11. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_clustered_functions.py +0 -0
  12. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_clustered_functions.pyi +0 -0
  13. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_container_entrypoint.py +0 -0
  14. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_functions.py +0 -0
  15. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_ipython.py +0 -0
  16. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_location.py +0 -0
  17. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_object.py +0 -0
  18. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_output.py +0 -0
  19. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_partial_function.py +0 -0
  20. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_pty.py +0 -0
  21. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_resolver.py +0 -0
  22. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_resources.py +0 -0
  23. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_runtime/__init__.py +0 -0
  24. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_runtime/asgi.py +0 -0
  25. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_runtime/container_io_manager.py +0 -0
  26. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_runtime/container_io_manager.pyi +0 -0
  27. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_runtime/execution_context.py +0 -0
  28. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_runtime/execution_context.pyi +0 -0
  29. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  30. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_runtime/telemetry.py +0 -0
  31. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_runtime/user_code_imports.py +0 -0
  32. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_serialization.py +0 -0
  33. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_traceback.py +0 -0
  34. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_tunnel.py +0 -0
  35. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_tunnel.pyi +0 -0
  36. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_type_manager.py +0 -0
  37. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/__init__.py +0 -0
  38. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/app_utils.py +0 -0
  39. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/async_utils.py +0 -0
  40. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/blob_utils.py +0 -0
  41. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/bytes_io_segment_payload.py +0 -0
  42. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/deprecation.py +0 -0
  43. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/docker_utils.py +0 -0
  44. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/function_utils.py +0 -0
  45. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/git_utils.py +0 -0
  46. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/grpc_testing.py +0 -0
  47. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/grpc_utils.py +0 -0
  48. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/hash_utils.py +0 -0
  49. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/http_utils.py +0 -0
  50. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/jwt_utils.py +0 -0
  51. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/logger.py +0 -0
  52. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/mount_utils.py +0 -0
  53. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/name_utils.py +0 -0
  54. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/package_utils.py +0 -0
  55. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/pattern_utils.py +0 -0
  56. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/rand_pb_testing.py +0 -0
  57. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/shell_utils.py +0 -0
  58. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_utils/time_utils.py +0 -0
  59. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_vendor/__init__.py +0 -0
  60. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  61. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_vendor/cloudpickle.py +0 -0
  62. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_vendor/tblib.py +0 -0
  63. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/_watcher.py +0 -0
  64. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/app.py +0 -0
  65. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/app.pyi +0 -0
  66. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/call_graph.py +0 -0
  67. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/__init__.py +0 -0
  68. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/_download.py +0 -0
  69. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/_traceback.py +0 -0
  70. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/app.py +0 -0
  71. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/cluster.py +0 -0
  72. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/config.py +0 -0
  73. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/container.py +0 -0
  74. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/dict.py +0 -0
  75. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/entry_point.py +0 -0
  76. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/environment.py +0 -0
  77. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/import_refs.py +0 -0
  78. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/launch.py +0 -0
  79. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/network_file_system.py +0 -0
  80. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/profile.py +0 -0
  81. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/programs/__init__.py +0 -0
  82. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/programs/run_jupyter.py +0 -0
  83. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/programs/vscode.py +0 -0
  84. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/queues.py +0 -0
  85. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/run.py +0 -0
  86. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/secret.py +0 -0
  87. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/token.py +0 -0
  88. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/utils.py +0 -0
  89. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cli/volume.py +0 -0
  90. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/client.py +0 -0
  91. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cloud_bucket_mount.py +0 -0
  92. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cloud_bucket_mount.pyi +0 -0
  93. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cls.py +0 -0
  94. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/cls.pyi +0 -0
  95. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/config.py +0 -0
  96. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/container_process.py +0 -0
  97. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/container_process.pyi +0 -0
  98. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/dict.py +0 -0
  99. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/dict.pyi +0 -0
  100. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/environments.py +0 -0
  101. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/environments.pyi +0 -0
  102. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/exception.py +0 -0
  103. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/experimental/__init__.py +0 -0
  104. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/experimental/ipython.py +0 -0
  105. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/file_io.py +0 -0
  106. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/file_io.pyi +0 -0
  107. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/file_pattern_matcher.py +0 -0
  108. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/functions.py +0 -0
  109. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/functions.pyi +0 -0
  110. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/gpu.py +0 -0
  111. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/io_streams.py +0 -0
  112. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/io_streams.pyi +0 -0
  113. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/mount.py +0 -0
  114. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/mount.pyi +0 -0
  115. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/network_file_system.py +0 -0
  116. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/network_file_system.pyi +0 -0
  117. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/object.py +0 -0
  118. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/object.pyi +0 -0
  119. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/output.py +0 -0
  120. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/parallel_map.py +0 -0
  121. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/parallel_map.pyi +0 -0
  122. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/partial_function.py +0 -0
  123. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/partial_function.pyi +0 -0
  124. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/proxy.py +0 -0
  125. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/proxy.pyi +0 -0
  126. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/py.typed +0 -0
  127. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/queue.py +0 -0
  128. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/queue.pyi +0 -0
  129. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/requirements/2023.12.312.txt +0 -0
  130. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/requirements/2023.12.txt +0 -0
  131. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/requirements/2024.04.txt +0 -0
  132. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/requirements/2024.10.txt +0 -0
  133. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/requirements/PREVIEW.txt +0 -0
  134. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/requirements/README.md +0 -0
  135. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/requirements/base-images.json +0 -0
  136. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/retries.py +0 -0
  137. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/runner.py +0 -0
  138. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/runner.pyi +0 -0
  139. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/running_app.py +0 -0
  140. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/sandbox.py +0 -0
  141. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/sandbox.pyi +0 -0
  142. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/schedule.py +0 -0
  143. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/scheduler_placement.py +0 -0
  144. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/secret.py +0 -0
  145. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/secret.pyi +0 -0
  146. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/serving.py +0 -0
  147. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/serving.pyi +0 -0
  148. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/snapshot.py +0 -0
  149. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/snapshot.pyi +0 -0
  150. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/stream_type.py +0 -0
  151. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/token_flow.py +0 -0
  152. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/token_flow.pyi +0 -0
  153. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/volume.py +0 -0
  154. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal/volume.pyi +0 -0
  155. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal.egg-info/SOURCES.txt +0 -0
  156. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal.egg-info/dependency_links.txt +0 -0
  157. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal.egg-info/entry_points.txt +0 -0
  158. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal.egg-info/requires.txt +0 -0
  159. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal.egg-info/top_level.txt +0 -0
  160. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_docs/__init__.py +0 -0
  161. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_docs/gen_cli_docs.py +0 -0
  162. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_docs/gen_reference_docs.py +0 -0
  163. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_docs/mdmd/__init__.py +0 -0
  164. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_docs/mdmd/mdmd.py +0 -0
  165. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_docs/mdmd/signatures.py +0 -0
  166. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_proto/__init__.py +0 -0
  167. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_proto/api.proto +0 -0
  168. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_proto/api_grpc.py +0 -0
  169. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_proto/api_pb2.py +0 -0
  170. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_proto/api_pb2.pyi +0 -0
  171. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_proto/api_pb2_grpc.py +0 -0
  172. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_proto/api_pb2_grpc.pyi +0 -0
  173. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_proto/modal_api_grpc.py +0 -0
  174. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_proto/modal_options_grpc.py +0 -0
  175. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_proto/options.proto +0 -0
  176. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_proto/options_grpc.py +0 -0
  177. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_proto/options_pb2.py +0 -0
  178. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_proto/options_pb2.pyi +0 -0
  179. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_proto/options_pb2_grpc.py +0 -0
  180. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_proto/options_pb2_grpc.pyi +0 -0
  181. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_proto/py.typed +0 -0
  182. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/modal_version/__main__.py +0 -0
  183. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/pyproject.toml +0 -0
  184. {modal-1.0.6.dev0 → modal-1.0.6.dev2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.0.6.dev0
3
+ Version: 1.0.6.dev2
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.dev0",
34
+ version: str = "1.0.6.dev2",
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.dev0",
163
+ version: str = "1.0.6.dev2",
164
164
  ):
165
165
  """mdmd:hidden
166
166
  The Modal client object is not intended to be instantiated directly by users.
@@ -1227,14 +1227,15 @@ class _Image(_Object, type_prefix="im"):
1227
1227
  poetry_lockfile: Optional[str] = None, # Path to lockfile. If not provided, uses poetry.lock in same directory.
1228
1228
  *,
1229
1229
  ignore_lockfile: bool = False, # If set to True, do not use poetry.lock, even when present
1230
- # If set to True, use old installer. See https://github.com/python-poetry/poetry/issues/3336
1231
- old_installer: bool = False,
1232
1230
  force_build: bool = False, # Ignore cached builds, similar to 'docker build --no-cache'
1233
1231
  # Selected optional dependency groups to install (See https://python-poetry.org/docs/cli/#install)
1234
1232
  with_: list[str] = [],
1235
1233
  # Selected optional dependency groups to exclude (See https://python-poetry.org/docs/cli/#install)
1236
1234
  without: list[str] = [],
1237
1235
  only: list[str] = [], # Only install dependency groups specifed in this list.
1236
+ poetry_version: Optional[str] = "latest", # Version of poetry to install, or None to skip installation
1237
+ # If set to True, use old installer. See https://github.com/python-poetry/poetry/issues/3336
1238
+ old_installer: bool = False,
1238
1239
  secrets: Sequence[_Secret] = [],
1239
1240
  gpu: GPU_T = None,
1240
1241
  ) -> "_Image":
@@ -1245,12 +1246,22 @@ class _Image(_Object, type_prefix="im"):
1245
1246
 
1246
1247
  Note that the root project of the poetry project is not installed, only the dependencies.
1247
1248
  For including local python source files see `add_local_python_source`
1249
+
1250
+ Poetry will be installed to the Image (using pip) unless `poetry_version` is set to None.
1251
+ Note that the interpretation of `poetry_version="latest"` depends on the Modal Image Builder
1252
+ version, with versions 2024.10 and earlier limiting poetry to 1.x.
1248
1253
  """
1249
1254
 
1250
1255
  def build_dockerfile(version: ImageBuilderVersion) -> DockerfileSpec:
1251
1256
  context_files = {"/.pyproject.toml": os.path.expanduser(poetry_pyproject_toml)}
1252
1257
 
1253
- commands = ["FROM base", "RUN python -m pip install poetry~=1.7"]
1258
+ commands = ["FROM base"]
1259
+ if poetry_version is not None:
1260
+ if poetry_version == "latest":
1261
+ poetry_spec = "~=1.7" if version <= "2024.10" else ""
1262
+ else:
1263
+ poetry_spec = f"=={poetry_version}" # TODO: support other versions
1264
+ commands += [f"RUN python -m pip install poetry{poetry_spec}"]
1254
1265
 
1255
1266
  if old_installer:
1256
1267
  commands += ["RUN poetry config experimental.new-installer false"]
@@ -1281,7 +1292,8 @@ class _Image(_Object, type_prefix="im"):
1281
1292
 
1282
1293
  if only:
1283
1294
  install_cmd += f" --only {','.join(only)}"
1284
- install_cmd += " --compile" # no .pyc compilation slows down cold-start.
1295
+
1296
+ install_cmd += " --compile" # Always compile .pyc during build; avoid recompiling on every cold start
1285
1297
 
1286
1298
  commands += [
1287
1299
  "COPY /.pyproject.toml /tmp/poetry/pyproject.toml",
@@ -510,11 +510,12 @@ class _Image(modal._object._Object):
510
510
  poetry_lockfile: typing.Optional[str] = None,
511
511
  *,
512
512
  ignore_lockfile: bool = False,
513
- old_installer: bool = False,
514
513
  force_build: bool = False,
515
514
  with_: list[str] = [],
516
515
  without: list[str] = [],
517
516
  only: list[str] = [],
517
+ poetry_version: typing.Optional[str] = "latest",
518
+ old_installer: bool = False,
518
519
  secrets: collections.abc.Sequence[modal.secret._Secret] = [],
519
520
  gpu: typing.Union[None, str, modal.gpu._GPUConfig] = None,
520
521
  ) -> _Image:
@@ -525,6 +526,10 @@ class _Image(modal._object._Object):
525
526
 
526
527
  Note that the root project of the poetry project is not installed, only the dependencies.
527
528
  For including local python source files see `add_local_python_source`
529
+
530
+ Poetry will be installed to the Image (using pip) unless `poetry_version` is set to None.
531
+ Note that the interpretation of `poetry_version="latest"` depends on the Modal Image Builder
532
+ version, with versions 2024.10 and earlier limiting poetry to 1.x.
528
533
  """
529
534
  ...
530
535
 
@@ -1346,11 +1351,12 @@ class Image(modal.object.Object):
1346
1351
  poetry_lockfile: typing.Optional[str] = None,
1347
1352
  *,
1348
1353
  ignore_lockfile: bool = False,
1349
- old_installer: bool = False,
1350
1354
  force_build: bool = False,
1351
1355
  with_: list[str] = [],
1352
1356
  without: list[str] = [],
1353
1357
  only: list[str] = [],
1358
+ poetry_version: typing.Optional[str] = "latest",
1359
+ old_installer: bool = False,
1354
1360
  secrets: collections.abc.Sequence[modal.secret.Secret] = [],
1355
1361
  gpu: typing.Union[None, str, modal.gpu._GPUConfig] = None,
1356
1362
  ) -> Image:
@@ -1361,6 +1367,10 @@ class Image(modal.object.Object):
1361
1367
 
1362
1368
  Note that the root project of the poetry project is not installed, only the dependencies.
1363
1369
  For including local python source files see `add_local_python_source`
1370
+
1371
+ Poetry will be installed to the Image (using pip) unless `poetry_version` is set to None.
1372
+ Note that the interpretation of `poetry_version="latest"` depends on the Modal Image Builder
1373
+ version, with versions 2024.10 and earlier limiting poetry to 1.x.
1364
1374
  """
1365
1375
  ...
1366
1376
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.0.6.dev0
3
+ Version: 1.0.6.dev2
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.dev0"
4
+ __version__ = "1.0.6.dev2"
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