capo-lambda-core 0.1.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_lambda_core-0.1.0/src/capo_lambda_core.egg-info → capo_lambda_core-0.3.0}/PKG-INFO +2 -2
  2. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/pyproject.toml +2 -2
  3. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_operations/lambda_core_api_service/create_network_connector.py +12 -4
  4. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_operations/lambda_core_api_service/delete_network_connector.py +12 -4
  5. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_operations/lambda_core_api_service/get_network_connector.py +12 -4
  6. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_operations/lambda_core_api_service/list_network_connectors.py +12 -4
  7. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_operations/lambda_core_api_service/update_network_connector.py +12 -4
  8. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_services/_pipeline.py +19 -0
  9. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_services/async_lambda_core.py +5 -0
  10. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_services/lambda_core.py +5 -0
  11. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0/src/capo_lambda_core.egg-info}/PKG-INFO +2 -2
  12. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/LICENSE +0 -0
  13. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/README.md +0 -0
  14. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/setup.cfg +0 -0
  15. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/__init__.py +0 -0
  16. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_async.py +0 -0
  17. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_auth/_identity.py +0 -0
  18. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_auth/_providers.py +0 -0
  19. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_auth/_signers.py +0 -0
  20. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_auth/_sigv4.py +0 -0
  21. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_auth/_zapros_handler.py +0 -0
  22. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_body.py +0 -0
  23. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_iter.py +0 -0
  24. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_pagination.py +0 -0
  25. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_protocol/__init__.py +0 -0
  26. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_protocol/errors.py +0 -0
  27. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_protocol/eventstream.py +0 -0
  28. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_protocol/serialize.py +0 -0
  29. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_protocol/xml.py +0 -0
  30. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_resources/lambda_core_api_service/network_connector.py +0 -0
  31. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_rule_engine/__init__.py +0 -0
  32. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_rule_engine/_aws_partition.py +0 -0
  33. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_rule_engine/_endpoint_rule_set.py +0 -0
  34. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_rule_engine/_endpoint_runtime.py +0 -0
  35. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/_services/_aws_config.py +0 -0
  36. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/errors/__init__.py +0 -0
  37. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/errors/_base.py +0 -0
  38. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/errors/invalid_parameter_value_exception.py +0 -0
  39. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/errors/network_connector_limit_exceeded_exception.py +0 -0
  40. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/errors/resource_conflict_exception.py +0 -0
  41. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/errors/resource_not_found_exception.py +0 -0
  42. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/errors/service_exception.py +0 -0
  43. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/errors/too_many_requests_exception.py +0 -0
  44. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/py.typed +0 -0
  45. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/_prelude/blob.py +0 -0
  46. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/_prelude/timestamp.py +0 -0
  47. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/associated_compute_resource_types_list.py +0 -0
  48. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/client_token_string.py +0 -0
  49. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/compute_resource_type.py +0 -0
  50. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/core_timestamp.py +0 -0
  51. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/create_network_connector_request.py +0 -0
  52. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/create_network_connector_response.py +0 -0
  53. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/delete_network_connector_request.py +0 -0
  54. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/delete_network_connector_response.py +0 -0
  55. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/get_network_connector_request.py +0 -0
  56. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/get_network_connector_response.py +0 -0
  57. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/list_network_connectors_request.py +0 -0
  58. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/list_network_connectors_response.py +0 -0
  59. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/max_hundred_list_items.py +0 -0
  60. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_arn.py +0 -0
  61. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_configuration.py +0 -0
  62. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_id.py +0 -0
  63. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_identifier.py +0 -0
  64. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_last_update_status.py +0 -0
  65. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_last_update_status_reason.py +0 -0
  66. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_last_update_status_reason_code.py +0 -0
  67. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_name.py +0 -0
  68. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_role_arn.py +0 -0
  69. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_security_group_id.py +0 -0
  70. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_security_group_ids.py +0 -0
  71. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_state.py +0 -0
  72. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_state_reason_code.py +0 -0
  73. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_subnet_id.py +0 -0
  74. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_subnet_ids.py +0 -0
  75. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_summary.py +0 -0
  76. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_tag_key.py +0 -0
  77. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_tag_value.py +0 -0
  78. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_tags.py +0 -0
  79. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_type.py +0 -0
  80. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_version.py +0 -0
  81. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connector_vpc_egress_configuration.py +0 -0
  82. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_connectors_list.py +0 -0
  83. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/network_protocol.py +0 -0
  84. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/string.py +0 -0
  85. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/throttle_reason.py +0 -0
  86. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/update_network_connector_request.py +0 -0
  87. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core/types/update_network_connector_response.py +0 -0
  88. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core.egg-info/SOURCES.txt +0 -0
  89. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core.egg-info/dependency_links.txt +0 -0
  90. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core.egg-info/requires.txt +0 -0
  91. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/src/capo_lambda_core.egg-info/top_level.txt +0 -0
  92. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/tests/test_body.py +0 -0
  93. {capo_lambda_core-0.1.0 → capo_lambda_core-0.3.0}/tests/test_sigv4.py +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: capo-lambda-core
3
- Version: 0.1.0
4
- Summary: Python SDK for Lambda Core.
3
+ Version: 0.3.0
4
+ Summary: Python SDK for AWS Lambda Core.
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-lambda-core"
3
- version = "0.1.0"
4
- description = "Python SDK for Lambda Core."
3
+ version = "0.3.0"
4
+ description = "Python SDK for AWS Lambda Core."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
7
7
  classifiers = [
@@ -23,7 +23,11 @@ import capo_lambda_core.types.network_connector_state
23
23
  import capo_lambda_core.types.network_connector_tags
24
24
  from capo_lambda_core._protocol.errors import parse_error_metadata_json
25
25
  from capo_lambda_core._rule_engine._endpoint_rule_set import EndpointParams, resolve
26
- from capo_lambda_core._services._pipeline import AsyncOperationOptions, OperationOptions
26
+ from capo_lambda_core._services._pipeline import (
27
+ AsyncOperationOptions,
28
+ OperationOptions,
29
+ raise_error,
30
+ )
27
31
  from capo_lambda_core.errors import UnknownServiceError
28
32
 
29
33
 
@@ -121,7 +125,11 @@ def build_request(
121
125
  allow_nan=False,
122
126
  ).encode()
123
127
  headers["content-type"] = "application/json"
124
- signer = get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
128
+ signer = (
129
+ None
130
+ if options.anonymous
131
+ else get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
132
+ )
125
133
  normalized_url = zapros.URL(url)
126
134
  for k, v in params:
127
135
  normalized_url.search_params.append(k, v)
@@ -141,7 +149,7 @@ def create_network_connector(
141
149
  try:
142
150
  if response.status >= 300:
143
151
  response.read()
144
- handle_error(response)
152
+ raise_error(response, handle_error)
145
153
  return handle_response(response), response
146
154
  except BaseException:
147
155
  response.close()
@@ -159,7 +167,7 @@ async def async_create_network_connector(
159
167
  try:
160
168
  if response.status >= 300:
161
169
  await response.aread()
162
- handle_error(response)
170
+ raise_error(response, handle_error)
163
171
  return await async_handle_response(response), response
164
172
  except BaseException:
165
173
  await response.aclose()
@@ -23,7 +23,11 @@ import capo_lambda_core.types.network_connector_configuration
23
23
  import capo_lambda_core.types.network_connector_state
24
24
  from capo_lambda_core._protocol.errors import parse_error_metadata_json
25
25
  from capo_lambda_core._rule_engine._endpoint_rule_set import EndpointParams, resolve
26
- from capo_lambda_core._services._pipeline import AsyncOperationOptions, OperationOptions
26
+ from capo_lambda_core._services._pipeline import (
27
+ AsyncOperationOptions,
28
+ OperationOptions,
29
+ raise_error,
30
+ )
27
31
  from capo_lambda_core.errors import UnknownServiceError
28
32
 
29
33
 
@@ -118,7 +122,11 @@ def build_request(
118
122
  params: list[tuple[str, str]] = []
119
123
  headers: dict[str, str] = {k: ", ".join(v) for k, v in endpoint.headers.items()}
120
124
  body: bytes | None = b""
121
- signer = get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
125
+ signer = (
126
+ None
127
+ if options.anonymous
128
+ else get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
129
+ )
122
130
  normalized_url = zapros.URL(url)
123
131
  for k, v in params:
124
132
  normalized_url.search_params.append(k, v)
@@ -138,7 +146,7 @@ def delete_network_connector(
138
146
  try:
139
147
  if response.status >= 300:
140
148
  response.read()
141
- handle_error(response)
149
+ raise_error(response, handle_error)
142
150
  return handle_response(response), response
143
151
  except BaseException:
144
152
  response.close()
@@ -156,7 +164,7 @@ async def async_delete_network_connector(
156
164
  try:
157
165
  if response.status >= 300:
158
166
  await response.aread()
159
- handle_error(response)
167
+ raise_error(response, handle_error)
160
168
  return await async_handle_response(response), response
161
169
  except BaseException:
162
170
  await response.aclose()
@@ -26,7 +26,11 @@ import capo_lambda_core.types.network_connector_state
26
26
  import capo_lambda_core.types.network_connector_state_reason_code
27
27
  from capo_lambda_core._protocol.errors import parse_error_metadata_json
28
28
  from capo_lambda_core._rule_engine._endpoint_rule_set import EndpointParams, resolve
29
- from capo_lambda_core._services._pipeline import AsyncOperationOptions, OperationOptions
29
+ from capo_lambda_core._services._pipeline import (
30
+ AsyncOperationOptions,
31
+ OperationOptions,
32
+ raise_error,
33
+ )
30
34
  from capo_lambda_core.errors import UnknownServiceError
31
35
 
32
36
 
@@ -117,7 +121,11 @@ def build_request(
117
121
  params: list[tuple[str, str]] = []
118
122
  headers: dict[str, str] = {k: ", ".join(v) for k, v in endpoint.headers.items()}
119
123
  body: bytes | None = b""
120
- signer = get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
124
+ signer = (
125
+ None
126
+ if options.anonymous
127
+ else get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
128
+ )
121
129
  normalized_url = zapros.URL(url)
122
130
  for k, v in params:
123
131
  normalized_url.search_params.append(k, v)
@@ -137,7 +145,7 @@ def get_network_connector(
137
145
  try:
138
146
  if response.status >= 300:
139
147
  response.read()
140
- handle_error(response)
148
+ raise_error(response, handle_error)
141
149
  return handle_response(response), response
142
150
  except BaseException:
143
151
  response.close()
@@ -155,7 +163,7 @@ async def async_get_network_connector(
155
163
  try:
156
164
  if response.status >= 300:
157
165
  await response.aread()
158
- handle_error(response)
166
+ raise_error(response, handle_error)
159
167
  return await async_handle_response(response), response
160
168
  except BaseException:
161
169
  await response.aclose()
@@ -20,7 +20,11 @@ import capo_lambda_core.types.network_connector_state
20
20
  import capo_lambda_core.types.network_connectors_list
21
21
  from capo_lambda_core._protocol.errors import parse_error_metadata_json
22
22
  from capo_lambda_core._rule_engine._endpoint_rule_set import EndpointParams, resolve
23
- from capo_lambda_core._services._pipeline import AsyncOperationOptions, OperationOptions
23
+ from capo_lambda_core._services._pipeline import (
24
+ AsyncOperationOptions,
25
+ OperationOptions,
26
+ raise_error,
27
+ )
24
28
  from capo_lambda_core.errors import UnknownServiceError
25
29
 
26
30
 
@@ -121,7 +125,11 @@ def build_request(
121
125
  params.append(("MaxItems", str(input_["max_items"])))
122
126
  headers: dict[str, str] = {k: ", ".join(v) for k, v in endpoint.headers.items()}
123
127
  body: bytes | None = b""
124
- signer = get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
128
+ signer = (
129
+ None
130
+ if options.anonymous
131
+ else get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
132
+ )
125
133
  normalized_url = zapros.URL(url)
126
134
  for k, v in params:
127
135
  normalized_url.search_params.append(k, v)
@@ -141,7 +149,7 @@ def list_network_connectors(
141
149
  try:
142
150
  if response.status >= 300:
143
151
  response.read()
144
- handle_error(response)
152
+ raise_error(response, handle_error)
145
153
  return handle_response(response), response
146
154
  except BaseException:
147
155
  response.close()
@@ -159,7 +167,7 @@ async def async_list_network_connectors(
159
167
  try:
160
168
  if response.status >= 300:
161
169
  await response.aread()
162
- handle_error(response)
170
+ raise_error(response, handle_error)
163
171
  return await async_handle_response(response), response
164
172
  except BaseException:
165
173
  await response.aclose()
@@ -25,7 +25,11 @@ import capo_lambda_core.types.update_network_connector_request
25
25
  import capo_lambda_core.types.update_network_connector_response
26
26
  from capo_lambda_core._protocol.errors import parse_error_metadata_json
27
27
  from capo_lambda_core._rule_engine._endpoint_rule_set import EndpointParams, resolve
28
- from capo_lambda_core._services._pipeline import AsyncOperationOptions, OperationOptions
28
+ from capo_lambda_core._services._pipeline import (
29
+ AsyncOperationOptions,
30
+ OperationOptions,
31
+ raise_error,
32
+ )
29
33
  from capo_lambda_core.errors import UnknownServiceError
30
34
 
31
35
 
@@ -124,7 +128,11 @@ def build_request(
124
128
  allow_nan=False,
125
129
  ).encode()
126
130
  headers["content-type"] = "application/json"
127
- signer = get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
131
+ signer = (
132
+ None
133
+ if options.anonymous
134
+ else get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
135
+ )
128
136
  normalized_url = zapros.URL(url)
129
137
  for k, v in params:
130
138
  normalized_url.search_params.append(k, v)
@@ -144,7 +152,7 @@ def update_network_connector(
144
152
  try:
145
153
  if response.status >= 300:
146
154
  response.read()
147
- handle_error(response)
155
+ raise_error(response, handle_error)
148
156
  return handle_response(response), response
149
157
  except BaseException:
150
158
  response.close()
@@ -162,7 +170,7 @@ async def async_update_network_connector(
162
170
  try:
163
171
  if response.status >= 300:
164
172
  await response.aread()
165
- handle_error(response)
173
+ raise_error(response, handle_error)
166
174
  return await async_handle_response(response), response
167
175
  except BaseException:
168
176
  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,
@@ -39,6 +40,7 @@ class OperationOptions:
39
40
  endpoint: str | None = None
40
41
  retry_max_attempts: int | None = None
41
42
  credentials_provider: IdentityProvider[Credentials] | None = None
43
+ anonymous: bool | None = None
42
44
 
43
45
 
44
46
  @dataclass
@@ -50,6 +52,7 @@ class AsyncOperationOptions:
50
52
  endpoint: str | None = None
51
53
  retry_max_attempts: int | None = None
52
54
  credentials_provider: IdentityProvider[Credentials] | None = None
55
+ anonymous: bool | None = None
53
56
 
54
57
 
55
58
  @dataclass
@@ -135,6 +138,22 @@ async def aexecute_pipeline(
135
138
  return await make_chain(0)(request)
136
139
 
137
140
 
141
+ def raise_error(response: Response, handle_error: Callable[[Response], Never]) -> Never:
142
+ try:
143
+ handle_error(response)
144
+ except ServiceError as exc:
145
+ # The response itself can say a retry is safe, even when the error is
146
+ # not marked @retryable: a 429, a transient 5xx or a Retry-After header.
147
+ if response.status == 429:
148
+ exc.is_throttling_error = True
149
+ if (
150
+ response.status in (429, 500, 502, 503, 504)
151
+ or "retry-after" in response.headers
152
+ ):
153
+ exc.is_retryable = True
154
+ raise
155
+
156
+
138
157
  def _is_retryable(exc: Exception) -> bool:
139
158
  if isinstance(exc, ServiceError):
140
159
  return exc.is_retryable
@@ -63,6 +63,7 @@ class AsyncLambdaCoreClientConfig(TypedDict, total=False, closed=True):
63
63
  use_fips: bool | None
64
64
  endpoint: str | None
65
65
  credentials_provider: IdentityProvider[Credentials] | None
66
+ anonymous: bool | None
66
67
 
67
68
 
68
69
  class AsyncLambdaCoreClient:
@@ -78,6 +79,7 @@ class AsyncLambdaCoreClient:
78
79
  endpoint: The value of the ``SDK::Endpoint`` endpoint parameter.
79
80
  credentials: AWS credentials for request signing.
80
81
  credentials_provider: Provider that resolves AWS credentials. Takes precedence over ``credentials``.
82
+ anonymous: Send requests unsigned, without resolving credentials, even for operations that require authentication.
81
83
  """
82
84
 
83
85
  def __init__(
@@ -91,6 +93,7 @@ class AsyncLambdaCoreClient:
91
93
  endpoint: str | None = None,
92
94
  credentials: Credentials | None = None,
93
95
  credentials_provider: CredentialsProvider | None = None,
96
+ anonymous: bool | None = None,
94
97
  ):
95
98
  self._client = AsyncClient(http_handler).wrap_with_middleware(
96
99
  lambda next: AuthMiddleware(next)
@@ -117,6 +120,7 @@ class AsyncLambdaCoreClient:
117
120
  "use_fips": use_fips,
118
121
  "endpoint": endpoint,
119
122
  "credentials_provider": resolved_credentials_provider,
123
+ "anonymous": anonymous,
120
124
  }
121
125
  )
122
126
 
@@ -148,6 +152,7 @@ class AsyncLambdaCoreClient:
148
152
  credentials_provider=overrides.get(
149
153
  "credentials_provider", self._config.get("credentials_provider")
150
154
  ),
155
+ anonymous=overrides.get("anonymous", self._config.get("anonymous")),
151
156
  )
152
157
  return interceptors_, options_
153
158
 
@@ -63,6 +63,7 @@ class LambdaCoreClientConfig(TypedDict, total=False, closed=True):
63
63
  use_fips: bool | None
64
64
  endpoint: str | None
65
65
  credentials_provider: IdentityProvider[Credentials] | None
66
+ anonymous: bool | None
66
67
 
67
68
 
68
69
  class LambdaCoreClient:
@@ -78,6 +79,7 @@ class LambdaCoreClient:
78
79
  endpoint: The value of the ``SDK::Endpoint`` endpoint parameter.
79
80
  credentials: AWS credentials for request signing.
80
81
  credentials_provider: Provider that resolves AWS credentials. Takes precedence over ``credentials``.
82
+ anonymous: Send requests unsigned, without resolving credentials, even for operations that require authentication.
81
83
  """
82
84
 
83
85
  def __init__(
@@ -91,6 +93,7 @@ class LambdaCoreClient:
91
93
  endpoint: str | None = None,
92
94
  credentials: Credentials | None = None,
93
95
  credentials_provider: CredentialsProvider | None = None,
96
+ anonymous: bool | None = None,
94
97
  ):
95
98
  self._client = Client(http_handler).wrap_with_middleware(
96
99
  lambda next: AuthMiddleware(next)
@@ -117,6 +120,7 @@ class LambdaCoreClient:
117
120
  "use_fips": use_fips,
118
121
  "endpoint": endpoint,
119
122
  "credentials_provider": resolved_credentials_provider,
123
+ "anonymous": anonymous,
120
124
  }
121
125
  )
122
126
 
@@ -148,6 +152,7 @@ class LambdaCoreClient:
148
152
  credentials_provider=overrides.get(
149
153
  "credentials_provider", self._config.get("credentials_provider")
150
154
  ),
155
+ anonymous=overrides.get("anonymous", self._config.get("anonymous")),
151
156
  )
152
157
  return interceptors_, options_
153
158
 
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: capo-lambda-core
3
- Version: 0.1.0
4
- Summary: Python SDK for Lambda Core.
3
+ Version: 0.3.0
4
+ Summary: Python SDK for AWS Lambda Core.
5
5
  Classifier: Development Status :: 4 - Beta
6
6
  Classifier: Intended Audience :: Developers
7
7
  Classifier: License :: OSI Approved :: MIT License