Add importlib.util.resolve_name().

This commit is contained in:
Brett Cannon 2012-05-13 13:45:09 -04:00
parent 61009468c5
commit d200bf534b
4 changed files with 73 additions and 1 deletions

View file

@ -3,3 +3,19 @@
from ._bootstrap import module_for_loader
from ._bootstrap import set_loader
from ._bootstrap import set_package
from ._bootstrap import _resolve_name
def resolve_name(name, package):
"""Resolve a relative module name to an absolute one."""
if not name.startswith('.'):
return name
elif not package:
raise ValueError('{!r} is not a relative name '
'(no leading dot)'.format(name))
level = 0
for character in name:
if character != '.':
break
level += 1
return _resolve_name(name[level:], package, level)