From d08b6b42ea5e29b84ef341bd513e6506337cd5ce Mon Sep 17 00:00:00 2001 From: "Hamza Z." Date: Sat, 20 Apr 2024 09:53:26 +0200 Subject: [PATCH 1/2] Fix loader functon for async methods --- src/webargs/core.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/webargs/core.py b/src/webargs/core.py index 42a754d5..8d94616b 100644 --- a/src/webargs/core.py +++ b/src/webargs/core.py @@ -5,6 +5,7 @@ import json import logging import typing +import inspect import marshmallow as ma from marshmallow import ValidationError @@ -237,10 +238,12 @@ async def _async_load_location_data( # an async variant of the _load_location_data method # the loader function itself may or may not be async loader_func = self._get_loader(location) - if asyncio.iscoroutinefunction(loader_func): - data = await loader_func(req, schema) - else: - data = loader_func(req, schema) + + data = loader_func(req, schema) + + if inspect.isawaitable(data): + return await data + return data def _on_validation_error( From 62503be3a9bec39c75219cadb89a1d0345de7666 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 20 Apr 2024 08:08:52 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/webargs/core.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/webargs/core.py b/src/webargs/core.py index 8d94616b..05519ab0 100644 --- a/src/webargs/core.py +++ b/src/webargs/core.py @@ -2,10 +2,10 @@ import asyncio import functools +import inspect import json import logging import typing -import inspect import marshmallow as ma from marshmallow import ValidationError