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