capo-keyspacesstreams 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.
Files changed (93) hide show
  1. {capo_keyspacesstreams-0.2.0/src/capo_keyspacesstreams.egg-info → capo_keyspacesstreams-0.3.0}/PKG-INFO +1 -1
  2. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/pyproject.toml +1 -1
  3. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_operations/keyspaces_streams/get_records.py +3 -2
  4. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_operations/keyspaces_streams/get_shard_iterator.py +3 -2
  5. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_operations/keyspaces_streams/get_stream.py +3 -2
  6. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_operations/keyspaces_streams/list_streams.py +3 -2
  7. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_services/_pipeline.py +17 -0
  8. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0/src/capo_keyspacesstreams.egg-info}/PKG-INFO +1 -1
  9. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/LICENSE +0 -0
  10. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/README.md +0 -0
  11. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/setup.cfg +0 -0
  12. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/__init__.py +0 -0
  13. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_async.py +0 -0
  14. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_auth/_identity.py +0 -0
  15. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_auth/_providers.py +0 -0
  16. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_auth/_signers.py +0 -0
  17. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_auth/_sigv4.py +0 -0
  18. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_auth/_zapros_handler.py +0 -0
  19. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_body.py +0 -0
  20. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_iter.py +0 -0
  21. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_pagination.py +0 -0
  22. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_protocol/__init__.py +0 -0
  23. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_protocol/errors.py +0 -0
  24. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_protocol/eventstream.py +0 -0
  25. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_protocol/serialize.py +0 -0
  26. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_protocol/xml.py +0 -0
  27. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_rule_engine/__init__.py +0 -0
  28. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_rule_engine/_aws_partition.py +0 -0
  29. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_rule_engine/_endpoint_rule_set.py +0 -0
  30. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_rule_engine/_endpoint_runtime.py +0 -0
  31. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_services/_aws_config.py +0 -0
  32. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_services/async_keyspaces_streams.py +0 -0
  33. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/_services/keyspaces_streams.py +0 -0
  34. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/errors/__init__.py +0 -0
  35. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/errors/_base.py +0 -0
  36. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/errors/access_denied_exception.py +0 -0
  37. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/errors/internal_server_exception.py +0 -0
  38. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/errors/resource_not_found_exception.py +0 -0
  39. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/errors/throttling_exception.py +0 -0
  40. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/errors/validation_exception.py +0 -0
  41. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/py.typed +0 -0
  42. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/_prelude/blob.py +0 -0
  43. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/_prelude/timestamp.py +0 -0
  44. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/date.py +0 -0
  45. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/get_records_input.py +0 -0
  46. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/get_records_output.py +0 -0
  47. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/get_shard_iterator_input.py +0 -0
  48. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/get_shard_iterator_output.py +0 -0
  49. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/get_stream_input.py +0 -0
  50. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/get_stream_output.py +0 -0
  51. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/iterator_description.py +0 -0
  52. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/iterator_position.py +0 -0
  53. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/keyspace_name.py +0 -0
  54. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/keyspaces_cell.py +0 -0
  55. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/keyspaces_cell_list.py +0 -0
  56. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/keyspaces_cell_map.py +0 -0
  57. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/keyspaces_cell_map_definition.py +0 -0
  58. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/keyspaces_cell_value.py +0 -0
  59. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/keyspaces_cells.py +0 -0
  60. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/keyspaces_keys_map.py +0 -0
  61. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/keyspaces_metadata.py +0 -0
  62. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/keyspaces_row.py +0 -0
  63. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/keyspaces_udt_map.py +0 -0
  64. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/list_streams_input.py +0 -0
  65. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/list_streams_output.py +0 -0
  66. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/origin_type.py +0 -0
  67. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/record.py +0 -0
  68. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/record_list.py +0 -0
  69. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/sequence_number.py +0 -0
  70. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/sequence_number_range.py +0 -0
  71. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/shard.py +0 -0
  72. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/shard_description_list.py +0 -0
  73. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/shard_filter.py +0 -0
  74. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/shard_filter_type.py +0 -0
  75. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/shard_id.py +0 -0
  76. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/shard_id_list.py +0 -0
  77. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/shard_id_token.py +0 -0
  78. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/shard_iterator.py +0 -0
  79. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/shard_iterator_type.py +0 -0
  80. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/stream.py +0 -0
  81. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/stream_arn.py +0 -0
  82. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/stream_arn_token.py +0 -0
  83. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/stream_list.py +0 -0
  84. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/stream_status.py +0 -0
  85. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/stream_view_type.py +0 -0
  86. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/table_name.py +0 -0
  87. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams/types/validation_exception_type.py +0 -0
  88. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams.egg-info/SOURCES.txt +0 -0
  89. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams.egg-info/dependency_links.txt +0 -0
  90. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams.egg-info/requires.txt +0 -0
  91. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/src/capo_keyspacesstreams.egg-info/top_level.txt +0 -0
  92. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/tests/test_body.py +0 -0
  93. {capo_keyspacesstreams-0.2.0 → capo_keyspacesstreams-0.3.0}/tests/test_sigv4.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: capo-keyspacesstreams
3
- Version: 0.2.0
3
+ Version: 0.3.0
4
4
  Summary: Python SDK for AWS Keyspacesstreams.
5
5
  Classifier: Development Status :: 4 - Beta
6
6
  Classifier: Intended Audience :: Developers
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "capo-keyspacesstreams"
3
- version = "0.2.0"
3
+ version = "0.3.0"
4
4
  description = "Python SDK for AWS Keyspacesstreams."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -28,6 +28,7 @@ from capo_keyspacesstreams._rule_engine._endpoint_rule_set import (
28
28
  from capo_keyspacesstreams._services._pipeline import (
29
29
  AsyncOperationOptions,
30
30
  OperationOptions,
31
+ raise_error,
31
32
  )
32
33
  from capo_keyspacesstreams.errors import UnknownServiceError
33
34
 
@@ -147,7 +148,7 @@ def get_records(
147
148
  try:
148
149
  if response.status >= 300:
149
150
  response.read()
150
- handle_error(response)
151
+ raise_error(response, handle_error)
151
152
  return handle_response(response), response
152
153
  except BaseException:
153
154
  response.close()
@@ -164,7 +165,7 @@ async def async_get_records(
164
165
  try:
165
166
  if response.status >= 300:
166
167
  await response.aread()
167
- handle_error(response)
168
+ raise_error(response, handle_error)
168
169
  return await async_handle_response(response), response
169
170
  except BaseException:
170
171
  await response.aclose()
@@ -27,6 +27,7 @@ from capo_keyspacesstreams._rule_engine._endpoint_rule_set import (
27
27
  from capo_keyspacesstreams._services._pipeline import (
28
28
  AsyncOperationOptions,
29
29
  OperationOptions,
30
+ raise_error,
30
31
  )
31
32
  from capo_keyspacesstreams.errors import UnknownServiceError
32
33
 
@@ -145,7 +146,7 @@ def get_shard_iterator(
145
146
  try:
146
147
  if response.status >= 300:
147
148
  response.read()
148
- handle_error(response)
149
+ raise_error(response, handle_error)
149
150
  return handle_response(response), response
150
151
  except BaseException:
151
152
  response.close()
@@ -163,7 +164,7 @@ async def async_get_shard_iterator(
163
164
  try:
164
165
  if response.status >= 300:
165
166
  await response.aread()
166
- handle_error(response)
167
+ raise_error(response, handle_error)
167
168
  return await async_handle_response(response), response
168
169
  except BaseException:
169
170
  await response.aclose()
@@ -31,6 +31,7 @@ from capo_keyspacesstreams._rule_engine._endpoint_rule_set import (
31
31
  from capo_keyspacesstreams._services._pipeline import (
32
32
  AsyncOperationOptions,
33
33
  OperationOptions,
34
+ raise_error,
34
35
  )
35
36
  from capo_keyspacesstreams.errors import UnknownServiceError
36
37
 
@@ -150,7 +151,7 @@ def get_stream(
150
151
  try:
151
152
  if response.status >= 300:
152
153
  response.read()
153
- handle_error(response)
154
+ raise_error(response, handle_error)
154
155
  return handle_response(response), response
155
156
  except BaseException:
156
157
  response.close()
@@ -167,7 +168,7 @@ async def async_get_stream(
167
168
  try:
168
169
  if response.status >= 300:
169
170
  await response.aread()
170
- handle_error(response)
171
+ raise_error(response, handle_error)
171
172
  return await async_handle_response(response), response
172
173
  except BaseException:
173
174
  await response.aclose()
@@ -27,6 +27,7 @@ from capo_keyspacesstreams._rule_engine._endpoint_rule_set import (
27
27
  from capo_keyspacesstreams._services._pipeline import (
28
28
  AsyncOperationOptions,
29
29
  OperationOptions,
30
+ raise_error,
30
31
  )
31
32
  from capo_keyspacesstreams.errors import UnknownServiceError
32
33
 
@@ -146,7 +147,7 @@ def list_streams(
146
147
  try:
147
148
  if response.status >= 300:
148
149
  response.read()
149
- handle_error(response)
150
+ raise_error(response, handle_error)
150
151
  return handle_response(response), response
151
152
  except BaseException:
152
153
  response.close()
@@ -163,7 +164,7 @@ async def async_list_streams(
163
164
  try:
164
165
  if response.status >= 300:
165
166
  await response.aread()
166
- handle_error(response)
167
+ raise_error(response, handle_error)
167
168
  return await async_handle_response(response), response
168
169
  except BaseException:
169
170
  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,
@@ -133,6 +134,22 @@ async def aexecute_pipeline(
133
134
  return await make_chain(0)(request)
134
135
 
135
136
 
137
+ def raise_error(response: Response, handle_error: Callable[[Response], Never]) -> Never:
138
+ try:
139
+ handle_error(response)
140
+ except ServiceError as exc:
141
+ # The response itself can say a retry is safe, even when the error is
142
+ # not marked @retryable: a 429, a transient 5xx or a Retry-After header.
143
+ if response.status == 429:
144
+ exc.is_throttling_error = True
145
+ if (
146
+ response.status in (429, 500, 502, 503, 504)
147
+ or "retry-after" in response.headers
148
+ ):
149
+ exc.is_retryable = True
150
+ raise
151
+
152
+
136
153
  def _is_retryable(exc: Exception) -> bool:
137
154
  if isinstance(exc, ServiceError):
138
155
  return exc.is_retryable
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: capo-keyspacesstreams
3
- Version: 0.2.0
3
+ Version: 0.3.0
4
4
  Summary: Python SDK for AWS Keyspacesstreams.
5
5
  Classifier: Development Status :: 4 - Beta
6
6
  Classifier: Intended Audience :: Developers