From 2f772e71798866eb6b83c29afbf48ac4fef71202 Mon Sep 17 00:00:00 2001 From: Miro Prasil Date: Thu, 23 Nov 2023 13:41:06 +0000 Subject: [PATCH] fix: Fix importing Middleware type alias (#185) `_Middleware` was removed upstream in [#5898][0]. We can now use `Middleware` type alias from the typedefs starting from aiohttp 3.9.0 [0]: https://github.com/aio-libs/aiohttp/pull/5898 --- src/aiohttp_middlewares/annotations.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/aiohttp_middlewares/annotations.py b/src/aiohttp_middlewares/annotations.py index 506b4cc..80badee 100644 --- a/src/aiohttp_middlewares/annotations.py +++ b/src/aiohttp_middlewares/annotations.py @@ -7,6 +7,8 @@ """ +import importlib + from typing import ( Any, Awaitable, @@ -19,9 +21,14 @@ ) from aiohttp import web -from aiohttp.web_middlewares import _Middleware as Middleware from yarl import URL +try: + # (<3.9.0) Try to import Middleware from aiohttp.web_middlewares + Middleware = importlib.import_module('aiohttp.web_middlewares')._Middleware +except AttributeError: + # (>=3.9.0) If that fails, import Middleware from aiohttp.typedefs + Middleware = importlib.import_module('aiohttp.typedefs').Middleware # Make flake8 happy (Middleware,)