mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-02-15 11:00:50 +03:00
Implement provider to provider resolving
This commit is contained in:
parent
bcc0b2ad54
commit
47f8c6ebe8
|
@ -39,11 +39,11 @@ class SchemaProcessorV1:
|
||||||
provider_type = _get_provider_cls(data['provider'])
|
provider_type = _get_provider_cls(data['provider'])
|
||||||
args = []
|
args = []
|
||||||
|
|
||||||
provides = data.get('provides')
|
# provides = data.get('provides')
|
||||||
if provides:
|
# if provides:
|
||||||
provides = _import_string(provides)
|
# provides = _import_string(provides)
|
||||||
if provides:
|
# if provides:
|
||||||
args.append(provides)
|
# args.append(provides)
|
||||||
|
|
||||||
provider = provider_type(*args)
|
provider = provider_type(*args)
|
||||||
|
|
||||||
|
@ -68,6 +68,14 @@ class SchemaProcessorV1:
|
||||||
args = []
|
args = []
|
||||||
kwargs = {}
|
kwargs = {}
|
||||||
|
|
||||||
|
provides = data.get('provides')
|
||||||
|
if provides:
|
||||||
|
if isinstance(provides, str) and provides.startswith('container.'):
|
||||||
|
provides = self._resolve_provider(provides[len('container.'):])
|
||||||
|
else:
|
||||||
|
provides = _import_string(provides)
|
||||||
|
provider.set_provides(provides)
|
||||||
|
|
||||||
arg_injections = data.get('args')
|
arg_injections = data.get('args')
|
||||||
if arg_injections:
|
if arg_injections:
|
||||||
for arg in arg_injections:
|
for arg in arg_injections:
|
||||||
|
@ -82,9 +90,11 @@ class SchemaProcessorV1:
|
||||||
provider_type = _get_provider_cls(arg.get('provider'))
|
provider_type = _get_provider_cls(arg.get('provider'))
|
||||||
provides = arg.get('provides')
|
provides = arg.get('provides')
|
||||||
if provides:
|
if provides:
|
||||||
provides = _import_string(provides)
|
if isinstance(provides, str) and provides.startswith('container.'):
|
||||||
if provides:
|
provides = self._resolve_provider(provides[len('container.'):])
|
||||||
provider_args.append(provides)
|
else:
|
||||||
|
provides = _import_string(provides)
|
||||||
|
provider_args.append(provides)
|
||||||
for provider_arg in arg.get('args', []):
|
for provider_arg in arg.get('args', []):
|
||||||
if isinstance(provider_arg, str) and provider_arg.startswith('container.'):
|
if isinstance(provider_arg, str) and provider_arg.startswith('container.'):
|
||||||
provider_args.append(self._resolve_provider(provider_arg[len('container.'):]))
|
provider_args.append(self._resolve_provider(provider_arg[len('container.'):]))
|
||||||
|
@ -111,9 +121,11 @@ class SchemaProcessorV1:
|
||||||
provider_type = _get_provider_cls(arg.get('provider'))
|
provider_type = _get_provider_cls(arg.get('provider'))
|
||||||
provides = arg.get('provides')
|
provides = arg.get('provides')
|
||||||
if provides:
|
if provides:
|
||||||
provides = _import_string(provides)
|
if isinstance(provides, str) and provides.startswith('container.'):
|
||||||
if provides:
|
provides = self._resolve_provider(provides[len('container.'):])
|
||||||
provider_args.append(provides)
|
else:
|
||||||
|
provides = _import_string(provides)
|
||||||
|
provider_args.append(provides)
|
||||||
for provider_arg in arg.get('args', []):
|
for provider_arg in arg.get('args', []):
|
||||||
if isinstance(provider_arg, str) and provider_arg.startswith('container.'):
|
if isinstance(provider_arg, str) and provider_arg.startswith('container.'):
|
||||||
provider_args.append(self._resolve_provider(provider_arg[len('container.'):]))
|
provider_args.append(self._resolve_provider(provider_arg[len('container.'):]))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user