capo-workmailmessageflow 0.2.0__tar.gz → 0.3.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.
- {capo_workmailmessageflow-0.2.0/src/capo_workmailmessageflow.egg-info → capo_workmailmessageflow-0.3.0}/PKG-INFO +1 -1
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/pyproject.toml +1 -1
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_operations/giraffe_message_in_transit_service/get_raw_message_content.py +3 -2
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_operations/giraffe_message_in_transit_service/put_raw_message_content.py +3 -2
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_services/_pipeline.py +17 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0/src/capo_workmailmessageflow.egg-info}/PKG-INFO +1 -1
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/LICENSE +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/README.md +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/setup.cfg +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/__init__.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_async.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_auth/_identity.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_auth/_providers.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_auth/_signers.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_auth/_sigv4.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_auth/_zapros_handler.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_body.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_iter.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_pagination.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_protocol/__init__.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_protocol/errors.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_protocol/eventstream.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_protocol/serialize.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_protocol/xml.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_rule_engine/__init__.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_rule_engine/_aws_partition.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_rule_engine/_endpoint_rule_set.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_rule_engine/_endpoint_runtime.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_services/_aws_config.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_services/async_work_mail_message_flow.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/_services/work_mail_message_flow.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/errors/__init__.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/errors/_base.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/errors/invalid_content_location.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/errors/message_frozen.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/errors/message_rejected.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/errors/resource_not_found_exception.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/py.typed +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/types/_prelude/blob.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/types/_prelude/timestamp.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/types/error_message.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/types/get_raw_message_content_request.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/types/get_raw_message_content_response.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/types/message_content_blob.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/types/message_id_type.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/types/put_raw_message_content_request.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/types/put_raw_message_content_response.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/types/raw_message_content.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/types/s3_bucket_id_type.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/types/s3_key_id_type.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/types/s3_reference.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow/types/s3_version_type.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow.egg-info/SOURCES.txt +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow.egg-info/dependency_links.txt +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow.egg-info/requires.txt +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/src/capo_workmailmessageflow.egg-info/top_level.txt +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/tests/test_body.py +0 -0
- {capo_workmailmessageflow-0.2.0 → capo_workmailmessageflow-0.3.0}/tests/test_sigv4.py +0 -0
|
@@ -24,6 +24,7 @@ from capo_workmailmessageflow._rule_engine._endpoint_rule_set import (
|
|
|
24
24
|
from capo_workmailmessageflow._services._pipeline import (
|
|
25
25
|
AsyncOperationOptions,
|
|
26
26
|
OperationOptions,
|
|
27
|
+
raise_error,
|
|
27
28
|
)
|
|
28
29
|
from capo_workmailmessageflow.errors import UnknownServiceError
|
|
29
30
|
|
|
@@ -127,7 +128,7 @@ def get_raw_message_content(
|
|
|
127
128
|
try:
|
|
128
129
|
if response.status >= 300:
|
|
129
130
|
response.read()
|
|
130
|
-
|
|
131
|
+
raise_error(response, handle_error)
|
|
131
132
|
return handle_response(response), response
|
|
132
133
|
except BaseException:
|
|
133
134
|
response.close()
|
|
@@ -145,7 +146,7 @@ async def async_get_raw_message_content(
|
|
|
145
146
|
try:
|
|
146
147
|
if response.status >= 300:
|
|
147
148
|
await response.aread()
|
|
148
|
-
|
|
149
|
+
raise_error(response, handle_error)
|
|
149
150
|
return await async_handle_response(response), response
|
|
150
151
|
except BaseException:
|
|
151
152
|
await response.aclose()
|
|
@@ -27,6 +27,7 @@ from capo_workmailmessageflow._rule_engine._endpoint_rule_set import (
|
|
|
27
27
|
from capo_workmailmessageflow._services._pipeline import (
|
|
28
28
|
AsyncOperationOptions,
|
|
29
29
|
OperationOptions,
|
|
30
|
+
raise_error,
|
|
30
31
|
)
|
|
31
32
|
from capo_workmailmessageflow.errors import UnknownServiceError
|
|
32
33
|
|
|
@@ -142,7 +143,7 @@ def put_raw_message_content(
|
|
|
142
143
|
try:
|
|
143
144
|
if response.status >= 300:
|
|
144
145
|
response.read()
|
|
145
|
-
|
|
146
|
+
raise_error(response, handle_error)
|
|
146
147
|
return handle_response(response), response
|
|
147
148
|
except BaseException:
|
|
148
149
|
response.close()
|
|
@@ -160,7 +161,7 @@ async def async_put_raw_message_content(
|
|
|
160
161
|
try:
|
|
161
162
|
if response.status >= 300:
|
|
162
163
|
await response.aread()
|
|
163
|
-
|
|
164
|
+
raise_error(response, handle_error)
|
|
164
165
|
return await async_handle_response(response), response
|
|
165
166
|
except BaseException:
|
|
166
167
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|