[Python-checkins] cpython: Simplify importib._resolve_name().
brett.cannon
python-checkins at python.org
Fri Feb 24 17:21:00 CET 2012
http://hg.python.org/cpython/rev/5cfc9c97af23
changeset: 75239:5cfc9c97af23
user: Brett Cannon <brett at python.org>
date: Fri Feb 24 11:20:54 2012 -0500
summary:
Simplify importib._resolve_name().
files:
Lib/importlib/_bootstrap.py | 16 +++++-----------
1 files changed, 5 insertions(+), 11 deletions(-)
diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py
--- a/Lib/importlib/_bootstrap.py
+++ b/Lib/importlib/_bootstrap.py
@@ -890,17 +890,11 @@
def _resolve_name(name, package, level):
"""Resolve a relative module name to an absolute one."""
- dot = len(package)
- for x in range(level, 1, -1):
- try:
- dot = package.rindex('.', 0, dot)
- except ValueError:
- raise ValueError("attempted relative import beyond "
- "top-level package")
- if name:
- return "{0}.{1}".format(package[:dot], name)
- else:
- return package[:dot]
+ bits = package.rsplit('.', level-1)
+ if len(bits) < level:
+ raise ValueError('attempted relative import beyond top-level package')
+ base = bits[0]
+ return '{0}.{1}'.format(base, name) if name else base
def _find_module(name, path):
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list