[Python-checkins] r57599 - in sandbox/trunk/2to3: README fixes/fix_idioms.py fixes/fix_type_equality.py tests/test_fixers.py

collin.winter python-checkins at python.org
Tue Aug 28 07:48:06 CEST 2007


Author: collin.winter
Date: Tue Aug 28 07:48:06 2007
New Revision: 57599

Added:
   sandbox/trunk/2to3/fixes/fix_idioms.py
      - copied, changed from r57598, sandbox/trunk/2to3/fixes/fix_type_equality.py
Removed:
   sandbox/trunk/2to3/fixes/fix_type_equality.py
Modified:
   sandbox/trunk/2to3/   (props changed)
   sandbox/trunk/2to3/README
   sandbox/trunk/2to3/tests/test_fixers.py
Log:
Rename fix_type_equality to fix_idioms.


Modified: sandbox/trunk/2to3/README
==============================================================================
--- sandbox/trunk/2to3/README	(original)
+++ sandbox/trunk/2to3/README	Tue Aug 28 07:48:06 2007
@@ -51,6 +51,9 @@
 
 * **fix_has_key** - "d.has_key(x)" -> "x in d".
 
+* **fix_idioms** - convert type(x) == T to isinstance(x, T), "while 1:" to
+  "while True:", etc.
+
 * **fix_imports** - Fix incompatible imports.
 
 * **fix_input** - "input()" -> "eval(input())" (PEP 3111).
@@ -83,8 +86,6 @@
 
 * **fix_tuple_params** - remove tuple parameters from function, method and
   lambda declarations (PEP 3113).
-
-* **fix_type_equality** - convert type(x) == T to isinstance(x, T), etc.
   
 * **fix_unicode** - convert, e.g., u"..." to "...", unicode(x) to str(x), etc.
   

Copied: sandbox/trunk/2to3/fixes/fix_idioms.py (from r57598, sandbox/trunk/2to3/fixes/fix_type_equality.py)
==============================================================================
--- sandbox/trunk/2to3/fixes/fix_type_equality.py	(original)
+++ sandbox/trunk/2to3/fixes/fix_idioms.py	Tue Aug 28 07:48:06 2007
@@ -1,11 +1,12 @@
-"""Change some type comparisons to isinstance() calls:
+"""Adjust some old Python 2 idioms to their modern counterparts.
 
-type(x) == T -> isinstance(x, T)
-type(x) is T -> isinstance(x, T)
-type(x) != T -> not isinstance(x, T)
-type(x) is not T -> not isinstance(x, T)
+* Change some type comparisons to isinstance() calls:
+    type(x) == T -> isinstance(x, T)
+    type(x) is T -> isinstance(x, T)
+    type(x) != T -> not isinstance(x, T)
+    type(x) is not T -> not isinstance(x, T)
 """
-# Author: Jacques Frechet
+# Author: Jacques Frechet, Collin Winter
 
 # Local imports
 from fixes import basefix
@@ -13,7 +14,7 @@
 
 CMP = "(n='!=' | '==' | 'is' | n=comp_op< 'is' 'not' >)"
 
-class FixTypeEquality(basefix.BaseFix):
+class FixIdioms(basefix.BaseFix):
 
     PATTERN = """
         comparison< power< 'type' trailer< '(' x=any ')' > > %s T=any > |

Deleted: /sandbox/trunk/2to3/fixes/fix_type_equality.py
==============================================================================
--- /sandbox/trunk/2to3/fixes/fix_type_equality.py	Tue Aug 28 07:48:06 2007
+++ (empty file)
@@ -1,33 +0,0 @@
-"""Change some type comparisons to isinstance() calls:
-
-type(x) == T -> isinstance(x, T)
-type(x) is T -> isinstance(x, T)
-type(x) != T -> not isinstance(x, T)
-type(x) is not T -> not isinstance(x, T)
-"""
-# Author: Jacques Frechet
-
-# Local imports
-from fixes import basefix
-from fixes.util import Call, Comma, Name, Node, syms
-
-CMP = "(n='!=' | '==' | 'is' | n=comp_op< 'is' 'not' >)"
-
-class FixTypeEquality(basefix.BaseFix):
-
-    PATTERN = """
-        comparison< power< 'type' trailer< '(' x=any ')' > > %s T=any > |
-        comparison< T=any %s power< 'type' trailer< '(' x=any ')' > > >
-    """ % (CMP, CMP)
-
-    def transform(self, node, results):
-        x = results['x'].clone() # The thing inside of type()
-        T = results['T'].clone() # The type being compared against
-        x.set_prefix('')
-        T.set_prefix(' ')
-        test = Call(Name('isinstance'), [x, Comma(), T])
-        if "n" in results:
-            test.set_prefix(" ")
-            test = Node(syms.not_test, [Name('not'), test])
-        test.set_prefix(node.get_prefix())
-        return test

Modified: sandbox/trunk/2to3/tests/test_fixers.py
==============================================================================
--- sandbox/trunk/2to3/tests/test_fixers.py	(original)
+++ sandbox/trunk/2to3/tests/test_fixers.py	Tue Aug 28 07:48:06 2007
@@ -2348,8 +2348,8 @@
         a = """int"""
         self.check(b, a)
 
-class Test_type_equality(FixerTestCase):
-    fixer = "type_equality"
+class Test_idioms(FixerTestCase):
+    fixer = "idioms"
 
     def test_eq_simple(self):
         b = """type(x) == T"""


More information about the Python-checkins mailing list