"""Aiohttp extension module.""" from __future__ import absolute_import import functools 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.', category=DeprecationWarning, ) class Application(providers.Singleton): """Aiohttp application provider.""" class Extension(providers.Singleton): """Aiohttp extension provider.""" class Middleware(providers.DelegatedCallable): """Aiohttp middleware provider.""" __middleware_version__ = 1 class MiddlewareFactory(providers.Factory): """Aiohttp middleware factory provider.""" class View(providers.Callable): """Aiohttp view provider.""" def as_view(self): """Return aiohttp view function.""" @functools.wraps(self.provides) async def _view(request, *args, **kwargs): return await self.__call__(request, *args, **kwargs) return _view class ClassBasedView(providers.Factory): """Aiohttp class-based view provider.""" def as_view(self): """Return aiohttp view function.""" async def _view(request, *args, **kwargs): return await self.__call__(request, *args, **kwargs) return _view