modal 0.73.18__py3-none-any.whl → 0.73.19__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 CHANGED
@@ -27,7 +27,7 @@ class _Client:
27
27
  _snapshotted: bool
28
28
 
29
29
  def __init__(
30
- self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.18"
30
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.19"
31
31
  ): ...
32
32
  def is_closed(self) -> bool: ...
33
33
  @property
@@ -85,7 +85,7 @@ class Client:
85
85
  _snapshotted: bool
86
86
 
87
87
  def __init__(
88
- self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.18"
88
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.73.19"
89
89
  ): ...
90
90
  def is_closed(self) -> bool: ...
91
91
  @property
modal/gpu.py CHANGED
@@ -9,16 +9,14 @@ from .exception import InvalidError
9
9
 
10
10
  @dataclass(frozen=True)
11
11
  class _GPUConfig:
12
- type: "api_pb2.GPUType.V" # Deprecated, at some point
13
- count: int
14
12
  gpu_type: str
13
+ count: int
15
14
 
16
15
  def _to_proto(self) -> api_pb2.GPUConfig:
17
16
  """Convert this GPU config to an internal protobuf representation."""
18
17
  return api_pb2.GPUConfig(
19
- type=self.type,
20
- count=self.count,
21
18
  gpu_type=self.gpu_type,
19
+ count=self.count,
22
20
  )
23
21
 
24
22
 
@@ -33,7 +31,7 @@ class T4(_GPUConfig):
33
31
  self,
34
32
  count: int = 1, # Number of GPUs per container. Defaults to 1.
35
33
  ):
36
- super().__init__(api_pb2.GPU_TYPE_T4, count, "T4")
34
+ super().__init__("T4", count)
37
35
 
38
36
  def __repr__(self):
39
37
  return f"GPU(T4, count={self.count})"
@@ -51,7 +49,7 @@ class L4(_GPUConfig):
51
49
  self,
52
50
  count: int = 1, # Number of GPUs per container. Defaults to 1.
53
51
  ):
54
- super().__init__(api_pb2.GPU_TYPE_L4, count, "L4")
52
+ super().__init__("L4", count)
55
53
 
56
54
  def __repr__(self):
57
55
  return f"GPU(L4, count={self.count})"
@@ -71,9 +69,9 @@ class A100(_GPUConfig):
71
69
  size: Union[str, None] = None, # Select GB configuration of GPU device: "40GB" or "80GB". Defaults to "40GB".
72
70
  ):
73
71
  if size == "40GB" or not size:
74
- super().__init__(api_pb2.GPU_TYPE_A100, count, "A100-40GB")
72
+ super().__init__("A100-40GB", count)
75
73
  elif size == "80GB":
76
- super().__init__(api_pb2.GPU_TYPE_A100_80GB, count, "A100-80GB")
74
+ super().__init__("A100-80GB", count)
77
75
  else:
78
76
  raise ValueError(f"size='{size}' is invalid. A100s can only have memory values of 40GB or 80GB.")
79
77
 
@@ -97,7 +95,7 @@ class A10G(_GPUConfig):
97
95
  # Useful if you have very large models that don't fit on a single GPU.
98
96
  count: int = 1,
99
97
  ):
100
- super().__init__(api_pb2.GPU_TYPE_A10G, count, "A10G")
98
+ super().__init__("A10G", count)
101
99
 
102
100
  def __repr__(self):
103
101
  return f"GPU(A10G, count={self.count})"
@@ -119,7 +117,7 @@ class H100(_GPUConfig):
119
117
  # Useful if you have very large models that don't fit on a single GPU.
120
118
  count: int = 1,
121
119
  ):
122
- super().__init__(api_pb2.GPU_TYPE_H100, count, "H100")
120
+ super().__init__("H100", count)
123
121
 
124
122
  def __repr__(self):
125
123
  return f"GPU(H100, count={self.count})"
@@ -140,7 +138,7 @@ class L40S(_GPUConfig):
140
138
  # Useful if you have very large models that don't fit on a single GPU.
141
139
  count: int = 1,
142
140
  ):
143
- super().__init__(api_pb2.GPU_TYPE_L40S, count, "L40S")
141
+ super().__init__("L40S", count)
144
142
 
145
143
  def __repr__(self):
146
144
  return f"GPU(L40S, count={self.count})"
@@ -150,7 +148,7 @@ class Any(_GPUConfig):
150
148
  """Selects any one of the GPU classes available within Modal, according to availability."""
151
149
 
152
150
  def __init__(self, *, count: int = 1):
153
- super().__init__(api_pb2.GPU_TYPE_ANY, count, "ANY")
151
+ super().__init__("ANY", count)
154
152
 
155
153
  def __repr__(self):
156
154
  return f"GPU(Any, count={self.count})"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: modal
3
- Version: 0.73.18
3
+ Version: 0.73.19
4
4
  Summary: Python client library for Modal
5
5
  Author: Modal Labs
6
6
  Author-email: support@modal.com
@@ -21,7 +21,7 @@ modal/app.py,sha256=MaWCYgNx8y2GQhmaXQBMKKAAfCYfdxrdYs6zCBoJzwI,44628
21
21
  modal/app.pyi,sha256=lxiuWzE_OLb3WHg-H7Pek9DGBuCUzZ55P594VhJL5LA,26113
22
22
  modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
23
23
  modal/client.py,sha256=8SQawr7P1PNUCq1UmJMUQXG2jIo4Nmdcs311XqrNLRE,15276
24
- modal/client.pyi,sha256=cNwqALG4kBZVaMLuwJOhuLJqbm-6ZseQgYH9GHpSYto,7593
24
+ modal/client.pyi,sha256=yHo_2AXu4sDbWWBYXJWUHcfSuK8PA7TCNKpb1NJ8Bso,7593
25
25
  modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
26
26
  modal/cloud_bucket_mount.pyi,sha256=30T3K1a89l6wzmEJ_J9iWv9SknoGqaZDx59Xs-ZQcmk,1607
27
27
  modal/cls.py,sha256=agxclIXZbzBbgcI5PPVD7IfOiHzv-B82xaaXtw9cpv8,31126
@@ -41,7 +41,7 @@ modal/file_io.pyi,sha256=NTRft1tbPSWf9TlWVeZmTlgB5AZ_Zhu2srWIrWr7brk,9445
41
41
  modal/file_pattern_matcher.py,sha256=1cZ4V2wSLiaXqAqStETSwp3bzDD6QZOt6pmmjk3Okz4,6505
42
42
  modal/functions.py,sha256=kcNHvqeGBxPI7Cgd57NIBBghkfbeFJzXO44WW0jSmao,325
43
43
  modal/functions.pyi,sha256=YflJx4BhzmJLJzpVWbuAMv0Qv63Mgb3r9qZqrgBEr1w,14289
44
- modal/gpu.py,sha256=emiPRWAgr10f5twtUhC3kBZQZ91fZ74VNdePy7YAspE,7267
44
+ modal/gpu.py,sha256=5vJiYFAv7Ai9zeGf_lv31rJyQn1atQlCYAJv1bF1_BQ,6996
45
45
  modal/image.py,sha256=ekE2693foy30Xi1LM3swKZPW6HuaACj-OBvfspVSyIE,91509
46
46
  modal/image.pyi,sha256=kdJzy1eaxNPZeCpE0TMYYLhJ6UWmkfRDeb_vzngJUoQ,26462
47
47
  modal/io_streams.py,sha256=QkQiizKRzd5bnbKQsap31LJgBYlAnj4-XkV_50xPYX0,15079
@@ -154,10 +154,10 @@ modal_global_objects/mounts/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0
154
154
  modal_global_objects/mounts/modal_client_package.py,sha256=W0E_yShsRojPzWm6LtIQqNVolapdnrZkm2hVEQuZK_4,767
155
155
  modal_global_objects/mounts/python_standalone.py,sha256=EsC-hdPtiAPOwgW9emHN6muNUkrJwR8dYxroVArxHxM,1841
156
156
  modal_proto/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
157
- modal_proto/api.proto,sha256=di68jjtwThwYFRhLFwtloOQ0fbJXQRkHTj99C2D-nR4,85275
157
+ modal_proto/api.proto,sha256=Xb1Hm-ua7pqSZQCwvQQ_3NrTIsdImAZxAbAwLTOqFKw,85430
158
158
  modal_proto/api_grpc.py,sha256=FYGqDegM_w_qxdtlxum8k31mDibKoMvmNxv_p9cKdKs,109056
159
159
  modal_proto/api_pb2.py,sha256=fqNeRak26FM15cu4Y_gDBhxHSuOHuC7kOhunzLeMOpM,311114
160
- modal_proto/api_pb2.pyi,sha256=6ZUsCyB-dtItT_c0xrxuPnvmAD7MHImtmN_1IbKYtYQ,415434
160
+ modal_proto/api_pb2.pyi,sha256=iI-_tqYnRl-4ILOYPvRbQ9iEfiMn16mGYTgHMGoPuGg,415750
161
161
  modal_proto/api_pb2_grpc.py,sha256=DNp0Et5i_Ey4dKx_1o1LRtYhyWYyT0NzTcAY4EcHn-c,235765
162
162
  modal_proto/api_pb2_grpc.pyi,sha256=RI6tWC3L8EIN4-izFSEGPPJl5Ta0lXPNuHUJaWAr35s,54892
163
163
  modal_proto/modal_api_grpc.py,sha256=UG8WJU81afrWPwItWB4Ag64E9EpyREMpBbAVGVEYJiM,14550
@@ -171,10 +171,10 @@ modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0y
171
171
  modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
172
  modal_version/__init__.py,sha256=wiJQ53c-OMs0Xf1UeXOxQ7FwlV1VzIjnX6o-pRYZ_Pk,470
173
173
  modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
174
- modal_version/_version_generated.py,sha256=es_zQAYbXwNk2rQzYcTt5Fz_sg-TMBpv3shgnxer39E,149
175
- modal-0.73.18.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
176
- modal-0.73.18.dist-info/METADATA,sha256=Og9a1J6CGa1pKBSDkusnllp6lUNNu2iH_lwoU9_UFdA,2330
177
- modal-0.73.18.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
178
- modal-0.73.18.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
179
- modal-0.73.18.dist-info/top_level.txt,sha256=1nvYbOSIKcmU50fNrpnQnrrOpj269ei3LzgB6j9xGqg,64
180
- modal-0.73.18.dist-info/RECORD,,
174
+ modal_version/_version_generated.py,sha256=ruburAM2dc_egk5bmNXPC2qxGeLEA-OdC5qqdIlB0TU,149
175
+ modal-0.73.19.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
176
+ modal-0.73.19.dist-info/METADATA,sha256=iHzyg2XiswOew49rJEjtFkJ5sujCIYjYEsq6kP7Fkzo,2330
177
+ modal-0.73.19.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
178
+ modal-0.73.19.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
179
+ modal-0.73.19.dist-info/top_level.txt,sha256=1nvYbOSIKcmU50fNrpnQnrrOpj269ei3LzgB6j9xGqg,64
180
+ modal-0.73.19.dist-info/RECORD,,
modal_proto/api.proto CHANGED
@@ -143,6 +143,8 @@ enum FunctionCallType {
143
143
  }
144
144
 
145
145
  enum GPUType {
146
+ // Note: this enum is no longer used by current clients - don't add new types
147
+ // Old clients still send it, so we use it server-side for compatibility
146
148
  GPU_TYPE_UNSPECIFIED = 0;
147
149
  GPU_TYPE_T4 = 1;
148
150
  GPU_TYPE_A100 = 2;
modal_proto/api_pb2.pyi CHANGED
@@ -356,6 +356,9 @@ class _GPUType:
356
356
  class _GPUTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_GPUType.ValueType], builtins.type): # noqa: F821
357
357
  DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
358
358
  GPU_TYPE_UNSPECIFIED: _GPUType.ValueType # 0
359
+ """Note: this enum is no longer used by current clients - don't add new types
360
+ Old clients still send it, so we use it server-side for compatibility
361
+ """
359
362
  GPU_TYPE_T4: _GPUType.ValueType # 1
360
363
  GPU_TYPE_A100: _GPUType.ValueType # 2
361
364
  GPU_TYPE_A10G: _GPUType.ValueType # 3
@@ -369,6 +372,9 @@ class _GPUTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTy
369
372
  class GPUType(_GPUType, metaclass=_GPUTypeEnumTypeWrapper): ...
370
373
 
371
374
  GPU_TYPE_UNSPECIFIED: GPUType.ValueType # 0
375
+ """Note: this enum is no longer used by current clients - don't add new types
376
+ Old clients still send it, so we use it server-side for compatibility
377
+ """
372
378
  GPU_TYPE_T4: GPUType.ValueType # 1
373
379
  GPU_TYPE_A100: GPUType.ValueType # 2
374
380
  GPU_TYPE_A10G: GPUType.ValueType # 3
@@ -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 = 18 # git: 9e5aecd
4
+ build_number = 19 # git: 49a2185