modal 1.2.2.dev30__py3-none-any.whl → 1.2.2.dev36__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.
Files changed (46) hide show
  1. modal/_functions.py +77 -52
  2. modal/_load_context.py +105 -0
  3. modal/_object.py +47 -18
  4. modal/_resolver.py +21 -35
  5. modal/app.py +7 -0
  6. modal/app.pyi +3 -0
  7. modal/cli/dict.py +5 -2
  8. modal/cli/queues.py +4 -2
  9. modal/client.pyi +2 -2
  10. modal/cls.py +71 -32
  11. modal/cls.pyi +3 -0
  12. modal/dict.py +14 -5
  13. modal/dict.pyi +2 -0
  14. modal/environments.py +16 -7
  15. modal/environments.pyi +6 -2
  16. modal/functions.pyi +10 -4
  17. modal/image.py +22 -22
  18. modal/mount.py +35 -25
  19. modal/mount.pyi +33 -7
  20. modal/network_file_system.py +14 -5
  21. modal/network_file_system.pyi +12 -2
  22. modal/object.pyi +35 -8
  23. modal/proxy.py +14 -6
  24. modal/proxy.pyi +10 -2
  25. modal/queue.py +14 -5
  26. modal/queue.pyi +12 -2
  27. modal/runner.py +43 -47
  28. modal/runner.pyi +2 -2
  29. modal/sandbox.py +21 -12
  30. modal/secret.py +57 -39
  31. modal/secret.pyi +21 -4
  32. modal/serving.py +7 -11
  33. modal/serving.pyi +7 -8
  34. modal/snapshot.py +11 -5
  35. modal/volume.py +25 -7
  36. modal/volume.pyi +2 -0
  37. {modal-1.2.2.dev30.dist-info → modal-1.2.2.dev36.dist-info}/METADATA +1 -1
  38. {modal-1.2.2.dev30.dist-info → modal-1.2.2.dev36.dist-info}/RECORD +46 -45
  39. modal_proto/api.proto +4 -0
  40. modal_proto/api_pb2.py +684 -684
  41. modal_proto/api_pb2.pyi +24 -3
  42. modal_version/__init__.py +1 -1
  43. {modal-1.2.2.dev30.dist-info → modal-1.2.2.dev36.dist-info}/WHEEL +0 -0
  44. {modal-1.2.2.dev30.dist-info → modal-1.2.2.dev36.dist-info}/entry_points.txt +0 -0
  45. {modal-1.2.2.dev30.dist-info → modal-1.2.2.dev36.dist-info}/licenses/LICENSE +0 -0
  46. {modal-1.2.2.dev30.dist-info → modal-1.2.2.dev36.dist-info}/top_level.txt +0 -0
modal_proto/api_pb2.pyi CHANGED
@@ -4268,12 +4268,16 @@ class EnvironmentListItem(google.protobuf.message.Message):
4268
4268
  DEFAULT_FIELD_NUMBER: builtins.int
4269
4269
  IS_MANAGED_FIELD_NUMBER: builtins.int
4270
4270
  ENVIRONMENT_ID_FIELD_NUMBER: builtins.int
4271
+ MAX_CONCURRENT_TASKS_FIELD_NUMBER: builtins.int
4272
+ MAX_CONCURRENT_GPUS_FIELD_NUMBER: builtins.int
4271
4273
  name: builtins.str
4272
4274
  webhook_suffix: builtins.str
4273
4275
  created_at: builtins.float
4274
4276
  default: builtins.bool
4275
4277
  is_managed: builtins.bool
4276
4278
  environment_id: builtins.str
4279
+ max_concurrent_tasks: builtins.int
4280
+ max_concurrent_gpus: builtins.int
4277
4281
  def __init__(
4278
4282
  self,
4279
4283
  *,
@@ -4283,8 +4287,15 @@ class EnvironmentListItem(google.protobuf.message.Message):
4283
4287
  default: builtins.bool = ...,
4284
4288
  is_managed: builtins.bool = ...,
4285
4289
  environment_id: builtins.str = ...,
4290
+ max_concurrent_tasks: builtins.int | None = ...,
4291
+ max_concurrent_gpus: builtins.int | None = ...,
4286
4292
  ) -> None: ...
4287
- def ClearField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "default", b"default", "environment_id", b"environment_id", "is_managed", b"is_managed", "name", b"name", "webhook_suffix", b"webhook_suffix"]) -> None: ...
4293
+ def HasField(self, field_name: typing_extensions.Literal["_max_concurrent_gpus", b"_max_concurrent_gpus", "_max_concurrent_tasks", b"_max_concurrent_tasks", "max_concurrent_gpus", b"max_concurrent_gpus", "max_concurrent_tasks", b"max_concurrent_tasks"]) -> builtins.bool: ...
4294
+ def ClearField(self, field_name: typing_extensions.Literal["_max_concurrent_gpus", b"_max_concurrent_gpus", "_max_concurrent_tasks", b"_max_concurrent_tasks", "created_at", b"created_at", "default", b"default", "environment_id", b"environment_id", "is_managed", b"is_managed", "max_concurrent_gpus", b"max_concurrent_gpus", "max_concurrent_tasks", b"max_concurrent_tasks", "name", b"name", "webhook_suffix", b"webhook_suffix"]) -> None: ...
4295
+ @typing.overload
4296
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_max_concurrent_gpus", b"_max_concurrent_gpus"]) -> typing_extensions.Literal["max_concurrent_gpus"] | None: ...
4297
+ @typing.overload
4298
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_max_concurrent_tasks", b"_max_concurrent_tasks"]) -> typing_extensions.Literal["max_concurrent_tasks"] | None: ...
4288
4299
 
4289
4300
  global___EnvironmentListItem = EnvironmentListItem
4290
4301
 
@@ -4350,20 +4361,30 @@ class EnvironmentUpdateRequest(google.protobuf.message.Message):
4350
4361
  CURRENT_NAME_FIELD_NUMBER: builtins.int
4351
4362
  NAME_FIELD_NUMBER: builtins.int
4352
4363
  WEB_SUFFIX_FIELD_NUMBER: builtins.int
4364
+ MAX_CONCURRENT_TASKS_FIELD_NUMBER: builtins.int
4365
+ MAX_CONCURRENT_GPUS_FIELD_NUMBER: builtins.int
4353
4366
  current_name: builtins.str
4354
4367
  @property
4355
4368
  def name(self) -> google.protobuf.wrappers_pb2.StringValue: ...
4356
4369
  @property
4357
4370
  def web_suffix(self) -> google.protobuf.wrappers_pb2.StringValue: ...
4371
+ max_concurrent_tasks: builtins.int
4372
+ max_concurrent_gpus: builtins.int
4358
4373
  def __init__(
4359
4374
  self,
4360
4375
  *,
4361
4376
  current_name: builtins.str = ...,
4362
4377
  name: google.protobuf.wrappers_pb2.StringValue | None = ...,
4363
4378
  web_suffix: google.protobuf.wrappers_pb2.StringValue | None = ...,
4379
+ max_concurrent_tasks: builtins.int | None = ...,
4380
+ max_concurrent_gpus: builtins.int | None = ...,
4364
4381
  ) -> None: ...
4365
- def HasField(self, field_name: typing_extensions.Literal["name", b"name", "web_suffix", b"web_suffix"]) -> builtins.bool: ...
4366
- def ClearField(self, field_name: typing_extensions.Literal["current_name", b"current_name", "name", b"name", "web_suffix", b"web_suffix"]) -> None: ...
4382
+ def HasField(self, field_name: typing_extensions.Literal["_max_concurrent_gpus", b"_max_concurrent_gpus", "_max_concurrent_tasks", b"_max_concurrent_tasks", "max_concurrent_gpus", b"max_concurrent_gpus", "max_concurrent_tasks", b"max_concurrent_tasks", "name", b"name", "web_suffix", b"web_suffix"]) -> builtins.bool: ...
4383
+ def ClearField(self, field_name: typing_extensions.Literal["_max_concurrent_gpus", b"_max_concurrent_gpus", "_max_concurrent_tasks", b"_max_concurrent_tasks", "current_name", b"current_name", "max_concurrent_gpus", b"max_concurrent_gpus", "max_concurrent_tasks", b"max_concurrent_tasks", "name", b"name", "web_suffix", b"web_suffix"]) -> None: ...
4384
+ @typing.overload
4385
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_max_concurrent_gpus", b"_max_concurrent_gpus"]) -> typing_extensions.Literal["max_concurrent_gpus"] | None: ...
4386
+ @typing.overload
4387
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_max_concurrent_tasks", b"_max_concurrent_tasks"]) -> typing_extensions.Literal["max_concurrent_tasks"] | None: ...
4367
4388
 
4368
4389
  global___EnvironmentUpdateRequest = EnvironmentUpdateRequest
4369
4390
 
modal_version/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # Copyright Modal Labs 2025
2
2
  """Supplies the current version of the modal client library."""
3
3
 
4
- __version__ = "1.2.2.dev30"
4
+ __version__ = "1.2.2.dev36"