From c6ac8a78f668123ec5c2c3d5a824e7886e9a1c60 Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Wed, 24 Oct 2001 20:22:40 +0000 Subject: [PATCH] SF bug #473525 pyclbr broken As the comments in the module implied, pyclbr was easily confused by "strange stuff" inside single- (but not triple-) quoted strings. It isn't anymore. Its behavior remains flaky in the presence of nested functions and classes, though. Bugfix candidate. --- Lib/pyclbr.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Lib/pyclbr.py b/Lib/pyclbr.py index 95479a72a4..31fad46219 100644 --- a/Lib/pyclbr.py +++ b/Lib/pyclbr.py @@ -29,11 +29,8 @@ are recognized and imported modules are scanned as well, this shouldn't happen often. BUGS -- Continuation lines are not dealt with at all. -- While triple-quoted strings won't confuse it, lines that look like - def, class, import or "from ... import" stmts inside backslash-continued - single-quoted strings are treated like code. The expense of stopping - that isn't worth it. +- Continuation lines are not dealt with at all, except inside strings. +- Nested classes and functions can confuse it. - Code that doesn't pass tabnanny or python -t will confuse it, unless you set the module TABWIDTH vrbl (default 8) to the correct tab width for the file. @@ -75,6 +72,10 @@ _getnext = re.compile(r""" [^'\\]* )* ''' + + | " [^"\\\n]* (?: \\. [^"\\\n]*)* " + + | ' [^'\\\n]* (?: \\. [^'\\\n]*)* ' ) | (?P -- 2.40.0