New submission from James Pickering <jamespi...@googlemail.com>:

If you run pkgutil.iter_zipimport_modules with a prefix parameter, and the 
module in question is a package, then the prefix parameter is ignored.

The most visible symptom of this is when running pkgutil.walk_packages for a 
zipfile. Imagine we have a module structure like this (or create one):

a/
a/__init__.py
a/b/
a/b/__init.__py

If we put this structure in a directory, add the directory to sys.path, and run 
pkgutil.walk_packages(), it will find modules "a" and "a.b".

If we put this structure in a zipfile, however, we add this file to sys.path, 
and run pkgutil.walk_packages(), it will find modules "a" and "b". This is 
because pkgutil.iter_zipimport_modules ignores the prefix parameter "a.".

This is incorrect.

This can be fixed by changing line ~344 of Lib/pkgutil.py from:

    yield fn[0], True

to

    yield prefix + fn[0], True

Thanks, James

P.s, This is my first Python bug report. I apologise in advance for any poor 
etiquette.

----------
components: Library (Lib)
messages: 155018
nosy: James.Pickering
priority: normal
severity: normal
status: open
title: pkgutil.iter_zipimport_modules ignores the prefix parameter for packages
type: behavior
versions: Python 2.7, Python 3.2, Python 3.3

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue14209>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to