### Example of usage
```python
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:
```python
flags={"dependencies": [Depends(verify_user)]}
```
### Details
It is inspired by [FastAPI](https://github.com/tiangolo/fastapi).
If you define a normal def, your function will be called in a different thread.
### License
MIT
Raw data
{
"_id": null,
"home_page": "https://github.com/Vladyslav49/aiogram3_di",
"name": "aiogram3-di",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "",
"keywords": "Aiogram,Telegram,Bots,DI,Dependency Injection",
"author": "Vladyslav Timofeev",
"author_email": "Timofeevvladyslav49@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/22/ad/208497a05199e8f87ee594b8b8854c145f57af7b6dd2186758c3a0e870ce/aiogram3_di-2.0.0.tar.gz",
"platform": null,
"description": "### Example of usage\n\n```python\nimport logging\nfrom os import getenv\nfrom typing import Annotated\n\nfrom aiogram import Router, Bot, Dispatcher\nfrom aiogram.types import Message, User\nfrom aiogram3_di import setup_di, Depends\n\nrouter = Router()\n\n\ndef get_user_full_name(event_from_user: User) -> str:\n return event_from_user.full_name\n\n\n@router.message()\nasync def start(\n message: Message, full_name: Annotated[str, Depends(get_user_full_name)]\n) -> None:\n await message.answer(f\"Hi {full_name}\")\n\n\ndef main() -> None:\n logging.basicConfig(level=logging.INFO)\n\n bot = Bot(token=getenv(\"BOT_TOKEN\"))\n\n dp = Dispatcher()\n\n dp.include_router(router)\n\n setup_di(dp)\n\n dp.run_polling(bot)\n\n\nif __name__ == \"__main__\":\n main()\n```\n\n### Handler Dependencies.\n\nYou can use `Depends` in the flags parameter of the handler, for example: \n\n```python\nflags={\"dependencies\": [Depends(verify_user)]}\n```\n\n### Details\n\nIt is inspired by [FastAPI](https://github.com/tiangolo/fastapi).\n\nIf you define a normal def, your function will be called in a different thread.\n\n### License\n\nMIT\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Dependency Injection implementation for aiogram 3.",
"version": "2.0.0",
"project_urls": {
"Homepage": "https://github.com/Vladyslav49/aiogram3_di",
"Repository": "https://github.com/Vladyslav49/aiogram3_di"
},
"split_keywords": [
"aiogram",
"telegram",
"bots",
"di",
"dependency injection"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "100ea7921ebd601734dbe7b7491e637ccea31252ee75966f54c50f0004125c2d",
"md5": "180170dd6d22102747ca3e377e81a590",
"sha256": "d91ccddfe26451681ae802f055db2ae71d732cb0711b3ba855ee6e4164bfdd96"
},
"downloads": -1,
"filename": "aiogram3_di-2.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "180170dd6d22102747ca3e377e81a590",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 6912,
"upload_time": "2023-12-14T19:45:37",
"upload_time_iso_8601": "2023-12-14T19:45:37.584302Z",
"url": "https://files.pythonhosted.org/packages/10/0e/a7921ebd601734dbe7b7491e637ccea31252ee75966f54c50f0004125c2d/aiogram3_di-2.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "22ad208497a05199e8f87ee594b8b8854c145f57af7b6dd2186758c3a0e870ce",
"md5": "c4cdc900fa7c4e5ade10e273da4338ec",
"sha256": "1a510a49dc0df93a65557ce36da0a10ce6c40438f0b329deb05388d0d7b5562f"
},
"downloads": -1,
"filename": "aiogram3_di-2.0.0.tar.gz",
"has_sig": false,
"md5_digest": "c4cdc900fa7c4e5ade10e273da4338ec",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 5030,
"upload_time": "2023-12-14T19:45:39",
"upload_time_iso_8601": "2023-12-14T19:45:39.388258Z",
"url": "https://files.pythonhosted.org/packages/22/ad/208497a05199e8f87ee594b8b8854c145f57af7b6dd2186758c3a0e870ce/aiogram3_di-2.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-14 19:45:39",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Vladyslav49",
"github_project": "aiogram3_di",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "aiogram3-di"
}