Metadata-Version: 2.4
Name: modern-di-taskiq
Version: 2.0.0
Summary: modern-di integration for taskiq
Keywords: dependency-injection,di,ioc-container,modern-di,taskiq,python
Author: Artur Shiriev
Author-email: Artur Shiriev <me@shiriev.ru>
License-Expression: MIT
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Typing :: Typed
Classifier: Topic :: Software Development :: Libraries
Requires-Dist: taskiq>=0.11,<0.13
Requires-Dist: modern-di>=2.25,<3
Requires-Python: >=3.10, <4
Project-URL: Homepage, https://modern-di.modern-python.org
Project-URL: Documentation, https://modern-di.modern-python.org
Project-URL: Repository, https://github.com/modern-python/modern-di-taskiq
Project-URL: Issues, https://github.com/modern-python/modern-di-taskiq/issues
Project-URL: Changelog, https://github.com/modern-python/modern-di-taskiq/releases
Description-Content-Type: text/markdown

# modern-di-taskiq

[Modern-DI](https://github.com/modern-python/modern-di) integration for [taskiq](https://taskiq-python.github.io).

## Quickstart

```python
import typing

from modern_di import Container, Group, Scope, providers
from modern_di_taskiq import FromDI, setup_di
from taskiq import InMemoryBroker


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


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


broker = InMemoryBroker()
setup_di(broker, Container(groups=[Dependencies], validate=True))


@broker.task
async def greet(name: str, settings: typing.Annotated[Settings, FromDI(Dependencies.settings)]) -> str:
    return f"{settings.greeting}, {name}"
```

See the [documentation](https://modern-di.modern-python.org) for the full guide.
