if not modname or '.' in modname:
continue
try:
- # Import equivalent to `` from .modname import *``.
- # '*' is used so that __import__ returns the desired module and not
- # 'encodings' itself.
- mod = __import__(modname, globals(), locals(), ['*'], 1)
+ # Import is absolute to prevent the possibly malicious import of a
+ # module with side-effects that is not in the 'encodings' package.
+ mod = __import__('encodings.' + modname, fromlist=_import_tail,
+ level=0)
except ImportError:
pass
else: