modal 1.0.6.dev2__py3-none-any.whl → 1.0.6.dev4__py3-none-any.whl

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.

modal/_object.py CHANGED
@@ -10,6 +10,7 @@ from typing_extensions import Self
10
10
 
11
11
  from ._resolver import Resolver
12
12
  from ._utils.async_utils import aclosing
13
+ from ._utils.deprecation import deprecation_warning
13
14
  from .client import _Client
14
15
  from .config import config, logger
15
16
  from .exception import ExecutionError, InvalidError
@@ -134,7 +135,15 @@ class _Object:
134
135
  )
135
136
 
136
137
  def clone(self) -> Self:
137
- """mdmd:hidden Clone a given hydrated object."""
138
+ """mdmd:hidden Clone a given hydrated object.
139
+
140
+ Note: This is not intended to be public API and has no public use. It will be removed in a future release.
141
+ """
142
+ object_class = self.__class__.__name__.strip("_")
143
+ deprecation_warning(
144
+ (2025, 6, 30),
145
+ f"{object_class}.clone() is not intended to be public API and will be removed in a future release.",
146
+ )
138
147
 
139
148
  # Object to clone must already be hydrated, otherwise from_loader is more suitable.
140
149
  self._validate_is_hydrated()
modal/client.pyi CHANGED
@@ -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.dev2",
34
+ version: str = "1.0.6.dev4",
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.dev2",
163
+ version: str = "1.0.6.dev4",
164
164
  ):
165
165
  """mdmd:hidden
166
166
  The Modal client object is not intended to be instantiated directly by users.
modal/image.py CHANGED
@@ -416,7 +416,6 @@ class _Image(_Object, type_prefix="im"):
416
416
  self.force_build = False
417
417
 
418
418
  def _initialize_from_other(self, other: "_Image"):
419
- # used by .clone()
420
419
  self.inside_exceptions = other.inside_exceptions
421
420
  self.force_build = other.force_build
422
421
  self._serve_mounts = other._serve_mounts
@@ -497,6 +496,7 @@ class _Image(_Object, type_prefix="im"):
497
496
  image_registry_config: Optional[_ImageRegistryConfig] = None,
498
497
  context_mount_function: Optional[Callable[[], Optional[_Mount]]] = None,
499
498
  force_build: bool = False,
499
+ build_args: dict[str, str] = {},
500
500
  # For internal use only.
501
501
  _namespace: "api_pb2.DeploymentNamespace.ValueType" = api_pb2.DEPLOYMENT_NAMESPACE_WORKSPACE,
502
502
  _do_assert_no_mount_layers: bool = True,
@@ -613,6 +613,7 @@ class _Image(_Object, type_prefix="im"):
613
613
  runtime=config.get("function_runtime"),
614
614
  runtime_debug=config.get("function_runtime_debug"),
615
615
  build_function=_build_function,
616
+ build_args=build_args,
616
617
  )
617
618
 
618
619
  req = api_pb2.ImageGetOrCreateRequest(
@@ -1728,6 +1729,7 @@ class _Image(_Object, type_prefix="im"):
1728
1729
  secrets: Sequence[_Secret] = [],
1729
1730
  gpu: GPU_T = None,
1730
1731
  add_python: Optional[str] = None,
1732
+ build_args: dict[str, str] = {},
1731
1733
  ignore: Union[Sequence[str], Callable[[Path], bool]] = AUTO_DOCKERIGNORE,
1732
1734
  ) -> "_Image":
1733
1735
  """Build a Modal image from a local Dockerfile.
@@ -1801,6 +1803,7 @@ class _Image(_Object, type_prefix="im"):
1801
1803
  ),
1802
1804
  gpu_config=gpu_config,
1803
1805
  secrets=secrets,
1806
+ build_args=build_args,
1804
1807
  )
1805
1808
 
1806
1809
  # --- Now add in the modal dependencies, and, optionally a Python distribution
modal/image.pyi CHANGED
@@ -171,6 +171,7 @@ class _Image(modal._object._Object):
171
171
  collections.abc.Callable[[], typing.Optional[modal.mount._Mount]]
172
172
  ] = None,
173
173
  force_build: bool = False,
174
+ build_args: dict[str, str] = {},
174
175
  _namespace: int = 1,
175
176
  _do_assert_no_mount_layers: bool = True,
176
177
  ): ...
@@ -755,6 +756,7 @@ class _Image(modal._object._Object):
755
756
  secrets: collections.abc.Sequence[modal.secret._Secret] = [],
756
757
  gpu: typing.Union[None, str, modal.gpu._GPUConfig] = None,
757
758
  add_python: typing.Optional[str] = None,
759
+ build_args: dict[str, str] = {},
758
760
  ignore: typing.Union[
759
761
  collections.abc.Sequence[str], collections.abc.Callable[[pathlib.Path], bool]
760
762
  ] = modal.image.AUTO_DOCKERIGNORE,
@@ -1003,6 +1005,7 @@ class Image(modal.object.Object):
1003
1005
  collections.abc.Callable[[], typing.Optional[modal.mount.Mount]]
1004
1006
  ] = None,
1005
1007
  force_build: bool = False,
1008
+ build_args: dict[str, str] = {},
1006
1009
  _namespace: int = 1,
1007
1010
  _do_assert_no_mount_layers: bool = True,
1008
1011
  ): ...
@@ -1596,6 +1599,7 @@ class Image(modal.object.Object):
1596
1599
  secrets: collections.abc.Sequence[modal.secret.Secret] = [],
1597
1600
  gpu: typing.Union[None, str, modal.gpu._GPUConfig] = None,
1598
1601
  add_python: typing.Optional[str] = None,
1602
+ build_args: dict[str, str] = {},
1599
1603
  ignore: typing.Union[
1600
1604
  collections.abc.Sequence[str], collections.abc.Callable[[pathlib.Path], bool]
1601
1605
  ] = modal.image.AUTO_DOCKERIGNORE,
modal/object.pyi CHANGED
@@ -89,7 +89,10 @@ class Object:
89
89
  def _get_metadata(self) -> typing.Optional[google.protobuf.message.Message]: ...
90
90
  def _validate_is_hydrated(self): ...
91
91
  def clone(self) -> typing_extensions.Self:
92
- """mdmd:hidden Clone a given hydrated object."""
92
+ """mdmd:hidden Clone a given hydrated object.
93
+
94
+ Note: This is not intended to be public API and has no public use. It will be removed in a future release.
95
+ """
93
96
  ...
94
97
 
95
98
  @classmethod
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.0.6.dev2
3
+ Version: 1.0.6.dev4
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -6,7 +6,7 @@ modal/_container_entrypoint.py,sha256=2Zx9O_EMJg0H77EdnC2vGKs6uFMWwbP1NLFf-qYmWm
6
6
  modal/_functions.py,sha256=weFJszpf_WsL-uEMzrUxNEYmteIczyXYN0za_V9Vf4U,80903
7
7
  modal/_ipython.py,sha256=TW1fkVOmZL3YYqdS2YlM1hqpf654Yf8ZyybHdBnlhSw,301
8
8
  modal/_location.py,sha256=joiX-0ZeutEUDTrrqLF1GHXCdVLF-rHzstocbMcd_-k,366
9
- modal/_object.py,sha256=KzzzZoM41UQUiY9TKOrft9BtZKgjWG_ukdlyLGjB4UY,10758
9
+ modal/_object.py,sha256=QWyUGjrGLupITkyvJru2cekizsaVdteAhwMQlw_tE4k,11172
10
10
  modal/_output.py,sha256=LRM9KroHuR7t5pq8iLYjpFz1sQrHYan2kvRDjT6KAw4,26082
11
11
  modal/_partial_function.py,sha256=RqBRBqezecNDK_Ve_X00Oaw5Loub7OaknfoWb7dcgSg,39176
12
12
  modal/_pty.py,sha256=JZfPDDpzqICZqtyPI_oMJf_9w-p_lLNuzHhwhodUXio,1329
@@ -22,7 +22,7 @@ modal/app.py,sha256=fCKq3TJ2Y5LB2WKNs6pp_5XECNH5avUL01jQljuoYRU,46603
22
22
  modal/app.pyi,sha256=Z6wi_dkXywiaM2rvAvguj2Wgu9ZgPjMSLl1nH1a7EYI,42243
23
23
  modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
24
24
  modal/client.py,sha256=OwISJvkgMb-rHm9Gc4i-7YcDgGiZgwJ7F_PzwZH7a6Q,16847
25
- modal/client.pyi,sha256=XT3QKiI4uqYQ73YnA7eCuywBYegTGHmyT0qOa0jIdy4,15079
25
+ modal/client.pyi,sha256=eK9xgFSHVnxDVU58WZgDUvo9bbX0t22vJh5l8cr2n2c,15079
26
26
  modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
27
27
  modal/cloud_bucket_mount.pyi,sha256=-qSfYAQvIoO_l2wsCCGTG5ZUwQieNKXdAO00yP1-LYU,7394
28
28
  modal/cls.py,sha256=s5UhFqNQz34aYOpmMTnlgQMhI7GfN3IkCLNlGXrrW7M,39795
@@ -41,8 +41,8 @@ modal/file_pattern_matcher.py,sha256=wov-otB5M1oTdrYDtR2_VgacYin2srdtAP4McA1Cqzw
41
41
  modal/functions.py,sha256=kcNHvqeGBxPI7Cgd57NIBBghkfbeFJzXO44WW0jSmao,325
42
42
  modal/functions.pyi,sha256=C-vcR7DNCeqb4gIQiooocX_PhgvlvJ8ef4Wt4kqcu_c,34819
43
43
  modal/gpu.py,sha256=Fe5ORvVPDIstSq1xjmM6OoNgLYFWvogP9r5BgmD3hYg,6769
44
- modal/image.py,sha256=JkFjnbPNvrnMS-7t-AAeMfnnB76DUj6cGjFwrbtcTIc,94030
45
- modal/image.pyi,sha256=zBNRSZR-b9hCYslS4qP1dA4-gp0YiNPmDxscjPCnXxk,68008
44
+ modal/image.py,sha256=3oF3wo5uJ9tlOV8yotixBJ-ZR1tOkRE1Qvq4E3G7Fhk,94159
45
+ modal/image.pyi,sha256=ha8QhMPDRmfTSoRlQ8CgV4-AZ7kYKK_-R2UXLyGPgQU,68172
46
46
  modal/io_streams.py,sha256=FUDpBsVK8isqwyC7DtAcQZhaHlMFSaNZGhYJOg-SFW0,15590
47
47
  modal/io_streams.pyi,sha256=5b3b93ztZeR8IpJtNIGffX24QLPgocE4-gAps8y7CKU,13824
48
48
  modal/mount.py,sha256=7gdzBNueSjPsgsdisMv1bv5SncEQyWc6D-YlAbpze3s,35523
@@ -50,7 +50,7 @@ modal/mount.pyi,sha256=Q4ryg68yyfgJh4dWqcs4y9jvcF8JArU8tIUZhdjRHac,19613
50
50
  modal/network_file_system.py,sha256=i9LhgDXURltOOL0FPwX7pd_BDZOuTaU1TZ2Eet2WlBw,14563
51
51
  modal/network_file_system.pyi,sha256=xKVVLn9s7qf8iSnDvPZhXeQx83nKynhiwzvMbYY-S_A,17661
52
52
  modal/object.py,sha256=bTeskuY8JFrESjU4_UL_nTwYlBQdOLmVaOX3X6EMxsg,164
53
- modal/object.pyi,sha256=OT5nnTwPfQx1Uk0GkTQuGXBhznRk1yXGloH4VkTpcPg,6502
53
+ modal/object.pyi,sha256=751TV6BntarPsErf0HDQPsvePjWFf0JZK8ZAiRpM1yg,6627
54
54
  modal/output.py,sha256=q4T9uHduunj4NwY-YSwkHGgjZlCXMuJbfQ5UFaAGRAc,1968
55
55
  modal/parallel_map.py,sha256=uRCIId1C1lHHprG3A5WdWkOBcl2DmlPTAxZAkXUrrow,40765
56
56
  modal/parallel_map.pyi,sha256=-t3nZ-SvKEK8_xC4A_AmAq6UVpt4ZFtq7rPnWzHGhfg,10290
@@ -147,7 +147,7 @@ modal/requirements/2024.10.txt,sha256=qD-5cVIVM9wXesJ6JC89Ew-3m2KjEElUz3jaw_MddR
147
147
  modal/requirements/PREVIEW.txt,sha256=KxDaVTOwatHvboDo4lorlgJ7-n-MfAwbPwxJ0zcJqrs,312
148
148
  modal/requirements/README.md,sha256=9tK76KP0Uph7O0M5oUgsSwEZDj5y-dcUPsnpR0Sc-Ik,854
149
149
  modal/requirements/base-images.json,sha256=f1bwyp2UkM844eoO9Qk30gQw_xrMqKpMSeJ6MErXnEk,995
150
- modal-1.0.6.dev2.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
150
+ modal-1.0.6.dev4.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
151
151
  modal_docs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
152
152
  modal_docs/gen_cli_docs.py,sha256=c1yfBS_x--gL5bs0N4ihMwqwX8l3IBWSkBAKNNIi6bQ,3801
153
153
  modal_docs/gen_reference_docs.py,sha256=d_CQUGQ0rfw28u75I2mov9AlS773z9rG40-yq5o7g2U,6359
@@ -170,10 +170,10 @@ modal_proto/options_pb2.pyi,sha256=l7DBrbLO7q3Ir-XDkWsajm0d0TQqqrfuX54i4BMpdQg,1
170
170
  modal_proto/options_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
171
171
  modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0yJSI,247
172
172
  modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
173
- modal_version/__init__.py,sha256=DwFZBVAdlDeltI0ouVVN4htUVnJUpU4QbmJgbNpFMjc,120
173
+ modal_version/__init__.py,sha256=BgkuApRpLj5SKQXIjSwUmHE82aImaGkLTGknm3VyvX4,120
174
174
  modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
175
- modal-1.0.6.dev2.dist-info/METADATA,sha256=iG7kgOtxsGrajXR_VJPVZ7CZPVgAa7GzJvqjRXa4LuA,2461
176
- modal-1.0.6.dev2.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
177
- modal-1.0.6.dev2.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
178
- modal-1.0.6.dev2.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
179
- modal-1.0.6.dev2.dist-info/RECORD,,
175
+ modal-1.0.6.dev4.dist-info/METADATA,sha256=WGtaaHToHQIOL76HHx2DrdWPKjuVpT_uHdpM2xGcJ8U,2461
176
+ modal-1.0.6.dev4.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
177
+ modal-1.0.6.dev4.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
178
+ modal-1.0.6.dev4.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
179
+ modal-1.0.6.dev4.dist-info/RECORD,,
modal_version/__init__.py CHANGED
@@ -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.dev2"
4
+ __version__ = "1.0.6.dev4"