From d498c1f3891e96c16b95118853472f3aed885a36 Mon Sep 17 00:00:00 2001 From: Yasser Tahiri Date: Thu, 9 Sep 2021 13:35:04 +0100 Subject: [PATCH] Simplify logical expression in Multiple Functions --- fastapi_contrib/auth/backends.py | 2 +- fastapi_contrib/common/utils.py | 3 +- fastapi_contrib/db/utils.py | 3 +- fastapi_contrib/exception_handlers.py | 17 +++--- fastapi_contrib/routes.py | 18 +++---- fastapi_contrib/serializers/common.py | 77 ++++++++++++--------------- 6 files changed, 55 insertions(+), 65 deletions(-) diff --git a/fastapi_contrib/auth/backends.py b/fastapi_contrib/auth/backends.py index ae5a1c1..277b16b 100644 --- a/fastapi_contrib/auth/backends.py +++ b/fastapi_contrib/auth/backends.py @@ -42,7 +42,7 @@ async def authenticate( if not authorization: return False, None scheme, credentials = get_authorization_scheme_param(authorization) - if not (authorization and scheme and credentials): + if not scheme or not credentials: raise AuthenticationError("Not authenticated") if scheme.lower() != "token": raise AuthenticationError("Invalid authentication credentials") diff --git a/fastapi_contrib/common/utils.py b/fastapi_contrib/common/utils.py index 6e92a98..5e99422 100644 --- a/fastapi_contrib/common/utils.py +++ b/fastapi_contrib/common/utils.py @@ -72,8 +72,7 @@ def get_current_app() -> FastAPI: :return: FastAPI app """ # TODO: cache this - app = resolve_dotted_path(settings.fastapi_app) - return app + return resolve_dotted_path(settings.fastapi_app) def async_timing(func): diff --git a/fastapi_contrib/db/utils.py b/fastapi_contrib/db/utils.py index 87eedb5..119b452 100644 --- a/fastapi_contrib/db/utils.py +++ b/fastapi_contrib/db/utils.py @@ -63,8 +63,7 @@ def get_db_client(): """ from fastapi_contrib.db.client import MongoDBClient - client = MongoDBClient() - return client + return MongoDBClient() def get_models() -> list: diff --git a/fastapi_contrib/exception_handlers.py b/fastapi_contrib/exception_handlers.py index 3e66a2f..0e4eda5 100644 --- a/fastapi_contrib/exception_handlers.py +++ b/fastapi_contrib/exception_handlers.py @@ -22,9 +22,7 @@ def parse_error( """ if isinstance(err.exc, EnumError): - permitted_values = ", ".join( - [f"'{val}'" for val in err.exc.enum_values] - ) + permitted_values = ", ".join(f"'{val}'" for val in err.exc.enum_values) message = f"Value is not a valid enumeration member; " \ f"permitted: {permitted_values}." elif isinstance(err.exc, StrRegexError): @@ -51,13 +49,14 @@ def parse_error( name = str(err.loc_tuple()[0]) else: name = "__all__" + elif ( + len(err.loc_tuple()) == 2 + or len(err.loc_tuple()) != 2 + and len(err.loc_tuple()) == 1 + ): + name = str(err.loc_tuple()[0]) else: - if len(err.loc_tuple()) == 2: - name = str(err.loc_tuple()[0]) - elif len(err.loc_tuple()) == 1: - name = str(err.loc_tuple()[0]) - else: - name = "__all__" + name = "__all__" if name in field_names: return None diff --git a/fastapi_contrib/routes.py b/fastapi_contrib/routes.py index 0a087b2..581cdc4 100644 --- a/fastapi_contrib/routes.py +++ b/fastapi_contrib/routes.py @@ -17,15 +17,15 @@ async def custom_route_handler(request: Request) -> Response: return await original_route_handler(request) except RequestValidationError as exc: body = await request.body() - if not body: - status_code = 400 - data = { - "code": status_code, - "detail": "Empty body for this request is not valid.", - "fields": [], - } - return UJSONResponse(data, status_code=status_code) - else: + if body: raise exc + status_code = 400 + data = { + "code": status_code, + "detail": "Empty body for this request is not valid.", + "fields": [], + } + return UJSONResponse(data, status_code=status_code) + return custom_route_handler diff --git a/fastapi_contrib/serializers/common.py b/fastapi_contrib/serializers/common.py index 43622de..03db741 100644 --- a/fastapi_contrib/serializers/common.py +++ b/fastapi_contrib/serializers/common.py @@ -137,26 +137,23 @@ async def update_one( :return: result of update operation """ - if ( - hasattr(self, "Meta") - and getattr(self.Meta, "model", None) is not None - ): - data = {} - fields = self.dict(skip_defaults=skip_defaults) - - if not array_fields: - array_fields = [] - - if array_fields: - tmp_data = {} - for i in array_fields: - tmp_data[i] = {"$each": fields.pop(i)} - data.update({"$push": tmp_data}) - if fields: - data.update({"$set": fields}) - return await self.Meta.model.update_one( - filter_kwargs=filter_kwargs, **data - ) + if not hasattr(self, "Meta") or getattr(self.Meta, "model", None) is None: + return + + data = {} + fields = self.dict(skip_defaults=skip_defaults) + + if not array_fields: + array_fields = [] + + if array_fields: + tmp_data = {i: {"$each": fields.pop(i)} for i in array_fields} + data.update({"$push": tmp_data}) + if fields: + data.update({"$set": fields}) + return await self.Meta.model.update_one( + filter_kwargs=filter_kwargs, **data + ) async def update_many( self, @@ -170,26 +167,23 @@ async def update_many( :return: result of update many operation """ - if ( - hasattr(self, "Meta") - and getattr(self.Meta, "model", None) is not None - ): - data = {} - fields = self.dict(skip_defaults=skip_defaults) - - if not array_fields: - array_fields = [] - - if array_fields: - tmp_data = {} - for i in array_fields: - tmp_data[i] = {"$each": fields.pop(i)} - data.update({"$push": tmp_data}) - if fields: - data.update({"$set": fields}) - return await self.Meta.model.update_many( - filter_kwargs=filter_kwargs, **data - ) + if not hasattr(self, "Meta") or getattr(self.Meta, "model", None) is None: + return + + data = {} + fields = self.dict(skip_defaults=skip_defaults) + + if not array_fields: + array_fields = [] + + if array_fields: + tmp_data = {i: {"$each": fields.pop(i)} for i in array_fields} + data.update({"$push": tmp_data}) + if fields: + data.update({"$set": fields}) + return await self.Meta.model.update_many( + filter_kwargs=filter_kwargs, **data + ) def dict(self, *args, **kwargs) -> dict: """ @@ -212,8 +206,7 @@ def dict(self, *args, **kwargs) -> dict: exclude.update(self.Meta.write_only_fields) kwargs.update({"exclude": exclude}) - original = super().dict(*args, **kwargs) - return original + return super().dict(*args, **kwargs) class Meta(AbstractMeta): ...