2009-02-17 03:45:03 +01:00
|
|
|
"""Utility code for constructing importers, etc."""
|
2010-04-17 02:19:56 +02:00
|
|
|
|
2013-05-30 23:31:47 +02:00
|
|
|
from ._bootstrap import module_to_load
|
2009-02-17 03:45:03 +01:00
|
|
|
from ._bootstrap import module_for_loader
|
2009-03-10 06:17:37 +01:00
|
|
|
from ._bootstrap import set_loader
|
2009-03-04 17:07:00 +01:00
|
|
|
from ._bootstrap import set_package
|
2012-05-13 19:45:09 +02:00
|
|
|
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)
|