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/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.dev10
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.1
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=bGDKO4raFW0G4eGAhdmS-iVdsE9pdh4y1SbSuyDDszg,15831
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=IWpPQtBwR96TJN7ogpIZvL9Ge9rxY4KJ2CjkUKfWr6g,15864
34
- modal/dict.pyi,sha256=vUrNmCKWZqiPIQSdbMT6fCq9q1QV3qkGVdz2B_yld34,22578
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=s3PQtacOfSeHukLR7Xz3qGD2sVh-CEgfpjgimv2gCCo,36161
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=6oKACWiFus03vx5-cDxowxX80a1J7sAwNpBBHLJM8sk,20366
63
- modal/queue.pyi,sha256=Pv4OtY7j17Yb89HGKaMQRiIv0yol-aV-ZtelxQ9GrlU,28330
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=_d_OQUE1S0v_wO5Ck728dsC_1v8-B_4ku4TS4BgC4Bc,12027
73
- modal/secret.pyi,sha256=zcC_OM0JzIF1ccnhNvVIlL6sY3xVjq3t0s3fE1ZDDVs,9732
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=784Wz4XeLYPGWChfpRbukvGK2Ujazf7-lHwDxUNoKfY,45424
82
- modal/volume.pyi,sha256=YIzDSxDxy_pNrcWWX0cpAoNkFWwC-kzSnQQAaGeSW0Y,41951
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=Un_nCG9ZXPMPKK5kJayrFVl1eFckVikPyqrWtI2553M,553
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=XsySnxSOcfF9ZehHO3whRgFuxZGGNE_I87Hiye36wE4,4655
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=6Ck7B-Eu3ZEV6oOX0GxnVMQ5k9DWrIZPYXxaHVqUhKU,4565
141
+ modal/cli/queues.py,sha256=RkSxO4zgB5Mk7nZzN9GAJ-oRdmVzTig3o7a7U1HKh7M,6093
142
142
  modal/cli/run.py,sha256=96m6fpJKbjtva4xzJut0pxS36Z5WCMq0umpAry96im0,24946
143
- modal/cli/secret.py,sha256=PqAvgaiIHTYDbXsKLLQcDvwQn283QnmtgfIr5jH4Prw,6646
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=L4ryL-_yjgUyr0Zwy390DYsFCLtMxeOW2elm7J76y7w,10985
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.dev10.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
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=eW5MzrEl7mSclDo4Uv64sQ1-4IyLggldbgUJdBVLDdI,6449
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=7tWgJEupLZc7-xRui1LhCRIBeDV88IeHfTKWxjmhfjs,103701
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=NWN4agq7NgSJMMzxShYu3EExpQRwPH0cBxLWOs0BwwY,364158
165
- modal_proto/api_pb2.pyi,sha256=NQ7OWnb2gP3QDTInQ78E0DDmwhsrqRNQxygaq2N3SzA,501343
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=gUT1kr5mQU3RBx2UORKTLogILhIIs_xznMFawGLRXh8,121
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.dev10.dist-info/METADATA,sha256=gYDWRZcgB47TizoWlaKco7b18d3MFFHqFArTk-sImUs,2460
180
- modal-1.1.2.dev10.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
181
- modal-1.1.2.dev10.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
182
- modal-1.1.2.dev10.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
183
- modal-1.1.2.dev10.dist-info/RECORD,,
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, classmethod) or isinstance(member, staticmethod):
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.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.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.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.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