mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-05-10 02:43:44 +03:00
131 lines
4.5 KiB
Python
131 lines
4.5 KiB
Python
from pathlib import Path
|
|
from typing import (
|
|
Generic,
|
|
Type,
|
|
Dict,
|
|
List,
|
|
Tuple,
|
|
Optional,
|
|
Any,
|
|
Union,
|
|
ClassVar,
|
|
Callable as _Callable,
|
|
Iterable,
|
|
Iterator,
|
|
TypeVar,
|
|
Awaitable,
|
|
overload,
|
|
)
|
|
|
|
from .providers import Provider, Self, ProviderParent
|
|
|
|
C_Base = TypeVar("C_Base", bound="Container")
|
|
C = TypeVar("C", bound="DeclarativeContainer")
|
|
C_Overriding = TypeVar("C_Overriding", bound="DeclarativeContainer")
|
|
T = TypeVar("T")
|
|
TT = TypeVar("TT")
|
|
|
|
class WiringConfiguration:
|
|
modules: List[Any]
|
|
packages: List[Any]
|
|
from_package: Optional[str]
|
|
auto_wire: bool
|
|
def __init__(
|
|
self,
|
|
modules: Optional[Iterable[Any]] = None,
|
|
packages: Optional[Iterable[Any]] = None,
|
|
from_package: Optional[str] = None,
|
|
auto_wire: bool = True,
|
|
) -> None: ...
|
|
|
|
class Container:
|
|
provider_type: Type[Provider] = Provider
|
|
providers: Dict[str, Provider]
|
|
dependencies: Dict[str, Provider]
|
|
overridden: Tuple[Provider]
|
|
wiring_config: WiringConfiguration
|
|
auto_load_config: bool = True
|
|
__self__: Self
|
|
def __init__(self) -> None: ...
|
|
def __deepcopy__(self, memo: Optional[Dict[str, Any]]) -> Provider: ...
|
|
def __setattr__(self, name: str, value: Union[Provider, Any]) -> None: ...
|
|
def __getattr__(self, name: str) -> Provider: ...
|
|
def __delattr__(self, name: str) -> None: ...
|
|
def set_providers(self, **providers: Provider): ...
|
|
def set_provider(self, name: str, provider: Provider) -> None: ...
|
|
def override(self, overriding: Union[Container, Type[Container]]) -> None: ...
|
|
def override_providers(
|
|
self, **overriding_providers: Union[Provider, Any]
|
|
) -> ProvidersOverridingContext[C_Base]: ...
|
|
def reset_last_overriding(self) -> None: ...
|
|
def reset_override(self) -> None: ...
|
|
def is_auto_wiring_enabled(self) -> bool: ...
|
|
def wire(
|
|
self,
|
|
modules: Optional[Iterable[Any]] = None,
|
|
packages: Optional[Iterable[Any]] = None,
|
|
from_package: Optional[str] = None,
|
|
) -> None: ...
|
|
def unwire(self) -> None: ...
|
|
def init_resources(self) -> Optional[Awaitable]: ...
|
|
def shutdown_resources(self) -> Optional[Awaitable]: ...
|
|
def load_config(self) -> None: ...
|
|
def apply_container_providers_overridings(self) -> None: ...
|
|
def reset_singletons(self) -> SingletonResetContext[C_Base]: ...
|
|
def check_dependencies(self) -> None: ...
|
|
def from_schema(self, schema: Dict[Any, Any]) -> None: ...
|
|
def from_yaml_schema(
|
|
self, filepath: Union[Path, str], loader: Optional[Any] = None
|
|
) -> None: ...
|
|
def from_json_schema(self, filepath: Union[Path, str]) -> None: ...
|
|
@overload
|
|
def resolve_provider_name(self, provider: Provider) -> str: ...
|
|
@classmethod
|
|
@overload
|
|
def resolve_provider_name(cls, provider: Provider) -> str: ...
|
|
@property
|
|
def parent(self) -> Optional[ProviderParent]: ...
|
|
@property
|
|
def parent_name(self) -> Optional[str]: ...
|
|
def assign_parent(self, parent: ProviderParent) -> None: ...
|
|
@overload
|
|
def traverse(self, types: Optional[Iterable[Type[TT]]] = None) -> Iterator[TT]: ...
|
|
@classmethod
|
|
@overload
|
|
def traverse(cls, types: Optional[Iterable[Type[TT]]] = None) -> Iterator[TT]: ...
|
|
|
|
class DynamicContainer(Container): ...
|
|
|
|
class DeclarativeContainer(Container):
|
|
cls_providers: ClassVar[Dict[str, Provider]]
|
|
inherited_providers: ClassVar[Dict[str, Provider]]
|
|
def __init__(self, **overriding_providers: Union[Provider, Any]) -> None: ...
|
|
@classmethod
|
|
def override(cls, overriding: Union[Container, Type[Container]]) -> None: ...
|
|
@classmethod
|
|
def override_providers(
|
|
cls, **overriding_providers: Union[Provider, Any]
|
|
) -> ProvidersOverridingContext[C_Base]: ...
|
|
@classmethod
|
|
def reset_last_overriding(cls) -> None: ...
|
|
@classmethod
|
|
def reset_override(cls) -> None: ...
|
|
|
|
class ProvidersOverridingContext(Generic[T]):
|
|
def __init__(
|
|
self, container: T, overridden_providers: Iterable[Union[Provider, Any]]
|
|
) -> None: ...
|
|
def __enter__(self) -> T: ...
|
|
def __exit__(self, *_: Any) -> None: ...
|
|
|
|
class SingletonResetContext(Generic[T]):
|
|
def __init__(self, container: T): ...
|
|
def __enter__(self) -> T: ...
|
|
def __exit__(self, *_: Any) -> None: ...
|
|
|
|
def override(
|
|
container: Type[C],
|
|
) -> _Callable[[Type[C_Overriding]], Type[C_Overriding]]: ...
|
|
def copy(container: Type[C]) -> _Callable[[Type[C_Overriding]], Type[C_Overriding]]: ...
|
|
def is_container(instance: Any) -> bool: ...
|