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

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions