modAL 1.2.2.dev21__py3-none-any.whl → 1.2.2.dev23__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.
modal/client.pyi CHANGED
@@ -33,7 +33,7 @@ class _Client:
33
33
  server_url: str,
34
34
  client_type: int,
35
35
  credentials: typing.Optional[tuple[str, str]],
36
- version: str = "1.2.2.dev21",
36
+ version: str = "1.2.2.dev23",
37
37
  ):
38
38
  """mdmd:hidden
39
39
  The Modal client object is not intended to be instantiated directly by users.
@@ -164,7 +164,7 @@ class Client:
164
164
  server_url: str,
165
165
  client_type: int,
166
166
  credentials: typing.Optional[tuple[str, str]],
167
- version: str = "1.2.2.dev21",
167
+ version: str = "1.2.2.dev23",
168
168
  ):
169
169
  """mdmd:hidden
170
170
  The Modal client object is not intended to be instantiated directly by users.
modal/functions.pyi CHANGED
@@ -401,7 +401,7 @@ class Function(
401
401
 
402
402
  _call_generator: ___call_generator_spec[typing_extensions.Self]
403
403
 
404
- class __remote_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
404
+ class __remote_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
405
405
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER:
406
406
  """Calls the function remotely, executing it with the given arguments and returning the execution's result."""
407
407
  ...
@@ -410,7 +410,7 @@ class Function(
410
410
  """Calls the function remotely, executing it with the given arguments and returning the execution's result."""
411
411
  ...
412
412
 
413
- remote: __remote_spec[modal._functions.ReturnType, modal._functions.P, typing_extensions.Self]
413
+ remote: __remote_spec[modal._functions.P, modal._functions.ReturnType, typing_extensions.Self]
414
414
 
415
415
  class __remote_gen_spec(typing_extensions.Protocol[SUPERSELF]):
416
416
  def __call__(self, /, *args, **kwargs) -> typing.Generator[typing.Any, None, None]:
@@ -437,7 +437,7 @@ class Function(
437
437
  """
438
438
  ...
439
439
 
440
- class ___experimental_spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
440
+ class ___experimental_spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
441
441
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
442
442
  """[Experimental] Calls the function with the given arguments, without waiting for the results.
443
443
 
@@ -461,7 +461,7 @@ class Function(
461
461
  ...
462
462
 
463
463
  _experimental_spawn: ___experimental_spawn_spec[
464
- modal._functions.ReturnType, modal._functions.P, typing_extensions.Self
464
+ modal._functions.P, modal._functions.ReturnType, typing_extensions.Self
465
465
  ]
466
466
 
467
467
  class ___spawn_map_inner_spec(typing_extensions.Protocol[P_INNER, SUPERSELF]):
@@ -470,7 +470,7 @@ class Function(
470
470
 
471
471
  _spawn_map_inner: ___spawn_map_inner_spec[modal._functions.P, typing_extensions.Self]
472
472
 
473
- class __spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
473
+ class __spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
474
474
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
475
475
  """Calls the function with the given arguments, without waiting for the results.
476
476
 
@@ -491,7 +491,7 @@ class Function(
491
491
  """
492
492
  ...
493
493
 
494
- spawn: __spawn_spec[modal._functions.ReturnType, modal._functions.P, typing_extensions.Self]
494
+ spawn: __spawn_spec[modal._functions.P, modal._functions.ReturnType, typing_extensions.Self]
495
495
 
496
496
  def get_raw_f(self) -> collections.abc.Callable[..., typing.Any]:
497
497
  """Return the inner Python object wrapped by this Modal Function."""
modal/sandbox.py CHANGED
@@ -29,7 +29,7 @@ from ._resources import convert_fn_config_to_resources_config
29
29
  from ._utils.async_utils import TaskContext, synchronize_api
30
30
  from ._utils.deprecation import deprecation_warning
31
31
  from ._utils.mount_utils import validate_network_file_systems, validate_volumes
32
- from ._utils.name_utils import is_valid_object_name
32
+ from ._utils.name_utils import check_object_name
33
33
  from ._utils.task_command_router_client import TaskCommandRouterClient
34
34
  from .client import _Client
35
35
  from .container_process import _ContainerProcess
@@ -79,16 +79,6 @@ def _validate_exec_args(args: Sequence[str]) -> None:
79
79
  )
80
80
 
81
81
 
82
- def _warn_if_invalid_name(name: str) -> None:
83
- if not is_valid_object_name(name):
84
- deprecation_warning(
85
- (2025, 9, 3),
86
- f"Sandbox name '{name}' will be considered invalid in a future release."
87
- "\n\nNames may contain only alphanumeric characters, dashes, periods, and underscores,"
88
- " must be shorter than 64 characters, and cannot conflict with App ID strings.",
89
- )
90
-
91
-
92
82
  class DefaultSandboxNameOverride(str):
93
83
  """A singleton class that represents the default sandbox name override.
94
84
 
@@ -440,7 +430,7 @@ class _Sandbox(_Object, type_prefix="sb"):
440
430
 
441
431
  _validate_exec_args(args)
442
432
  if name is not None:
443
- _warn_if_invalid_name(name)
433
+ check_object_name(name, "Sandbox")
444
434
 
445
435
  if block_network and (encrypted_ports or h2_ports or unencrypted_ports):
446
436
  raise InvalidError("Cannot specify open ports when `block_network` is enabled")
@@ -1020,7 +1010,7 @@ class _Sandbox(_Object, type_prefix="sb"):
1020
1010
  client = client or await _Client.from_env()
1021
1011
 
1022
1012
  if name is not None and name != _DEFAULT_SANDBOX_NAME_OVERRIDE:
1023
- _warn_if_invalid_name(name)
1013
+ check_object_name(name, "Sandbox")
1024
1014
 
1025
1015
  if name is _DEFAULT_SANDBOX_NAME_OVERRIDE:
1026
1016
  restore_req = api_pb2.SandboxRestoreRequest(
modal/sandbox.pyi CHANGED
@@ -27,7 +27,6 @@ import typing
27
27
  import typing_extensions
28
28
 
29
29
  def _validate_exec_args(args: collections.abc.Sequence[str]) -> None: ...
30
- def _warn_if_invalid_name(name: str) -> None: ...
31
30
 
32
31
  class DefaultSandboxNameOverride(str):
33
32
  """A singleton class that represents the default sandbox name override.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.2.2.dev21
3
+ Version: 1.2.2.dev23
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -13,7 +13,7 @@ Classifier: Topic :: System :: Distributed Computing
13
13
  Classifier: Operating System :: OS Independent
14
14
  Classifier: License :: OSI Approved :: Apache Software License
15
15
  Classifier: Programming Language :: Python :: 3
16
- Requires-Python: >=3.9
16
+ Requires-Python: <3.14,>=3.9
17
17
  Description-Content-Type: text/markdown
18
18
  License-File: LICENSE
19
19
  Requires-Dist: aiohttp
@@ -25,7 +25,7 @@ modal/app.pyi,sha256=AUV5Rp8qQrZJTP2waoKHFY7rYgsXNMYibMcCAQKuSeo,50544
25
25
  modal/billing.py,sha256=zmQ3bcCJlwa4KD1IA_QgdWpm1pn13c-7qfy79iEauYI,195
26
26
  modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
27
27
  modal/client.py,sha256=tPzihC7R9WtP56k6dyPKi5GLGdLEHdMA6YUj9Ry5G8o,14409
28
- modal/client.pyi,sha256=s_IT8XcG1tfW2xcmkbV6VVPi34dHBWKY9mqizveqhqk,13094
28
+ modal/client.pyi,sha256=KQAaWTR8-EqLcz9LCOkCK0MxL7BlCkpXcIL1IH4xqcs,13094
29
29
  modal/cloud_bucket_mount.py,sha256=I2GRXYhOWLIz2kJZjXu75jAm9EJkBNcutGc6jR2ReUw,5928
30
30
  modal/cloud_bucket_mount.pyi,sha256=VuUOipMIHqFXMkD-3g2bsoqpSxV5qswlFHDOqPQzYAo,7405
31
31
  modal/cls.py,sha256=1kxGkqXgAJS6anuWKdbqWx_n0rbXqyFuYJIROeBxNyw,40306
@@ -42,7 +42,7 @@ modal/file_io.py,sha256=Whs3QSl3pQbSoLzSRIIWfK4XyP-kwgyZmWgx3bhJ9u0,20933
42
42
  modal/file_io.pyi,sha256=xtO6Glf_BFwDE7QiQQo24QqcMf_Vv-iz7WojcGVlLBU,15932
43
43
  modal/file_pattern_matcher.py,sha256=A_Kdkej6q7YQyhM_2-BvpFmPqJ0oHb54B6yf9VqvPVE,8116
44
44
  modal/functions.py,sha256=kcNHvqeGBxPI7Cgd57NIBBghkfbeFJzXO44WW0jSmao,325
45
- modal/functions.pyi,sha256=Z6VuukLrjASAgf0kV9I6c09WvP_b2gCujX6f9j2bBaw,37988
45
+ modal/functions.pyi,sha256=CMwApS396tdElFrjnV6RuL2DTCz4C3jYzYoq1y_LPUQ,37988
46
46
  modal/gpu.py,sha256=Fe5ORvVPDIstSq1xjmM6OoNgLYFWvogP9r5BgmD3hYg,6769
47
47
  modal/image.py,sha256=SW2QJNZCXpPwLwK5UAjRJexWr1-pUJR6AJJ5OCF7rQI,108048
48
48
  modal/image.pyi,sha256=NQ82YbSF_kadH0r4UqBDgHPDHZo5_yD8qNEFJgUzJZM,77956
@@ -68,8 +68,8 @@ modal/retries.py,sha256=IvNLDM0f_GLUDD5VgEDoN09C88yoxSrCquinAuxT1Sc,5205
68
68
  modal/runner.py,sha256=GP-8dU5J8ZSAVk1U8UtZ0KCxfq3i8Y49hX6BzVJwyaU,25053
69
69
  modal/runner.pyi,sha256=DV3Z7h0owgRyOu9W5KU5O3UbRftX99KGrZQId91fpsU,8671
70
70
  modal/running_app.py,sha256=v61mapYNV1-O-Uaho5EfJlryMLvIT9We0amUOSvSGx8,1188
71
- modal/sandbox.py,sha256=NbMS4iLQvz0moFZEcndXJ1OwpwVzXJDnoyMVugNrb3U,50295
72
- modal/sandbox.pyi,sha256=VqGO59NZX5fSU1tnA_g0pAd7eq6GvV6lNtC8TH9Xlo8,57478
71
+ modal/sandbox.py,sha256=TwmME5-BHRLcT3PQwc2yzSm3MBKvG0ifBWMOtyzl0TQ,49876
72
+ modal/sandbox.pyi,sha256=XWH57XZIouFGeE-CidVYXdI_l5w-kjCzIhqN4kd2y8Q,57428
73
73
  modal/schedule.py,sha256=ng0g0AqNY5GQI9KhkXZQ5Wam5G42glbkqVQsNpBtbDE,3078
74
74
  modal/scheduler_placement.py,sha256=BAREdOY5HzHpzSBqt6jDVR6YC_jYfHMVqOzkyqQfngU,1235
75
75
  modal/secret.py,sha256=ZSI7OAT8YXWQn4gmidH1bwjh8h7z68jxv0of46xiam8,18173
@@ -157,7 +157,7 @@ modal/experimental/__init__.py,sha256=sCwNbBLcR2t-jhrpwtMAPGKt2WNqXBg0xkNZdyB-6C
157
157
  modal/experimental/flash.py,sha256=9Xk3W2tMobiP6QknnPUDeOnWf7aE89a1VZ2EByQYmEM,26662
158
158
  modal/experimental/flash.pyi,sha256=uwinKAYxpunNNfBj58FP88DXb535Qik4F6tnJKPAIwQ,14696
159
159
  modal/experimental/ipython.py,sha256=TrCfmol9LGsRZMeDoeMPx3Hv3BFqQhYnmD_iH0pqdhk,2904
160
- modal-1.2.2.dev21.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
160
+ modal-1.2.2.dev23.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
161
161
  modal_docs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
162
162
  modal_docs/gen_cli_docs.py,sha256=c1yfBS_x--gL5bs0N4ihMwqwX8l3IBWSkBAKNNIi6bQ,3801
163
163
  modal_docs/gen_reference_docs.py,sha256=d_CQUGQ0rfw28u75I2mov9AlS773z9rG40-yq5o7g2U,6359
@@ -185,10 +185,10 @@ modal_proto/task_command_router_pb2.py,sha256=_pD2ZpU0bNzhwBdzmLoLyLtAtftI_Agxwn
185
185
  modal_proto/task_command_router_pb2.pyi,sha256=EyDgXPLr7alqjXYERV8w_MPuO404x0uCppmSkrfE9IE,14589
186
186
  modal_proto/task_command_router_pb2_grpc.py,sha256=uEQ0HdrCp8v-9bB5yIic9muA8spCShLHY6Bz9cCgOUE,10114
187
187
  modal_proto/task_command_router_pb2_grpc.pyi,sha256=s3Yxsrawdj4nr8vqQqsAxyX6ilWaGbdECy425KKbLIA,3301
188
- modal_version/__init__.py,sha256=0xqMZmBrC75YQupzkYZGu0f5eFCPWbDIn-I0EQwqHGk,121
188
+ modal_version/__init__.py,sha256=BajnBH0g8f2cePZQVXsYCeJpGq2gzWOkFn7626-5G7I,121
189
189
  modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
190
- modal-1.2.2.dev21.dist-info/METADATA,sha256=eivPEsX6sFzI5srzC8tA17IzIzSdEhzTq5aEI8jkoG4,2484
191
- modal-1.2.2.dev21.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
192
- modal-1.2.2.dev21.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
193
- modal-1.2.2.dev21.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
194
- modal-1.2.2.dev21.dist-info/RECORD,,
190
+ modal-1.2.2.dev23.dist-info/METADATA,sha256=yRuADqfOkDxDDYIaS41yeMRRGJ7j7DSdc7w5tWvlBd4,2490
191
+ modal-1.2.2.dev23.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
192
+ modal-1.2.2.dev23.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
193
+ modal-1.2.2.dev23.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
194
+ modal-1.2.2.dev23.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.2.2.dev21"
4
+ __version__ = "1.2.2.dev23"