diff --git a/aws_lambda_powertools/event_handler/api_gateway.py b/aws_lambda_powertools/event_handler/api_gateway.py index a44d85455fe..78993f92c5e 100644 --- a/aws_lambda_powertools/event_handler/api_gateway.py +++ b/aws_lambda_powertools/event_handler/api_gateway.py @@ -501,7 +501,9 @@ def register_resolver(func: Callable): self._routes.append(Route(item, self._compile_regex(rule), func, cors_enabled, compress, cache_control)) route_key = item + rule if route_key in self._route_keys: - warnings.warn(f"A route like this was already registered. method: '{item}' rule: '{rule}'") + warnings.warn( + f"A route like this was already registered. method: '{item}' rule: '{rule}'", stacklevel=2 + ) self._route_keys.append(route_key) if cors_enabled: logger.debug(f"Registering method {item.upper()} to Allow Methods in CORS") @@ -526,7 +528,9 @@ def resolve(self, event, context) -> Dict[str, Any]: """ if isinstance(event, BaseProxyEvent): warnings.warn( - "You don't need to serialize event to Event Source Data Class when using Event Handler; see issue #1152" + "You don't need to serialize event to Event Source Data Class when using Event Handler; " + "see issue #1152", + stacklevel=2, ) event = event.raw_event diff --git a/aws_lambda_powertools/metrics/base.py b/aws_lambda_powertools/metrics/base.py index 67dcb47c282..89a6dc6f4cd 100644 --- a/aws_lambda_powertools/metrics/base.py +++ b/aws_lambda_powertools/metrics/base.py @@ -391,7 +391,7 @@ def decorate(event, context): self._add_cold_start_metric(context=context) finally: if not raise_on_empty_metrics and not self.metric_set: - warnings.warn("No metrics to publish, skipping") + warnings.warn("No metrics to publish, skipping", stacklevel=2) else: metrics = self.serialize_metric_set() self.clear_metrics() diff --git a/aws_lambda_powertools/shared/functions.py b/aws_lambda_powertools/shared/functions.py index b1c53d989bb..86ba74d5e78 100644 --- a/aws_lambda_powertools/shared/functions.py +++ b/aws_lambda_powertools/shared/functions.py @@ -106,7 +106,9 @@ def bytes_to_string(value: bytes) -> str: def powertools_dev_is_set() -> bool: is_on = strtobool(os.getenv(constants.POWERTOOLS_DEV_ENV, "0")) if is_on: - warnings.warn("POWERTOOLS_DEV environment variable is enabled. Increasing verbosity across utilities.") + warnings.warn( + "POWERTOOLS_DEV environment variable is enabled. Increasing verbosity across utilities.", stacklevel=2 + ) return True return False @@ -115,7 +117,7 @@ def powertools_dev_is_set() -> bool: def powertools_debug_is_set() -> bool: is_on = strtobool(os.getenv(constants.POWERTOOLS_DEBUG_ENV, "0")) if is_on: - warnings.warn("POWERTOOLS_DEBUG environment variable is enabled. Setting logging level to DEBUG.") + warnings.warn("POWERTOOLS_DEBUG environment variable is enabled. Setting logging level to DEBUG.", stacklevel=2) return True return False diff --git a/aws_lambda_powertools/shared/headers_serializer.py b/aws_lambda_powertools/shared/headers_serializer.py index b4e9f7c7c5f..aa38157e26f 100644 --- a/aws_lambda_powertools/shared/headers_serializer.py +++ b/aws_lambda_powertools/shared/headers_serializer.py @@ -97,7 +97,8 @@ def serialize(self, headers: Dict[str, Union[str, List[str]]], cookies: List[Coo if len(cookies) > 1: warnings.warn( "Can't encode more than one cookie in the response. Sending the last cookie only. " - "Did you enable multiValueHeaders on the ALB Target Group?" + "Did you enable multiValueHeaders on the ALB Target Group?", + stacklevel=2, ) # We can only send one cookie, send the last one @@ -114,7 +115,8 @@ def serialize(self, headers: Dict[str, Union[str, List[str]]], cookies: List[Coo if len(values) > 1: warnings.warn( f"Can't encode more than one header value for the same key ('{key}') in the response. " - "Did you enable multiValueHeaders on the ALB Target Group?" + "Did you enable multiValueHeaders on the ALB Target Group?", + stacklevel=2, ) # We can only set one header per key, send the last one diff --git a/aws_lambda_powertools/utilities/idempotency/persistence/base.py b/aws_lambda_powertools/utilities/idempotency/persistence/base.py index b3504dfeacd..28b284b8e5e 100644 --- a/aws_lambda_powertools/utilities/idempotency/persistence/base.py +++ b/aws_lambda_powertools/utilities/idempotency/persistence/base.py @@ -182,7 +182,7 @@ def _get_hashed_idempotency_key(self, data: Dict[str, Any]) -> str: if self.is_missing_idempotency_key(data=data): if self.raise_on_no_idempotency_key: raise IdempotencyKeyError("No data found to create a hashed idempotency_key") - warnings.warn(f"No value found for idempotency_key. jmespath: {self.event_key_jmespath}") + warnings.warn(f"No value found for idempotency_key. jmespath: {self.event_key_jmespath}", stacklevel=2) generated_hash = self._generate_hash(data=data) return f"{self.function_name}#{generated_hash}" @@ -359,7 +359,8 @@ def save_inprogress(self, data: Dict[str, Any], remaining_time_in_millis: Option else: warnings.warn( "Couldn't determine the remaining time left. " - "Did you call register_lambda_context on IdempotencyConfig?" + "Did you call register_lambda_context on IdempotencyConfig?", + stacklevel=2, ) logger.debug(f"Saving in progress record for idempotency key: {data_record.idempotency_key}") diff --git a/poetry.lock b/poetry.lock index e686e1d7f70..7d43f8a88ad 100644 --- a/poetry.lock +++ b/poetry.lock @@ -753,14 +753,14 @@ develop = ["build", "twine"] [[package]] name = "flake8-bugbear" -version = "23.1.20" +version = "23.2.13" description = "A plugin for flake8 finding likely bugs and design problems in your program. Contains warnings that don't belong in pyflakes and pycodestyle." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "flake8-bugbear-23.1.20.tar.gz", hash = "sha256:55902ab5a48c5ea53d8689ecd146eda548e72f2724192b9c1d68f6d975d13c06"}, - {file = "flake8_bugbear-23.1.20-py3-none-any.whl", hash = "sha256:04a115e5f9c8e87c38bdbbcdf9f58223ffe05469c07c9a7bd8633330bc4d078b"}, + {file = "flake8-bugbear-23.2.13.tar.gz", hash = "sha256:39259814a83f33c8409417ee12dd4050c9c0bb4c8707c12fc18ae62b2f3ddee1"}, + {file = "flake8_bugbear-23.2.13-py3-none-any.whl", hash = "sha256:f136bd0ca2684f101168bba2310dec541e11aa6b252260c17dcf58d18069a740"}, ] [package.dependencies] @@ -2958,4 +2958,4 @@ validation = ["fastjsonschema"] [metadata] lock-version = "2.0" python-versions = "^3.7.4" -content-hash = "172e08f2bd15c4a14f0306ca84c572f05428bfcf6fca3be1afe9661a03e741c1" +content-hash = "d7bd130d558ccec284759b584fc12514b263b496fe07bfdadea4310976a577c0" diff --git a/pyproject.toml b/pyproject.toml index abc316f1461..575b880862b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -58,7 +58,7 @@ bandit = "^1.7.1" radon = "^5.1.0" xenon = "^0.9.0" flake8-eradicate = "^1.2.1" -flake8-bugbear = "^23.1.20" +flake8-bugbear = "^23.2.13" mkdocs-git-revision-date-plugin = "^0.3.2" mike = "^1.1.2" retry = "^0.9.2"