Skip to content

Commit 6825fbc

Browse files
author
Michael Brewer
committed
Merge branch 'develop' into fix-match-reserved-word
2 parents c18b81c + 25f067a commit 6825fbc

File tree

8 files changed

+32
-23
lines changed

8 files changed

+32
-23
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
"""Shared exceptions that don't belong to a single utility"""
2+
3+
4+
class InvalidEnvelopeExpressionError(Exception):
5+
"""When JMESPath fails to parse expression"""

aws_lambda_powertools/shared/jmespath_utils.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
import base64
22
import gzip
33
import json
4+
import logging
45
from typing import Any, Dict, Optional, Union
56

67
import jmespath
78
from jmespath.exceptions import LexerError
89

9-
from aws_lambda_powertools.utilities.validation import InvalidEnvelopeExpressionError
10-
from aws_lambda_powertools.utilities.validation.base import logger
10+
from aws_lambda_powertools.exceptions import InvalidEnvelopeExpressionError
11+
12+
logger = logging.getLogger(__name__)
1113

1214

1315
class PowertoolsFunctions(jmespath.functions.Functions):
@@ -27,7 +29,7 @@ def _func_powertools_base64_gzip(self, value):
2729
return uncompressed.decode()
2830

2931

30-
def unwrap_event_from_envelope(data: Union[Dict, str], envelope: str, jmespath_options: Optional[Dict]) -> Any:
32+
def extract_data_from_envelope(data: Union[Dict, str], envelope: str, jmespath_options: Optional[Dict]) -> Any:
3133
"""Searches data using JMESPath expression
3234
3335
Parameters

aws_lambda_powertools/utilities/feature_flags/appconfig.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ def get_configuration(self) -> Dict[str, Any]:
8080
)
8181

8282
if self.envelope:
83-
config = jmespath_utils.unwrap_event_from_envelope(
83+
config = jmespath_utils.extract_data_from_envelope(
8484
data=config, envelope=self.envelope, jmespath_options=self.jmespath_options
8585
)
8686

Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
from ...exceptions import InvalidEnvelopeExpressionError
2+
3+
14
class SchemaValidationError(Exception):
25
"""When serialization fail schema validation"""
36

@@ -6,5 +9,4 @@ class InvalidSchemaFormatError(Exception):
69
"""When JSON Schema is in invalid format"""
710

811

9-
class InvalidEnvelopeExpressionError(Exception):
10-
"""When JMESPath fails to parse expression"""
12+
__all__ = ["SchemaValidationError", "InvalidSchemaFormatError", "InvalidEnvelopeExpressionError"]

aws_lambda_powertools/utilities/validation/validator.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ def handler(event, context):
117117
When JMESPath expression to unwrap event is invalid
118118
"""
119119
if envelope:
120-
event = jmespath_utils.unwrap_event_from_envelope(
120+
event = jmespath_utils.extract_data_from_envelope(
121121
data=event, envelope=envelope, jmespath_options=jmespath_options
122122
)
123123

@@ -219,7 +219,7 @@ def handler(event, context):
219219
When JMESPath expression to unwrap event is invalid
220220
"""
221221
if envelope:
222-
event = jmespath_utils.unwrap_event_from_envelope(
222+
event = jmespath_utils.extract_data_from_envelope(
223223
data=event, envelope=envelope, jmespath_options=jmespath_options
224224
)
225225

poetry.lock

+11-11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ black = "^20.8b1"
3434
flake8 = "^3.9.0"
3535
flake8-black = "^0.2.3"
3636
flake8-builtins = "^1.5.3"
37-
flake8-comprehensions = "^3.6.0"
37+
flake8-comprehensions = "^3.6.1"
3838
flake8-debugger = "^4.0.0"
3939
flake8-fixme = "^1.1.1"
4040
flake8-isort = "^4.0.0"
@@ -60,7 +60,7 @@ pydantic = ["pydantic", "email-validator"]
6060

6161
[tool.coverage.run]
6262
source = ["aws_lambda_powertools"]
63-
omit = ["tests/*"]
63+
omit = ["tests/*", "aws_lambda_powertools/exceptions/*"]
6464
branch = true
6565

6666
[tool.coverage.html]

tests/functional/idempotency/conftest.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from botocore.config import Config
1212
from jmespath import functions
1313

14-
from aws_lambda_powertools.shared.jmespath_utils import unwrap_event_from_envelope
14+
from aws_lambda_powertools.shared.jmespath_utils import extract_data_from_envelope
1515
from aws_lambda_powertools.shared.json_encoder import Encoder
1616
from aws_lambda_powertools.utilities.idempotency import DynamoDBPersistenceLayer
1717
from aws_lambda_powertools.utilities.idempotency.idempotency import IdempotencyConfig
@@ -149,7 +149,7 @@ def hashed_idempotency_key(lambda_apigw_event, default_jmespath, lambda_context)
149149

150150
@pytest.fixture
151151
def hashed_idempotency_key_with_envelope(lambda_apigw_event):
152-
event = unwrap_event_from_envelope(
152+
event = extract_data_from_envelope(
153153
data=lambda_apigw_event, envelope=envelopes.API_GATEWAY_HTTP, jmespath_options={}
154154
)
155155
return "test-func#" + hashlib.md5(json.dumps(event).encode()).hexdigest()

0 commit comments

Comments
 (0)