modal 1.1.2.dev10__py3-none-any.whl → 1.1.2.dev12__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/time_utils.py +28 -4
- modal/cli/dict.py +6 -7
- modal/cli/queues.py +40 -15
- modal/cli/secret.py +33 -7
- modal/cli/volume.py +6 -9
- modal/client.pyi +2 -2
- modal/dict.py +78 -5
- modal/dict.pyi +115 -1
- modal/functions.pyi +6 -6
- modal/queue.py +76 -3
- modal/queue.pyi +114 -0
- modal/secret.py +68 -1
- modal/secret.pyi +114 -0
- modal/volume.py +79 -6
- modal/volume.pyi +118 -4
- {modal-1.1.2.dev10.dist-info → modal-1.1.2.dev12.dist-info}/METADATA +2 -2
- {modal-1.1.2.dev10.dist-info → modal-1.1.2.dev12.dist-info}/RECORD +26 -26
- modal_docs/mdmd/mdmd.py +11 -1
- modal_proto/api.proto +6 -4
- modal_proto/api_pb2.py +320 -320
- modal_proto/api_pb2.pyi +10 -5
- modal_version/__init__.py +1 -1
- {modal-1.1.2.dev10.dist-info → modal-1.1.2.dev12.dist-info}/WHEEL +0 -0
- {modal-1.1.2.dev10.dist-info → modal-1.1.2.dev12.dist-info}/entry_points.txt +0 -0
- {modal-1.1.2.dev10.dist-info → modal-1.1.2.dev12.dist-info}/licenses/LICENSE +0 -0
- {modal-1.1.2.dev10.dist-info → modal-1.1.2.dev12.dist-info}/top_level.txt +0 -0
modal/volume.pyi
CHANGED
@@ -10,6 +10,7 @@ import modal.client
|
|
10
10
|
import modal.object
|
11
11
|
import modal_proto.api_pb2
|
12
12
|
import pathlib
|
13
|
+
import synchronicity
|
13
14
|
import synchronicity.combined_types
|
14
15
|
import typing
|
15
16
|
import typing_extensions
|
@@ -79,6 +80,115 @@ class VolumeInfo:
|
|
79
80
|
"""Return self==value."""
|
80
81
|
...
|
81
82
|
|
83
|
+
class _VolumeManager:
|
84
|
+
"""Namespace with methods for managing named Volume objects."""
|
85
|
+
@staticmethod
|
86
|
+
async def list(
|
87
|
+
*,
|
88
|
+
max_objects: typing.Optional[int] = None,
|
89
|
+
created_before: typing.Union[datetime.datetime, str, None] = None,
|
90
|
+
environment_name: str = "",
|
91
|
+
client: typing.Optional[modal.client._Client] = None,
|
92
|
+
) -> list[_Volume]:
|
93
|
+
"""Return a list of hydrated Volume objects.
|
94
|
+
|
95
|
+
**Examples:**
|
96
|
+
|
97
|
+
```python
|
98
|
+
volumes = modal.Volume.objects.list()
|
99
|
+
print([v.name for v in volumes])
|
100
|
+
```
|
101
|
+
|
102
|
+
Volumes will be retreived from the active environment, or another one can be specified:
|
103
|
+
|
104
|
+
```python notest
|
105
|
+
dev_volumes = modal.Volume.objects.list(environment_name="dev")
|
106
|
+
```
|
107
|
+
|
108
|
+
By default, all named Volumes are returned, newest to oldest. It's also possible to limit the
|
109
|
+
number of results and to filter by creation date:
|
110
|
+
|
111
|
+
```python
|
112
|
+
volumes = modal.Volume.objects.list(max_objects=10, created_before="2025-01-01")
|
113
|
+
```
|
114
|
+
"""
|
115
|
+
...
|
116
|
+
|
117
|
+
class VolumeManager:
|
118
|
+
"""Namespace with methods for managing named Volume objects."""
|
119
|
+
def __init__(self, /, *args, **kwargs):
|
120
|
+
"""Initialize self. See help(type(self)) for accurate signature."""
|
121
|
+
...
|
122
|
+
|
123
|
+
class __list_spec(typing_extensions.Protocol):
|
124
|
+
def __call__(
|
125
|
+
self,
|
126
|
+
/,
|
127
|
+
*,
|
128
|
+
max_objects: typing.Optional[int] = None,
|
129
|
+
created_before: typing.Union[datetime.datetime, str, None] = None,
|
130
|
+
environment_name: str = "",
|
131
|
+
client: typing.Optional[modal.client.Client] = None,
|
132
|
+
) -> list[Volume]:
|
133
|
+
"""Return a list of hydrated Volume objects.
|
134
|
+
|
135
|
+
**Examples:**
|
136
|
+
|
137
|
+
```python
|
138
|
+
volumes = modal.Volume.objects.list()
|
139
|
+
print([v.name for v in volumes])
|
140
|
+
```
|
141
|
+
|
142
|
+
Volumes will be retreived from the active environment, or another one can be specified:
|
143
|
+
|
144
|
+
```python notest
|
145
|
+
dev_volumes = modal.Volume.objects.list(environment_name="dev")
|
146
|
+
```
|
147
|
+
|
148
|
+
By default, all named Volumes are returned, newest to oldest. It's also possible to limit the
|
149
|
+
number of results and to filter by creation date:
|
150
|
+
|
151
|
+
```python
|
152
|
+
volumes = modal.Volume.objects.list(max_objects=10, created_before="2025-01-01")
|
153
|
+
```
|
154
|
+
"""
|
155
|
+
...
|
156
|
+
|
157
|
+
async def aio(
|
158
|
+
self,
|
159
|
+
/,
|
160
|
+
*,
|
161
|
+
max_objects: typing.Optional[int] = None,
|
162
|
+
created_before: typing.Union[datetime.datetime, str, None] = None,
|
163
|
+
environment_name: str = "",
|
164
|
+
client: typing.Optional[modal.client.Client] = None,
|
165
|
+
) -> list[Volume]:
|
166
|
+
"""Return a list of hydrated Volume objects.
|
167
|
+
|
168
|
+
**Examples:**
|
169
|
+
|
170
|
+
```python
|
171
|
+
volumes = modal.Volume.objects.list()
|
172
|
+
print([v.name for v in volumes])
|
173
|
+
```
|
174
|
+
|
175
|
+
Volumes will be retreived from the active environment, or another one can be specified:
|
176
|
+
|
177
|
+
```python notest
|
178
|
+
dev_volumes = modal.Volume.objects.list(environment_name="dev")
|
179
|
+
```
|
180
|
+
|
181
|
+
By default, all named Volumes are returned, newest to oldest. It's also possible to limit the
|
182
|
+
number of results and to filter by creation date:
|
183
|
+
|
184
|
+
```python
|
185
|
+
volumes = modal.Volume.objects.list(max_objects=10, created_before="2025-01-01")
|
186
|
+
```
|
187
|
+
"""
|
188
|
+
...
|
189
|
+
|
190
|
+
list: __list_spec
|
191
|
+
|
82
192
|
class _Volume(modal._object._Object):
|
83
193
|
"""A writeable volume that can be used to share files between one or more Modal functions.
|
84
194
|
|
@@ -125,6 +235,10 @@ class _Volume(modal._object._Object):
|
|
125
235
|
_metadata: typing.Optional[modal_proto.api_pb2.VolumeMetadata]
|
126
236
|
_read_only: bool
|
127
237
|
|
238
|
+
@synchronicity.classproperty
|
239
|
+
def objects(cls) -> _VolumeManager: ...
|
240
|
+
@property
|
241
|
+
def name(self) -> typing.Optional[str]: ...
|
128
242
|
def read_only(self) -> _Volume:
|
129
243
|
"""Configure Volume to mount as read-only.
|
130
244
|
|
@@ -148,8 +262,6 @@ class _Volume(modal._object._Object):
|
|
148
262
|
"""
|
149
263
|
...
|
150
264
|
|
151
|
-
@property
|
152
|
-
def name(self) -> typing.Optional[str]: ...
|
153
265
|
def _hydrate_metadata(self, metadata: typing.Optional[google.protobuf.message.Message]): ...
|
154
266
|
def _get_metadata(self) -> typing.Optional[google.protobuf.message.Message]: ...
|
155
267
|
async def _get_lock(self): ...
|
@@ -429,6 +541,10 @@ class Volume(modal.object.Object):
|
|
429
541
|
"""mdmd:hidden"""
|
430
542
|
...
|
431
543
|
|
544
|
+
@synchronicity.classproperty
|
545
|
+
def objects(cls) -> VolumeManager: ...
|
546
|
+
@property
|
547
|
+
def name(self) -> typing.Optional[str]: ...
|
432
548
|
def read_only(self) -> Volume:
|
433
549
|
"""Configure Volume to mount as read-only.
|
434
550
|
|
@@ -452,8 +568,6 @@ class Volume(modal.object.Object):
|
|
452
568
|
"""
|
453
569
|
...
|
454
570
|
|
455
|
-
@property
|
456
|
-
def name(self) -> typing.Optional[str]: ...
|
457
571
|
def _hydrate_metadata(self, metadata: typing.Optional[google.protobuf.message.Message]): ...
|
458
572
|
def _get_metadata(self) -> typing.Optional[google.protobuf.message.Message]: ...
|
459
573
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: modal
|
3
|
-
Version: 1.1.2.
|
3
|
+
Version: 1.1.2.dev12
|
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
|
|
22
22
|
Requires-Dist: grpclib<0.4.9,>=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.10.
|
25
|
+
Requires-Dist: synchronicity~=0.10.2
|
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=kpq4kXp7pch688y6g55QYAC10wqPTU5FXKoWPMirA3E,47899
|
|
22
22
|
modal/app.pyi,sha256=-jKXlGDBWRPVsuenBhdMRqawK-L2eiJ7gHbmSblhltg,43525
|
23
23
|
modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
|
24
24
|
modal/client.py,sha256=kyAIVB3Ay-XKJizQ_1ufUFB__EagV0MLmHJpyYyJ7J0,18636
|
25
|
-
modal/client.pyi,sha256=
|
25
|
+
modal/client.pyi,sha256=k97btq6Qy3Tvgz8_z3JyMdKc_E_TGSrgJaGnJU_hTg4,15831
|
26
26
|
modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
|
27
27
|
modal/cloud_bucket_mount.pyi,sha256=-qSfYAQvIoO_l2wsCCGTG5ZUwQieNKXdAO00yP1-LYU,7394
|
28
28
|
modal/cls.py,sha256=7A0xGnugQzm8dOfnKMjLjtqekRlRtQ0jPFRYgq6xdUM,40018
|
@@ -30,8 +30,8 @@ modal/cls.pyi,sha256=_tZ5qrlL-ZDEcD-mf9BZkkNH5XPr4SmGTEQ-RVmqF3I,27772
|
|
30
30
|
modal/config.py,sha256=tW-SEGjVvAt3D_MNi3LhxXnFKIA9fjLd3UIgbW8uSJE,12121
|
31
31
|
modal/container_process.py,sha256=XkPwNIW-iD_GB9u9yqv9q8y-i5cQ8eBbLZZ_GvEw9t8,6858
|
32
32
|
modal/container_process.pyi,sha256=9m-st3hCUlNN1GOTctfPPvIvoLtEl7FbuGWwif5-7YU,6037
|
33
|
-
modal/dict.py,sha256=
|
34
|
-
modal/dict.pyi,sha256=
|
33
|
+
modal/dict.py,sha256=w_AnV724XE2gF7cx5FqeR6SaGN4nFRhGSbZxrCTK2i0,18551
|
34
|
+
modal/dict.pyi,sha256=AXQFTk99oj_0om5mvUmhBbFve2u3ZIpxniervijGKFg,26280
|
35
35
|
modal/environments.py,sha256=gHFNLG78bqgizpQ4w_elz27QOqmcgAonFsmLs7NjUJ4,6804
|
36
36
|
modal/environments.pyi,sha256=9-KtrzAcUe55cCP4020lSUD7-fWS7OPakAHssq4-bro,4219
|
37
37
|
modal/exception.py,sha256=o0V93PK8Hcg2YQ2aeOB1Y-qWBw4Gz5ATfyokR8GapuQ,5634
|
@@ -39,7 +39,7 @@ modal/file_io.py,sha256=BVqAJ0sgPUfN8QsYztWiGB4j56he60TncM02KsylnCw,21449
|
|
39
39
|
modal/file_io.pyi,sha256=cPT_hsplE5iLCXhYOLn1Sp9eDdk7DxdFmicQHanJZyg,15918
|
40
40
|
modal/file_pattern_matcher.py,sha256=A_Kdkej6q7YQyhM_2-BvpFmPqJ0oHb54B6yf9VqvPVE,8116
|
41
41
|
modal/functions.py,sha256=kcNHvqeGBxPI7Cgd57NIBBghkfbeFJzXO44WW0jSmao,325
|
42
|
-
modal/functions.pyi,sha256=
|
42
|
+
modal/functions.pyi,sha256=65HxorqpspknohUdxFYzKIdL1-P3JYSQLQEhcmhWgpw,36161
|
43
43
|
modal/gpu.py,sha256=Fe5ORvVPDIstSq1xjmM6OoNgLYFWvogP9r5BgmD3hYg,6769
|
44
44
|
modal/image.py,sha256=A83nmo0zfCUwgvJh0LZ7Yc1sYvDnZLl_phbKxN-9HIw,103144
|
45
45
|
modal/image.pyi,sha256=oH-GCHVEwD5fOX0K_IaWN5RKZlYwX82z-K4wxx8aN3c,68541
|
@@ -59,8 +59,8 @@ modal/partial_function.pyi,sha256=lqqOzZ9-QvHTDWKQ_oAYYOvsXgTOBKhO9u-RI98JbUk,13
|
|
59
59
|
modal/proxy.py,sha256=NQJJMGo-D2IfmeU0vb10WWaE4oTLcuf9jTeEJvactOg,1446
|
60
60
|
modal/proxy.pyi,sha256=yWGWwADCRGrC2w81B7671UTH4Uv3HMZKy5vVqlJUZoA,1417
|
61
61
|
modal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
62
|
-
modal/queue.py,sha256=
|
63
|
-
modal/queue.pyi,sha256=
|
62
|
+
modal/queue.py,sha256=zEMCW_nDsROQ6mn6cVPmJCYnGxBMX2N2UfZy36klVNc,23071
|
63
|
+
modal/queue.pyi,sha256=nWxvJ6hVMgI1HGu9jLuUne122uD-MQVDHdGzUcse-ng,32076
|
64
64
|
modal/retries.py,sha256=IvNLDM0f_GLUDD5VgEDoN09C88yoxSrCquinAuxT1Sc,5205
|
65
65
|
modal/runner.py,sha256=ostdzYpQb-20tlD6dIq7bpWTkZkOhjJBNuMNektqnJA,24068
|
66
66
|
modal/runner.pyi,sha256=lbwLljm1cC8d6PcNvmYQhkE8501V9fg0bYqqKX6G4r4,8489
|
@@ -69,8 +69,8 @@ modal/sandbox.py,sha256=eQd0Cf9yTFCNshnj7oH8WvecbhVIwsEsmuXB9O-REis,40927
|
|
69
69
|
modal/sandbox.pyi,sha256=_ddnvZGauSRG-WelsMB5oPil8KVWb0PSvmuAzAzrLIw,41713
|
70
70
|
modal/schedule.py,sha256=ng0g0AqNY5GQI9KhkXZQ5Wam5G42glbkqVQsNpBtbDE,3078
|
71
71
|
modal/scheduler_placement.py,sha256=BAREdOY5HzHpzSBqt6jDVR6YC_jYfHMVqOzkyqQfngU,1235
|
72
|
-
modal/secret.py,sha256=
|
73
|
-
modal/secret.pyi,sha256=
|
72
|
+
modal/secret.py,sha256=v6KCSsSVuUVPsblpvP6b27aaDLHLt5xAVJsTzuymE48,14709
|
73
|
+
modal/secret.pyi,sha256=J641LaHIWGSBH5HbC1hGFJnkk_MECSIAwVKufegGBq8,13517
|
74
74
|
modal/serving.py,sha256=3I3WBeVbzZY258u9PXBCW_dZBgypq3OhwBuTVvlgubE,4423
|
75
75
|
modal/serving.pyi,sha256=YfixTaWikyYpwhnNxCHMZnDDQiPmV1xJ87QF91U_WGU,1924
|
76
76
|
modal/snapshot.py,sha256=E3oxYQkYVRB_LeFBfmUV1Y6vHz8-azXJfC4x7A1QKnI,1455
|
@@ -78,8 +78,8 @@ modal/snapshot.pyi,sha256=0q83hlmWxAhDu8xwZyL5VmYh0i8Tigf7S60or2k30L8,1682
|
|
78
78
|
modal/stream_type.py,sha256=A6320qoAAWhEfwOCZfGtymQTu5AfLfJXXgARqooTPvY,417
|
79
79
|
modal/token_flow.py,sha256=GWpar0gANs71vm9Bd_Cj87UG1K3ljTURbkEjG3JLsrY,7616
|
80
80
|
modal/token_flow.pyi,sha256=eirYjyqbRiT3GCKMIPHJPpkvBTu8WxDKqSHehWaJI_4,2533
|
81
|
-
modal/volume.py,sha256=
|
82
|
-
modal/volume.pyi,sha256=
|
81
|
+
modal/volume.py,sha256=PipdiVxMpk5Fbhpq6cKI9cEsQNdCHUTFLb9YME07L_Q,48131
|
82
|
+
modal/volume.pyi,sha256=_SPWRDH7u-UUSIgz5GnolgqDenU-wgYVtWE60oTKoFU,45736
|
83
83
|
modal/_runtime/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
|
84
84
|
modal/_runtime/asgi.py,sha256=_2xSTsDD27Cit7xnMs4lzkJA2wzer2_N4Oa3BkXFzVA,22521
|
85
85
|
modal/_runtime/container_io_manager.py,sha256=ujNpa8bLFM3krzWID8dLDjhEHNcd__Yb3b6XqeDRe8g,45237
|
@@ -111,7 +111,7 @@ modal/_utils/package_utils.py,sha256=LcL2olGN4xaUzu2Tbv-C-Ft9Qp6bsLxEfETOAVd-mjU
|
|
111
111
|
modal/_utils/pattern_utils.py,sha256=ZUffaECfe2iYBhH6cvCB-0-UWhmEBTZEl_TwG_So3ag,6714
|
112
112
|
modal/_utils/rand_pb_testing.py,sha256=mmVPk1rZldHwHZx0DnHTuHQlRLAiiAYdxjwEJpxvT9c,3900
|
113
113
|
modal/_utils/shell_utils.py,sha256=hWHzv730Br2Xyj6cGPiMZ-198Z3RZuOu3pDXhFSZ22c,2157
|
114
|
-
modal/_utils/time_utils.py,sha256=
|
114
|
+
modal/_utils/time_utils.py,sha256=43tpFVwT7ykOjlETIFLVt9auMsRZqYYRYBEKxGCrRSA,1212
|
115
115
|
modal/_vendor/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
|
116
116
|
modal/_vendor/a2wsgi_wsgi.py,sha256=Q1AsjpV_Q_vzQsz_cSqmP9jWzsGsB-ARFU6vpQYml8k,21878
|
117
117
|
modal/_vendor/cloudpickle.py,sha256=avxOIgNKqL9KyPNuIOVQzBm0D1l9ipeB4RrcUMUGmeQ,55216
|
@@ -131,19 +131,19 @@ modal/cli/app.py,sha256=rbuAG92my-1eZN0olk6p2eD4oBnyBliUsrCOUW-U-9k,7832
|
|
131
131
|
modal/cli/cluster.py,sha256=8pQurDUvLP_HdSeHH5ZB6WIoDh48FR8qP9vGOtSsFXI,3168
|
132
132
|
modal/cli/config.py,sha256=lhp2Pq4RbTDhaZJ-ZJvhrMqJj8c-WjuRX6gjE3TrvXc,1691
|
133
133
|
modal/cli/container.py,sha256=9Ti-TIZ6vjDSmn9mk9h6SRwyhkQjtwirBN18LjpLyvE,3719
|
134
|
-
modal/cli/dict.py,sha256=
|
134
|
+
modal/cli/dict.py,sha256=qClZPzaWvv8dm2bDaD6jYHkmJoooMzUHxKCd69whrb0,4551
|
135
135
|
modal/cli/entry_point.py,sha256=M9ZeIsYx7rxdc6XP2iOIptVzmpj39D3rU8nfW7Dc3CQ,4388
|
136
136
|
modal/cli/environment.py,sha256=Ayddkiq9jdj3XYDJ8ZmUqFpPPH8xajYlbexRkzGtUcg,4334
|
137
137
|
modal/cli/import_refs.py,sha256=X59Z5JwgliRO6C-cIFto2Pr7o3SwlZMKQPKA0aI4ZK4,13927
|
138
138
|
modal/cli/launch.py,sha256=G8jNDQwsRAnq0QBEDMabTWY588JfEJjLgHEpoDS4Oeo,3510
|
139
139
|
modal/cli/network_file_system.py,sha256=I9IqTpVfk32uKYwGd8LTldkQx6UKYrQYNZ26q7Ab5Oo,8126
|
140
140
|
modal/cli/profile.py,sha256=r5hnA_GPe_2zwgv6n0Mi8XQXyejQgShb17yjD4dPXcw,3212
|
141
|
-
modal/cli/queues.py,sha256=
|
141
|
+
modal/cli/queues.py,sha256=RkSxO4zgB5Mk7nZzN9GAJ-oRdmVzTig3o7a7U1HKh7M,6093
|
142
142
|
modal/cli/run.py,sha256=96m6fpJKbjtva4xzJut0pxS36Z5WCMq0umpAry96im0,24946
|
143
|
-
modal/cli/secret.py,sha256=
|
143
|
+
modal/cli/secret.py,sha256=AmtXi8HFIph2cHy3z6U0qBEMzQ49Cr3MYgkJad3tWY8,8062
|
144
144
|
modal/cli/token.py,sha256=NAmQzKBfEHkcldWKeFxAVIqQBoo1RTp7_A4yc7-8qM0,1911
|
145
145
|
modal/cli/utils.py,sha256=aUXDU9_VgcJrGaGRy4bGf4dqwKYXHCpoO27x4m_bpuo,3293
|
146
|
-
modal/cli/volume.py,sha256=
|
146
|
+
modal/cli/volume.py,sha256=xKjNixun7nIKQkqqZZDsKx756V0AFUx0D6RVXHQOEYA,10751
|
147
147
|
modal/cli/programs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
|
148
148
|
modal/cli/programs/run_jupyter.py,sha256=44Lpvqk2l3hH-uOkmAOzw60NEsfB5uaRDWDKVshvQhs,2682
|
149
149
|
modal/cli/programs/vscode.py,sha256=KbTAaIXyQBVCDXxXjmBHmKpgXkUw0q4R4KkJvUjCYgk,3380
|
@@ -151,18 +151,18 @@ modal/experimental/__init__.py,sha256=nuc7AL4r_Fs08DD5dciWFZhrV1nanwoClOfdTcudU0
|
|
151
151
|
modal/experimental/flash.py,sha256=viXQumCIFp5VFsPFURdFTBTjP_QnsAi8nSWXAMmfjeQ,19744
|
152
152
|
modal/experimental/flash.pyi,sha256=A8_qJGtGoXEzKDdHbvhmCw7oqfneFEvJQK3ZdTOvUdU,10830
|
153
153
|
modal/experimental/ipython.py,sha256=TrCfmol9LGsRZMeDoeMPx3Hv3BFqQhYnmD_iH0pqdhk,2904
|
154
|
-
modal-1.1.2.
|
154
|
+
modal-1.1.2.dev12.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
|
155
155
|
modal_docs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
|
156
156
|
modal_docs/gen_cli_docs.py,sha256=c1yfBS_x--gL5bs0N4ihMwqwX8l3IBWSkBAKNNIi6bQ,3801
|
157
157
|
modal_docs/gen_reference_docs.py,sha256=d_CQUGQ0rfw28u75I2mov9AlS773z9rG40-yq5o7g2U,6359
|
158
158
|
modal_docs/mdmd/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
|
159
|
-
modal_docs/mdmd/mdmd.py,sha256=
|
159
|
+
modal_docs/mdmd/mdmd.py,sha256=tUTImNd4UMFk1opkaw8J672gX8AkBO5gbY2S_NMxsxs,7140
|
160
160
|
modal_docs/mdmd/signatures.py,sha256=XJaZrK7Mdepk5fdX51A8uENiLFNil85Ud0d4MH8H5f0,3218
|
161
161
|
modal_proto/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
|
162
|
-
modal_proto/api.proto,sha256=
|
162
|
+
modal_proto/api.proto,sha256=W-2p7hOT0RRXDvSxBtBAeEzJv7L1OfynjfaW0yfjrLA,103770
|
163
163
|
modal_proto/api_grpc.py,sha256=1mDcIexGtoVq0675-sqlYVr_M2ncGETpmKsOP7VwE3Y,126369
|
164
|
-
modal_proto/api_pb2.py,sha256=
|
165
|
-
modal_proto/api_pb2.pyi,sha256=
|
164
|
+
modal_proto/api_pb2.py,sha256=FXKHIO869SLEKZ_6Kkt62mfHNNYOLzR3p0fw2CYgz3o,364206
|
165
|
+
modal_proto/api_pb2.pyi,sha256=qdmGJfkcx0N_pk5YfHZvsHaWTRDu3BUZ3dCwTc_vYzw,501697
|
166
166
|
modal_proto/api_pb2_grpc.py,sha256=8TyCjBX-IvJaO_v7vkF_-J9h72wwLOe4MKL_jyXTK0g,272649
|
167
167
|
modal_proto/api_pb2_grpc.pyi,sha256=SQtAD1GR57oJOjxohW_8XTHpRRCahy02FTq0IYWzTNs,63669
|
168
168
|
modal_proto/modal_api_grpc.py,sha256=KL5Nw4AS9hJNxfL6VIeuxHz4jIUN7Unz7hYnoSsqyx0,19071
|
@@ -174,10 +174,10 @@ modal_proto/options_pb2.pyi,sha256=l7DBrbLO7q3Ir-XDkWsajm0d0TQqqrfuX54i4BMpdQg,1
|
|
174
174
|
modal_proto/options_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
175
175
|
modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0yJSI,247
|
176
176
|
modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
177
|
-
modal_version/__init__.py,sha256=
|
177
|
+
modal_version/__init__.py,sha256=_ZfiPQbVkYW1thwWoYMuwn2x-jJW-NqBfQ8Nz_58HPg,121
|
178
178
|
modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
|
179
|
-
modal-1.1.2.
|
180
|
-
modal-1.1.2.
|
181
|
-
modal-1.1.2.
|
182
|
-
modal-1.1.2.
|
183
|
-
modal-1.1.2.
|
179
|
+
modal-1.1.2.dev12.dist-info/METADATA,sha256=DkQ46_jRjzRtfb8897llVtCLzYnz5UF33pc2ghJOUvM,2460
|
180
|
+
modal-1.1.2.dev12.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
|
181
|
+
modal-1.1.2.dev12.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
|
182
|
+
modal-1.1.2.dev12.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
|
183
|
+
modal-1.1.2.dev12.dist-info/RECORD,,
|
modal_docs/mdmd/mdmd.py
CHANGED
@@ -80,7 +80,17 @@ class {name}{bases_str}
|
|
80
80
|
rec_update_attributes(obj)
|
81
81
|
|
82
82
|
for member_name, member in entries.items():
|
83
|
-
if isinstance(member,
|
83
|
+
if isinstance(member, synchronicity.synchronizer.classproperty):
|
84
|
+
member_obj = getattr(obj, member_name)
|
85
|
+
if not inspect.isclass(member_obj):
|
86
|
+
# A little hacky; right now we are only using classproperty for the .objects manager classes
|
87
|
+
# I'm adding this constraint to avoid refactoring this to support more recursive calling
|
88
|
+
print(f"* Skipping {member_name}; we currnetly assume classproperty is a class")
|
89
|
+
continue
|
90
|
+
parts.append(f"{member_title_level} {member_name}\n\n")
|
91
|
+
parts.append(class_str(member_name, member_obj, title_level=title_level + "#"))
|
92
|
+
continue
|
93
|
+
elif isinstance(member, classmethod) or isinstance(member, staticmethod):
|
84
94
|
# get the original function definition instead of the descriptor object
|
85
95
|
member = getattr(obj, member_name)
|
86
96
|
elif isinstance(member, property):
|
modal_proto/api.proto
CHANGED
@@ -1147,7 +1147,7 @@ message DictListRequest {
|
|
1147
1147
|
message DictListResponse {
|
1148
1148
|
message DictInfo {
|
1149
1149
|
string name = 1;
|
1150
|
-
double created_at = 2; // Superseded by metadata, used by clients up to 1.1.
|
1150
|
+
double created_at = 2; // Superseded by metadata, used by clients up to 1.1.2
|
1151
1151
|
string dict_id = 3;
|
1152
1152
|
DictMetadata metadata = 4;
|
1153
1153
|
}
|
@@ -2460,7 +2460,7 @@ message QueueListRequest {
|
|
2460
2460
|
message QueueListResponse {
|
2461
2461
|
message QueueInfo {
|
2462
2462
|
string name = 1;
|
2463
|
-
double created_at = 2; // Superseded by metadata, used by clients up to 1.1.
|
2463
|
+
double created_at = 2; // Superseded by metadata, used by clients up to 1.1.2
|
2464
2464
|
int32 num_partitions = 3;
|
2465
2465
|
int32 total_size = 4;
|
2466
2466
|
string queue_id = 5;
|
@@ -2610,6 +2610,8 @@ message Sandbox {
|
|
2610
2610
|
|
2611
2611
|
// Experimental options
|
2612
2612
|
map<string, bool> experimental_options = 31;
|
2613
|
+
|
2614
|
+
repeated string preload_path_prefixes = 32; // Internal use only.
|
2613
2615
|
}
|
2614
2616
|
|
2615
2617
|
message SandboxCreateRequest {
|
@@ -2869,7 +2871,7 @@ message SecretGetOrCreateResponse {
|
|
2869
2871
|
|
2870
2872
|
message SecretListItem {
|
2871
2873
|
string label = 1;
|
2872
|
-
double created_at = 2; // Superseded by metadata, used by clients up to 1.1.
|
2874
|
+
double created_at = 2; // Superseded by metadata, used by clients up to 1.1.2
|
2873
2875
|
double last_used_at = 3;
|
2874
2876
|
string environment_name = 4; // Unused by client
|
2875
2877
|
string secret_id = 5;
|
@@ -3236,7 +3238,7 @@ message VolumeListFilesResponse {
|
|
3236
3238
|
message VolumeListItem {
|
3237
3239
|
string label = 1; // app name of object entity app
|
3238
3240
|
string volume_id = 2;
|
3239
|
-
double created_at = 3; // Superseded by metadata, used by clients up to 1.1.
|
3241
|
+
double created_at = 3; // Superseded by metadata, used by clients up to 1.1.2
|
3240
3242
|
VolumeMetadata metadata = 4;
|
3241
3243
|
}
|
3242
3244
|
|