Skip to content

Commit a666d49

Browse files
leandrodamascenarafaelgsr
authored andcommitted
chore(ci): enable Ruff rule COM812 and fix the errors (aws-powertools#2595)
1 parent f0f38bf commit a666d49

File tree

92 files changed

+969
-510
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+969
-510
lines changed

aws_lambda_powertools/event_handler/api_gateway.py

+26-7
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,13 @@ class Route:
209209
"""Internally used Route Configuration"""
210210

211211
def __init__(
212-
self, method: str, rule: Pattern, func: Callable, cors: bool, compress: bool, cache_control: Optional[str]
212+
self,
213+
method: str,
214+
rule: Pattern,
215+
func: Callable,
216+
cors: bool,
217+
compress: bool,
218+
cache_control: Optional[str],
213219
):
214220
self.method = method.upper()
215221
self.rule = rule
@@ -237,7 +243,9 @@ def _add_cache_control(self, cache_control: str):
237243

238244
@staticmethod
239245
def _has_compression_enabled(
240-
route_compression: bool, response_compression: Optional[bool], event: BaseProxyEvent
246+
route_compression: bool,
247+
response_compression: Optional[bool],
248+
event: BaseProxyEvent,
241249
) -> bool:
242250
"""
243251
Checks if compression is enabled.
@@ -285,7 +293,9 @@ def _route(self, event: BaseProxyEvent, cors: Optional[CORSConfig]):
285293
if self.route.cache_control:
286294
self._add_cache_control(self.route.cache_control)
287295
if self._has_compression_enabled(
288-
route_compression=self.route.compress, response_compression=self.response.compress, event=event
296+
route_compression=self.route.compress,
297+
response_compression=self.response.compress,
298+
event=event,
289299
):
290300
self._compress()
291301

@@ -400,7 +410,11 @@ def lambda_handler(event, context):
400410
return self.route(rule, "PUT", cors, compress, cache_control)
401411

402412
def delete(
403-
self, rule: str, cors: Optional[bool] = None, compress: bool = False, cache_control: Optional[str] = None
413+
self,
414+
rule: str,
415+
cors: Optional[bool] = None,
416+
compress: bool = False,
417+
cache_control: Optional[str] = None,
404418
):
405419
"""Delete route decorator with DELETE `method`
406420
@@ -427,7 +441,11 @@ def lambda_handler(event, context):
427441
return self.route(rule, "DELETE", cors, compress, cache_control)
428442

429443
def patch(
430-
self, rule: str, cors: Optional[bool] = None, compress: bool = False, cache_control: Optional[str] = None
444+
self,
445+
rule: str,
446+
cors: Optional[bool] = None,
447+
compress: bool = False,
448+
cache_control: Optional[str] = None,
431449
):
432450
"""Patch route decorator with PATCH `method`
433451
@@ -566,7 +584,8 @@ def register_resolver(func: Callable):
566584
route_key = item + rule
567585
if route_key in self._route_keys:
568586
warnings.warn(
569-
f"A route like this was already registered. method: '{item}' rule: '{rule}'", stacklevel=2
587+
f"A route like this was already registered. method: '{item}' rule: '{rule}'",
588+
stacklevel=2,
570589
)
571590
self._route_keys.append(route_key)
572591
if cors_enabled:
@@ -725,7 +744,7 @@ def _not_found(self, method: str) -> ResponseBuilder:
725744
content_type=content_types.APPLICATION_JSON,
726745
headers=headers,
727746
body=self._json_dump({"statusCode": HTTPStatus.NOT_FOUND.value, "message": "Not found"}),
728-
)
747+
),
729748
)
730749

731750
def _call_route(self, route: Route, args: Dict[str, str]) -> ResponseBuilder:

aws_lambda_powertools/event_handler/appsync.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,10 @@ def __init__(self):
8080
self.context = {} # early init as customers might add context before event resolution
8181

8282
def resolve(
83-
self, event: dict, context: LambdaContext, data_model: Type[AppSyncResolverEvent] = AppSyncResolverEvent
83+
self,
84+
event: dict,
85+
context: LambdaContext,
86+
data_model: Type[AppSyncResolverEvent] = AppSyncResolverEvent,
8487
) -> Any:
8588
"""Resolve field_name
8689
@@ -183,7 +186,10 @@ def _get_resolver(self, type_name: str, field_name: str) -> Callable:
183186
return resolver["func"]
184187

185188
def __call__(
186-
self, event: dict, context: LambdaContext, data_model: Type[AppSyncResolverEvent] = AppSyncResolverEvent
189+
self,
190+
event: dict,
191+
context: LambdaContext,
192+
data_model: Type[AppSyncResolverEvent] = AppSyncResolverEvent,
187193
) -> Any:
188194
"""Implicit lambda handler which internally calls `resolve`"""
189195
return self.resolve(event, context, data_model)

aws_lambda_powertools/logging/formatter.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,10 @@ def __init__(
127127
constants.PRETTY_INDENT if powertools_dev_is_set() else constants.COMPACT_INDENT
128128
) # indented json serialization when in AWS SAM Local
129129
self.json_serializer = json_serializer or partial(
130-
json.dumps, default=self.json_default, separators=(",", ":"), indent=self.json_indent
130+
json.dumps,
131+
default=self.json_default,
132+
separators=(",", ":"),
133+
indent=self.json_indent,
131134
)
132135

133136
self.datefmt = datefmt

aws_lambda_powertools/logging/logger.py

+44-11
Original file line numberDiff line numberDiff line change
@@ -223,18 +223,20 @@ def __init__(
223223
**kwargs,
224224
):
225225
self.service = resolve_env_var_choice(
226-
choice=service, env=os.getenv(constants.SERVICE_NAME_ENV, "service_undefined")
226+
choice=service,
227+
env=os.getenv(constants.SERVICE_NAME_ENV, "service_undefined"),
227228
)
228229
self.sampling_rate = resolve_env_var_choice(
229-
choice=sampling_rate, env=os.getenv(constants.LOGGER_LOG_SAMPLING_RATE)
230+
choice=sampling_rate,
231+
env=os.getenv(constants.LOGGER_LOG_SAMPLING_RATE),
230232
)
231233
self.child = child
232234
self.logger_formatter = logger_formatter
233235
self.logger_handler = logger_handler or logging.StreamHandler(stream)
234236
self.log_uncaught_exceptions = log_uncaught_exceptions
235237

236238
self._is_deduplication_disabled = resolve_truthy_env_var_choice(
237-
env=os.getenv(constants.LOGGER_LOG_DEDUPLICATION_ENV, "false")
239+
env=os.getenv(constants.LOGGER_LOG_DEDUPLICATION_ENV, "false"),
238240
)
239241
self._default_log_keys = {"service": self.service, "sampling_rate": self.sampling_rate}
240242
self._logger = self._get_logger()
@@ -327,7 +329,7 @@ def _configure_sampling(self):
327329
except ValueError:
328330
raise InvalidLoggerSamplingRateError(
329331
f"Expected a float value ranging 0 to 1, but received {self.sampling_rate} instead."
330-
f"Please review POWERTOOLS_LOGGER_SAMPLE_RATE environment variable."
332+
f"Please review POWERTOOLS_LOGGER_SAMPLE_RATE environment variable.",
331333
)
332334

333335
@overload
@@ -415,7 +417,8 @@ def handler(event, context):
415417
)
416418

417419
log_event = resolve_truthy_env_var_choice(
418-
env=os.getenv(constants.LOGGER_LOG_EVENT_ENV, "false"), choice=log_event
420+
env=os.getenv(constants.LOGGER_LOG_EVENT_ENV, "false"),
421+
choice=log_event,
419422
)
420423

421424
@functools.wraps(lambda_handler)
@@ -456,7 +459,12 @@ def info(
456459
if sys.version_info < (3, 8): # pragma: no cover
457460
return self._logger.info(msg, *args, exc_info=exc_info, stack_info=stack_info, extra=extra)
458461
return self._logger.info(
459-
msg, *args, exc_info=exc_info, stack_info=stack_info, stacklevel=stacklevel, extra=extra
462+
msg,
463+
*args,
464+
exc_info=exc_info,
465+
stack_info=stack_info,
466+
stacklevel=stacklevel,
467+
extra=extra,
460468
)
461469

462470
def error(
@@ -476,7 +484,12 @@ def error(
476484
if sys.version_info < (3, 8): # pragma: no cover
477485
return self._logger.error(msg, *args, exc_info=exc_info, stack_info=stack_info, extra=extra)
478486
return self._logger.error(
479-
msg, *args, exc_info=exc_info, stack_info=stack_info, stacklevel=stacklevel, extra=extra
487+
msg,
488+
*args,
489+
exc_info=exc_info,
490+
stack_info=stack_info,
491+
stacklevel=stacklevel,
492+
extra=extra,
480493
)
481494

482495
def exception(
@@ -496,7 +509,12 @@ def exception(
496509
if sys.version_info < (3, 8): # pragma: no cover
497510
return self._logger.exception(msg, *args, exc_info=exc_info, stack_info=stack_info, extra=extra)
498511
return self._logger.exception(
499-
msg, *args, exc_info=exc_info, stack_info=stack_info, stacklevel=stacklevel, extra=extra
512+
msg,
513+
*args,
514+
exc_info=exc_info,
515+
stack_info=stack_info,
516+
stacklevel=stacklevel,
517+
extra=extra,
500518
)
501519

502520
def critical(
@@ -516,7 +534,12 @@ def critical(
516534
if sys.version_info < (3, 8): # pragma: no cover
517535
return self._logger.critical(msg, *args, exc_info=exc_info, stack_info=stack_info, extra=extra)
518536
return self._logger.critical(
519-
msg, *args, exc_info=exc_info, stack_info=stack_info, stacklevel=stacklevel, extra=extra
537+
msg,
538+
*args,
539+
exc_info=exc_info,
540+
stack_info=stack_info,
541+
stacklevel=stacklevel,
542+
extra=extra,
520543
)
521544

522545
def warning(
@@ -536,7 +559,12 @@ def warning(
536559
if sys.version_info < (3, 8): # pragma: no cover
537560
return self._logger.warning(msg, *args, exc_info=exc_info, stack_info=stack_info, extra=extra)
538561
return self._logger.warning(
539-
msg, *args, exc_info=exc_info, stack_info=stack_info, stacklevel=stacklevel, extra=extra
562+
msg,
563+
*args,
564+
exc_info=exc_info,
565+
stack_info=stack_info,
566+
stacklevel=stacklevel,
567+
extra=extra,
540568
)
541569

542570
def debug(
@@ -556,7 +584,12 @@ def debug(
556584
if sys.version_info < (3, 8): # pragma: no cover
557585
return self._logger.debug(msg, *args, exc_info=exc_info, stack_info=stack_info, extra=extra)
558586
return self._logger.debug(
559-
msg, *args, exc_info=exc_info, stack_info=stack_info, stacklevel=stacklevel, extra=extra
587+
msg,
588+
*args,
589+
exc_info=exc_info,
590+
stack_info=stack_info,
591+
stacklevel=stacklevel,
592+
extra=extra,
560593
)
561594

562595
def append_keys(self, **additional_keys):

aws_lambda_powertools/logging/utils.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,9 @@ def _exclude_registered_loggers_filter(loggers: Set[str]) -> List[logging.Logger
6868

6969

7070
def _find_registered_loggers(
71-
source_logger: Logger, loggers: Set[str], filter_func: Callable[[Set[str]], List[logging.Logger]]
71+
source_logger: Logger,
72+
loggers: Set[str],
73+
filter_func: Callable[[Set[str]], List[logging.Logger]],
7274
) -> List[logging.Logger]:
7375
"""Filter root loggers based on provided parameters."""
7476
root_loggers = filter_func(loggers)

aws_lambda_powertools/metrics/base.py

+8-5
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,10 @@ def add_metric(
172172
self.metric_set.clear()
173173

174174
def serialize_metric_set(
175-
self, metrics: Optional[Dict] = None, dimensions: Optional[Dict] = None, metadata: Optional[Dict] = None
175+
self,
176+
metrics: Optional[Dict] = None,
177+
dimensions: Optional[Dict] = None,
178+
metadata: Optional[Dict] = None,
176179
) -> Dict:
177180
"""Serializes metric and dimensions set
178181
@@ -256,7 +259,7 @@ def serialize_metric_set(
256259
"Namespace": self.namespace, # "test_namespace"
257260
"Dimensions": [list(dimensions.keys())], # [ "service" ]
258261
"Metrics": metric_definition,
259-
}
262+
},
260263
],
261264
},
262265
**dimensions, # "service": "test_service"
@@ -283,7 +286,7 @@ def add_dimension(self, name: str, value: str) -> None:
283286
logger.debug(f"Adding dimension: {name}:{value}")
284287
if len(self.dimension_set) == MAX_DIMENSIONS:
285288
raise SchemaValidationError(
286-
f"Maximum number of dimensions exceeded ({MAX_DIMENSIONS}): Unable to add dimension {name}."
289+
f"Maximum number of dimensions exceeded ({MAX_DIMENSIONS}): Unable to add dimension {name}.",
287290
)
288291
# Cast value to str according to EMF spec
289292
# Majority of values are expected to be string already, so
@@ -443,7 +446,7 @@ def _extract_metric_resolution_value(self, resolution: Union[int, MetricResoluti
443446
return resolution
444447

445448
raise MetricResolutionError(
446-
f"Invalid metric resolution '{resolution}', expected either option: {self._metric_resolutions}" # noqa: E501
449+
f"Invalid metric resolution '{resolution}', expected either option: {self._metric_resolutions}", # noqa: E501
447450
)
448451

449452
def _extract_metric_unit_value(self, unit: Union[str, MetricUnit]) -> str:
@@ -471,7 +474,7 @@ def _extract_metric_unit_value(self, unit: Union[str, MetricUnit]) -> str:
471474

472475
if unit not in self._metric_units:
473476
raise MetricUnitError(
474-
f"Invalid metric unit '{unit}', expected either option: {self._metric_unit_valid_options}"
477+
f"Invalid metric unit '{unit}', expected either option: {self._metric_unit_valid_options}",
475478
)
476479

477480
if isinstance(unit, MetricUnit):

aws_lambda_powertools/middleware_factory/factory.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,8 @@ def lambda_handler(event, context):
107107
return functools.partial(lambda_handler_decorator, trace_execution=trace_execution)
108108

109109
trace_execution = resolve_truthy_env_var_choice(
110-
env=os.getenv(constants.MIDDLEWARE_FACTORY_TRACE_ENV, "false"), choice=trace_execution
110+
env=os.getenv(constants.MIDDLEWARE_FACTORY_TRACE_ENV, "false"),
111+
choice=trace_execution,
111112
)
112113

113114
@functools.wraps(decorator)
@@ -119,7 +120,7 @@ def final_decorator(func: Optional[Callable] = None, **kwargs: Any):
119120
if not inspect.isfunction(func):
120121
# @custom_middleware(True) vs @custom_middleware(log_event=True)
121122
raise MiddlewareInvalidArgumentError(
122-
f"Only keyword arguments is supported for middlewares: {decorator.__qualname__} received {func}" # type: ignore # noqa: E501
123+
f"Only keyword arguments is supported for middlewares: {decorator.__qualname__} received {func}", # type: ignore # noqa: E501
123124
)
124125

125126
@functools.wraps(func)

aws_lambda_powertools/shared/functions.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ def resolve_env_var_choice(env: Optional[str], choice: Optional[str]) -> str:
7272

7373

7474
def resolve_env_var_choice(
75-
env: Optional[str] = None, choice: Optional[Union[str, float]] = None
75+
env: Optional[str] = None,
76+
choice: Optional[Union[str, float]] = None,
7677
) -> Optional[Union[str, float]]:
7778
"""Pick explicit choice over env, if available, otherwise return env value received
7879
@@ -112,7 +113,8 @@ def powertools_dev_is_set() -> bool:
112113
is_on = strtobool(os.getenv(constants.POWERTOOLS_DEV_ENV, "0"))
113114
if is_on:
114115
warnings.warn(
115-
"POWERTOOLS_DEV environment variable is enabled. Increasing verbosity across utilities.", stacklevel=2
116+
"POWERTOOLS_DEV environment variable is enabled. Increasing verbosity across utilities.",
117+
stacklevel=2,
116118
)
117119
return True
118120

0 commit comments

Comments
 (0)