Fix typing stub for container.override() method

This commit is contained in:
Roman Mogylatov 2020-10-18 22:22:11 -04:00
parent 4e5083693d
commit 0ffa1e8392
2 changed files with 14 additions and 4 deletions

View File

@ -4,6 +4,11 @@ from typing import Type, Dict, Tuple, Optional, Any, Union, ClassVar, Callable a
from .providers import Provider from .providers import Provider
C_Base = TypeVar('C_Base', bound='Container')
C = TypeVar('C', bound='DeclarativeContainer')
C_Overriding = TypeVar('C_Overriding', bound='DeclarativeContainer')
class Container: class Container:
provider_type: Type[Provider] = Provider provider_type: Type[Provider] = Provider
providers: Dict[str, Provider] providers: Dict[str, Provider]
@ -13,7 +18,7 @@ class Container:
def __setattr__(self, name: str, value: Union[Provider, Any]) -> None: ... def __setattr__(self, name: str, value: Union[Provider, Any]) -> None: ...
def __delattr__(self, name: str) -> None: ... def __delattr__(self, name: str) -> None: ...
def set_providers(self, **providers: Provider): ... def set_providers(self, **providers: Provider): ...
def override(self, overriding: DynamicContainer) -> None: ... def override(self, overriding: C_Base) -> None: ...
def override_providers(self, **overriding_providers: Provider) -> None: ... def override_providers(self, **overriding_providers: Provider) -> None: ...
def reset_last_overriding(self) -> None: ... def reset_last_overriding(self) -> None: ...
def reset_override(self) -> None: ... def reset_override(self) -> None: ...
@ -31,9 +36,6 @@ class DeclarativeContainer(Container):
def __init__(self, **overriding_providers: Union[Provider, Any]) -> None: ... def __init__(self, **overriding_providers: Union[Provider, Any]) -> None: ...
C = TypeVar('C', bound=DeclarativeContainer)
C_Overriding = TypeVar('C_Overriding', bound=DeclarativeContainer)
def override(container: Type[C]) -> _Callable[[Type[C_Overriding]], Type[C_Overriding]]: ... def override(container: Type[C]) -> _Callable[[Type[C_Overriding]], Type[C_Overriding]]: ...

View File

@ -30,3 +30,11 @@ class Container31(containers.DeclarativeContainer):
@containers.copy(Container31) @containers.copy(Container31)
class Container32(containers.DeclarativeContainer): class Container32(containers.DeclarativeContainer):
... ...
# Test 4: to override()
class Container4(containers.DeclarativeContainer):
provider = providers.Factory(int)
container4 = Container4()
container4.override(Container4())