Skip to content

Commit

Permalink
Add prototype implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
rmk135 committed Feb 19, 2021
1 parent d9d811a commit c8a8603
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions src/dependency_injector/wiring.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,11 @@ def resolve_provider(
return self._resolve_config_option(provider)
elif isinstance(provider, providers.TypedConfigurationOption):
return self._resolve_config_option(provider.option, as_=provider.provides)
elif isinstance(provider, str):
current_provider = self._container
for segment in provider.split('.'):
current_provider = getattr(current_provider, segment)
return current_provider
else:
return self._resolve_provider(provider)

Expand Down Expand Up @@ -524,10 +529,10 @@ def __getitem__(cls, item):

class _Marker(Generic[T], metaclass=ClassGetItemMeta):

def __init__(self, provider: Union[providers.Provider, Container]) -> None:
def __init__(self, provider: Union[providers.Provider, Container, str]) -> None:
if _is_declarative_container(provider):
provider = provider.__self__
self.provider: providers.Provider = provider
self.provider = provider

def __class_getitem__(cls, item) -> T:
return cls(item)
Expand Down

0 comments on commit c8a8603

Please sign in to comment.