diff options
author | Guido van Rossum <guido@python.org> | 1999-06-09 15:49:09 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1999-06-09 15:49:09 (GMT) |
commit | 3d548717f502b068a582f3f1de82084dbd100c7a (patch) | |
tree | 3cf630313ead2a4b1cef281ea0b8452afa40de5a /Lib/pyclbr.py | |
parent | c87f5f4f7a4a548346877c043c68b62649963e27 (diff) | |
download | cpython-3d548717f502b068a582f3f1de82084dbd100c7a.zip cpython-3d548717f502b068a582f3f1de82084dbd100c7a.tar.gz cpython-3d548717f502b068a582f3f1de82084dbd100c7a.tar.bz2 |
Fix by Sjoerd for a package related bug: If you have a non-empy
__init__.py it isn't read. (Sjoerd just came up with this, so it's
not heavily tested.)
Other (yet unsolved) package problems noted by Sjoerd:
- If you have a package and a module inside that or another package
with the same name, module caching doesn't work properly since the
key is the base name of the module/package.
- The only entry that is returned when you readmodule a package is a
__path__ whose value is a list which confuses certain class browsers
that I wrote. (Hm, this could be construed as a feature.)
Diffstat (limited to 'Lib/pyclbr.py')
-rw-r--r-- | Lib/pyclbr.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/Lib/pyclbr.py b/Lib/pyclbr.py index 709a07b..3d5e0fa 100644 --- a/Lib/pyclbr.py +++ b/Lib/pyclbr.py @@ -123,6 +123,8 @@ def readmodule(module, path=[], inpackage=0): module and return a dictionary with one entry for each class found in the module.''' + dict = {} + i = string.rfind(module, '.') if i >= 0: # Dotted module name @@ -137,7 +139,6 @@ def readmodule(module, path=[], inpackage=0): return _modules[module] if module in sys.builtin_module_names: # this is a built-in module - dict = {} _modules[module] = dict return dict @@ -153,18 +154,17 @@ def readmodule(module, path=[], inpackage=0): fullpath = list(path) + sys.path f, file, (suff, mode, type) = imp.find_module(module, fullpath) if type == imp.PKG_DIRECTORY: - dict = {'__path__': [file]} + dict['__path__'] = [file] _modules[module] = dict - # XXX Should we recursively look for submodules? - return dict + path = [file] + path + f, file, (suff, mode, type) = \ + imp.find_module('__init__', [file]) if type != imp.PY_SOURCE: # not Python source, can't do anything with this module f.close() - dict = {} _modules[module] = dict return dict - dict = {} _modules[module] = dict imports = [] classstack = [] # stack of (class, indent) pairs |