Skip to content

providers.Resource is missing overload for AbstractContextManager and AbstractAsyncContextManager #926

@leonarduschen

Description

@leonarduschen
# main.py

from collections.abc import Iterator
from contextlib import contextmanager
from typing import reveal_type

from dependency_injector import containers, providers


@contextmanager
def _get_my_int() -> Iterator[int]:
    print("Enter context")
    yield 1


class Container(containers.DeclarativeContainer):
    get_my_int = providers.Resource(_get_my_int)


container = Container()
my_int = container.get_my_int()
reveal_type(my_int)

Running python main.py:

Enter context
Runtime type is 'int'

Running mypy main.py

main.py:20: note: Revealed type is "contextlib._GeneratorContextManager[builtins.int, None, None]"
Success: no issues found in 1 source file

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions