Dependency Injection implementation for aiogram 3.
Project description
Example of usage
import logging
from os import getenv
from typing import Annotated
from aiogram import Router, Bot, Dispatcher
from aiogram.types import Message, User
from aiogram3_di import setup_di, Depends
router = Router()
def get_user_full_name(event_from_user: User) -> str:
return event_from_user.full_name
@router.message()
async def start(
message: Message, full_name: Annotated[str, Depends(get_user_full_name)]
) -> None:
await message.answer(f"Hi {full_name}")
def main() -> None:
logging.basicConfig(level=logging.INFO)
bot = Bot(token=getenv("BOT_TOKEN"))
dp = Dispatcher()
dp.include_router(router)
setup_di(dp)
dp.run_polling(bot)
if __name__ == "__main__":
main()
Handler Dependencies.
You can use Depends
in the flags parameter of the handler, for example:
flags={"dependencies": [Depends(verify_user)]}
Details
It is inspired by FastAPI.
If you define a normal def, your function will be called in a different thread.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aiogram3_di-2.0.0.tar.gz
(5.0 kB
view details)
Built Distribution
File details
Details for the file aiogram3_di-2.0.0.tar.gz
.
File metadata
- Download URL: aiogram3_di-2.0.0.tar.gz
- Upload date:
- Size: 5.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.0 CPython/3.10.6 Linux/5.15.0-48-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a510a49dc0df93a65557ce36da0a10ce6c40438f0b329deb05388d0d7b5562f |
|
MD5 | c4cdc900fa7c4e5ade10e273da4338ec |
|
BLAKE2b-256 | 22ad208497a05199e8f87ee594b8b8854c145f57af7b6dd2186758c3a0e870ce |
File details
Details for the file aiogram3_di-2.0.0-py3-none-any.whl
.
File metadata
- Download URL: aiogram3_di-2.0.0-py3-none-any.whl
- Upload date:
- Size: 6.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.0 CPython/3.10.6 Linux/5.15.0-48-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d91ccddfe26451681ae802f055db2ae71d732cb0711b3ba855ee6e4164bfdd96 |
|
MD5 | 180170dd6d22102747ca3e377e81a590 |
|
BLAKE2b-256 | 100ea7921ebd601734dbe7b7491e637ccea31252ee75966f54c50f0004125c2d |