From c97a0cc515a514a3ed150a354ac8809b1b22ae2d Mon Sep 17 00:00:00 2001 From: ZipFile Date: Sun, 1 Jun 2025 18:57:47 +0000 Subject: [PATCH] Fix mypy warnings in dependency_injector.ext --- src/dependency_injector/ext/aiohttp.py | 1 - src/dependency_injector/ext/aiohttp.pyi | 20 +++++++++++--------- src/dependency_injector/ext/flask.py | 4 ++-- src/dependency_injector/ext/flask.pyi | 24 +++++++++++++----------- 4 files changed, 26 insertions(+), 23 deletions(-) diff --git a/src/dependency_injector/ext/aiohttp.py b/src/dependency_injector/ext/aiohttp.py index 976089c3..43990a7d 100644 --- a/src/dependency_injector/ext/aiohttp.py +++ b/src/dependency_injector/ext/aiohttp.py @@ -7,7 +7,6 @@ import warnings from dependency_injector import providers - warnings.warn( 'Module "dependency_injector.ext.aiohttp" is deprecated since ' 'version 4.0.0. Use "dependency_injector.wiring" module instead.', diff --git a/src/dependency_injector/ext/aiohttp.pyi b/src/dependency_injector/ext/aiohttp.pyi index 370cc9b0..c524712c 100644 --- a/src/dependency_injector/ext/aiohttp.pyi +++ b/src/dependency_injector/ext/aiohttp.pyi @@ -1,14 +1,16 @@ -from typing import Awaitable as _Awaitable +from typing import Any, Awaitable as _Awaitable, TypeVar from dependency_injector import providers -class Application(providers.Singleton): ... -class Extension(providers.Singleton): ... -class Middleware(providers.DelegatedCallable): ... -class MiddlewareFactory(providers.Factory): ... +T = TypeVar("T") -class View(providers.Callable): - def as_view(self) -> _Awaitable: ... +class Application(providers.Singleton[T]): ... +class Extension(providers.Singleton[T]): ... +class Middleware(providers.DelegatedCallable[T]): ... +class MiddlewareFactory(providers.Factory[T]): ... -class ClassBasedView(providers.Factory): - def as_view(self) -> _Awaitable: ... +class View(providers.Callable[T]): + def as_view(self) -> _Awaitable[T]: ... + +class ClassBasedView(providers.Factory[T]): + def as_view(self) -> _Awaitable[T]: ... diff --git a/src/dependency_injector/ext/flask.py b/src/dependency_injector/ext/flask.py index 498a9eee..15b9df0a 100644 --- a/src/dependency_injector/ext/flask.py +++ b/src/dependency_injector/ext/flask.py @@ -1,12 +1,12 @@ """Flask extension module.""" from __future__ import absolute_import + import warnings from flask import request as flask_request -from dependency_injector import providers, errors - +from dependency_injector import errors, providers warnings.warn( 'Module "dependency_injector.ext.flask" is deprecated since ' diff --git a/src/dependency_injector/ext/flask.pyi b/src/dependency_injector/ext/flask.pyi index 9b180c89..1c791b88 100644 --- a/src/dependency_injector/ext/flask.pyi +++ b/src/dependency_injector/ext/flask.pyi @@ -1,19 +1,21 @@ -from typing import Union, Optional, Callable as _Callable, Any +from typing import Any, Callable as _Callable, Optional, TypeVar, Union + +from flask.wrappers import Request -from flask import request as flask_request from dependency_injector import providers -request: providers.Object[flask_request] +request: providers.Object[Request] +T = TypeVar("T") -class Application(providers.Singleton): ... -class Extension(providers.Singleton): ... +class Application(providers.Singleton[T]): ... +class Extension(providers.Singleton[T]): ... -class View(providers.Callable): - def as_view(self) -> _Callable[..., Any]: ... +class View(providers.Callable[T]): + def as_view(self) -> _Callable[..., T]: ... -class ClassBasedView(providers.Factory): - def as_view(self, name: str) -> _Callable[..., Any]: ... +class ClassBasedView(providers.Factory[T]): + def as_view(self, name: str) -> _Callable[..., T]: ... def as_view( - provider: Union[View, ClassBasedView], name: Optional[str] = None -) -> _Callable[..., Any]: ... + provider: Union[View[T], ClassBasedView[T]], name: Optional[str] = None +) -> _Callable[..., T]: ...