mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-02-26 08:30:45 +03:00
Refactor the implementation
This commit is contained in:
parent
6ec978d13e
commit
21f98a4e83
File diff suppressed because it is too large
Load Diff
|
@ -4896,30 +4896,29 @@ def isasyncgenfunction(obj):
|
||||||
def _resolve_provides(provides):
|
def _resolve_provides(provides):
|
||||||
if provides is None:
|
if provides is None:
|
||||||
return provides
|
return provides
|
||||||
elif not isinstance(provides, str):
|
|
||||||
|
if not isinstance(provides, str):
|
||||||
return provides
|
return provides
|
||||||
else:
|
|
||||||
segments = provides.split(".")
|
|
||||||
member_name = segments[-1]
|
|
||||||
|
|
||||||
if len(segments) == 1:
|
segments = provides.split(".")
|
||||||
if member_name in dir(builtins):
|
member_name = segments[-1]
|
||||||
module = builtins
|
|
||||||
else:
|
|
||||||
module = _resolve_calling_module()
|
|
||||||
return getattr(module, member_name)
|
|
||||||
|
|
||||||
module_name = ".".join(segments[:-1])
|
if len(segments) == 1:
|
||||||
|
if member_name in dir(builtins):
|
||||||
package_name = None
|
module = builtins
|
||||||
if module_name.startswith("."):
|
else:
|
||||||
package_name = _resolve_calling_package_name()
|
module = _resolve_calling_module()
|
||||||
if package_name is None:
|
|
||||||
raise ImportError("attempted relative import with no known parent package")
|
|
||||||
|
|
||||||
module = importlib.import_module(module_name, package=package_name)
|
|
||||||
return getattr(module, member_name)
|
return getattr(module, member_name)
|
||||||
|
|
||||||
|
module_name = ".".join(segments[:-1])
|
||||||
|
|
||||||
|
package_name = _resolve_calling_package_name()
|
||||||
|
if module_name.startswith(".") and package_name is None:
|
||||||
|
raise ImportError("Attempted relative import with no known parent package")
|
||||||
|
|
||||||
|
module = importlib.import_module(module_name, package=package_name)
|
||||||
|
return getattr(module, member_name)
|
||||||
|
|
||||||
|
|
||||||
def _resolve_calling_module():
|
def _resolve_calling_module():
|
||||||
stack = inspect.stack()
|
stack = inspect.stack()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user