modal 0.66.35__py3-none-any.whl → 0.66.36__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/_utils/function_utils.py +28 -8
- modal/client.pyi +2 -2
- modal/functions.pyi +6 -6
- {modal-0.66.35.dist-info → modal-0.66.36.dist-info}/METADATA +1 -1
- {modal-0.66.35.dist-info → modal-0.66.36.dist-info}/RECORD +10 -10
- modal_version/_version_generated.py +1 -1
- {modal-0.66.35.dist-info → modal-0.66.36.dist-info}/LICENSE +0 -0
- {modal-0.66.35.dist-info → modal-0.66.36.dist-info}/WHEEL +0 -0
- {modal-0.66.35.dist-info → modal-0.66.36.dist-info}/entry_points.txt +0 -0
- {modal-0.66.35.dist-info → modal-0.66.36.dist-info}/top_level.txt +0 -0
modal/_utils/function_utils.py
CHANGED
@@ -519,6 +519,16 @@ async def _create_input(
|
|
519
519
|
)
|
520
520
|
|
521
521
|
|
522
|
+
def _get_suffix_from_web_url_info(url_info: api_pb2.WebUrlInfo) -> str:
|
523
|
+
if url_info.truncated:
|
524
|
+
suffix = " [grey70](label truncated)[/grey70]"
|
525
|
+
elif url_info.label_stolen:
|
526
|
+
suffix = " [grey70](label stolen)[/grey70]"
|
527
|
+
else:
|
528
|
+
suffix = ""
|
529
|
+
return suffix
|
530
|
+
|
531
|
+
|
522
532
|
class FunctionCreationStatus:
|
523
533
|
# TODO(michael) this really belongs with other output-related code
|
524
534
|
# but moving it here so we can use it when loading a function with output disabled
|
@@ -547,12 +557,7 @@ class FunctionCreationStatus:
|
|
547
557
|
elif self.response.function.web_url:
|
548
558
|
url_info = self.response.function.web_url_info
|
549
559
|
# Ensure terms used here match terms used in modal.com/docs/guide/webhook-urls doc.
|
550
|
-
|
551
|
-
suffix = " [grey70](label truncated)[/grey70]"
|
552
|
-
elif url_info.label_stolen:
|
553
|
-
suffix = " [grey70](label stolen)[/grey70]"
|
554
|
-
else:
|
555
|
-
suffix = ""
|
560
|
+
suffix = _get_suffix_from_web_url_info(url_info)
|
556
561
|
# TODO: this is only printed when we're showing progress. Maybe move this somewhere else.
|
557
562
|
web_url = self.response.handle_metadata.web_url
|
558
563
|
self.status_row.finish(
|
@@ -563,8 +568,23 @@ class FunctionCreationStatus:
|
|
563
568
|
for custom_domain in self.response.function.custom_domain_info:
|
564
569
|
custom_domain_status_row = self.resolver.add_status_row()
|
565
570
|
custom_domain_status_row.finish(
|
566
|
-
f"Custom domain for {self.tag} => [magenta underline]"
|
567
|
-
f"{custom_domain.url}[/magenta underline]{suffix}"
|
571
|
+
f"Custom domain for {self.tag} => [magenta underline]" f"{custom_domain.url}[/magenta underline]"
|
568
572
|
)
|
569
573
|
else:
|
570
574
|
self.status_row.finish(f"Created function {self.tag}.")
|
575
|
+
if self.response.function.method_definitions_set:
|
576
|
+
for method_definition in self.response.function.method_definitions.values():
|
577
|
+
if method_definition.web_url:
|
578
|
+
url_info = method_definition.web_url_info
|
579
|
+
suffix = _get_suffix_from_web_url_info(url_info)
|
580
|
+
class_web_endpoint_method_status_row = self.resolver.add_status_row()
|
581
|
+
class_web_endpoint_method_status_row.finish(
|
582
|
+
f"Created web endpoint for {method_definition.function_name} => [magenta underline]"
|
583
|
+
f"{method_definition.web_url}[/magenta underline]{suffix}"
|
584
|
+
)
|
585
|
+
for custom_domain in method_definition.custom_domain_info:
|
586
|
+
custom_domain_status_row = self.resolver.add_status_row()
|
587
|
+
custom_domain_status_row.finish(
|
588
|
+
f"Custom domain for {method_definition.function_name} => [magenta underline]"
|
589
|
+
f"{custom_domain.url}[/magenta underline]"
|
590
|
+
)
|
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[typing.Tuple[str, str]],
|
34
|
-
version: str = "0.66.
|
34
|
+
version: str = "0.66.36",
|
35
35
|
): ...
|
36
36
|
def is_closed(self) -> bool: ...
|
37
37
|
@property
|
@@ -90,7 +90,7 @@ class Client:
|
|
90
90
|
server_url: str,
|
91
91
|
client_type: int,
|
92
92
|
credentials: typing.Optional[typing.Tuple[str, str]],
|
93
|
-
version: str = "0.66.
|
93
|
+
version: str = "0.66.36",
|
94
94
|
): ...
|
95
95
|
def is_closed(self) -> bool: ...
|
96
96
|
@property
|
modal/functions.pyi
CHANGED
@@ -450,11 +450,11 @@ class Function(typing.Generic[P, ReturnType, OriginalReturnType], modal.object.O
|
|
450
450
|
|
451
451
|
_call_generator_nowait: ___call_generator_nowait_spec
|
452
452
|
|
453
|
-
class __remote_spec(typing_extensions.Protocol[
|
453
|
+
class __remote_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
|
454
454
|
def __call__(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER: ...
|
455
455
|
async def aio(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER: ...
|
456
456
|
|
457
|
-
remote: __remote_spec[
|
457
|
+
remote: __remote_spec[ReturnType, P]
|
458
458
|
|
459
459
|
class __remote_gen_spec(typing_extensions.Protocol):
|
460
460
|
def __call__(self, *args, **kwargs) -> typing.Generator[typing.Any, None, None]: ...
|
@@ -466,17 +466,17 @@ class Function(typing.Generic[P, ReturnType, OriginalReturnType], modal.object.O
|
|
466
466
|
def _get_obj(self) -> typing.Optional[modal.cls.Obj]: ...
|
467
467
|
def local(self, *args: P.args, **kwargs: P.kwargs) -> OriginalReturnType: ...
|
468
468
|
|
469
|
-
class ___experimental_spawn_spec(typing_extensions.Protocol[
|
469
|
+
class ___experimental_spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
|
470
470
|
def __call__(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
|
471
471
|
async def aio(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
|
472
472
|
|
473
|
-
_experimental_spawn: ___experimental_spawn_spec[
|
473
|
+
_experimental_spawn: ___experimental_spawn_spec[ReturnType, P]
|
474
474
|
|
475
|
-
class __spawn_spec(typing_extensions.Protocol[
|
475
|
+
class __spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
|
476
476
|
def __call__(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
|
477
477
|
async def aio(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
|
478
478
|
|
479
|
-
spawn: __spawn_spec[
|
479
|
+
spawn: __spawn_spec[ReturnType, P]
|
480
480
|
|
481
481
|
def get_raw_f(self) -> typing.Callable[..., typing.Any]: ...
|
482
482
|
|
@@ -19,7 +19,7 @@ modal/app.py,sha256=QEBK8qYSrux36oi3iS3msBQmcUOS1r4s2nengzzynjQ,44658
|
|
19
19
|
modal/app.pyi,sha256=wHwBIDqkUb2CQzYVhxZafJ8xZ17TZ-8y-cRyOeZsEm0,25182
|
20
20
|
modal/call_graph.py,sha256=l-Wi6vM8aosCdHTWegcCyGeVJGFdZ_fzlCmbRVPBXFI,2593
|
21
21
|
modal/client.py,sha256=4SpWb4n0nolITR36kADZl1tYLOg6avukmzZU56UQjCo,16385
|
22
|
-
modal/client.pyi,sha256=
|
22
|
+
modal/client.pyi,sha256=H6wWnxqxDmdN--0UX-l2ImUY0pQPJYUoShqEvFqXZA8,7372
|
23
23
|
modal/cloud_bucket_mount.py,sha256=eWQhCtMIczpokjfTZEgNBCGO_s5ft46PqTSLfKBykq4,5748
|
24
24
|
modal/cloud_bucket_mount.pyi,sha256=tTF7M4FR9bTA30cFkz8qq3ZTlFL19NHU_36e_5GgAGA,1424
|
25
25
|
modal/cls.py,sha256=Ci7EtMrLm1LExfjZ9K2IXyj-SV9Syq8dAbZCEfddcmY,24234
|
@@ -34,7 +34,7 @@ modal/environments.pyi,sha256=oScvFAclF55-tL9UioLIL_SPBwgy_9O-BBvJ-PLbRgY,3542
|
|
34
34
|
modal/exception.py,sha256=K-czk1oK8wFvK8snWrytXSByo2WNb9SJAlgBVPGWZBs,6417
|
35
35
|
modal/experimental.py,sha256=jFuNbwrNHos47viMB9q-cHJSvf2RDxDdoEcss9plaZE,2302
|
36
36
|
modal/functions.py,sha256=3iAonXDZ1OXgtUhL1LuTguNxlJi_PtGu-cBibd6Y464,71837
|
37
|
-
modal/functions.pyi,sha256=
|
37
|
+
modal/functions.pyi,sha256=opYVDolZweBVZSfgT4t7OyQj4vBJ82B72IRoS8ZpoYw,24939
|
38
38
|
modal/gpu.py,sha256=r4rL6uH3UJIQthzYvfWauXNyh01WqCPtKZCmmSX1fd4,6881
|
39
39
|
modal/image.py,sha256=E6UVnhOdfkMnajiSpIm0iUEyE04yclkv9Y0BO6Vplrg,76043
|
40
40
|
modal/image.pyi,sha256=ZQpSN7XR16aug50sEcDE597CPssekeP1UZBtq0F1lRk,23847
|
@@ -83,7 +83,7 @@ modal/_utils/__init__.py,sha256=waLjl5c6IPDhSsdWAm9Bji4e2PVxamYABKAze6CHVXY,28
|
|
83
83
|
modal/_utils/app_utils.py,sha256=88BT4TPLWfYAQwKTHcyzNQRHg8n9B-QE2UyJs96iV-0,108
|
84
84
|
modal/_utils/async_utils.py,sha256=3H4pBC4DW6rCA6hgRux6FMxGqPgHM-G-BTs7KXZiWz4,23958
|
85
85
|
modal/_utils/blob_utils.py,sha256=pAY22w0oVc6ujGfI7La7HPUMOf42FehIapuhSDeeqEs,15835
|
86
|
-
modal/_utils/function_utils.py,sha256=
|
86
|
+
modal/_utils/function_utils.py,sha256=28mxgg_-7JF1DDiNnp3iNVsFQkOzMFjORsetdvZZTHU,24475
|
87
87
|
modal/_utils/grpc_testing.py,sha256=PQyzEjHBveW7vdqu5Tpn-aNWPO5RPPcsRWzGvXDHCxY,7931
|
88
88
|
modal/_utils/grpc_utils.py,sha256=tM1Q32VOU2WG733IfVHTLZdiyCe8Ga0f0Dx0iDLLy_8,7724
|
89
89
|
modal/_utils/hash_utils.py,sha256=HefF7zPQPxFxyx3fpz-AdSm4QsHZNNvgL9-iQHY-_F4,1790
|
@@ -159,10 +159,10 @@ modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0y
|
|
159
159
|
modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
160
160
|
modal_version/__init__.py,sha256=UnAuHBPuPSstqgdCOx0SBVdfhpeJnMlY_oxEbu44Izg,470
|
161
161
|
modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
|
162
|
-
modal_version/_version_generated.py,sha256=
|
163
|
-
modal-0.66.
|
164
|
-
modal-0.66.
|
165
|
-
modal-0.66.
|
166
|
-
modal-0.66.
|
167
|
-
modal-0.66.
|
168
|
-
modal-0.66.
|
162
|
+
modal_version/_version_generated.py,sha256=i4KSVuqvvB822jQoiQ8zWPLghpWwzKeBFDaOcDn8whg,149
|
163
|
+
modal-0.66.36.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
|
164
|
+
modal-0.66.36.dist-info/METADATA,sha256=SYSQ3smLiMXUOJjQhXemDyRMMDG3NInPqFaqY-2nPJE,2329
|
165
|
+
modal-0.66.36.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
166
|
+
modal-0.66.36.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
|
167
|
+
modal-0.66.36.dist-info/top_level.txt,sha256=1nvYbOSIKcmU50fNrpnQnrrOpj269ei3LzgB6j9xGqg,64
|
168
|
+
modal-0.66.36.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|