From 19600d9d080a8fa7555b09148b472eeb25c0d706 Mon Sep 17 00:00:00 2001 From: Roman Mogylatov Date: Wed, 21 May 2025 12:00:48 -0400 Subject: [PATCH] Add example for Annotated attribute injection for module/class attributes --- .../wiring/example_attribute_annotated.py | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 examples/wiring/example_attribute_annotated.py diff --git a/examples/wiring/example_attribute_annotated.py b/examples/wiring/example_attribute_annotated.py new file mode 100644 index 00000000..69d2769e --- /dev/null +++ b/examples/wiring/example_attribute_annotated.py @@ -0,0 +1,29 @@ +"""Wiring attribute example with Annotated.""" + +from typing import Annotated + +from dependency_injector import containers, providers +from dependency_injector.wiring import Provide + + +class Service: + ... + + +class Container(containers.DeclarativeContainer): + service = providers.Factory(Service) + + +service: Annotated[Service, Provide[Container.service]] + + +class Main: + service: Annotated[Service, Provide[Container.service]] + + +if __name__ == "__main__": + container = Container() + container.wire(modules=[__name__]) + + assert isinstance(service, Service) + assert isinstance(Main.service, Service) \ No newline at end of file