python-dependency-injector/src/dependency_injector/ext/aiohttp.py
2025-01-18 17:02:55 +00:00

59 lines
1.3 KiB
Python

"""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