capo-cloudtrail-data 0.3.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 (60) hide show
  1. {capo_cloudtrail_data-0.3.0/src/capo_cloudtrail_data.egg-info → capo_cloudtrail_data-0.4.0}/PKG-INFO +2 -2
  2. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/pyproject.toml +2 -2
  3. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_operations/cloud_trail_data_service/put_audit_events.py +3 -2
  4. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_services/_pipeline.py +17 -0
  5. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0/src/capo_cloudtrail_data.egg-info}/PKG-INFO +2 -2
  6. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/LICENSE +0 -0
  7. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/README.md +0 -0
  8. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/setup.cfg +0 -0
  9. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/__init__.py +0 -0
  10. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_async.py +0 -0
  11. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_auth/_identity.py +0 -0
  12. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_auth/_providers.py +0 -0
  13. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_auth/_signers.py +0 -0
  14. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_auth/_sigv4.py +0 -0
  15. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_auth/_zapros_handler.py +0 -0
  16. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_body.py +0 -0
  17. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_iter.py +0 -0
  18. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_pagination.py +0 -0
  19. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_protocol/__init__.py +0 -0
  20. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_protocol/errors.py +0 -0
  21. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_protocol/eventstream.py +0 -0
  22. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_protocol/serialize.py +0 -0
  23. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_protocol/xml.py +0 -0
  24. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_rule_engine/__init__.py +0 -0
  25. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_rule_engine/_aws_partition.py +0 -0
  26. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_rule_engine/_endpoint_rule_set.py +0 -0
  27. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_rule_engine/_endpoint_runtime.py +0 -0
  28. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_services/_aws_config.py +0 -0
  29. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_services/async_cloud_trail_data.py +0 -0
  30. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/_services/cloud_trail_data.py +0 -0
  31. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/errors/__init__.py +0 -0
  32. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/errors/_base.py +0 -0
  33. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/errors/channel_insufficient_permission.py +0 -0
  34. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/errors/channel_not_found.py +0 -0
  35. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/errors/channel_unsupported_schema.py +0 -0
  36. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/errors/duplicated_audit_event_id.py +0 -0
  37. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/errors/invalid_channel_arn.py +0 -0
  38. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/errors/unsupported_operation_exception.py +0 -0
  39. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/py.typed +0 -0
  40. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/types/_prelude/blob.py +0 -0
  41. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/types/_prelude/timestamp.py +0 -0
  42. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/types/audit_event.py +0 -0
  43. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/types/audit_event_result_entries.py +0 -0
  44. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/types/audit_event_result_entry.py +0 -0
  45. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/types/audit_events.py +0 -0
  46. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/types/channel_arn.py +0 -0
  47. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/types/error_code.py +0 -0
  48. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/types/error_message.py +0 -0
  49. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/types/external_id.py +0 -0
  50. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/types/put_audit_events_request.py +0 -0
  51. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/types/put_audit_events_response.py +0 -0
  52. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/types/result_error_entries.py +0 -0
  53. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/types/result_error_entry.py +0 -0
  54. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data/types/uuid.py +0 -0
  55. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data.egg-info/SOURCES.txt +0 -0
  56. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data.egg-info/dependency_links.txt +0 -0
  57. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data.egg-info/requires.txt +0 -0
  58. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/src/capo_cloudtrail_data.egg-info/top_level.txt +0 -0
  59. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/tests/test_body.py +0 -0
  60. {capo_cloudtrail_data-0.3.0 → capo_cloudtrail_data-0.4.0}/tests/test_sigv4.py +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: capo-cloudtrail-data
3
- Version: 0.3.0
4
- Summary: Python SDK for Cloudtrail Data.
3
+ Version: 0.4.0
4
+ Summary: Python SDK for AWS Cloudtrail Data.
5
5
  Classifier: Development Status :: 4 - Beta
6
6
  Classifier: Intended Audience :: Developers
7
7
  Classifier: License :: OSI Approved :: MIT License
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "capo-cloudtrail-data"
3
- version = "0.3.0"
4
- description = "Python SDK for Cloudtrail Data."
3
+ version = "0.4.0"
4
+ description = "Python SDK for AWS Cloudtrail Data."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
7
7
  classifiers = [
@@ -27,6 +27,7 @@ from capo_cloudtrail_data._rule_engine._endpoint_rule_set import EndpointParams,
27
27
  from capo_cloudtrail_data._services._pipeline import (
28
28
  AsyncOperationOptions,
29
29
  OperationOptions,
30
+ raise_error,
30
31
  )
31
32
  from capo_cloudtrail_data.errors import UnknownServiceError
32
33
 
@@ -157,7 +158,7 @@ def put_audit_events(
157
158
  try:
158
159
  if response.status >= 300:
159
160
  response.read()
160
- handle_error(response)
161
+ raise_error(response, handle_error)
161
162
  return handle_response(response), response
162
163
  except BaseException:
163
164
  response.close()
@@ -175,7 +176,7 @@ async def async_put_audit_events(
175
176
  try:
176
177
  if response.status >= 300:
177
178
  await response.aread()
178
- handle_error(response)
179
+ raise_error(response, handle_error)
179
180
  return await async_handle_response(response), response
180
181
  except BaseException:
181
182
  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
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: capo-cloudtrail-data
3
- Version: 0.3.0
4
- Summary: Python SDK for Cloudtrail Data.
3
+ Version: 0.4.0
4
+ Summary: Python SDK for AWS Cloudtrail Data.
5
5
  Classifier: Development Status :: 4 - Beta
6
6
  Classifier: Intended Audience :: Developers
7
7
  Classifier: License :: OSI Approved :: MIT License