capo-sagemaker-runtime-http2 0.2.0__tar.gz → 0.4.0__tar.gz

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 (54) hide show
  1. {capo_sagemaker_runtime_http2-0.2.0/src/capo_sagemaker_runtime_http2.egg-info → capo_sagemaker_runtime_http2-0.4.0}/PKG-INFO +1 -1
  2. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/pyproject.toml +1 -1
  3. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_operations/amazon_sage_maker_runtime_http2/invoke_endpoint_with_bidirectional_stream.py +3 -2
  4. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_services/_pipeline.py +17 -0
  5. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_services/async_sage_maker_runtime_http2.py +1 -1
  6. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_services/sage_maker_runtime_http2.py +1 -1
  7. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/types/request_payload_part.py +2 -2
  8. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/types/response_payload_part.py +2 -2
  9. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0/src/capo_sagemaker_runtime_http2.egg-info}/PKG-INFO +1 -1
  10. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/LICENSE +0 -0
  11. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/README.md +0 -0
  12. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/setup.cfg +0 -0
  13. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/__init__.py +0 -0
  14. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_async.py +0 -0
  15. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_auth/_identity.py +0 -0
  16. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_auth/_providers.py +0 -0
  17. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_auth/_signers.py +0 -0
  18. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_auth/_sigv4.py +0 -0
  19. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_auth/_zapros_handler.py +0 -0
  20. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_body.py +0 -0
  21. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_iter.py +0 -0
  22. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_pagination.py +0 -0
  23. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_protocol/__init__.py +0 -0
  24. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_protocol/errors.py +0 -0
  25. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_protocol/eventstream.py +0 -0
  26. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_protocol/serialize.py +0 -0
  27. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_protocol/xml.py +0 -0
  28. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_rule_engine/__init__.py +0 -0
  29. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_rule_engine/_aws_partition.py +0 -0
  30. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_rule_engine/_endpoint_rule_set.py +0 -0
  31. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_rule_engine/_endpoint_runtime.py +0 -0
  32. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/_services/_aws_config.py +0 -0
  33. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/errors/__init__.py +0 -0
  34. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/errors/_base.py +0 -0
  35. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/errors/input_validation_error.py +0 -0
  36. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/errors/internal_server_error.py +0 -0
  37. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/errors/internal_stream_failure.py +0 -0
  38. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/errors/model_error.py +0 -0
  39. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/errors/model_stream_error.py +0 -0
  40. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/errors/service_unavailable_error.py +0 -0
  41. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/py.typed +0 -0
  42. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/types/_prelude/blob.py +0 -0
  43. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/types/_prelude/timestamp.py +0 -0
  44. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/types/invoke_endpoint_with_bidirectional_stream_input.py +0 -0
  45. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/types/invoke_endpoint_with_bidirectional_stream_output.py +0 -0
  46. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/types/request_stream_event.py +0 -0
  47. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/types/response_stream_event.py +0 -0
  48. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2/types/sensitive_blob.py +0 -0
  49. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2.egg-info/SOURCES.txt +0 -0
  50. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2.egg-info/dependency_links.txt +0 -0
  51. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2.egg-info/requires.txt +0 -0
  52. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/src/capo_sagemaker_runtime_http2.egg-info/top_level.txt +0 -0
  53. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/tests/test_body.py +0 -0
  54. {capo_sagemaker_runtime_http2-0.2.0 → capo_sagemaker_runtime_http2-0.4.0}/tests/test_sigv4.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: capo-sagemaker-runtime-http2
3
- Version: 0.2.0
3
+ Version: 0.4.0
4
4
  Summary: Python SDK for AWS Sagemaker Runtime Http2.
5
5
  Classifier: Development Status :: 4 - Beta
6
6
  Classifier: Intended Audience :: Developers
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "capo-sagemaker-runtime-http2"
3
- version = "0.2.0"
3
+ version = "0.4.0"
4
4
  description = "Python SDK for AWS Sagemaker Runtime Http2."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -36,6 +36,7 @@ from capo_sagemaker_runtime_http2._rule_engine._endpoint_rule_set import (
36
36
  from capo_sagemaker_runtime_http2._services._pipeline import (
37
37
  AsyncOperationOptions,
38
38
  OperationOptions,
39
+ raise_error,
39
40
  )
40
41
  from capo_sagemaker_runtime_http2.errors import UnknownServiceError
41
42
 
@@ -239,7 +240,7 @@ def invoke_endpoint_with_bidirectional_stream(
239
240
  try:
240
241
  if response.status >= 300:
241
242
  response.read()
242
- handle_error(response)
243
+ raise_error(response, handle_error)
243
244
  return handle_response(response), response
244
245
  except BaseException:
245
246
  response.close()
@@ -259,7 +260,7 @@ async def async_invoke_endpoint_with_bidirectional_stream(
259
260
  try:
260
261
  if response.status >= 300:
261
262
  await response.aread()
262
- handle_error(response)
263
+ raise_error(response, handle_error)
263
264
  return await async_handle_response(response), response
264
265
  except BaseException:
265
266
  await response.aclose()
@@ -6,6 +6,7 @@ from collections.abc import AsyncIterator, Iterator, Sequence
6
6
  from dataclasses import dataclass
7
7
  from typing import TYPE_CHECKING, Awaitable, Callable, Generic, TypeVar, cast
8
8
 
9
+ from typing_extensions import Never
9
10
  from zapros import (
10
11
  AsyncClient,
11
12
  Client,
@@ -135,6 +136,22 @@ async def aexecute_pipeline(
135
136
  return await make_chain(0)(request)
136
137
 
137
138
 
139
+ def raise_error(response: Response, handle_error: Callable[[Response], Never]) -> Never:
140
+ try:
141
+ handle_error(response)
142
+ except ServiceError as exc:
143
+ # The response itself can say a retry is safe, even when the error is
144
+ # not marked @retryable: a 429, a transient 5xx or a Retry-After header.
145
+ if response.status == 429:
146
+ exc.is_throttling_error = True
147
+ if (
148
+ response.status in (429, 500, 502, 503, 504)
149
+ or "retry-after" in response.headers
150
+ ):
151
+ exc.is_retryable = True
152
+ raise
153
+
154
+
138
155
  def _is_retryable(exc: Exception) -> bool:
139
156
  if isinstance(exc, ServiceError):
140
157
  return exc.is_retryable
@@ -141,7 +141,7 @@ class AsyncSageMakerRuntimeHTTP2Client:
141
141
  model_invocation_path: Optional[str] = None,
142
142
  model_query_string: Optional[str] = None,
143
143
  ) -> "AsyncGenerator[capo_sagemaker_runtime_http2.types.invoke_endpoint_with_bidirectional_stream_output.InvokeEndpointWithBidirectionalStreamOutput]":
144
- r"""<p>Invokes a model endpoint with bidirectional streaming capabilities. This operation establishes a persistent connection that allows you to send multiple requests and receive streaming responses from the model in real-time.</p> <p>Bidirectional streaming is useful for interactive applications such as chatbots, real-time translation, or any scenario where you need to maintain a conversation-like interaction with the model. The connection remains open, allowing you to send additional input and receive responses without establishing a new connection for each request.</p> <p>For an overview of Amazon SageMaker AI, see <a href=\"https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works.html\">How It Works</a>.</p> <p>Amazon SageMaker AI strips all POST headers except those supported by the API. Amazon SageMaker AI might add additional headers. You should not rely on the behavior of headers outside those enumerated in the request syntax. </p> <p>Calls to <code>InvokeEndpointWithBidirectionalStream</code> are authenticated by using Amazon Web Services Signature Version 4. For information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html\">Authenticating Requests (Amazon Web Services Signature Version 4)</a> in the <i>Amazon S3 API Reference</i>.</p> <p>The bidirectional stream maintains the connection until either the client closes it or the model indicates completion. Each request and response in the stream is sent as an event with optional headers for data type and completion state.</p> <note> <p>Endpoints are scoped to an individual account, and are not public. The URL does not contain the account ID, but Amazon SageMaker AI determines the account ID from the authentication token that is supplied by the caller.</p> </note>
144
+ """<p>Invokes a model endpoint with bidirectional streaming capabilities. This operation establishes a persistent connection that allows you to send multiple requests and receive streaming responses from the model in real-time.</p> <p>Bidirectional streaming is useful for interactive applications such as chatbots, real-time translation, or any scenario where you need to maintain a conversation-like interaction with the model. The connection remains open, allowing you to send additional input and receive responses without establishing a new connection for each request.</p> <p>For an overview of Amazon SageMaker AI, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works.html">How It Works</a>.</p> <p>Amazon SageMaker AI strips all POST headers except those supported by the API. Amazon SageMaker AI might add additional headers. You should not rely on the behavior of headers outside those enumerated in the request syntax. </p> <p>Calls to <code>InvokeEndpointWithBidirectionalStream</code> are authenticated by using Amazon Web Services Signature Version 4. For information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html">Authenticating Requests (Amazon Web Services Signature Version 4)</a> in the <i>Amazon S3 API Reference</i>.</p> <p>The bidirectional stream maintains the connection until either the client closes it or the model indicates completion. Each request and response in the stream is sent as an event with optional headers for data type and completion state.</p> <note> <p>Endpoints are scoped to an individual account, and are not public. The URL does not contain the account ID, but Amazon SageMaker AI determines the account ID from the authentication token that is supplied by the caller.</p> </note>
145
145
 
146
146
  Args:
147
147
  endpoint_name: <p>The name of the endpoint to invoke.</p>
@@ -141,7 +141,7 @@ class SageMakerRuntimeHTTP2Client:
141
141
  model_invocation_path: Optional[str] = None,
142
142
  model_query_string: Optional[str] = None,
143
143
  ) -> "Generator[capo_sagemaker_runtime_http2.types.invoke_endpoint_with_bidirectional_stream_output.InvokeEndpointWithBidirectionalStreamOutput]":
144
- r"""<p>Invokes a model endpoint with bidirectional streaming capabilities. This operation establishes a persistent connection that allows you to send multiple requests and receive streaming responses from the model in real-time.</p> <p>Bidirectional streaming is useful for interactive applications such as chatbots, real-time translation, or any scenario where you need to maintain a conversation-like interaction with the model. The connection remains open, allowing you to send additional input and receive responses without establishing a new connection for each request.</p> <p>For an overview of Amazon SageMaker AI, see <a href=\"https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works.html\">How It Works</a>.</p> <p>Amazon SageMaker AI strips all POST headers except those supported by the API. Amazon SageMaker AI might add additional headers. You should not rely on the behavior of headers outside those enumerated in the request syntax. </p> <p>Calls to <code>InvokeEndpointWithBidirectionalStream</code> are authenticated by using Amazon Web Services Signature Version 4. For information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html\">Authenticating Requests (Amazon Web Services Signature Version 4)</a> in the <i>Amazon S3 API Reference</i>.</p> <p>The bidirectional stream maintains the connection until either the client closes it or the model indicates completion. Each request and response in the stream is sent as an event with optional headers for data type and completion state.</p> <note> <p>Endpoints are scoped to an individual account, and are not public. The URL does not contain the account ID, but Amazon SageMaker AI determines the account ID from the authentication token that is supplied by the caller.</p> </note>
144
+ """<p>Invokes a model endpoint with bidirectional streaming capabilities. This operation establishes a persistent connection that allows you to send multiple requests and receive streaming responses from the model in real-time.</p> <p>Bidirectional streaming is useful for interactive applications such as chatbots, real-time translation, or any scenario where you need to maintain a conversation-like interaction with the model. The connection remains open, allowing you to send additional input and receive responses without establishing a new connection for each request.</p> <p>For an overview of Amazon SageMaker AI, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works.html">How It Works</a>.</p> <p>Amazon SageMaker AI strips all POST headers except those supported by the API. Amazon SageMaker AI might add additional headers. You should not rely on the behavior of headers outside those enumerated in the request syntax. </p> <p>Calls to <code>InvokeEndpointWithBidirectionalStream</code> are authenticated by using Amazon Web Services Signature Version 4. For information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html">Authenticating Requests (Amazon Web Services Signature Version 4)</a> in the <i>Amazon S3 API Reference</i>.</p> <p>The bidirectional stream maintains the connection until either the client closes it or the model indicates completion. Each request and response in the stream is sent as an event with optional headers for data type and completion state.</p> <note> <p>Endpoints are scoped to an individual account, and are not public. The URL does not contain the account ID, but Amazon SageMaker AI determines the account ID from the authentication token that is supplied by the caller.</p> </note>
145
145
 
146
146
  Args:
147
147
  endpoint_name: <p>The name of the endpoint to invoke.</p>
@@ -16,9 +16,9 @@ class RequestPayloadPart(TypedDict, closed=True):
16
16
  ]
17
17
  """<p>The payload bytes.</p>"""
18
18
  data_type: NotRequired["str"]
19
- r"""<p>Data type header. Can be one of these possible values: \"UTF8\", \"BINARY\".</p>"""
19
+ """<p>Data type header. Can be one of these possible values: "UTF8", "BINARY".</p>"""
20
20
  completion_state: NotRequired["str"]
21
- r"""<p>Completion state header. Can be one of these possible values: \"PARTIAL\", \"COMPLETE\".</p>"""
21
+ """<p>Completion state header. Can be one of these possible values: "PARTIAL", "COMPLETE".</p>"""
22
22
  p: NotRequired["str"]
23
23
  """<p>Padding string for alignment.</p>"""
24
24
 
@@ -16,9 +16,9 @@ class ResponsePayloadPart(TypedDict, closed=True):
16
16
  ]
17
17
  """<p>The payload bytes.</p>"""
18
18
  data_type: NotRequired["str"]
19
- r"""<p>Data type header. Can be one of these possible values: \"UTF8\", \"BINARY\".</p>"""
19
+ """<p>Data type header. Can be one of these possible values: "UTF8", "BINARY".</p>"""
20
20
  completion_state: NotRequired["str"]
21
- r"""<p>Completion state header. Can be one of these possible values: \"PARTIAL\", \"COMPLETE\".</p>"""
21
+ """<p>Completion state header. Can be one of these possible values: "PARTIAL", "COMPLETE".</p>"""
22
22
  p: NotRequired["str"]
23
23
  """<p>Padding string for alignment.</p>"""
24
24
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: capo-sagemaker-runtime-http2
3
- Version: 0.2.0
3
+ Version: 0.4.0
4
4
  Summary: Python SDK for AWS Sagemaker Runtime Http2.
5
5
  Classifier: Development Status :: 4 - Beta
6
6
  Classifier: Intended Audience :: Developers