[Checkins] SVN: zope.fixers/trunk/zope/fixers/fix_implements.py Cleanup
Lennart Regebro
regebro at gmail.com
Mon Apr 6 13:19:40 EDT 2009
Log message for revision 98944:
Cleanup
Changed:
U zope.fixers/trunk/zope/fixers/fix_implements.py
-=-
Modified: zope.fixers/trunk/zope/fixers/fix_implements.py
===================================================================
--- zope.fixers/trunk/zope/fixers/fix_implements.py 2009-04-06 17:16:32 UTC (rev 98943)
+++ zope.fixers/trunk/zope/fixers/fix_implements.py 2009-04-06 17:19:39 UTC (rev 98944)
@@ -38,6 +38,8 @@
import_from< 'from' dotted_name< 'zope' > 'import' import_as_name< name='interface' 'as' rename=(any) any*> >
|
import_from< 'from' 'zope' 'import' import_as_name< 'interface' 'as' interface_rename=(any) > >
+ |
+ import_name< 'import' dotted_name< interface_full=('zope' '.' 'interface') > >
"""
CLASS_PATTERN = """
@@ -48,10 +50,6 @@
simple_stmt< power< old_statement=(%s) trailer < '(' any* ')' > > any* >
"""
- TEST_PATTERN = """
- import_name< 'import' dotted_name< interface_full=('zope' '.' 'interface') > >
- """
-
fixups = []
def should_skip(self, node):
@@ -60,13 +58,7 @@
return not ('zope' in module and 'interface' in module)
def compile_pattern(self):
- """Compiles self.PATTERN into self.pattern.
-
- Subclass may override if it doesn't want to use
- self.{pattern,PATTERN} in .match().
- """
self.named_import_pattern = PatternCompiler().compile_pattern(self.IMPORT_PATTERN)
- self.test_pattern = PatternCompiler().compile_pattern(self.TEST_PATTERN)
def start_tree(self, tree, filename):
self.matches = ["'implements'",
@@ -79,13 +71,14 @@
results = {"node": node}
if self.named_import_pattern.match(node, results):
return results
- if self.test_pattern.match(node, results):
- return results
for name in self.matches:
+ # Now match clases on all import variants found:
pattern = PatternCompiler().compile_pattern(self.CLASS_PATTERN % name)
if pattern.match(node, results):
return results
+
+ # And lastly on all actual calls to implements:
pattern = PatternCompiler().compile_pattern(self.IMPLEMENTS_PATTERN % name)
if pattern.match(node, results):
return results
More information about the Checkins
mailing list