summaryrefslogtreecommitdiffstats
path: root/Lib/lib2to3
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/lib2to3')
-rw-r--r--Lib/lib2to3/fixes/fix_callable.py37
-rw-r--r--Lib/lib2to3/tests/test_fixers.py92
2 files changed, 0 insertions, 129 deletions
diff --git a/Lib/lib2to3/fixes/fix_callable.py b/Lib/lib2to3/fixes/fix_callable.py
deleted file mode 100644
index 4c92b9c..0000000
--- a/Lib/lib2to3/fixes/fix_callable.py
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 2007 Google, Inc. All Rights Reserved.
-# Licensed to PSF under a Contributor Agreement.
-
-"""Fixer for callable().
-
-This converts callable(obj) into isinstance(obj, collections.Callable), adding a
-collections import if needed."""
-
-# Local imports
-from lib2to3 import fixer_base
-from lib2to3.fixer_util import Call, Name, String, Attr, touch_import
-
-class FixCallable(fixer_base.BaseFix):
- BM_compatible = True
-
- order = "pre"
-
- # Ignore callable(*args) or use of keywords.
- # Either could be a hint that the builtin callable() is not being used.
- PATTERN = """
- 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, results):
- func = results['func']
-
- touch_import(None, 'collections', node=node)
-
- args = [func.clone(), String(', ')]
- args.extend(Attr(Name('collections'), Name('Callable')))
- return Call(Name('isinstance'), args, prefix=node.prefix)
diff --git a/Lib/lib2to3/tests/test_fixers.py b/Lib/lib2to3/tests/test_fixers.py
index 06b0033..e69cf32 100644
--- a/Lib/lib2to3/tests/test_fixers.py
+++ b/Lib/lib2to3/tests/test_fixers.py
@@ -2920,98 +2920,6 @@ class Test_unicode(FixerTestCase):
a = f + r"""r'\\\u20ac\U0001d121\\u20ac'"""
self.check(b, a)
-class Test_callable(FixerTestCase):
- fixer = "callable"
-
- def test_prefix_preservation(self):
- b = """callable( x)"""
- a = """import collections\nisinstance( x, collections.Callable)"""
- self.check(b, a)
-
- b = """if callable(x): pass"""
- a = """import collections
-if isinstance(x, collections.Callable): pass"""
- self.check(b, a)
-
- def test_callable_call(self):
- b = """callable(x)"""
- a = """import collections\nisinstance(x, collections.Callable)"""
- self.check(b, a)
-
- def test_global_import(self):
- b = """
-def spam(foo):
- callable(foo)"""[1:]
- a = """
-import collections
-def spam(foo):
- isinstance(foo, collections.Callable)"""[1:]
- self.check(b, a)
-
- b = """
-import collections
-def spam(foo):
- callable(foo)"""[1:]
- # same output if it was already imported
- self.check(b, a)
-
- b = """
-from collections import *
-def spam(foo):
- callable(foo)"""[1:]
- a = """
-from collections import *
-import collections
-def spam(foo):
- isinstance(foo, collections.Callable)"""[1:]
- self.check(b, a)
-
- b = """
-do_stuff()
-do_some_other_stuff()
-assert callable(do_stuff)"""[1:]
- a = """
-import collections
-do_stuff()
-do_some_other_stuff()
-assert isinstance(do_stuff, collections.Callable)"""[1:]
- self.check(b, a)
-
- b = """
-if isinstance(do_stuff, Callable):
- assert callable(do_stuff)
- do_stuff(do_stuff)
- if not callable(do_stuff):
- exit(1)
- else:
- assert callable(do_stuff)
-else:
- assert not callable(do_stuff)"""[1:]
- a = """
-import collections
-if isinstance(do_stuff, Callable):
- assert isinstance(do_stuff, collections.Callable)
- do_stuff(do_stuff)
- if not isinstance(do_stuff, collections.Callable):
- exit(1)
- else:
- assert isinstance(do_stuff, collections.Callable)
-else:
- assert not isinstance(do_stuff, collections.Callable)"""[1:]
- self.check(b, a)
-
- def test_callable_should_not_change(self):
- a = """callable(*x)"""
- self.unchanged(a)
-
- a = """callable(x, y)"""
- self.unchanged(a)
-
- a = """callable(x, kw=y)"""
- self.unchanged(a)
-
- a = """callable()"""
- self.unchanged(a)
class Test_filter(FixerTestCase):
fixer = "filter"