modal 1.2.0__py3-none-any.whl → 1.2.1__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.

Potentially problematic release.


This version of modal might be problematic. Click here for more details.

Files changed (49) hide show
  1. modal/_container_entrypoint.py +4 -1
  2. modal/_partial_function.py +28 -3
  3. modal/_utils/function_utils.py +4 -0
  4. modal/_utils/task_command_router_client.py +537 -0
  5. modal/app.py +93 -54
  6. modal/app.pyi +48 -18
  7. modal/cli/_download.py +19 -3
  8. modal/cli/cluster.py +4 -2
  9. modal/cli/container.py +4 -2
  10. modal/cli/entry_point.py +1 -0
  11. modal/cli/launch.py +1 -2
  12. modal/cli/run.py +6 -0
  13. modal/cli/volume.py +7 -1
  14. modal/client.pyi +2 -2
  15. modal/cls.py +5 -12
  16. modal/config.py +14 -0
  17. modal/container_process.py +283 -3
  18. modal/container_process.pyi +95 -32
  19. modal/exception.py +4 -0
  20. modal/experimental/flash.py +21 -47
  21. modal/experimental/flash.pyi +6 -20
  22. modal/functions.pyi +6 -6
  23. modal/io_streams.py +455 -122
  24. modal/io_streams.pyi +220 -95
  25. modal/partial_function.pyi +4 -1
  26. modal/runner.py +39 -36
  27. modal/runner.pyi +40 -24
  28. modal/sandbox.py +130 -11
  29. modal/sandbox.pyi +145 -9
  30. modal/volume.py +23 -3
  31. modal/volume.pyi +30 -0
  32. {modal-1.2.0.dist-info → modal-1.2.1.dist-info}/METADATA +5 -5
  33. {modal-1.2.0.dist-info → modal-1.2.1.dist-info}/RECORD +49 -48
  34. modal_proto/api.proto +2 -26
  35. modal_proto/api_grpc.py +0 -32
  36. modal_proto/api_pb2.py +327 -367
  37. modal_proto/api_pb2.pyi +6 -69
  38. modal_proto/api_pb2_grpc.py +0 -67
  39. modal_proto/api_pb2_grpc.pyi +0 -22
  40. modal_proto/modal_api_grpc.py +0 -2
  41. modal_proto/sandbox_router.proto +0 -4
  42. modal_proto/sandbox_router_pb2.pyi +0 -4
  43. modal_proto/task_command_router.proto +1 -1
  44. modal_proto/task_command_router_pb2.py +2 -2
  45. modal_version/__init__.py +1 -1
  46. {modal-1.2.0.dist-info → modal-1.2.1.dist-info}/WHEEL +0 -0
  47. {modal-1.2.0.dist-info → modal-1.2.1.dist-info}/entry_points.txt +0 -0
  48. {modal-1.2.0.dist-info → modal-1.2.1.dist-info}/licenses/LICENSE +0 -0
  49. {modal-1.2.0.dist-info → modal-1.2.1.dist-info}/top_level.txt +0 -0
modal_proto/api_pb2.pyi CHANGED
@@ -8917,44 +8917,6 @@ class SandboxCreateResponse(google.protobuf.message.Message):
8917
8917
 
8918
8918
  global___SandboxCreateResponse = SandboxCreateResponse
8919
8919
 
8920
- class SandboxGetCommandRouterAccessRequest(google.protobuf.message.Message):
8921
- """Used to get a JWT and URL for direct access to a sandbox router server
8922
- running on the modal-worker, so the client can issue exec commands (and other
8923
- operations as they become available) directly to the worker.
8924
- DEPRECATED: Use TaskGetCommandRouterAccessRequest instead.
8925
- TODO(saltzm): Remove this.
8926
- """
8927
-
8928
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
8929
-
8930
- SANDBOX_ID_FIELD_NUMBER: builtins.int
8931
- sandbox_id: builtins.str
8932
- def __init__(
8933
- self,
8934
- *,
8935
- sandbox_id: builtins.str = ...,
8936
- ) -> None: ...
8937
- def ClearField(self, field_name: typing_extensions.Literal["sandbox_id", b"sandbox_id"]) -> None: ...
8938
-
8939
- global___SandboxGetCommandRouterAccessRequest = SandboxGetCommandRouterAccessRequest
8940
-
8941
- class SandboxGetCommandRouterAccessResponse(google.protobuf.message.Message):
8942
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
8943
-
8944
- JWT_FIELD_NUMBER: builtins.int
8945
- URL_FIELD_NUMBER: builtins.int
8946
- jwt: builtins.str
8947
- url: builtins.str
8948
- def __init__(
8949
- self,
8950
- *,
8951
- jwt: builtins.str = ...,
8952
- url: builtins.str = ...,
8953
- ) -> None: ...
8954
- def ClearField(self, field_name: typing_extensions.Literal["jwt", b"jwt", "url", b"url"]) -> None: ...
8955
-
8956
- global___SandboxGetCommandRouterAccessResponse = SandboxGetCommandRouterAccessResponse
8957
-
8958
8920
  class SandboxGetFromNameRequest(google.protobuf.message.Message):
8959
8921
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
8960
8922
 
@@ -10302,36 +10264,6 @@ class TaskCurrentInputsResponse(google.protobuf.message.Message):
10302
10264
 
10303
10265
  global___TaskCurrentInputsResponse = TaskCurrentInputsResponse
10304
10266
 
10305
- class TaskGetAutoscalingMetricsRequest(google.protobuf.message.Message):
10306
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
10307
-
10308
- TASK_ID_FIELD_NUMBER: builtins.int
10309
- task_id: builtins.str
10310
- def __init__(
10311
- self,
10312
- *,
10313
- task_id: builtins.str = ...,
10314
- ) -> None: ...
10315
- def ClearField(self, field_name: typing_extensions.Literal["task_id", b"task_id"]) -> None: ...
10316
-
10317
- global___TaskGetAutoscalingMetricsRequest = TaskGetAutoscalingMetricsRequest
10318
-
10319
- class TaskGetAutoscalingMetricsResponse(google.protobuf.message.Message):
10320
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
10321
-
10322
- METRICS_FIELD_NUMBER: builtins.int
10323
- @property
10324
- def metrics(self) -> global___AutoscalingMetrics: ...
10325
- def __init__(
10326
- self,
10327
- *,
10328
- metrics: global___AutoscalingMetrics | None = ...,
10329
- ) -> None: ...
10330
- def HasField(self, field_name: typing_extensions.Literal["metrics", b"metrics"]) -> builtins.bool: ...
10331
- def ClearField(self, field_name: typing_extensions.Literal["metrics", b"metrics"]) -> None: ...
10332
-
10333
- global___TaskGetAutoscalingMetricsResponse = TaskGetAutoscalingMetricsResponse
10334
-
10335
10267
  class TaskGetCommandRouterAccessRequest(google.protobuf.message.Message):
10336
10268
  """Used to get a JWT and URL for direct access to a task command router
10337
10269
  running on the modal-worker, so the client can issue exec commands (and other
@@ -11597,9 +11529,11 @@ class WebhookConfig(google.protobuf.message.Message):
11597
11529
  WEB_SERVER_STARTUP_TIMEOUT_FIELD_NUMBER: builtins.int
11598
11530
  WEB_ENDPOINT_DOCS_FIELD_NUMBER: builtins.int
11599
11531
  REQUIRES_PROXY_AUTH_FIELD_NUMBER: builtins.int
11532
+ EPHEMERAL_SUFFIX_FIELD_NUMBER: builtins.int
11600
11533
  type: global___WebhookType.ValueType
11601
11534
  method: builtins.str
11602
11535
  requested_suffix: builtins.str
11536
+ """User-supplied "label" component of URL"""
11603
11537
  async_mode: global___WebhookAsyncMode.ValueType
11604
11538
  @property
11605
11539
  def custom_domains(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CustomDomainConfig]: ...
@@ -11607,6 +11541,8 @@ class WebhookConfig(google.protobuf.message.Message):
11607
11541
  web_server_startup_timeout: builtins.float
11608
11542
  web_endpoint_docs: builtins.bool
11609
11543
  requires_proxy_auth: builtins.bool
11544
+ ephemeral_suffix: builtins.str
11545
+ """Additional URL suffix added for ephemeral Apps"""
11610
11546
  def __init__(
11611
11547
  self,
11612
11548
  *,
@@ -11619,8 +11555,9 @@ class WebhookConfig(google.protobuf.message.Message):
11619
11555
  web_server_startup_timeout: builtins.float = ...,
11620
11556
  web_endpoint_docs: builtins.bool = ...,
11621
11557
  requires_proxy_auth: builtins.bool = ...,
11558
+ ephemeral_suffix: builtins.str = ...,
11622
11559
  ) -> None: ...
11623
- def ClearField(self, field_name: typing_extensions.Literal["async_mode", b"async_mode", "custom_domains", b"custom_domains", "method", b"method", "requested_suffix", b"requested_suffix", "requires_proxy_auth", b"requires_proxy_auth", "type", b"type", "web_endpoint_docs", b"web_endpoint_docs", "web_server_port", b"web_server_port", "web_server_startup_timeout", b"web_server_startup_timeout"]) -> None: ...
11560
+ def ClearField(self, field_name: typing_extensions.Literal["async_mode", b"async_mode", "custom_domains", b"custom_domains", "ephemeral_suffix", b"ephemeral_suffix", "method", b"method", "requested_suffix", b"requested_suffix", "requires_proxy_auth", b"requires_proxy_auth", "type", b"type", "web_endpoint_docs", b"web_endpoint_docs", "web_server_port", b"web_server_port", "web_server_startup_timeout", b"web_server_startup_timeout"]) -> None: ...
11624
11561
 
11625
11562
  global___WebhookConfig = WebhookConfig
11626
11563
 
@@ -595,11 +595,6 @@ class ModalClientStub(object):
595
595
  request_serializer=modal__proto_dot_api__pb2.SandboxCreateConnectTokenRequest.SerializeToString,
596
596
  response_deserializer=modal__proto_dot_api__pb2.SandboxCreateConnectTokenResponse.FromString,
597
597
  )
598
- self.SandboxGetCommandRouterAccess = channel.unary_unary(
599
- '/modal.client.ModalClient/SandboxGetCommandRouterAccess',
600
- request_serializer=modal__proto_dot_api__pb2.SandboxGetCommandRouterAccessRequest.SerializeToString,
601
- response_deserializer=modal__proto_dot_api__pb2.SandboxGetCommandRouterAccessResponse.FromString,
602
- )
603
598
  self.SandboxGetFromName = channel.unary_unary(
604
599
  '/modal.client.ModalClient/SandboxGetFromName',
605
600
  request_serializer=modal__proto_dot_api__pb2.SandboxGetFromNameRequest.SerializeToString,
@@ -760,11 +755,6 @@ class ModalClientStub(object):
760
755
  request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
761
756
  response_deserializer=modal__proto_dot_api__pb2.TaskCurrentInputsResponse.FromString,
762
757
  )
763
- self.TaskGetAutoscalingMetrics = channel.unary_unary(
764
- '/modal.client.ModalClient/TaskGetAutoscalingMetrics',
765
- request_serializer=modal__proto_dot_api__pb2.TaskGetAutoscalingMetricsRequest.SerializeToString,
766
- response_deserializer=modal__proto_dot_api__pb2.TaskGetAutoscalingMetricsResponse.FromString,
767
- )
768
758
  self.TaskGetCommandRouterAccess = channel.unary_unary(
769
759
  '/modal.client.ModalClient/TaskGetCommandRouterAccess',
770
760
  request_serializer=modal__proto_dot_api__pb2.TaskGetCommandRouterAccessRequest.SerializeToString,
@@ -1620,12 +1610,6 @@ class ModalClientServicer(object):
1620
1610
  context.set_details('Method not implemented!')
1621
1611
  raise NotImplementedError('Method not implemented!')
1622
1612
 
1623
- def SandboxGetCommandRouterAccess(self, request, context):
1624
- """Missing associated documentation comment in .proto file."""
1625
- context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1626
- context.set_details('Method not implemented!')
1627
- raise NotImplementedError('Method not implemented!')
1628
-
1629
1613
  def SandboxGetFromName(self, request, context):
1630
1614
  """Missing associated documentation comment in .proto file."""
1631
1615
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -1822,13 +1806,6 @@ class ModalClientServicer(object):
1822
1806
  context.set_details('Method not implemented!')
1823
1807
  raise NotImplementedError('Method not implemented!')
1824
1808
 
1825
- def TaskGetAutoscalingMetrics(self, request, context):
1826
- """Used for flash autoscaling
1827
- """
1828
- context.set_code(grpc.StatusCode.UNIMPLEMENTED)
1829
- context.set_details('Method not implemented!')
1830
- raise NotImplementedError('Method not implemented!')
1831
-
1832
1809
  def TaskGetCommandRouterAccess(self, request, context):
1833
1810
  """Missing associated documentation comment in .proto file."""
1834
1811
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -2572,11 +2549,6 @@ def add_ModalClientServicer_to_server(servicer, server):
2572
2549
  request_deserializer=modal__proto_dot_api__pb2.SandboxCreateConnectTokenRequest.FromString,
2573
2550
  response_serializer=modal__proto_dot_api__pb2.SandboxCreateConnectTokenResponse.SerializeToString,
2574
2551
  ),
2575
- 'SandboxGetCommandRouterAccess': grpc.unary_unary_rpc_method_handler(
2576
- servicer.SandboxGetCommandRouterAccess,
2577
- request_deserializer=modal__proto_dot_api__pb2.SandboxGetCommandRouterAccessRequest.FromString,
2578
- response_serializer=modal__proto_dot_api__pb2.SandboxGetCommandRouterAccessResponse.SerializeToString,
2579
- ),
2580
2552
  'SandboxGetFromName': grpc.unary_unary_rpc_method_handler(
2581
2553
  servicer.SandboxGetFromName,
2582
2554
  request_deserializer=modal__proto_dot_api__pb2.SandboxGetFromNameRequest.FromString,
@@ -2737,11 +2709,6 @@ def add_ModalClientServicer_to_server(servicer, server):
2737
2709
  request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
2738
2710
  response_serializer=modal__proto_dot_api__pb2.TaskCurrentInputsResponse.SerializeToString,
2739
2711
  ),
2740
- 'TaskGetAutoscalingMetrics': grpc.unary_unary_rpc_method_handler(
2741
- servicer.TaskGetAutoscalingMetrics,
2742
- request_deserializer=modal__proto_dot_api__pb2.TaskGetAutoscalingMetricsRequest.FromString,
2743
- response_serializer=modal__proto_dot_api__pb2.TaskGetAutoscalingMetricsResponse.SerializeToString,
2744
- ),
2745
2712
  'TaskGetCommandRouterAccess': grpc.unary_unary_rpc_method_handler(
2746
2713
  servicer.TaskGetCommandRouterAccess,
2747
2714
  request_deserializer=modal__proto_dot_api__pb2.TaskGetCommandRouterAccessRequest.FromString,
@@ -4854,23 +4821,6 @@ class ModalClient(object):
4854
4821
  options, channel_credentials,
4855
4822
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4856
4823
 
4857
- @staticmethod
4858
- def SandboxGetCommandRouterAccess(request,
4859
- target,
4860
- options=(),
4861
- channel_credentials=None,
4862
- call_credentials=None,
4863
- insecure=False,
4864
- compression=None,
4865
- wait_for_ready=None,
4866
- timeout=None,
4867
- metadata=None):
4868
- return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/SandboxGetCommandRouterAccess',
4869
- modal__proto_dot_api__pb2.SandboxGetCommandRouterAccessRequest.SerializeToString,
4870
- modal__proto_dot_api__pb2.SandboxGetCommandRouterAccessResponse.FromString,
4871
- options, channel_credentials,
4872
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
4873
-
4874
4824
  @staticmethod
4875
4825
  def SandboxGetFromName(request,
4876
4826
  target,
@@ -5415,23 +5365,6 @@ class ModalClient(object):
5415
5365
  options, channel_credentials,
5416
5366
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
5417
5367
 
5418
- @staticmethod
5419
- def TaskGetAutoscalingMetrics(request,
5420
- target,
5421
- options=(),
5422
- channel_credentials=None,
5423
- call_credentials=None,
5424
- insecure=False,
5425
- compression=None,
5426
- wait_for_ready=None,
5427
- timeout=None,
5428
- metadata=None):
5429
- return grpc.experimental.unary_unary(request, target, '/modal.client.ModalClient/TaskGetAutoscalingMetrics',
5430
- modal__proto_dot_api__pb2.TaskGetAutoscalingMetricsRequest.SerializeToString,
5431
- modal__proto_dot_api__pb2.TaskGetAutoscalingMetricsResponse.FromString,
5432
- options, channel_credentials,
5433
- insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
5434
-
5435
5368
  @staticmethod
5436
5369
  def TaskGetCommandRouterAccess(request,
5437
5370
  target,
@@ -498,10 +498,6 @@ class ModalClientStub:
498
498
  modal_proto.api_pb2.SandboxCreateConnectTokenRequest,
499
499
  modal_proto.api_pb2.SandboxCreateConnectTokenResponse,
500
500
  ]
501
- SandboxGetCommandRouterAccess: grpc.UnaryUnaryMultiCallable[
502
- modal_proto.api_pb2.SandboxGetCommandRouterAccessRequest,
503
- modal_proto.api_pb2.SandboxGetCommandRouterAccessResponse,
504
- ]
505
501
  SandboxGetFromName: grpc.UnaryUnaryMultiCallable[
506
502
  modal_proto.api_pb2.SandboxGetFromNameRequest,
507
503
  modal_proto.api_pb2.SandboxGetFromNameResponse,
@@ -634,11 +630,6 @@ class ModalClientStub:
634
630
  google.protobuf.empty_pb2.Empty,
635
631
  modal_proto.api_pb2.TaskCurrentInputsResponse,
636
632
  ]
637
- TaskGetAutoscalingMetrics: grpc.UnaryUnaryMultiCallable[
638
- modal_proto.api_pb2.TaskGetAutoscalingMetricsRequest,
639
- modal_proto.api_pb2.TaskGetAutoscalingMetricsResponse,
640
- ]
641
- """Used for flash autoscaling"""
642
633
  TaskGetCommandRouterAccess: grpc.UnaryUnaryMultiCallable[
643
634
  modal_proto.api_pb2.TaskGetCommandRouterAccessRequest,
644
635
  modal_proto.api_pb2.TaskGetCommandRouterAccessResponse,
@@ -1470,12 +1461,6 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
1470
1461
  context: grpc.ServicerContext,
1471
1462
  ) -> modal_proto.api_pb2.SandboxCreateConnectTokenResponse: ...
1472
1463
  @abc.abstractmethod
1473
- def SandboxGetCommandRouterAccess(
1474
- self,
1475
- request: modal_proto.api_pb2.SandboxGetCommandRouterAccessRequest,
1476
- context: grpc.ServicerContext,
1477
- ) -> modal_proto.api_pb2.SandboxGetCommandRouterAccessResponse: ...
1478
- @abc.abstractmethod
1479
1464
  def SandboxGetFromName(
1480
1465
  self,
1481
1466
  request: modal_proto.api_pb2.SandboxGetFromNameRequest,
@@ -1672,13 +1657,6 @@ class ModalClientServicer(metaclass=abc.ABCMeta):
1672
1657
  context: grpc.ServicerContext,
1673
1658
  ) -> modal_proto.api_pb2.TaskCurrentInputsResponse: ...
1674
1659
  @abc.abstractmethod
1675
- def TaskGetAutoscalingMetrics(
1676
- self,
1677
- request: modal_proto.api_pb2.TaskGetAutoscalingMetricsRequest,
1678
- context: grpc.ServicerContext,
1679
- ) -> modal_proto.api_pb2.TaskGetAutoscalingMetricsResponse:
1680
- """Used for flash autoscaling"""
1681
- @abc.abstractmethod
1682
1660
  def TaskGetCommandRouterAccess(
1683
1661
  self,
1684
1662
  request: modal_proto.api_pb2.TaskGetCommandRouterAccessRequest,
@@ -134,7 +134,6 @@ class ModalClientModal:
134
134
  self.QueuePut = modal.client.UnaryUnaryWrapper(grpclib_stub.QueuePut, client, server_url)
135
135
  self.SandboxCreate = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxCreate, client, server_url)
136
136
  self.SandboxCreateConnectToken = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxCreateConnectToken, client, server_url)
137
- self.SandboxGetCommandRouterAccess = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxGetCommandRouterAccess, client, server_url)
138
137
  self.SandboxGetFromName = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxGetFromName, client, server_url)
139
138
  self.SandboxGetLogs = modal.client.UnaryStreamWrapper(grpclib_stub.SandboxGetLogs, client, server_url)
140
139
  self.SandboxGetResourceUsage = modal.client.UnaryUnaryWrapper(grpclib_stub.SandboxGetResourceUsage, client, server_url)
@@ -167,7 +166,6 @@ class ModalClientModal:
167
166
  self.SharedVolumeRemoveFile = modal.client.UnaryUnaryWrapper(grpclib_stub.SharedVolumeRemoveFile, client, server_url)
168
167
  self.TaskClusterHello = modal.client.UnaryUnaryWrapper(grpclib_stub.TaskClusterHello, client, server_url)
169
168
  self.TaskCurrentInputs = modal.client.UnaryUnaryWrapper(grpclib_stub.TaskCurrentInputs, client, server_url)
170
- self.TaskGetAutoscalingMetrics = modal.client.UnaryUnaryWrapper(grpclib_stub.TaskGetAutoscalingMetrics, client, server_url)
171
169
  self.TaskGetCommandRouterAccess = modal.client.UnaryUnaryWrapper(grpclib_stub.TaskGetCommandRouterAccess, client, server_url)
172
170
  self.TaskList = modal.client.UnaryUnaryWrapper(grpclib_stub.TaskList, client, server_url)
173
171
  self.TaskResult = modal.client.UnaryUnaryWrapper(grpclib_stub.TaskResult, client, server_url)
@@ -55,10 +55,6 @@ message SandboxExecStartRequest {
55
55
  string task_id = 1;
56
56
  // Execution ID. This ID will be used to identify the execution for other
57
57
  // requests and ensure exec commands are idempotent.
58
- //
59
- // TODO(saltzm): Could instead have a separate idempotency key from the exec_id
60
- // like present day, and have the server generate the exec_id and return it in
61
- // the ExecStartResponse.
62
58
  string exec_id = 2;
63
59
  // Command arguments to execute.
64
60
  repeated string command_args= 3;
@@ -146,10 +146,6 @@ class SandboxExecStartRequest(google.protobuf.message.Message):
146
146
  exec_id: builtins.str
147
147
  """Execution ID. This ID will be used to identify the execution for other
148
148
  requests and ensure exec commands are idempotent.
149
-
150
- TODO(saltzm): Could instead have a separate idempotency key from the exec_id
151
- like present day, and have the server generate the exec_id and return it in
152
- the ExecStartResponse.
153
149
  """
154
150
  @property
155
151
  def command_args(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
@@ -1,6 +1,6 @@
1
1
  syntax = "proto3";
2
2
 
3
- option go_package = "github.com/modal-labs/modal/go/proto/task_command_router";
3
+ option go_package = "github.com/modal-labs/modal/go/proto";
4
4
 
5
5
  import "modal_proto/api.proto";
6
6
 
@@ -16,7 +16,7 @@ _sym_db = _symbol_database.Default()
16
16
  from modal_proto import api_pb2 as modal__proto_dot_api__pb2
17
17
 
18
18
 
19
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%modal_proto/task_command_router.proto\x12\x19modal.task_command_router\x1a\x15modal_proto/api.proto\"7\n\x13TaskExecPollRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"G\n\x14TaskExecPollResponse\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x12\x10\n\x06signal\x18\x02 \x01(\x05H\x00\x42\r\n\x0b\x65xit_status\"\x92\x03\n\x14TaskExecStartRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x14\n\x0c\x63ommand_args\x18\x03 \x03(\t\x12\x46\n\rstdout_config\x18\x04 \x01(\x0e\x32/.modal.task_command_router.TaskExecStdoutConfig\x12\x46\n\rstderr_config\x18\x05 \x01(\x0e\x32/.modal.task_command_router.TaskExecStderrConfig\x12\x19\n\x0ctimeout_secs\x18\x06 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07workdir\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x12\n\nsecret_ids\x18\x08 \x03(\t\x12,\n\x08pty_info\x18\t \x01(\x0b\x32\x15.modal.client.PTYInfoH\x02\x88\x01\x01\x12\x15\n\rruntime_debug\x18\n \x01(\x08\x42\x0f\n\r_timeout_secsB\n\n\x08_workdirB\x0b\n\t_pty_info\"\x17\n\x15TaskExecStartResponse\"h\n\x19TaskExecStdinWriteRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x0b\n\x03\x65of\x18\x05 \x01(\x08\"\x1c\n\x1aTaskExecStdinWriteResponse\"\x9d\x01\n\x18TaskExecStdioReadRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12O\n\x0f\x66ile_descriptor\x18\x04 \x01(\x0e\x32\x36.modal.task_command_router.TaskExecStdioFileDescriptor\")\n\x19TaskExecStdioReadResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"7\n\x13TaskExecWaitRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"G\n\x14TaskExecWaitResponse\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x12\x10\n\x06signal\x18\x02 \x01(\x05H\x00\x42\r\n\x0b\x65xit_status*\x81\x01\n\x14TaskExecStderrConfig\x12#\n\x1fTASK_EXEC_STDERR_CONFIG_DEVNULL\x10\x00\x12 \n\x1cTASK_EXEC_STDERR_CONFIG_PIPE\x10\x01\x12\"\n\x1eTASK_EXEC_STDERR_CONFIG_STDOUT\x10\x02*u\n\x1bTaskExecStdioFileDescriptor\x12*\n&TASK_EXEC_STDIO_FILE_DESCRIPTOR_STDOUT\x10\x00\x12*\n&TASK_EXEC_STDIO_FILE_DESCRIPTOR_STDERR\x10\x01*]\n\x14TaskExecStdoutConfig\x12#\n\x1fTASK_EXEC_STDOUT_CONFIG_DEVNULL\x10\x00\x12 \n\x1cTASK_EXEC_STDOUT_CONFIG_PIPE\x10\x01\x32\xf0\x04\n\x11TaskCommandRouter\x12o\n\x0cTaskExecPoll\x12..modal.task_command_router.TaskExecPollRequest\x1a/.modal.task_command_router.TaskExecPollResponse\x12r\n\rTaskExecStart\x12/.modal.task_command_router.TaskExecStartRequest\x1a\x30.modal.task_command_router.TaskExecStartResponse\x12\x81\x01\n\x12TaskExecStdinWrite\x12\x34.modal.task_command_router.TaskExecStdinWriteRequest\x1a\x35.modal.task_command_router.TaskExecStdinWriteResponse\x12\x80\x01\n\x11TaskExecStdioRead\x12\x33.modal.task_command_router.TaskExecStdioReadRequest\x1a\x34.modal.task_command_router.TaskExecStdioReadResponse0\x01\x12o\n\x0cTaskExecWait\x12..modal.task_command_router.TaskExecWaitRequest\x1a/.modal.task_command_router.TaskExecWaitResponseB:Z8github.com/modal-labs/modal/go/proto/task_command_routerb\x06proto3')
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%modal_proto/task_command_router.proto\x12\x19modal.task_command_router\x1a\x15modal_proto/api.proto\"7\n\x13TaskExecPollRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"G\n\x14TaskExecPollResponse\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x12\x10\n\x06signal\x18\x02 \x01(\x05H\x00\x42\r\n\x0b\x65xit_status\"\x92\x03\n\x14TaskExecStartRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x14\n\x0c\x63ommand_args\x18\x03 \x03(\t\x12\x46\n\rstdout_config\x18\x04 \x01(\x0e\x32/.modal.task_command_router.TaskExecStdoutConfig\x12\x46\n\rstderr_config\x18\x05 \x01(\x0e\x32/.modal.task_command_router.TaskExecStderrConfig\x12\x19\n\x0ctimeout_secs\x18\x06 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07workdir\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x12\n\nsecret_ids\x18\x08 \x03(\t\x12,\n\x08pty_info\x18\t \x01(\x0b\x32\x15.modal.client.PTYInfoH\x02\x88\x01\x01\x12\x15\n\rruntime_debug\x18\n \x01(\x08\x42\x0f\n\r_timeout_secsB\n\n\x08_workdirB\x0b\n\t_pty_info\"\x17\n\x15TaskExecStartResponse\"h\n\x19TaskExecStdinWriteRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x0b\n\x03\x65of\x18\x05 \x01(\x08\"\x1c\n\x1aTaskExecStdinWriteResponse\"\x9d\x01\n\x18TaskExecStdioReadRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12O\n\x0f\x66ile_descriptor\x18\x04 \x01(\x0e\x32\x36.modal.task_command_router.TaskExecStdioFileDescriptor\")\n\x19TaskExecStdioReadResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"7\n\x13TaskExecWaitRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"G\n\x14TaskExecWaitResponse\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x12\x10\n\x06signal\x18\x02 \x01(\x05H\x00\x42\r\n\x0b\x65xit_status*\x81\x01\n\x14TaskExecStderrConfig\x12#\n\x1fTASK_EXEC_STDERR_CONFIG_DEVNULL\x10\x00\x12 \n\x1cTASK_EXEC_STDERR_CONFIG_PIPE\x10\x01\x12\"\n\x1eTASK_EXEC_STDERR_CONFIG_STDOUT\x10\x02*u\n\x1bTaskExecStdioFileDescriptor\x12*\n&TASK_EXEC_STDIO_FILE_DESCRIPTOR_STDOUT\x10\x00\x12*\n&TASK_EXEC_STDIO_FILE_DESCRIPTOR_STDERR\x10\x01*]\n\x14TaskExecStdoutConfig\x12#\n\x1fTASK_EXEC_STDOUT_CONFIG_DEVNULL\x10\x00\x12 \n\x1cTASK_EXEC_STDOUT_CONFIG_PIPE\x10\x01\x32\xf0\x04\n\x11TaskCommandRouter\x12o\n\x0cTaskExecPoll\x12..modal.task_command_router.TaskExecPollRequest\x1a/.modal.task_command_router.TaskExecPollResponse\x12r\n\rTaskExecStart\x12/.modal.task_command_router.TaskExecStartRequest\x1a\x30.modal.task_command_router.TaskExecStartResponse\x12\x81\x01\n\x12TaskExecStdinWrite\x12\x34.modal.task_command_router.TaskExecStdinWriteRequest\x1a\x35.modal.task_command_router.TaskExecStdinWriteResponse\x12\x80\x01\n\x11TaskExecStdioRead\x12\x33.modal.task_command_router.TaskExecStdioReadRequest\x1a\x34.modal.task_command_router.TaskExecStdioReadResponse0\x01\x12o\n\x0cTaskExecWait\x12..modal.task_command_router.TaskExecWaitRequest\x1a/.modal.task_command_router.TaskExecWaitResponseB&Z$github.com/modal-labs/modal/go/protob\x06proto3')
20
20
 
21
21
  _TASKEXECSTDERRCONFIG = DESCRIPTOR.enum_types_by_name['TaskExecStderrConfig']
22
22
  TaskExecStderrConfig = enum_type_wrapper.EnumTypeWrapper(_TASKEXECSTDERRCONFIG)
@@ -117,7 +117,7 @@ _TASKCOMMANDROUTER = DESCRIPTOR.services_by_name['TaskCommandRouter']
117
117
  if _descriptor._USE_C_DESCRIPTORS == False:
118
118
 
119
119
  DESCRIPTOR._options = None
120
- DESCRIPTOR._serialized_options = b'Z8github.com/modal-labs/modal/go/proto/task_command_router'
120
+ DESCRIPTOR._serialized_options = b'Z$github.com/modal-labs/modal/go/proto'
121
121
  _TASKEXECSTDERRCONFIG._serialized_start=1121
122
122
  _TASKEXECSTDERRCONFIG._serialized_end=1250
123
123
  _TASKEXECSTDIOFILEDESCRIPTOR._serialized_start=1252
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.0"
4
+ __version__ = "1.2.1"
File without changes