modal 0.73.27__py3-none-any.whl → 0.73.29__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.
@@ -1,64 +1,16 @@
1
1
  import collections.abc
2
- import enum
3
- import modal._functions
2
+ import modal._partial_function
4
3
  import modal.functions
5
4
  import modal_proto.api_pb2
6
5
  import typing
7
- import typing_extensions
8
6
 
9
- class _PartialFunctionFlags(enum.IntFlag):
10
- FUNCTION = 1
11
- BUILD = 2
12
- ENTER_PRE_SNAPSHOT = 4
13
- ENTER_POST_SNAPSHOT = 8
14
- EXIT = 16
15
- BATCHED = 32
16
- CLUSTERED = 64 # Experimental: Clustered functions
17
-
18
- @staticmethod
19
- def all() -> int:
20
- return ~_PartialFunctionFlags(0)
21
-
22
- P = typing_extensions.ParamSpec("P")
23
-
24
- ReturnType = typing.TypeVar("ReturnType", covariant=True)
25
-
26
- OriginalReturnType = typing.TypeVar("OriginalReturnType", covariant=True)
27
-
28
- class _PartialFunction(typing.Generic[P, ReturnType, OriginalReturnType]):
29
- raw_f: collections.abc.Callable[P, ReturnType]
30
- flags: _PartialFunctionFlags
31
- webhook_config: typing.Optional[modal_proto.api_pb2.WebhookConfig]
32
- is_generator: bool
33
- keep_warm: typing.Optional[int]
34
- batch_max_size: typing.Optional[int]
35
- batch_wait_ms: typing.Optional[int]
36
- force_build: bool
37
- cluster_size: typing.Optional[int]
38
- build_timeout: typing.Optional[int]
39
-
40
- def __init__(
41
- self,
42
- raw_f: collections.abc.Callable[P, ReturnType],
43
- flags: _PartialFunctionFlags,
44
- webhook_config: typing.Optional[modal_proto.api_pb2.WebhookConfig] = None,
45
- is_generator: typing.Optional[bool] = None,
46
- keep_warm: typing.Optional[int] = None,
47
- batch_max_size: typing.Optional[int] = None,
48
- batch_wait_ms: typing.Optional[int] = None,
49
- cluster_size: typing.Optional[int] = None,
50
- force_build: bool = False,
51
- build_timeout: typing.Optional[int] = None,
52
- ): ...
53
- def _get_raw_f(self) -> collections.abc.Callable[P, ReturnType]: ...
54
- def _is_web_endpoint(self) -> bool: ...
55
- def __get__(self, obj, objtype=None) -> modal._functions._Function[P, ReturnType, OriginalReturnType]: ...
56
- def __del__(self): ...
57
- def add_flags(self, flags) -> _PartialFunction: ...
58
-
59
- class PartialFunction(typing.Generic[P, ReturnType, OriginalReturnType]):
60
- raw_f: collections.abc.Callable[P, ReturnType]
61
- flags: _PartialFunctionFlags
7
+ class PartialFunction(
8
+ typing.Generic[
9
+ modal._partial_function.P, modal._partial_function.ReturnType, modal._partial_function.OriginalReturnType
10
+ ]
11
+ ):
12
+ raw_f: collections.abc.Callable[modal._partial_function.P, modal._partial_function.ReturnType]
13
+ flags: modal._partial_function._PartialFunctionFlags
62
14
  webhook_config: typing.Optional[modal_proto.api_pb2.WebhookConfig]
63
15
  is_generator: bool
64
16
  keep_warm: typing.Optional[int]
@@ -70,8 +22,8 @@ class PartialFunction(typing.Generic[P, ReturnType, OriginalReturnType]):
70
22
 
71
23
  def __init__(
72
24
  self,
73
- raw_f: collections.abc.Callable[P, ReturnType],
74
- flags: _PartialFunctionFlags,
25
+ raw_f: collections.abc.Callable[modal._partial_function.P, modal._partial_function.ReturnType],
26
+ flags: modal._partial_function._PartialFunctionFlags,
75
27
  webhook_config: typing.Optional[modal_proto.api_pb2.WebhookConfig] = None,
76
28
  is_generator: typing.Optional[bool] = None,
77
29
  keep_warm: typing.Optional[int] = None,
@@ -81,113 +33,22 @@ class PartialFunction(typing.Generic[P, ReturnType, OriginalReturnType]):
81
33
  force_build: bool = False,
82
34
  build_timeout: typing.Optional[int] = None,
83
35
  ): ...
84
- def _get_raw_f(self) -> collections.abc.Callable[P, ReturnType]: ...
36
+ def _get_raw_f(self) -> collections.abc.Callable[modal._partial_function.P, modal._partial_function.ReturnType]: ...
85
37
  def _is_web_endpoint(self) -> bool: ...
86
- def __get__(self, obj, objtype=None) -> modal.functions.Function[P, ReturnType, OriginalReturnType]: ...
38
+ def __get__(
39
+ self, obj, objtype=None
40
+ ) -> modal.functions.Function[
41
+ modal._partial_function.P, modal._partial_function.ReturnType, modal._partial_function.OriginalReturnType
42
+ ]: ...
87
43
  def __del__(self): ...
88
44
  def add_flags(self, flags) -> PartialFunction: ...
89
45
 
90
- def _find_partial_methods_for_user_cls(user_cls: type[typing.Any], flags: int) -> dict[str, _PartialFunction]: ...
91
- def _find_callables_for_obj(
92
- user_obj: typing.Any, flags: int
93
- ) -> dict[str, collections.abc.Callable[..., typing.Any]]: ...
94
-
95
- class _MethodDecoratorType:
96
- @typing.overload
97
- def __call__(
98
- self, func: PartialFunction[typing_extensions.Concatenate[typing.Any, P], ReturnType, OriginalReturnType]
99
- ) -> PartialFunction[P, ReturnType, OriginalReturnType]: ...
100
- @typing.overload
101
- def __call__(
102
- self,
103
- func: collections.abc.Callable[
104
- typing_extensions.Concatenate[typing.Any, P], collections.abc.Coroutine[typing.Any, typing.Any, ReturnType]
105
- ],
106
- ) -> PartialFunction[P, ReturnType, collections.abc.Coroutine[typing.Any, typing.Any, ReturnType]]: ...
107
- @typing.overload
108
- def __call__(
109
- self, func: collections.abc.Callable[typing_extensions.Concatenate[typing.Any, P], ReturnType]
110
- ) -> PartialFunction[P, ReturnType, ReturnType]: ...
111
-
112
- def _method(
113
- _warn_parentheses_missing=None,
114
- *,
115
- is_generator: typing.Optional[bool] = None,
116
- keep_warm: typing.Optional[int] = None,
117
- ) -> _MethodDecoratorType: ...
118
- def _parse_custom_domains(
119
- custom_domains: typing.Optional[collections.abc.Iterable[str]] = None,
120
- ) -> list[modal_proto.api_pb2.CustomDomainConfig]: ...
121
- def _web_endpoint(
122
- _warn_parentheses_missing=None,
123
- *,
124
- method: str = "GET",
125
- label: typing.Optional[str] = None,
126
- docs: bool = False,
127
- custom_domains: typing.Optional[collections.abc.Iterable[str]] = None,
128
- requires_proxy_auth: bool = False,
129
- wait_for_response: bool = True,
130
- ) -> collections.abc.Callable[
131
- [collections.abc.Callable[P, ReturnType]], _PartialFunction[P, ReturnType, ReturnType]
132
- ]: ...
133
- def _asgi_app(
134
- _warn_parentheses_missing=None,
135
- *,
136
- label: typing.Optional[str] = None,
137
- custom_domains: typing.Optional[collections.abc.Iterable[str]] = None,
138
- requires_proxy_auth: bool = False,
139
- wait_for_response: bool = True,
140
- ) -> collections.abc.Callable[[collections.abc.Callable[..., typing.Any]], _PartialFunction]: ...
141
- def _wsgi_app(
142
- _warn_parentheses_missing=None,
143
- *,
144
- label: typing.Optional[str] = None,
145
- custom_domains: typing.Optional[collections.abc.Iterable[str]] = None,
146
- requires_proxy_auth: bool = False,
147
- wait_for_response: bool = True,
148
- ) -> collections.abc.Callable[[collections.abc.Callable[..., typing.Any]], _PartialFunction]: ...
149
- def _web_server(
150
- port: int,
151
- *,
152
- startup_timeout: float = 5.0,
153
- label: typing.Optional[str] = None,
154
- custom_domains: typing.Optional[collections.abc.Iterable[str]] = None,
155
- requires_proxy_auth: bool = False,
156
- ) -> collections.abc.Callable[[collections.abc.Callable[..., typing.Any]], _PartialFunction]: ...
157
- def _disallow_wrapping_method(f: _PartialFunction, wrapper: str) -> None: ...
158
- def _build(
159
- _warn_parentheses_missing=None, *, force: bool = False, timeout: int = 86400
160
- ) -> collections.abc.Callable[
161
- [typing.Union[collections.abc.Callable[[typing.Any], typing.Any], _PartialFunction]], _PartialFunction
162
- ]: ...
163
- def _enter(
164
- _warn_parentheses_missing=None, *, snap: bool = False
165
- ) -> collections.abc.Callable[
166
- [typing.Union[collections.abc.Callable[[typing.Any], typing.Any], _PartialFunction]], _PartialFunction
167
- ]: ...
168
- def _exit(
169
- _warn_parentheses_missing=None,
170
- ) -> collections.abc.Callable[
171
- [
172
- typing.Union[
173
- collections.abc.Callable[
174
- [typing.Any, typing.Optional[type[BaseException]], typing.Optional[BaseException], typing.Any],
175
- typing.Any,
176
- ],
177
- collections.abc.Callable[[typing.Any], typing.Any],
178
- ]
179
- ],
180
- _PartialFunction,
181
- ]: ...
182
- def _batched(
183
- _warn_parentheses_missing=None, *, max_batch_size: int, wait_ms: int
184
- ) -> collections.abc.Callable[[collections.abc.Callable[..., typing.Any]], _PartialFunction]: ...
185
46
  def method(
186
47
  _warn_parentheses_missing=None,
187
48
  *,
188
49
  is_generator: typing.Optional[bool] = None,
189
50
  keep_warm: typing.Optional[int] = None,
190
- ) -> _MethodDecoratorType: ...
51
+ ) -> modal._partial_function._MethodDecoratorType: ...
191
52
  def web_endpoint(
192
53
  _warn_parentheses_missing=None,
193
54
  *,
@@ -198,7 +59,8 @@ def web_endpoint(
198
59
  requires_proxy_auth: bool = False,
199
60
  wait_for_response: bool = True,
200
61
  ) -> collections.abc.Callable[
201
- [collections.abc.Callable[P, ReturnType]], PartialFunction[P, ReturnType, ReturnType]
62
+ [collections.abc.Callable[modal._partial_function.P, modal._partial_function.ReturnType]],
63
+ PartialFunction[modal._partial_function.P, modal._partial_function.ReturnType, modal._partial_function.ReturnType],
202
64
  ]: ...
203
65
  def asgi_app(
204
66
  _warn_parentheses_missing=None,
modal/sandbox.py CHANGED
@@ -468,8 +468,7 @@ class _Sandbox(_Object, type_prefix="sb"):
468
468
  text: Literal[True] = True,
469
469
  bufsize: Literal[-1, 1] = -1,
470
470
  _pty_info: Optional[api_pb2.PTYInfo] = None,
471
- ) -> _ContainerProcess[str]:
472
- ...
471
+ ) -> _ContainerProcess[str]: ...
473
472
 
474
473
  @overload
475
474
  async def exec(
@@ -484,8 +483,7 @@ class _Sandbox(_Object, type_prefix="sb"):
484
483
  text: Literal[False] = False,
485
484
  bufsize: Literal[-1, 1] = -1,
486
485
  _pty_info: Optional[api_pb2.PTYInfo] = None,
487
- ) -> _ContainerProcess[bytes]:
488
- ...
486
+ ) -> _ContainerProcess[bytes]: ...
489
487
 
490
488
  async def exec(
491
489
  self,
@@ -597,16 +595,14 @@ class _Sandbox(_Object, type_prefix="sb"):
597
595
  self,
598
596
  path: str,
599
597
  mode: "_typeshed.OpenTextMode",
600
- ) -> _FileIO[str]:
601
- ...
598
+ ) -> _FileIO[str]: ...
602
599
 
603
600
  @overload
604
601
  async def open(
605
602
  self,
606
603
  path: str,
607
604
  mode: "_typeshed.OpenBinaryMode",
608
- ) -> _FileIO[bytes]:
609
- ...
605
+ ) -> _FileIO[bytes]: ...
610
606
 
611
607
  async def open(
612
608
  self,
modal/token_flow.py CHANGED
@@ -104,7 +104,7 @@ async def _new_token(
104
104
  result = await token_flow.finish()
105
105
  if result is not None:
106
106
  break
107
- status.update(f"Waiting for token flow to complete... (attempt {attempt+2})")
107
+ status.update(f"Waiting for token flow to complete... (attempt {attempt + 2})")
108
108
 
109
109
  console.print("[green]Web authentication finished successfully![/green]")
110
110
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: modal
3
- Version: 0.73.27
3
+ Version: 0.73.29
4
4
  Summary: Python client library for Modal
5
5
  Author: Modal Labs
6
6
  Author-email: support@modal.com
@@ -1,44 +1,45 @@
1
1
  modal/__init__.py,sha256=df6aKAigSPFXnmIohWySf_1zZ9Gzgrb7-oprSbopD4w,2299
2
- modal/__main__.py,sha256=scYhGFqh8OJcVDo-VOxIT6CCwxOgzgflYWMnIZiMRqE,2871
2
+ modal/__main__.py,sha256=CgIjP8m1xJjjd4AXc-delmR6LdBCZclw2A_V38CFIio,2870
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=MlKDaCYso7cK3JxNmVErdm1ADdwK40HsPnrrJKCa8vk,29285
6
- modal/_functions.py,sha256=N9Sp4SDv7oFung2abqy3VAaehaaWR9Y9SWxRlKLARI8,71984
5
+ modal/_container_entrypoint.py,sha256=YtfJ852XUDtAWBD-yVs99zy933-VBEKQyIngEj36Qcw,29286
6
+ modal/_functions.py,sha256=dxZjGMsocphkxTxI2bjoI8yuA1Z4hUl1b5alS7v3QCI,72023
7
7
  modal/_ipython.py,sha256=TW1fkVOmZL3YYqdS2YlM1hqpf654Yf8ZyybHdBnlhSw,301
8
8
  modal/_location.py,sha256=S3lSxIU3h9HkWpkJ3Pwo0pqjIOSB1fjeSgUsY3x7eec,1202
9
9
  modal/_object.py,sha256=ItQcsMNkz9Y3kdTsvfNarbW-paJ2qabDyQ7njaqY0XI,11359
10
10
  modal/_output.py,sha256=Z0nngPh2mKHMQc4MQ92YjVPc3ewOLa3I4dFBlL9nvQY,25656
11
+ modal/_partial_function.py,sha256=KGv4hWXBboiWFxC733jfOHKdvShTPjF75lVv866Lgyc,29078
11
12
  modal/_proxy_tunnel.py,sha256=gnKyCfmVB7x2d1A6c-JDysNIP3kEFxmXzhcXhPrzPn0,1906
12
13
  modal/_pty.py,sha256=JZfPDDpzqICZqtyPI_oMJf_9w-p_lLNuzHhwhodUXio,1329
13
- modal/_resolver.py,sha256=D9IAdZKNqRPwgPDaB-XMKGtO8G0GwtBzG6xdgiXKdCk,6945
14
+ modal/_resolver.py,sha256=RtoXoYzSllPlFu0D1vel_FWiEmDO7RyToiC2bxeN8ZY,6917
14
15
  modal/_resources.py,sha256=5qmcirXUI8dSH926nwkUaeX9H25mqYu9mXD_KuT79-o,1733
15
16
  modal/_serialization.py,sha256=NYSjM9FnbLXULuzpboVvPcFFHRyh3hn_AcSFXQCGPYc,19741
16
17
  modal/_traceback.py,sha256=IZQzB3fVlUfMHOSyKUgw0H6qv4yHnpyq-XVCNZKfUdA,5023
17
18
  modal/_tunnel.py,sha256=zTBxBiuH1O22tS1OliAJdIsSmaZS8PlnifS_6S5z-mk,6320
18
19
  modal/_tunnel.pyi,sha256=JmmDYAy9F1FpgJ_hWx0xkom2nTOFQjn4mTPYlU3PFo4,1245
19
20
  modal/_watcher.py,sha256=K6LYnlmSGQB4tWWI9JADv-tvSvQ1j522FwT71B51CX8,3584
20
- modal/app.py,sha256=MaWCYgNx8y2GQhmaXQBMKKAAfCYfdxrdYs6zCBoJzwI,44628
21
+ modal/app.py,sha256=rCOPD51gVyow8muyaqMuV65qfTnAZKf_w1OCZdSF_6o,44636
21
22
  modal/app.pyi,sha256=lxiuWzE_OLb3WHg-H7Pek9DGBuCUzZ55P594VhJL5LA,26113
22
23
  modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
23
24
  modal/client.py,sha256=8SQawr7P1PNUCq1UmJMUQXG2jIo4Nmdcs311XqrNLRE,15276
24
- modal/client.pyi,sha256=NNU3kdFXj6deZST1JWu_j9164F4hiVkNeNtK9ltc4DE,7593
25
+ modal/client.pyi,sha256=MQimgW9ZEfR0nnv55oQC23DXgUqLx5jVtcvRnjkL5y0,7593
25
26
  modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
26
27
  modal/cloud_bucket_mount.pyi,sha256=30T3K1a89l6wzmEJ_J9iWv9SknoGqaZDx59Xs-ZQcmk,1607
27
- modal/cls.py,sha256=agxclIXZbzBbgcI5PPVD7IfOiHzv-B82xaaXtw9cpv8,31126
28
- modal/cls.pyi,sha256=gb6QNwfX3HSJfcZXPY36N9ywF7aBJTwwtoARnf3G1HQ,8877
28
+ modal/cls.py,sha256=5Er9L9tGpLGIrbiHOI7c9266gPG6nhxoJ_BX8op96nU,31096
29
+ modal/cls.pyi,sha256=TaQEWPZ-zzAQJJSZem6E4KuyOeEJLignUD1anSRzwBg,8909
29
30
  modal/config.py,sha256=XT1W4Y9PVkbYMAXjJRshvQEPDhZmnfW_ZRMwl8XKoqA,11149
30
31
  modal/container_process.py,sha256=WTqLn01dJPVkPpwR_0w_JH96ceN5mV4TGtiu1ZR2RRA,6108
31
32
  modal/container_process.pyi,sha256=Hf0J5JyDdCCXBJSKx6gvkPOo0XrztCm78xzxamtzUjQ,2828
32
33
  modal/dict.py,sha256=vc5lQVqzeDUCb4fRjnOlqYK2GmBb0fIhZmvB0xIBG0U,12921
33
34
  modal/dict.pyi,sha256=kKb0Kc6RUabtQ5Hwslg_vwL_OIrwIAJ2NXrJTepTtp4,7684
34
- modal/environments.py,sha256=Q1MpUt4SmBUaLFPzrYxCgGkMaqNBLxRDSLzNxK_Abe4,6949
35
+ modal/environments.py,sha256=mrOaS9hiIQijGWJYIgVKQnwC-kONhWHm1GqoK_9G75E,6924
35
36
  modal/environments.pyi,sha256=JvSroVOIXDIILL40Z5G4HyY16bmih2YMWMvWL-SFTwo,3373
36
37
  modal/exception.py,sha256=4JyO-SACaLNDe2QC48EjsK8GMkZ8AgEurZ8j1YdRu8E,5263
37
- modal/experimental.py,sha256=HgD7luvxjQV1wNlApu6dyvR0wK-v7G3-px3rSqwsBec,4016
38
+ modal/experimental.py,sha256=e625Ekpo2HtYkk6ZltM_XYcI9xhLxic8_7Na91PbdUg,4017
38
39
  modal/experimental.pyi,sha256=24tIYu_w9RLwFrz1cIsgYuqmDCtV8eg6-bQNz3zjhDo,939
39
40
  modal/file_io.py,sha256=lcMs_E9Xfm0YX1t9U2wNIBPnqHRxmImqjLW1GHqVmyg,20945
40
41
  modal/file_io.pyi,sha256=NTRft1tbPSWf9TlWVeZmTlgB5AZ_Zhu2srWIrWr7brk,9445
41
- modal/file_pattern_matcher.py,sha256=1cZ4V2wSLiaXqAqStETSwp3bzDD6QZOt6pmmjk3Okz4,6505
42
+ modal/file_pattern_matcher.py,sha256=trosX-Bp7dOubudN1bLLhRAoidWy1TcoaR4Pv8CedWw,6497
42
43
  modal/functions.py,sha256=kcNHvqeGBxPI7Cgd57NIBBghkfbeFJzXO44WW0jSmao,325
43
44
  modal/functions.pyi,sha256=YflJx4BhzmJLJzpVWbuAMv0Qv63Mgb3r9qZqrgBEr1w,14289
44
45
  modal/gpu.py,sha256=uDluoK3hXyj2YRxGhVDFOifOBCsXFTo5hVueGoJPb8w,6001
@@ -46,17 +47,17 @@ modal/image.py,sha256=KYc6bg-m9A6wiLF38dWcFBMrEATyR2KOF0sp-6O9uC0,91508
46
47
  modal/image.pyi,sha256=kdJzy1eaxNPZeCpE0TMYYLhJ6UWmkfRDeb_vzngJUoQ,26462
47
48
  modal/io_streams.py,sha256=QkQiizKRzd5bnbKQsap31LJgBYlAnj4-XkV_50xPYX0,15079
48
49
  modal/io_streams.pyi,sha256=bJ7ZLmSmJ0nKoa6r4FJpbqvzdUVa0lEe0Fa-MMpMezU,5071
49
- modal/mount.py,sha256=aUa_KTsUzpbRso5XfVw2UuKl9j1KdWEIpNCl9pF1_YI,32156
50
+ modal/mount.py,sha256=hNoy7J-E2C-CkSmbKldfL_zg8db8nP8cVzRj_35Rsp0,32124
50
51
  modal/mount.pyi,sha256=CmHa7zKSxHA_7-vMQLnGfw_ZXvAvHlafvUEVJcQ1LQA,12535
51
52
  modal/network_file_system.py,sha256=WXdyL7du_fvjvuG6hSAREyJ83sSEP2xSLAIAhBsisdI,14869
52
53
  modal/network_file_system.pyi,sha256=4N3eqMbTSlqmS8VV_aJK-uvrgJC8xnf_YtW5FHfRfc8,8156
53
54
  modal/object.py,sha256=bTeskuY8JFrESjU4_UL_nTwYlBQdOLmVaOX3X6EMxsg,164
54
55
  modal/object.pyi,sha256=kyJkRQcVv3ct7zSAxvvXcuhBVeH914v80uSlqeS7cA4,5632
55
- modal/output.py,sha256=N0xf4qeudEaYrslzdAl35VKV8rapstgIM2e9wO8_iy0,1967
56
+ modal/output.py,sha256=q4T9uHduunj4NwY-YSwkHGgjZlCXMuJbfQ5UFaAGRAc,1968
56
57
  modal/parallel_map.py,sha256=POBTyiWabe2e4qBNlsjjksiu1AAPEsNqI-mM8cgNFco,16042
57
58
  modal/parallel_map.pyi,sha256=-YKY_bVuQv8B4gtFrHnXtuNV0_JpmU9vqMJzR7beeCU,2524
58
- modal/partial_function.py,sha256=vlZz1eVDoTWZWkyyG5peujEi_jvQ07U0_qmRflh0Dt8,28708
59
- modal/partial_function.pyi,sha256=UI0YJpp8sQw8vWA-S_G3qT6HVKfeiUN9kmk4H1YofkI,9895
59
+ modal/partial_function.py,sha256=KkATL56zEe_Kzp4hDX0c0e6BrXeO8V8mZBjfIs_ldqI,1016
60
+ modal/partial_function.pyi,sha256=SwjQHTqjdRqoPxIsfNFeiMt-E_IfFECPGlGZPEcDB7E,4649
60
61
  modal/proxy.py,sha256=NrOevrWxG3G7-zlyRzG6BcIvop7AWLeyahZxitbBaOk,1418
61
62
  modal/proxy.pyi,sha256=1OEKIVUyC-xb7fHMzngakQso0nTsK60TVhXtlcMj6Wk,390
62
63
  modal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -66,7 +67,7 @@ modal/retries.py,sha256=HKR2Q9aNPWkMjQ5nwobqYTuZaSuw0a8lI2zrtY5IW98,5230
66
67
  modal/runner.py,sha256=fdUyDGN-bWu_aZBvxBO_MIgEuucsA0PgDKDHBn5k8J0,24451
67
68
  modal/runner.pyi,sha256=RYEYsnofrvVroYefWLhWAy8I_uwXV9fRNuJaVgcNzrg,5278
68
69
  modal/running_app.py,sha256=v61mapYNV1-O-Uaho5EfJlryMLvIT9We0amUOSvSGx8,1188
69
- modal/sandbox.py,sha256=fMvBs3KZV08kT9jo8roT7yNS78ENGef2xHIAuuXeuK4,31809
70
+ modal/sandbox.py,sha256=fPStBypgDjclm388u5v3q26gAub0mP4c1pZYLlrJcUY,31777
70
71
  modal/sandbox.pyi,sha256=qncEvzK76h_ehrs03vlroQyLThWiMsjKhD0DnCNc6zI,22663
71
72
  modal/schedule.py,sha256=0ZFpKs1bOxeo5n3HZjoL7OE2ktsb-_oGtq-WJEPO4tY,2615
72
73
  modal/scheduler_placement.py,sha256=BAREdOY5HzHpzSBqt6jDVR6YC_jYfHMVqOzkyqQfngU,1235
@@ -77,25 +78,25 @@ modal/serving.pyi,sha256=ncV-9jY_vZYFnGs5ZnMb3ffrX8LmcLdIMHBC56xRbtE,1711
77
78
  modal/snapshot.py,sha256=6rQvDP3iX9hdiAudKTy0-m0JESt4kk0q2gusXbaRA-8,1279
78
79
  modal/snapshot.pyi,sha256=Ypd4NKsjOTnnnqXyTGGLKq5lkocRrUURYjY5Pi67_qA,670
79
80
  modal/stream_type.py,sha256=A6320qoAAWhEfwOCZfGtymQTu5AfLfJXXgARqooTPvY,417
80
- modal/token_flow.py,sha256=LcgSce_MSQ2p7j55DPwpVRpiAtCDe8GRSEwzO7muNR8,6774
81
+ modal/token_flow.py,sha256=APNPQhuqy2avu6IY26U6OiN7erRhpo03Ztt1V60_wts,6776
81
82
  modal/token_flow.pyi,sha256=0XV3d-9CGQL3qjPdw3RgwIFVqqxo8Z-u044_mkgAM3o,2064
82
83
  modal/volume.py,sha256=JAWeDvoAG95tMBv-fYIERyHsJPS_X_xGpxRRmYtb6j0,30096
83
84
  modal/volume.pyi,sha256=kTsXarphjZILXci84LQy7EyC84eXUs5-7D62IM5q3eE,12491
84
85
  modal/_runtime/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
85
86
  modal/_runtime/asgi.py,sha256=vIxpGrCZhdeThwazQckmrqoNKgDQYOyv8emzBHr8CiU,22154
86
- modal/_runtime/container_io_manager.py,sha256=EHjdCky8RiM2kDpkwDhBqs2kCqC-ixc-TNS4X2eL8pg,43596
87
+ modal/_runtime/container_io_manager.py,sha256=3VPj0RWtSdvVZD96l5ZpO8MjhLRjAi_P_ZtpNK3nGn0,43593
87
88
  modal/_runtime/execution_context.py,sha256=E6ofm6j1POXGPxS841X3V7JU6NheVb8OkQc7JpLq4Kg,2712
88
89
  modal/_runtime/gpu_memory_snapshot.py,sha256=tA3m1d1cwnmHpvpCeN_WijDd6n8byn7LWlpicbIxiOI,3144
89
90
  modal/_runtime/telemetry.py,sha256=T1RoAGyjBDr1swiM6pPsGRSITm7LI5FDK18oNXxY08U,5163
90
- modal/_runtime/user_code_imports.py,sha256=zl_Mq9dsrVF62x3w-iNK1YAhZKYAXeFaGpd4G7AySTc,14746
91
+ modal/_runtime/user_code_imports.py,sha256=qDasIvffN3SJjUeT1DHcpN35lWNepnbomS0Z8yD65mA,14740
91
92
  modal/_utils/__init__.py,sha256=waLjl5c6IPDhSsdWAm9Bji4e2PVxamYABKAze6CHVXY,28
92
93
  modal/_utils/app_utils.py,sha256=88BT4TPLWfYAQwKTHcyzNQRHg8n9B-QE2UyJs96iV-0,108
93
- modal/_utils/async_utils.py,sha256=9ubwMkwiDB4gzOYG2jL9j7Fs-5dxHjcifZe3r7JRg-k,25091
94
- modal/_utils/blob_utils.py,sha256=N66LtZI8PpCkZ7maA7GLW5CAmYUoNJdG-GjaAUR4_NQ,14509
94
+ modal/_utils/async_utils.py,sha256=5PdDuI1aSwPOI4a3dIvW0DkPqGw6KZN6RtWE18Dzv1E,25079
95
+ modal/_utils/blob_utils.py,sha256=RB1G6T7eC1Poe-O45qYLaxwCr2jkM-Q6Nexk1J3wk_w,14505
95
96
  modal/_utils/bytes_io_segment_payload.py,sha256=uunxVJS4PE1LojF_UpURMzVK9GuvmYWRqQo_bxEj5TU,3385
96
97
  modal/_utils/deprecation.py,sha256=dycySRBxyZf3ITzEqPNM6MxXTk9-0VVLA8oCPQ5j_Os,3426
97
98
  modal/_utils/docker_utils.py,sha256=h1uETghR40mp_y3fSWuZAfbIASH1HMzuphJHghAL6DU,3722
98
- modal/_utils/function_utils.py,sha256=fc5RKK59SxV7Vg4JyURVB2CCLUNKQVcBG60_dUxviRM,27307
99
+ modal/_utils/function_utils.py,sha256=Rmz8GJDie-RW_q2RcTwholEWixS2IQDPBsRBJ3f3ZvU,27302
99
100
  modal/_utils/grpc_testing.py,sha256=H1zHqthv19eGPJz2HKXDyWXWGSqO4BRsxah3L5Xaa8A,8619
100
101
  modal/_utils/grpc_utils.py,sha256=PPB5ay-vXencXNIWPVw5modr3EH7gfq2QPcO5YJ1lMU,7737
101
102
  modal/_utils/hash_utils.py,sha256=zg3J6OGxTFGSFri1qQ12giDz90lWk8bzaxCTUCRtiX4,3034
@@ -118,18 +119,18 @@ modal/cli/app.py,sha256=TmUiFKAE1yc6ll8pfl-wZ2lh9crC31Fu_8_YKCX8NJc,7818
118
119
  modal/cli/config.py,sha256=QvFsqO4eUOtI7d_pQAOAyfq_ZitjhPtav3C6GIDQcZM,1680
119
120
  modal/cli/container.py,sha256=FYwEgjf93j4NMorAjGbSV98i1wpebqdAeNU1wfrFp1k,3668
120
121
  modal/cli/dict.py,sha256=8Wq3w-UDaywk8EVNdj-ECCNV9TYHqh4kzhUqhhulatM,4593
121
- modal/cli/entry_point.py,sha256=aaNxFAqZcmtSjwzkYIA_Ba9CkL4cL4_i2gy5VjoXxkM,4228
122
+ modal/cli/entry_point.py,sha256=DzFr75smEi1OSJdGXx1ZaAl-3-4b08QCDUP3tzvApKo,4225
122
123
  modal/cli/environment.py,sha256=Ayddkiq9jdj3XYDJ8ZmUqFpPPH8xajYlbexRkzGtUcg,4334
123
124
  modal/cli/import_refs.py,sha256=YYseLJ6cU_wln7DjVWfKPgEhv77hxfA0klWAkTK_1HA,12672
124
125
  modal/cli/launch.py,sha256=pzQt2QlcrbIUU0MVzWWPAvMQ6MCyqsHZ0X9JcV-sY04,3242
125
126
  modal/cli/network_file_system.py,sha256=eq3JnwjbfFNsJodIyANHL06ByYc3BSavzdmu8C96cHA,7948
126
127
  modal/cli/profile.py,sha256=rLXfjJObfPNjaZvNfHGIKqs7y9bGYyGe-K7V0w-Ni0M,3110
127
128
  modal/cli/queues.py,sha256=6gTu76dzBtPN5eQVsLrvQpuru5jI9ZCWK5Eh8J8XhaM,4498
128
- modal/cli/run.py,sha256=hXCvqQM6w7dXz0254q5Sr0UNR5JC6cEA6fBdrcshCcg,21784
129
- modal/cli/secret.py,sha256=uQpwYrMY98iMCWeZOQTcktOYhPTZ8IHnyealDc2CZqo,4206
129
+ modal/cli/run.py,sha256=Wu5P4ERjB4iZ_d4J8nP7KB58qIjL595KnFQkw_pWDik,21761
130
+ modal/cli/secret.py,sha256=iDsaFUJBq3333ZBVzKPcqyey68w0j82PNddGhRgP2pA,4206
130
131
  modal/cli/token.py,sha256=mxSgOWakXG6N71hQb1ko61XAR9ZGkTMZD-Txn7gmTac,1924
131
132
  modal/cli/utils.py,sha256=hZmjyzcPjDnQSkLvycZD2LhGdcsfdZshs_rOU78EpvI,3717
132
- modal/cli/volume.py,sha256=zVZTTRSi1iWy9Rnwx7WyoLSq73Jd_n1z8fx-QlDkNIQ,10266
133
+ modal/cli/volume.py,sha256=c2IuVNO2yJVaXmZkRh3xwQmznlRTgFoJr_BIzzqtVv0,10251
133
134
  modal/cli/programs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
134
135
  modal/cli/programs/run_jupyter.py,sha256=1X8eQ3gB_IqkJn11Q4dQ9KdIqFVwQQlwkrrSqlFWfPQ,2685
135
136
  modal/cli/programs/vscode.py,sha256=c5jKk1ruuC03X1D-hNc2jtTQqofCBweEZH_qxHjkHGo,3383
@@ -145,7 +146,7 @@ modal_docs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
145
146
  modal_docs/gen_cli_docs.py,sha256=c1yfBS_x--gL5bs0N4ihMwqwX8l3IBWSkBAKNNIi6bQ,3801
146
147
  modal_docs/gen_reference_docs.py,sha256=aDcUSSDtAAZ4eeFWyroeIg2TOzyRoYcic-d9Zh9TdLY,6656
147
148
  modal_docs/mdmd/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
148
- modal_docs/mdmd/mdmd.py,sha256=F6EXKkjwrTbOiG6I7wKtNGVVmmeWLAJ5pnE7DUkDpvM,6231
149
+ modal_docs/mdmd/mdmd.py,sha256=Irx49MCCTlBOP4FBdLR--JrpA3-WhsVeriq0LGgsRic,6232
149
150
  modal_docs/mdmd/signatures.py,sha256=XJaZrK7Mdepk5fdX51A8uENiLFNil85Ud0d4MH8H5f0,3218
150
151
  modal_global_objects/__init__.py,sha256=waLjl5c6IPDhSsdWAm9Bji4e2PVxamYABKAze6CHVXY,28
151
152
  modal_global_objects/images/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
@@ -171,10 +172,10 @@ modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0y
171
172
  modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
173
  modal_version/__init__.py,sha256=wiJQ53c-OMs0Xf1UeXOxQ7FwlV1VzIjnX6o-pRYZ_Pk,470
173
174
  modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
174
- modal_version/_version_generated.py,sha256=sQVJ0gz9EdPuIRQye6HG69QC52sbpNWI8nHV1qb_C7o,149
175
- modal-0.73.27.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
176
- modal-0.73.27.dist-info/METADATA,sha256=XbkIba_nQ8FVEZfNt6qn2LZA-gCZq42-zS5TtwNGrrg,2330
177
- modal-0.73.27.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
178
- modal-0.73.27.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
179
- modal-0.73.27.dist-info/top_level.txt,sha256=1nvYbOSIKcmU50fNrpnQnrrOpj269ei3LzgB6j9xGqg,64
180
- modal-0.73.27.dist-info/RECORD,,
175
+ modal_version/_version_generated.py,sha256=uXe2sj5cfIxypnLDmDmNLrwhJ8zb9QYVuha29ACAI8o,149
176
+ modal-0.73.29.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
177
+ modal-0.73.29.dist-info/METADATA,sha256=wPPaPbfClS8_-XLC-fQguOHndNExkDCeZuezdll6Fvk,2330
178
+ modal-0.73.29.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
179
+ modal-0.73.29.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
180
+ modal-0.73.29.dist-info/top_level.txt,sha256=1nvYbOSIKcmU50fNrpnQnrrOpj269ei3LzgB6j9xGqg,64
181
+ modal-0.73.29.dist-info/RECORD,,
modal_docs/mdmd/mdmd.py CHANGED
@@ -1,5 +1,6 @@
1
1
  # Copyright Modal Labs 2023
2
2
  """mdmd - MoDal MarkDown"""
3
+
3
4
  import inspect
4
5
  import warnings
5
6
  from enum import Enum, EnumMeta
@@ -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 = 27 # git: 4e70d23
4
+ build_number = 29 # git: 9634185