38 lines
695 B
Python
38 lines
695 B
Python
"""Asynchronous injections example."""
|
|
|
|
import asyncio
|
|
|
|
from dependency_injector import containers, providers
|
|
|
|
|
|
async def init_async_resource():
|
|
await asyncio.sleep(0.1)
|
|
yield "Initialized"
|
|
|
|
|
|
class Service:
|
|
def __init__(self, resource):
|
|
self.resource = resource
|
|
|
|
|
|
class Container(containers.DeclarativeContainer):
|
|
|
|
resource = providers.Resource(init_async_resource)
|
|
|
|
service = providers.Factory(
|
|
Service,
|
|
resource=resource,
|
|
)
|
|
|
|
|
|
async def main(container: Container):
|
|
resource = await container.resource()
|
|
service = await container.service()
|
|
...
|
|
|
|
|
|
if __name__ == "__main__":
|
|
container = Container()
|
|
|
|
asyncio.run(main(container))
|