2020-10-09 22:16:27 +03:00
|
|
|
from types import ModuleType
|
2020-10-16 23:36:07 +03:00
|
|
|
from typing import Type, Dict, Tuple, Optional, Any, Union, ClassVar, Callable as _Callable, Iterable, TypeVar
|
2020-08-27 05:24:20 +03:00
|
|
|
|
|
|
|
from .providers import Provider
|
|
|
|
|
|
|
|
|
2020-10-19 05:22:11 +03:00
|
|
|
C_Base = TypeVar('C_Base', bound='Container')
|
|
|
|
C = TypeVar('C', bound='DeclarativeContainer')
|
|
|
|
C_Overriding = TypeVar('C_Overriding', bound='DeclarativeContainer')
|
|
|
|
|
|
|
|
|
2020-08-27 05:24:20 +03:00
|
|
|
class Container:
|
|
|
|
provider_type: Type[Provider] = Provider
|
|
|
|
providers: Dict[str, Provider]
|
|
|
|
overridden: Tuple[Provider]
|
|
|
|
def __init__(self) -> None: ...
|
|
|
|
def __deepcopy__(self, memo: Optional[Dict[str, Any]]) -> Provider: ...
|
|
|
|
def __setattr__(self, name: str, value: Union[Provider, Any]) -> None: ...
|
|
|
|
def __delattr__(self, name: str) -> None: ...
|
|
|
|
def set_providers(self, **providers: Provider): ...
|
2020-10-19 05:22:11 +03:00
|
|
|
def override(self, overriding: C_Base) -> None: ...
|
2020-08-27 05:24:20 +03:00
|
|
|
def override_providers(self, **overriding_providers: Provider) -> None: ...
|
|
|
|
def reset_last_overriding(self) -> None: ...
|
|
|
|
def reset_override(self) -> None: ...
|
2020-10-09 22:16:27 +03:00
|
|
|
def resolve_provider_name(self, provider_to_resolve: Provider) -> Optional[str]: ...
|
|
|
|
def wire(self, modules: Optional[Iterable[ModuleType]] = None, packages: Optional[Iterable[ModuleType]] = None) -> None: ...
|
|
|
|
def unwire(self) -> None: ...
|
2020-10-25 03:56:32 +03:00
|
|
|
def init_resources(self) -> None: ...
|
|
|
|
def shutdown_resources(self) -> None: ...
|
2020-08-27 05:24:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
class DynamicContainer(Container): ...
|
|
|
|
|
|
|
|
|
|
|
|
class DeclarativeContainer(Container):
|
|
|
|
cls_providers: ClassVar[Dict[str, Provider]]
|
|
|
|
inherited_providers: ClassVar[Dict[str, Provider]]
|
2020-09-07 18:53:03 +03:00
|
|
|
def __init__(self, **overriding_providers: Union[Provider, Any]) -> None: ...
|
2020-08-27 05:24:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
2020-10-16 23:36:07 +03:00
|
|
|
def override(container: Type[C]) -> _Callable[[Type[C_Overriding]], Type[C_Overriding]]: ...
|
|
|
|
|
|
|
|
|
|
|
|
def copy(container: Type[C]) -> _Callable[[Type[C_Overriding]], Type[C_Overriding]]: ...
|
|
|
|
|
2020-08-27 05:24:20 +03:00
|
|
|
|
|
|
|
def is_container(instance: Any) -> bool: ...
|