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.
diff --git a/Lib/pyclbr.py b/Lib/pyclbr.py
index 95479a7..31fad46 100644
--- a/Lib/pyclbr.py
+++ b/Lib/pyclbr.py
@@ -29,11 +29,8 @@
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 @@
[^'\\]*
)*
'''
+
+ | " [^"\\\n]* (?: \\. [^"\\\n]*)* "
+
+ | ' [^'\\\n]* (?: \\. [^'\\\n]*)* '
)
| (?P<Method>