Move importlib's frozen importer over to rpartition for setting __package__.

This commit is contained in:
Brett Cannon 2009-02-07 01:38:38 +00:00
parent 2b3849425f
commit eb2e0dd19d
2 changed files with 4 additions and 5 deletions

View file

@ -138,10 +138,9 @@ class FrozenImporter:
if cls.find_module(fullname) is None: if cls.find_module(fullname) is None:
raise ImportError("{0} is not a frozen module".format(fullname)) raise ImportError("{0} is not a frozen module".format(fullname))
module = imp.init_frozen(fullname) module = imp.init_frozen(fullname)
if hasattr(module, '__path__'):
module.__package__ = module.__name__ module.__package__ = module.__name__
elif '.' in module.__name__: if not hasattr(module, '__path__'):
module.__package__ = module.__name__.rsplit('.', 1)[0] module.__package__ = module.__package__.rpartition('.')[0]
return module return module

View file

@ -9,7 +9,7 @@ class LoaderTests(abc.LoaderTests):
with util.uncache('__hello__'): with util.uncache('__hello__'):
module = machinery.FrozenImporter.load_module('__hello__') module = machinery.FrozenImporter.load_module('__hello__')
check = {'__name__': '__hello__', '__file__': '<frozen>', check = {'__name__': '__hello__', '__file__': '<frozen>',
'__package__': None} '__package__': ''}
for attr, value in check.items(): for attr, value in check.items():
self.assertEqual(getattr(module, attr), value) self.assertEqual(getattr(module, attr), value)