dependency_injector.ext.starlette

class dependency_injector.ext.starlette.Lifespan(container: ~dependency_injector.containers.Container, resource_type: ~typing.Type[~dependency_injector.providers.Resource] = <class 'dependency_injector.providers.Resource'>)

Bases: object

A starlette lifespan handler performing container resource initialization and shutdown.

See https://www.starlette.io/lifespan/ for details.

Usage:

from dependency_injector.containers import DeclarativeContainer
from dependency_injector.ext.starlette import Lifespan
from dependency_injector.providers import Factory, Self, Singleton
from starlette.applications import Starlette

class Container(DeclarativeContainer):
    __self__ = Self()
    lifespan = Singleton(Lifespan, __self__)
    app = Factory(Starlette, lifespan=lifespan)
Parameters:
  • container – container instance

  • resource_type – A Resource subclass. Limits the resources to be initialized and shutdown.