modal 0.73.1__py3-none-any.whl → 0.73.2__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.
@@ -373,7 +373,7 @@ def call_lifecycle_functions(
373
373
  """Call function(s), can be sync or async, but any return values are ignored."""
374
374
  with container_io_manager.handle_user_exception():
375
375
  for func in funcs:
376
- # We are deprecating parameterized exit methods but want to gracefully handle old code.
376
+ # We are deprecating parametrized exit methods but want to gracefully handle old code.
377
377
  # We can remove this once the deprecation in the actual @exit decorator is enforced.
378
378
  args = (None, None, None) if callable_has_non_self_params(func) else ()
379
379
  # in case func is non-async, it's executed here and sigint will by default
@@ -289,8 +289,8 @@ class FunctionInfo:
289
289
  if not _use_annotation_parameters(self.user_cls):
290
290
  return api_pb2.ClassParameterInfo(format=api_pb2.ClassParameterInfo.PARAM_SERIALIZATION_FORMAT_PICKLE)
291
291
 
292
- # annotation parameters trigger strictly typed parameterization
293
- # which enables web endpoint for parameterized classes
292
+ # annotation parameters trigger strictly typed parametrization
293
+ # which enables web endpoint for parametrized classes
294
294
 
295
295
  modal_parameters: list[api_pb2.ClassParameterSpec] = []
296
296
  signature = _get_class_constructor_signature(self.user_cls)
@@ -597,7 +597,7 @@ def _get_bases(typ):
597
597
  if "__orig_bases__" in getattr(typ, "__dict__", {}):
598
598
  # For generic types (see PEP 560)
599
599
  # Note that simply checking `hasattr(typ, '__orig_bases__')` is not
600
- # correct. Subclasses of a fully-parameterized generic class does not
600
+ # correct. Subclasses of a fully-parametrized generic class does not
601
601
  # have `__orig_bases__` defined, but `hasattr(typ, '__orig_bases__')`
602
602
  # will return True because it's defined in the base class.
603
603
  bases_attr = "__orig_bases__"
modal/client.pyi CHANGED
@@ -27,7 +27,7 @@ class _Client:
27
27
  _snapshotted: bool
28
28
 
29
29
  def __init__(
30
- self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.1"
30
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.2"
31
31
  ): ...
32
32
  def is_closed(self) -> bool: ...
33
33
  @property
@@ -85,7 +85,7 @@ class Client:
85
85
  _snapshotted: bool
86
86
 
87
87
  def __init__(
88
- self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.1"
88
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.2"
89
89
  ): ...
90
90
  def is_closed(self) -> bool: ...
91
91
  @property
modal/cls.py CHANGED
@@ -75,7 +75,7 @@ def _bind_instance_method(service_function: _Function, class_bound_method: _Func
75
75
  """Binds an "instance service function" to a specific method name.
76
76
  This "dummy" _Function gets no unique object_id and isn't backend-backed at the moment, since all
77
77
  it does it forward invocations to the underlying instance_service_function with the specified method,
78
- and we don't support web_config for parameterized methods at the moment.
78
+ and we don't support web_config for parametrized methods at the moment.
79
79
  """
80
80
  # TODO(elias): refactor to not use `_from_loader()` as a crutch for lazy-loading the
81
81
  # underlying instance_service_function. It's currently used in order to take advantage
@@ -90,7 +90,7 @@ def _bind_instance_method(service_function: _Function, class_bound_method: _Func
90
90
  method_placeholder_fun._web_url = (
91
91
  class_bound_method._web_url
92
92
  ) # TODO: this shouldn't be set when actual parameters are used
93
- method_placeholder_fun._function_name = f"{class_bound_method._function_name}[parameterized]"
93
+ method_placeholder_fun._function_name = f"{class_bound_method._function_name}[parametrized]"
94
94
  method_placeholder_fun._is_generator = class_bound_method._is_generator
95
95
  method_placeholder_fun._cluster_size = class_bound_method._cluster_size
96
96
  method_placeholder_fun._use_method_name = method_name
@@ -98,7 +98,7 @@ def _bind_instance_method(service_function: _Function, class_bound_method: _Func
98
98
 
99
99
  async def _load(fun: "_Function", resolver: Resolver, existing_object_id: Optional[str]):
100
100
  # there is currently no actual loading logic executed to create each method on
101
- # the *parameterized* instance of a class - it uses the parameter-bound service-function
101
+ # the *parametrized* instance of a class - it uses the parameter-bound service-function
102
102
  # for the instance. This load method just makes sure to set all attributes after the
103
103
  # `service_function` has been loaded (it's in the `_deps`)
104
104
  hydrate_from_instance_service_function(fun)
modal/functions.py CHANGED
@@ -960,7 +960,7 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
960
960
  identity = f"{parent.info.function_name} class service function"
961
961
  except Exception:
962
962
  # Can't always look up the function name that way, so fall back to generic message
963
- identity = "class service function for a parameterized class"
963
+ identity = "class service function for a parametrized class"
964
964
  if not parent.is_hydrated:
965
965
  if parent.app._running_app is None:
966
966
  reason = ", because the App it is defined on is not running"
modal/partial_function.py CHANGED
@@ -614,7 +614,7 @@ ExitHandlerType = Union[
614
614
  # synchronicity type stubs would strip Awaitable so we use Any for now
615
615
  # Original, __exit__ style method signature (now deprecated)
616
616
  Callable[[Any, Optional[type[BaseException]], Optional[BaseException], Any], Any],
617
- # Forward-looking unparameterized method
617
+ # Forward-looking unparametrized method
618
618
  Callable[[Any], Any],
619
619
  ]
620
620
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: modal
3
- Version: 0.73.1
3
+ Version: 0.73.2
4
4
  Summary: Python client library for Modal
5
5
  Author: Modal Labs
6
6
  Author-email: support@modal.com
@@ -2,7 +2,7 @@ modal/__init__.py,sha256=df6aKAigSPFXnmIohWySf_1zZ9Gzgrb7-oprSbopD4w,2299
2
2
  modal/__main__.py,sha256=scYhGFqh8OJcVDo-VOxIT6CCwxOgzgflYWMnIZiMRqE,2871
3
3
  modal/_clustered_functions.py,sha256=kTf-9YBXY88NutC1akI-gCbvf01RhMPCw-zoOI_YIUE,2700
4
4
  modal/_clustered_functions.pyi,sha256=vllkegc99A0jrUOWa8mdlSbdp6uz36TsHhGxysAOpaQ,771
5
- modal/_container_entrypoint.py,sha256=iHSNqLCTK4uXzcmhF5ou5AqOYovk4hMfV3BZYYDrFKc,29554
5
+ modal/_container_entrypoint.py,sha256=qahIuJvaMmWG85N5vNS1yuAQ9XZoo1ftzfatkos_q7I,29553
6
6
  modal/_ipython.py,sha256=TW1fkVOmZL3YYqdS2YlM1hqpf654Yf8ZyybHdBnlhSw,301
7
7
  modal/_location.py,sha256=S3lSxIU3h9HkWpkJ3Pwo0pqjIOSB1fjeSgUsY3x7eec,1202
8
8
  modal/_object.py,sha256=ItQcsMNkz9Y3kdTsvfNarbW-paJ2qabDyQ7njaqY0XI,11359
@@ -20,10 +20,10 @@ modal/app.py,sha256=BEl90AuVlcrVlXKhM0wDFn1E8hewvbia9Qdq6SiT-FE,44225
20
20
  modal/app.pyi,sha256=NnUpnKq5y5fM45F5cXLMZK5zVJZA9T_UKawloOXCVXE,25858
21
21
  modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
22
22
  modal/client.py,sha256=8SQawr7P1PNUCq1UmJMUQXG2jIo4Nmdcs311XqrNLRE,15276
23
- modal/client.pyi,sha256=B6N3IX6_KfMiukhFzQtUJVgjMMD7wuiUHTQWphpAKaQ,7591
23
+ modal/client.pyi,sha256=FvwjAiLmNZM1wrVrCIuXxlm3PeZiQ3I980lWvf9yfnI,7591
24
24
  modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
25
25
  modal/cloud_bucket_mount.pyi,sha256=30T3K1a89l6wzmEJ_J9iWv9SknoGqaZDx59Xs-ZQcmk,1607
26
- modal/cls.py,sha256=7k3_FwhPUzewRXRZP8bcVJA9AZstoxGJuHKQ5Db-YoY,32683
26
+ modal/cls.py,sha256=DLgFTEAWUlIdhqOoF3cb1yzru3FiVpFTvEnPuwD5AQI,32680
27
27
  modal/cls.pyi,sha256=LIoQrf96E2eZXTsO-o87jf2ppGAnYwQ8nVxsDmx7QHs,9040
28
28
  modal/config.py,sha256=BzhZYUUwOmvVwf6x5kf0ywMC257s648dmuhsnB6g3gk,11041
29
29
  modal/container_process.py,sha256=WTqLn01dJPVkPpwR_0w_JH96ceN5mV4TGtiu1ZR2RRA,6108
@@ -38,7 +38,7 @@ modal/experimental.pyi,sha256=24tIYu_w9RLwFrz1cIsgYuqmDCtV8eg6-bQNz3zjhDo,939
38
38
  modal/file_io.py,sha256=lcMs_E9Xfm0YX1t9U2wNIBPnqHRxmImqjLW1GHqVmyg,20945
39
39
  modal/file_io.pyi,sha256=NTRft1tbPSWf9TlWVeZmTlgB5AZ_Zhu2srWIrWr7brk,9445
40
40
  modal/file_pattern_matcher.py,sha256=1cZ4V2wSLiaXqAqStETSwp3bzDD6QZOt6pmmjk3Okz4,6505
41
- modal/functions.py,sha256=bD4NbWgAfo5jsiqlT5XT0nGTaQ_6zOfyNmwYu0I-aVY,69951
41
+ modal/functions.py,sha256=SCdDaPKzG6xZAXjzulXMENyfFD11Tq1KgefqqC_ADJY,69950
42
42
  modal/functions.pyi,sha256=eHwUCC7wt_DkCWDnNKuL8LBc4JIRm-rzCOtdmdUgGKY,26641
43
43
  modal/gpu.py,sha256=2qZMNnoMrjU-5Bu7fx68pANUAKTtZq0EWEEeBA9OUVQ,7426
44
44
  modal/image.py,sha256=c6-RsdVDCscmfOoZI26gj8GvBBw1oVC18n8WaYKBWAw,90949
@@ -54,7 +54,7 @@ modal/object.pyi,sha256=kyJkRQcVv3ct7zSAxvvXcuhBVeH914v80uSlqeS7cA4,5632
54
54
  modal/output.py,sha256=N0xf4qeudEaYrslzdAl35VKV8rapstgIM2e9wO8_iy0,1967
55
55
  modal/parallel_map.py,sha256=POBTyiWabe2e4qBNlsjjksiu1AAPEsNqI-mM8cgNFco,16042
56
56
  modal/parallel_map.pyi,sha256=0ltjcIpPUqPGGOWmHqzCfBu5y3ISjRZDrqOJhiNhfYk,2522
57
- modal/partial_function.py,sha256=4_hGVCCX-dYdjs_86Metfsuih8YyypiVMrExcwRGDS8,28711
57
+ modal/partial_function.py,sha256=_rPSY8glSN-pAdMfIfcfo2GE9rrydzDTrYUQGBVmXi0,28710
58
58
  modal/partial_function.pyi,sha256=Dj4WDxbGkXjxAbucSBSqr2_vrNbEWEAwdXnMzh2d80Y,9905
59
59
  modal/proxy.py,sha256=NrOevrWxG3G7-zlyRzG6BcIvop7AWLeyahZxitbBaOk,1418
60
60
  modal/proxy.pyi,sha256=1OEKIVUyC-xb7fHMzngakQso0nTsK60TVhXtlcMj6Wk,390
@@ -93,7 +93,7 @@ modal/_utils/blob_utils.py,sha256=N66LtZI8PpCkZ7maA7GLW5CAmYUoNJdG-GjaAUR4_NQ,14
93
93
  modal/_utils/bytes_io_segment_payload.py,sha256=uunxVJS4PE1LojF_UpURMzVK9GuvmYWRqQo_bxEj5TU,3385
94
94
  modal/_utils/deprecation.py,sha256=dycySRBxyZf3ITzEqPNM6MxXTk9-0VVLA8oCPQ5j_Os,3426
95
95
  modal/_utils/docker_utils.py,sha256=h1uETghR40mp_y3fSWuZAfbIASH1HMzuphJHghAL6DU,3722
96
- modal/_utils/function_utils.py,sha256=QAQQXPhSZVPkGgbgStFp3lDCB0jnvlcwKki1N3tSSWQ,27187
96
+ modal/_utils/function_utils.py,sha256=ue15TIvHiSSuuLQaGb3gJ5YmxdaFBhfE3Rt5frqIWhM,27185
97
97
  modal/_utils/grpc_testing.py,sha256=H1zHqthv19eGPJz2HKXDyWXWGSqO4BRsxah3L5Xaa8A,8619
98
98
  modal/_utils/grpc_utils.py,sha256=PPB5ay-vXencXNIWPVw5modr3EH7gfq2QPcO5YJ1lMU,7737
99
99
  modal/_utils/hash_utils.py,sha256=zg3J6OGxTFGSFri1qQ12giDz90lWk8bzaxCTUCRtiX4,3034
@@ -107,7 +107,7 @@ modal/_utils/rand_pb_testing.py,sha256=mmVPk1rZldHwHZx0DnHTuHQlRLAiiAYdxjwEJpxvT
107
107
  modal/_utils/shell_utils.py,sha256=hWHzv730Br2Xyj6cGPiMZ-198Z3RZuOu3pDXhFSZ22c,2157
108
108
  modal/_vendor/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
109
109
  modal/_vendor/a2wsgi_wsgi.py,sha256=Q1AsjpV_Q_vzQsz_cSqmP9jWzsGsB-ARFU6vpQYml8k,21878
110
- modal/_vendor/cloudpickle.py,sha256=Loq12qo7PBNbE4LFVEW6BdMMwY10MG94EOW1SCpcnQ0,55217
110
+ modal/_vendor/cloudpickle.py,sha256=avxOIgNKqL9KyPNuIOVQzBm0D1l9ipeB4RrcUMUGmeQ,55216
111
111
  modal/_vendor/tblib.py,sha256=g1O7QUDd3sDoLd8YPFltkXkih7r_fyZOjgmGuligv3s,9722
112
112
  modal/cli/__init__.py,sha256=waLjl5c6IPDhSsdWAm9Bji4e2PVxamYABKAze6CHVXY,28
113
113
  modal/cli/_download.py,sha256=t6BXZwjTd9MgznDvbsV8rp0FZWggdzC-lUAGZU4xx1g,3984
@@ -169,10 +169,10 @@ modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0y
169
169
  modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
170
170
  modal_version/__init__.py,sha256=wiJQ53c-OMs0Xf1UeXOxQ7FwlV1VzIjnX6o-pRYZ_Pk,470
171
171
  modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
172
- modal_version/_version_generated.py,sha256=b5X16t-GbrJxsrM_vcD_WXLcjcejIbm7gcrXoJd5e64,148
173
- modal-0.73.1.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
174
- modal-0.73.1.dist-info/METADATA,sha256=qsi27dGq0I0z2jCMDbs8cfkdh_kjKztW9uR00_IPuj8,2328
175
- modal-0.73.1.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
176
- modal-0.73.1.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
177
- modal-0.73.1.dist-info/top_level.txt,sha256=1nvYbOSIKcmU50fNrpnQnrrOpj269ei3LzgB6j9xGqg,64
178
- modal-0.73.1.dist-info/RECORD,,
172
+ modal_version/_version_generated.py,sha256=C7SCtsGrjUfPyAf7v_S93_caxnusk8RliITZG0S9S48,148
173
+ modal-0.73.2.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
174
+ modal-0.73.2.dist-info/METADATA,sha256=fOtBQBc1qAuX2n9IN_MM4OPe4JkuIW0b5QyDHJlJQ4M,2328
175
+ modal-0.73.2.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
176
+ modal-0.73.2.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
177
+ modal-0.73.2.dist-info/top_level.txt,sha256=1nvYbOSIKcmU50fNrpnQnrrOpj269ei3LzgB6j9xGqg,64
178
+ modal-0.73.2.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  # Copyright Modal Labs 2025
2
2
 
3
3
  # Note: Reset this value to -1 whenever you make a minor `0.X` release of the client.
4
- build_number = 1 # git: 539ddf8
4
+ build_number = 2 # git: 84b4545
File without changes