Skip to content

modern-python/modern-di-aiogram

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

modern-di-aiogram

Modern-DI integration for aiogram 3.x.

Quickstart

import typing

from aiogram import Bot, Dispatcher
from aiogram.types import Message
from modern_di import Container, Group, Scope, providers
from modern_di_aiogram import FromDI, inject, setup_di


class Settings:
    def __init__(self) -> None:
        self.greeting = "hello"


class Dependencies(Group):
    settings = providers.Factory(scope=Scope.APP, creator=Settings)


dispatcher = Dispatcher()
setup_di(dispatcher, Container(groups=[Dependencies], validate=True))


@dispatcher.message()
@inject
async def greet(message: Message, settings: typing.Annotated[Settings, FromDI(Dependencies.settings)]) -> None:
    await message.answer(f"{settings.greeting}, {message.from_user.first_name}")

See the documentation for the full guide, including auto_inject.

Packages

 
 
 

Contributors