modal 1.0.3.dev27__py3-none-any.whl → 1.0.4.dev1__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 +2 -2
- modal/mount.py +52 -38
- modal/mount.pyi +15 -6
- modal/requirements/PREVIEW.txt +16 -15
- modal/requirements/base-images.json +28 -6
- {modal-1.0.3.dev27.dist-info → modal-1.0.4.dev1.dist-info}/METADATA +2 -2
- {modal-1.0.3.dev27.dist-info → modal-1.0.4.dev1.dist-info}/RECORD +12 -12
- modal_version/__init__.py +1 -1
- {modal-1.0.3.dev27.dist-info → modal-1.0.4.dev1.dist-info}/WHEEL +0 -0
- {modal-1.0.3.dev27.dist-info → modal-1.0.4.dev1.dist-info}/entry_points.txt +0 -0
- {modal-1.0.3.dev27.dist-info → modal-1.0.4.dev1.dist-info}/licenses/LICENSE +0 -0
- {modal-1.0.3.dev27.dist-info → modal-1.0.4.dev1.dist-info}/top_level.txt +0 -0
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.
|
34
|
+
version: str = "1.0.4.dev1",
|
35
35
|
): ...
|
36
36
|
def is_closed(self) -> bool: ...
|
37
37
|
@property
|
@@ -94,7 +94,7 @@ class Client:
|
|
94
94
|
server_url: str,
|
95
95
|
client_type: int,
|
96
96
|
credentials: typing.Optional[tuple[str, str]],
|
97
|
-
version: str = "1.0.
|
97
|
+
version: str = "1.0.4.dev1",
|
98
98
|
): ...
|
99
99
|
def is_closed(self) -> bool: ...
|
100
100
|
@property
|
modal/mount.py
CHANGED
@@ -290,6 +290,7 @@ class _Mount(_Object, type_prefix="mo"):
|
|
290
290
|
_deployment_name: Optional[str] = None
|
291
291
|
_namespace: Optional[int] = None
|
292
292
|
_environment_name: Optional[str] = None
|
293
|
+
_allow_overwrite: bool = False
|
293
294
|
_content_checksum_sha256_hex: Optional[str] = None
|
294
295
|
|
295
296
|
@staticmethod
|
@@ -600,11 +601,16 @@ class _Mount(_Object, type_prefix="mo"):
|
|
600
601
|
# Build the mount.
|
601
602
|
status_row.message(f"Creating mount {message_label}: Finalizing index of {len(files)} files")
|
602
603
|
if self._deployment_name:
|
604
|
+
creation_type = (
|
605
|
+
api_pb2.OBJECT_CREATION_TYPE_CREATE_IF_MISSING
|
606
|
+
if self._allow_overwrite
|
607
|
+
else api_pb2.OBJECT_CREATION_TYPE_CREATE_FAIL_IF_EXISTS
|
608
|
+
)
|
603
609
|
req = api_pb2.MountGetOrCreateRequest(
|
604
610
|
deployment_name=self._deployment_name,
|
605
611
|
namespace=self._namespace,
|
606
612
|
environment_name=self._environment_name,
|
607
|
-
object_creation_type=
|
613
|
+
object_creation_type=creation_type,
|
608
614
|
files=files,
|
609
615
|
)
|
610
616
|
elif resolver.app_id is not None:
|
@@ -736,7 +742,9 @@ class _Mount(_Object, type_prefix="mo"):
|
|
736
742
|
self: "_Mount",
|
737
743
|
deployment_name: Optional[str] = None,
|
738
744
|
namespace=api_pb2.DEPLOYMENT_NAMESPACE_WORKSPACE,
|
745
|
+
*,
|
739
746
|
environment_name: Optional[str] = None,
|
747
|
+
allow_overwrite: bool = False,
|
740
748
|
client: Optional[_Client] = None,
|
741
749
|
) -> None:
|
742
750
|
check_object_name(deployment_name, "Mount")
|
@@ -744,6 +752,7 @@ class _Mount(_Object, type_prefix="mo"):
|
|
744
752
|
self._deployment_name = deployment_name
|
745
753
|
self._namespace = namespace
|
746
754
|
self._environment_name = environment_name
|
755
|
+
self._allow_overwrite = allow_overwrite
|
747
756
|
if client is None:
|
748
757
|
client = await _Client.from_env()
|
749
758
|
resolver = Resolver(client=client, environment_name=environment_name)
|
@@ -826,35 +835,34 @@ import sys; sys.path.append('{REMOTE_PACKAGES_PATH}')
|
|
826
835
|
""".strip()
|
827
836
|
|
828
837
|
|
829
|
-
async def
|
838
|
+
async def _create_single_client_dependency_mount(
|
830
839
|
client: _Client,
|
831
840
|
builder_version: str,
|
832
841
|
python_version: str,
|
833
|
-
platform: str,
|
834
842
|
arch: str,
|
835
|
-
|
843
|
+
platform: str,
|
844
|
+
uv_python_platform: str,
|
836
845
|
check_if_exists: bool = True,
|
846
|
+
allow_overwrite: bool = False,
|
837
847
|
):
|
838
|
-
import subprocess
|
839
848
|
import tempfile
|
840
849
|
|
841
850
|
profile_environment = config.get("environment")
|
842
851
|
abi_tag = "cp" + python_version.replace(".", "")
|
843
852
|
mount_name = f"{builder_version}-{abi_tag}-{platform}-{arch}"
|
844
|
-
uv_python_platform = uv_python_platform or f"{arch}-{platform}"
|
845
853
|
|
846
854
|
if check_if_exists:
|
847
855
|
try:
|
848
856
|
await Mount.from_name(mount_name, namespace=api_pb2.DEPLOYMENT_NAMESPACE_GLOBAL).hydrate.aio(client)
|
849
|
-
print(f"
|
857
|
+
print(f"➖ Found existing mount {mount_name} in global namespace.")
|
850
858
|
return
|
851
859
|
except modal.exception.NotFoundError:
|
852
860
|
pass
|
853
861
|
|
854
|
-
with tempfile.TemporaryDirectory() as tmpd:
|
862
|
+
with tempfile.TemporaryDirectory(ignore_cleanup_errors=True) as tmpd:
|
855
863
|
print(f"📦 Building {mount_name}.")
|
856
864
|
requirements = os.path.join(os.path.dirname(__file__), f"requirements/{builder_version}.txt")
|
857
|
-
|
865
|
+
cmd = " ".join(
|
858
866
|
[
|
859
867
|
"uv",
|
860
868
|
"pip",
|
@@ -871,12 +879,21 @@ async def _create_single_mount(
|
|
871
879
|
uv_python_platform,
|
872
880
|
"--python-version",
|
873
881
|
python_version,
|
874
|
-
]
|
875
|
-
check=True,
|
876
|
-
capture_output=True,
|
882
|
+
]
|
877
883
|
)
|
884
|
+
proc = await asyncio.create_subprocess_shell(
|
885
|
+
cmd,
|
886
|
+
stdout=asyncio.subprocess.PIPE,
|
887
|
+
stderr=asyncio.subprocess.PIPE,
|
888
|
+
)
|
889
|
+
await proc.wait()
|
890
|
+
if proc.returncode:
|
891
|
+
stdout, stderr = await proc.communicate()
|
892
|
+
print(stdout.decode("utf-8"))
|
893
|
+
print(stderr.decode("utf-8"))
|
894
|
+
raise RuntimeError(f"Subprocess failed with {proc.returncode}", proc.args)
|
878
895
|
|
879
|
-
print(f"🌐 Downloaded and unpacked packages to {tmpd}.")
|
896
|
+
print(f"🌐 Downloaded and unpacked {mount_name} packages to {tmpd}.")
|
880
897
|
|
881
898
|
python_mount = Mount._from_local_dir(tmpd, remote_path=REMOTE_PACKAGES_PATH)
|
882
899
|
|
@@ -895,6 +912,7 @@ async def _create_single_mount(
|
|
895
912
|
mount_name,
|
896
913
|
api_pb2.DEPLOYMENT_NAMESPACE_GLOBAL,
|
897
914
|
environment_name=profile_environment,
|
915
|
+
allow_overwrite=allow_overwrite,
|
898
916
|
client=client,
|
899
917
|
)
|
900
918
|
print(f"✅ Deployed mount {mount_name} to global namespace.")
|
@@ -902,34 +920,30 @@ async def _create_single_mount(
|
|
902
920
|
|
903
921
|
async def _create_client_dependency_mounts(
|
904
922
|
client=None,
|
905
|
-
check_if_exists=True,
|
906
923
|
python_versions: list[str] = list(PYTHON_STANDALONE_VERSIONS),
|
924
|
+
check_if_exists=True,
|
907
925
|
):
|
926
|
+
arch = "x86_64"
|
927
|
+
platform_tags = [
|
928
|
+
("manylinux_2_17", f"{arch}-manylinux_2_17"), # glibc >= 2.17
|
929
|
+
("musllinux_1_2", f"{arch}-unknown-linux-musl"), # musl >= 1.2
|
930
|
+
]
|
908
931
|
coros = []
|
909
|
-
for
|
910
|
-
|
911
|
-
|
912
|
-
|
913
|
-
|
914
|
-
|
915
|
-
|
916
|
-
|
917
|
-
|
918
|
-
|
919
|
-
|
920
|
-
|
921
|
-
|
922
|
-
|
923
|
-
|
924
|
-
client,
|
925
|
-
"PREVIEW",
|
926
|
-
python_version,
|
927
|
-
"musllinux_1_2",
|
928
|
-
"x86_64",
|
929
|
-
uv_python_platform="x86_64-unknown-linux-musl",
|
930
|
-
check_if_exists=check_if_exists,
|
931
|
-
)
|
932
|
-
)
|
932
|
+
for builder_version in ["PREVIEW"]:
|
933
|
+
for python_version in python_versions:
|
934
|
+
for platform, uv_python_platform in platform_tags:
|
935
|
+
coros.append(
|
936
|
+
_create_single_client_dependency_mount(
|
937
|
+
client,
|
938
|
+
builder_version,
|
939
|
+
python_version,
|
940
|
+
arch,
|
941
|
+
platform,
|
942
|
+
uv_python_platform,
|
943
|
+
check_if_exists=builder_version != "PREVIEW",
|
944
|
+
allow_overwrite=builder_version == "PREVIEW",
|
945
|
+
)
|
946
|
+
)
|
933
947
|
await TaskContext.gather(*coros)
|
934
948
|
|
935
949
|
|
modal/mount.pyi
CHANGED
@@ -82,6 +82,7 @@ class _Mount(modal._object._Object):
|
|
82
82
|
_deployment_name: typing.Optional[str]
|
83
83
|
_namespace: typing.Optional[int]
|
84
84
|
_environment_name: typing.Optional[str]
|
85
|
+
_allow_overwrite: bool
|
85
86
|
_content_checksum_sha256_hex: typing.Optional[str]
|
86
87
|
|
87
88
|
@staticmethod
|
@@ -172,7 +173,9 @@ class _Mount(modal._object._Object):
|
|
172
173
|
self: _Mount,
|
173
174
|
deployment_name: typing.Optional[str] = None,
|
174
175
|
namespace=1,
|
176
|
+
*,
|
175
177
|
environment_name: typing.Optional[str] = None,
|
178
|
+
allow_overwrite: bool = False,
|
176
179
|
client: typing.Optional[modal.client._Client] = None,
|
177
180
|
) -> None: ...
|
178
181
|
def _get_metadata(self) -> modal_proto.api_pb2.MountHandleMetadata: ...
|
@@ -184,6 +187,7 @@ class Mount(modal.object.Object):
|
|
184
187
|
_deployment_name: typing.Optional[str]
|
185
188
|
_namespace: typing.Optional[int]
|
186
189
|
_environment_name: typing.Optional[str]
|
190
|
+
_allow_overwrite: bool
|
187
191
|
_content_checksum_sha256_hex: typing.Optional[str]
|
188
192
|
|
189
193
|
def __init__(self, *args, **kwargs): ...
|
@@ -288,7 +292,9 @@ class Mount(modal.object.Object):
|
|
288
292
|
/,
|
289
293
|
deployment_name: typing.Optional[str] = None,
|
290
294
|
namespace=1,
|
295
|
+
*,
|
291
296
|
environment_name: typing.Optional[str] = None,
|
297
|
+
allow_overwrite: bool = False,
|
292
298
|
client: typing.Optional[modal.client.Client] = None,
|
293
299
|
) -> None: ...
|
294
300
|
async def aio(
|
@@ -296,7 +302,9 @@ class Mount(modal.object.Object):
|
|
296
302
|
/,
|
297
303
|
deployment_name: typing.Optional[str] = None,
|
298
304
|
namespace=1,
|
305
|
+
*,
|
299
306
|
environment_name: typing.Optional[str] = None,
|
307
|
+
allow_overwrite: bool = False,
|
300
308
|
client: typing.Optional[modal.client.Client] = None,
|
301
309
|
) -> None: ...
|
302
310
|
|
@@ -308,25 +316,26 @@ def _create_client_mount(): ...
|
|
308
316
|
def create_client_mount(): ...
|
309
317
|
def _get_client_mount(): ...
|
310
318
|
def _is_modal_path(remote_path: pathlib.PurePosixPath): ...
|
311
|
-
async def
|
319
|
+
async def _create_single_client_dependency_mount(
|
312
320
|
client: modal.client._Client,
|
313
321
|
builder_version: str,
|
314
322
|
python_version: str,
|
315
|
-
platform: str,
|
316
323
|
arch: str,
|
317
|
-
|
324
|
+
platform: str,
|
325
|
+
uv_python_platform: str,
|
318
326
|
check_if_exists: bool = True,
|
327
|
+
allow_overwrite: bool = False,
|
319
328
|
): ...
|
320
329
|
async def _create_client_dependency_mounts(
|
321
|
-
client=None,
|
330
|
+
client=None, python_versions: list[str] = ["3.9", "3.10", "3.11", "3.12", "3.13"], check_if_exists=True
|
322
331
|
): ...
|
323
332
|
|
324
333
|
class __create_client_dependency_mounts_spec(typing_extensions.Protocol):
|
325
334
|
def __call__(
|
326
|
-
self, /, client=None,
|
335
|
+
self, /, client=None, python_versions: list[str] = ["3.9", "3.10", "3.11", "3.12", "3.13"], check_if_exists=True
|
327
336
|
): ...
|
328
337
|
async def aio(
|
329
|
-
self, /, client=None,
|
338
|
+
self, /, client=None, python_versions: list[str] = ["3.9", "3.10", "3.11", "3.12", "3.13"], check_if_exists=True
|
330
339
|
): ...
|
331
340
|
|
332
341
|
create_client_dependency_mounts: __create_client_dependency_mounts_spec
|
modal/requirements/PREVIEW.txt
CHANGED
@@ -1,16 +1,17 @@
|
|
1
|
-
aiohappyeyeballs==2.
|
2
|
-
aiohttp==3.
|
3
|
-
aiosignal==1.3.
|
4
|
-
async-timeout==
|
5
|
-
attrs==
|
6
|
-
certifi==
|
7
|
-
frozenlist==1.
|
8
|
-
grpclib==0.4.
|
9
|
-
h2==4.
|
10
|
-
hpack==4.
|
11
|
-
hyperframe==6.0
|
1
|
+
aiohappyeyeballs==2.6.1
|
2
|
+
aiohttp==3.12.7
|
3
|
+
aiosignal==1.3.2
|
4
|
+
async-timeout==5.0.1 ; python_version < "3.11"
|
5
|
+
attrs==25.3.0
|
6
|
+
certifi==2025.4.26
|
7
|
+
frozenlist==1.6.0
|
8
|
+
grpclib==0.4.8
|
9
|
+
h2==4.2.0
|
10
|
+
hpack==4.1.0
|
11
|
+
hyperframe==6.1.0
|
12
12
|
idna==3.10
|
13
|
-
multidict==6.
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
multidict==6.4.4
|
14
|
+
propcache==0.3.1
|
15
|
+
protobuf==6.31.1
|
16
|
+
typing_extensions==4.13.2
|
17
|
+
yarl==1.20.0
|
@@ -6,13 +6,35 @@
|
|
6
6
|
"2023.12": "bullseye"
|
7
7
|
},
|
8
8
|
"python": {
|
9
|
-
"PREVIEW": [
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
"PREVIEW": [
|
10
|
+
"3.9.22",
|
11
|
+
"3.10.17",
|
12
|
+
"3.11.12",
|
13
|
+
"3.12.10",
|
14
|
+
"3.13.3"
|
15
|
+
],
|
16
|
+
"2024.10": [
|
17
|
+
"3.9.20",
|
18
|
+
"3.10.15",
|
19
|
+
"3.11.10",
|
20
|
+
"3.12.6",
|
21
|
+
"3.13.0"
|
22
|
+
],
|
23
|
+
"2024.04": [
|
24
|
+
"3.9.19",
|
25
|
+
"3.10.14",
|
26
|
+
"3.11.8",
|
27
|
+
"3.12.2"
|
28
|
+
],
|
29
|
+
"2023.12": [
|
30
|
+
"3.9.15",
|
31
|
+
"3.10.8",
|
32
|
+
"3.11.0",
|
33
|
+
"3.12.1"
|
34
|
+
]
|
13
35
|
},
|
14
36
|
"micromamba": {
|
15
|
-
"PREVIEW": "1.
|
37
|
+
"PREVIEW": "2.1.1",
|
16
38
|
"2024.10": "1.5.10",
|
17
39
|
"2024.04": "1.5.8",
|
18
40
|
"2023.12": "1.3.1"
|
@@ -23,4 +45,4 @@
|
|
23
45
|
"2024.04": "pip wheel uv",
|
24
46
|
"2023.12": "pip"
|
25
47
|
}
|
26
|
-
}
|
48
|
+
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: modal
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.4.dev1
|
4
4
|
Summary: Python client library for Modal
|
5
5
|
Author-email: Modal Labs <support@modal.com>
|
6
6
|
License: Apache-2.0
|
@@ -22,7 +22,7 @@ Requires-Dist: click~=8.1.0
|
|
22
22
|
Requires-Dist: grpclib==0.4.7
|
23
23
|
Requires-Dist: protobuf!=4.24.0,<7.0,>=3.19
|
24
24
|
Requires-Dist: rich>=12.0.0
|
25
|
-
Requires-Dist: synchronicity~=0.9.
|
25
|
+
Requires-Dist: synchronicity~=0.9.13
|
26
26
|
Requires-Dist: toml
|
27
27
|
Requires-Dist: typer>=0.9
|
28
28
|
Requires-Dist: types-certifi
|
@@ -22,7 +22,7 @@ modal/app.py,sha256=NZ_rJ9TuMfiNiLg8-gOFgufD5flGtXWPHOZI0gdD3hE,46585
|
|
22
22
|
modal/app.pyi,sha256=4-b_vbe3lNAqQPcMRpQCEDsE1zsVkQRJGUql9B7HvbM,22659
|
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=
|
25
|
+
modal/client.pyi,sha256=QmMY2s9nEVq0UDPl7T0Ka3lXRUF6SnTuwxhhuVr7a7I,8457
|
26
26
|
modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
|
27
27
|
modal/cloud_bucket_mount.pyi,sha256=30T3K1a89l6wzmEJ_J9iWv9SknoGqaZDx59Xs-ZQcmk,1607
|
28
28
|
modal/cls.py,sha256=dBbeARwOWftlKd1cwtM0cHFtQWSWkwVXwVmOV4w0SyI,37907
|
@@ -45,8 +45,8 @@ modal/image.py,sha256=yrI9DCw7GAck3d788GCHJom-_yU55zNu7reNapBhlgE,93284
|
|
45
45
|
modal/image.pyi,sha256=2xjB6XOZDtm_chDdd90UoIj8pnDt5hCg6bOmu5fNaA4,25625
|
46
46
|
modal/io_streams.py,sha256=YDZVQSDv05DeXg5TwcucC9Rj5hQBx2GXdluan9rIUpw,15467
|
47
47
|
modal/io_streams.pyi,sha256=1UK6kWLREASQfq-wL9wSp5iqjLU0egRZPDn4LXs1PZY,5136
|
48
|
-
modal/mount.py,sha256=
|
49
|
-
modal/mount.pyi,sha256=
|
48
|
+
modal/mount.py,sha256=7gdzBNueSjPsgsdisMv1bv5SncEQyWc6D-YlAbpze3s,35523
|
49
|
+
modal/mount.pyi,sha256=xuJ3vaz33I9Mk8jxQPjlOxX5NC4WT5rqiazX3faS59U,13630
|
50
50
|
modal/network_file_system.py,sha256=lgtmHYjzA5gDMx0tysH0-WJB2Ao9JD2W15NyYK2A7_w,14612
|
51
51
|
modal/network_file_system.pyi,sha256=58DiUqHGlARmI3cz-Yo7IFObKKFIiGh5UIU5JxGNFfc,8333
|
52
52
|
modal/object.py,sha256=bTeskuY8JFrESjU4_UL_nTwYlBQdOLmVaOX3X6EMxsg,164
|
@@ -144,10 +144,10 @@ modal/requirements/2023.12.312.txt,sha256=zWWUVgVQ92GXBKNYYr2-5vn9rlnXcmkqlwlX5u
|
|
144
144
|
modal/requirements/2023.12.txt,sha256=OjsbXFkCSdkzzryZP82Q73osr5wxQ6EUzmGcK7twfkA,502
|
145
145
|
modal/requirements/2024.04.txt,sha256=6NnrbIE-mflwMyKyQ0tsWeY8XFE1kSW9oE8DVDoD8QU,544
|
146
146
|
modal/requirements/2024.10.txt,sha256=qD-5cVIVM9wXesJ6JC89Ew-3m2KjEElUz3jaw_MddRo,296
|
147
|
-
modal/requirements/PREVIEW.txt,sha256=
|
147
|
+
modal/requirements/PREVIEW.txt,sha256=KxDaVTOwatHvboDo4lorlgJ7-n-MfAwbPwxJ0zcJqrs,312
|
148
148
|
modal/requirements/README.md,sha256=9tK76KP0Uph7O0M5oUgsSwEZDj5y-dcUPsnpR0Sc-Ik,854
|
149
|
-
modal/requirements/base-images.json,sha256=
|
150
|
-
modal-1.0.
|
149
|
+
modal/requirements/base-images.json,sha256=f1bwyp2UkM844eoO9Qk30gQw_xrMqKpMSeJ6MErXnEk,995
|
150
|
+
modal-1.0.4.dev1.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=
|
173
|
+
modal_version/__init__.py,sha256=ugbAu8MZi9Ew6_OSeu_o0OPHmWAknh5qPaLz7vzKj3w,120
|
174
174
|
modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
|
175
|
-
modal-1.0.
|
176
|
-
modal-1.0.
|
177
|
-
modal-1.0.
|
178
|
-
modal-1.0.
|
179
|
-
modal-1.0.
|
175
|
+
modal-1.0.4.dev1.dist-info/METADATA,sha256=U5vZN_UC5HnuCBHeIwmPFj4bWVCX4QsPMP9Cn_Q7YUY,2454
|
176
|
+
modal-1.0.4.dev1.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
|
177
|
+
modal-1.0.4.dev1.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
|
178
|
+
modal-1.0.4.dev1.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
|
179
|
+
modal-1.0.4.dev1.dist-info/RECORD,,
|
modal_version/__init__.py
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|