[Python-checkins] r55501 - in sandbox/trunk/2to3: fixes/fix_callable.py tests/test_fixers.py
neal.norwitz
python-checkins at python.org
Tue May 22 07:49:06 CEST 2007
Author: neal.norwitz
Date: Tue May 22 07:49:04 2007
New Revision: 55501
Modified:
sandbox/trunk/2to3/fixes/fix_callable.py
sandbox/trunk/2to3/tests/test_fixers.py
Log:
Fix XXXs by tightening the pattern and add a few test cases.
Modified: sandbox/trunk/2to3/fixes/fix_callable.py
==============================================================================
--- sandbox/trunk/2to3/fixes/fix_callable.py (original)
+++ sandbox/trunk/2to3/fixes/fix_callable.py Tue May 22 07:49:04 2007
@@ -12,11 +12,16 @@
class FixCallable(basefix.BaseFix):
- # XXX(nnorwitz): need to ignore: callable(*args)
- # XXX(nnorwitz): or use of keywords, it could signify doing a callback,
- # not using the builtin callable().
+ # Ignore callable(*args) or use of keywords.
+ # Either could be a hint that the builtin callable() is not being used.
PATTERN = """
- power< 'callable' trailer< '(' func=any ')' > >
+ power< 'callable'
+ trailer< lpar='('
+ ( not(arglist | argument<any '=' any>) func=any
+ | func=arglist<(not argument<any '=' any>) any ','> )
+ rpar=')' >
+ after=any*
+ >
"""
def transform(self, node):
Modified: sandbox/trunk/2to3/tests/test_fixers.py
==============================================================================
--- sandbox/trunk/2to3/tests/test_fixers.py (original)
+++ sandbox/trunk/2to3/tests/test_fixers.py Tue May 22 07:49:04 2007
@@ -1791,6 +1791,16 @@
a = """hasattr(x, '__call__')"""
self.check(b, a)
+ def test_callable_should_not_change(self):
+ a = """callable(*x)"""
+ self.check(a, a)
+
+ a = """callable(x, y)"""
+ self.check(a, a)
+
+ a = """callable(x, kw=y)"""
+ self.check(a, a)
+
if __name__ == "__main__":
import __main__
More information about the Python-checkins
mailing list