mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-06-09 16:13:31 +03:00
37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
from typing import Iterator
|
|
|
|
from typing_extensions import Annotated
|
|
|
|
from dependency_injector.containers import DeclarativeContainer
|
|
from dependency_injector.providers import Object, Resource
|
|
from dependency_injector.wiring import Closing, Provide, required
|
|
|
|
|
|
def _resource() -> Iterator[int]:
|
|
yield 1
|
|
|
|
|
|
class Container(DeclarativeContainer):
|
|
value = Object(1)
|
|
res = Resource(_resource)
|
|
|
|
|
|
def default_by_ref(value: int = Provide[Container.value]) -> None: ...
|
|
def default_by_string(value: int = Provide["value"]) -> None: ...
|
|
def default_by_string_with_modifier(
|
|
value: int = Provide["value", required().as_int()]
|
|
) -> None: ...
|
|
def default_container(container: Container = Provide[Container]) -> None: ...
|
|
def default_with_closing(value: int = Closing[Provide[Container.res]]) -> None: ...
|
|
def annotated_by_ref(value: Annotated[int, Provide[Container.value]]) -> None: ...
|
|
def annotated_by_string(value: Annotated[int, Provide["value"]]) -> None: ...
|
|
def annotated_by_string_with_modifier(
|
|
value: Annotated[int, Provide["value", required().as_int()]],
|
|
) -> None: ...
|
|
def annotated_container(
|
|
container: Annotated[Container, Provide[Container]],
|
|
) -> None: ...
|
|
def annotated_with_closing(
|
|
value: Annotated[int, Closing[Provide[Container.res]]],
|
|
) -> None: ...
|