mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-07-02 03:13:15 +03:00
Updating wiring module
This commit is contained in:
parent
67d16bf48b
commit
d0ea82949f
|
@ -15,6 +15,7 @@ from typing import (
|
||||||
Callable,
|
Callable,
|
||||||
Any,
|
Any,
|
||||||
Tuple,
|
Tuple,
|
||||||
|
List,
|
||||||
Dict,
|
Dict,
|
||||||
Generic,
|
Generic,
|
||||||
TypeVar,
|
TypeVar,
|
||||||
|
@ -321,16 +322,20 @@ class InspectFilter:
|
||||||
def wire( # noqa: C901
|
def wire( # noqa: C901
|
||||||
container: Container,
|
container: Container,
|
||||||
*,
|
*,
|
||||||
modules: Optional[Iterable[ModuleType]] = None,
|
modules: Optional[Iterable[Union[ModuleType, str]]] = None,
|
||||||
packages: Optional[Iterable[ModuleType]] = None,
|
packages: Optional[Iterable[Union[ModuleType, str]]] = None,
|
||||||
|
from_package: Optional[str] = None,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Wire container providers with provided packages and modules."""
|
"""Wire container providers with provided packages and modules."""
|
||||||
if not modules:
|
if not modules:
|
||||||
modules = []
|
modules = []
|
||||||
|
modules = _resolve_string_imports(modules, from_package)
|
||||||
|
|
||||||
if packages:
|
if not packages:
|
||||||
for package in packages:
|
packages = []
|
||||||
modules.extend(_fetch_modules(package))
|
packages = _resolve_string_imports(packages, from_package)
|
||||||
|
for package in packages:
|
||||||
|
modules.extend(_fetch_modules(package))
|
||||||
|
|
||||||
providers_map = ProvidersMap(container)
|
providers_map = ProvidersMap(container)
|
||||||
|
|
||||||
|
@ -672,6 +677,16 @@ def _is_declarative_container(instance: Any) -> bool:
|
||||||
and getattr(instance, 'declarative_parent', None) is None)
|
and getattr(instance, 'declarative_parent', None) is None)
|
||||||
|
|
||||||
|
|
||||||
|
def _resolve_string_imports(
|
||||||
|
modules: Optional[Iterable[Union[ModuleType, str]]],
|
||||||
|
from_package: Optional[str],
|
||||||
|
) -> List[ModuleType]:
|
||||||
|
return [
|
||||||
|
importlib.import_module(module, from_package) if isinstance(module, str) else module
|
||||||
|
for module in modules
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
class Modifier:
|
class Modifier:
|
||||||
|
|
||||||
def modify(
|
def modify(
|
||||||
|
|
Loading…
Reference in New Issue
Block a user