summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1998-10-12 15:23:04 (GMT)
committerGuido van Rossum <guido@python.org>1998-10-12 15:23:04 (GMT)
commit06884363055a9d45daa1e5924aadba442e3d0a40 (patch)
tree998764b048097db8704a352775513a01e94bd8cd
parent7a840e8d5036bbdb29785659731edadb666ece99 (diff)
downloadcpython-06884363055a9d45daa1e5924aadba442e3d0a40.zip
cpython-06884363055a9d45daa1e5924aadba442e3d0a40.tar.gz
cpython-06884363055a9d45daa1e5924aadba442e3d0a40.tar.bz2
Enhancements by Sjoerd Mullender: support for
from a.b import c import a . b
-rw-r--r--Lib/pyclbr.py14
1 files changed, 7 insertions, 7 deletions
diff --git a/Lib/pyclbr.py b/Lib/pyclbr.py
index cb4125f..6af4692 100644
--- a/Lib/pyclbr.py
+++ b/Lib/pyclbr.py
@@ -38,12 +38,12 @@ import imp
import re
import string
-id = '(?P<id>[A-Za-z_][A-Za-z0-9_]*)' # match identifier
+id = '[A-Za-z_][A-Za-z0-9_]*' # match identifier
blank_line = re.compile('^[ \t]*($|#)')
-is_class = re.compile('^class[ \t]+'+id+'[ \t]*(?P<sup>\([^)]*\))?[ \t]*:')
-is_method = re.compile('^[ \t]+def[ \t]+'+id+'[ \t]*\(')
+is_class = re.compile('^class[ \t]+(?P<id>'+id+')[ \t]*(?P<sup>\([^)]*\))?[ \t]*:')
+is_method = re.compile('^[ \t]+def[ \t]+(?P<id>'+id+')[ \t]*\(')
is_import = re.compile('^import[ \t]*(?P<imp>[^#]+)')
-is_from = re.compile('^from[ \t]+'+id+'[ \t]+import[ \t]+(?P<imp>[^#]+)')
+is_from = re.compile('^from[ \t]+(?P<module>'+id+'([ \t]*\\.[ \t]*'+id+')*)[ \t]+import[ \t]+(?P<imp>[^#]+)')
dedent = re.compile('^[^ \t]')
indent = re.compile('^[^ \t]*')
@@ -75,8 +75,8 @@ def readmodule(module, path=[], inpackage=0):
i = string.rfind(module, '.')
if i >= 0:
# Dotted module name
- package = module[:i]
- submodule = module[i+1:]
+ package = string.strip(module[:i])
+ submodule = string.strip(module[i+1:])
parent = readmodule(package, path, inpackage)
child = readmodule(submodule, parent['__path__'], 1)
return child
@@ -146,7 +146,7 @@ def readmodule(module, path=[], inpackage=0):
res = is_from.match(line)
if res:
# from module import stuff
- mod = res.group('id')
+ mod = res.group('module')
names = string.splitfields(res.group('imp'), ',')
try:
# recursively read the imported module