Martin v. Löwis | ef04c44 | 2008-03-19 05:04:44 +0000 | [diff] [blame] | 1 | # Copyright 2006 Georg Brandl. |
| 2 | # Licensed to PSF under a Contributor Agreement. |
| 3 | |
| 4 | """Fixer for intern(). |
| 5 | |
| 6 | intern(s) -> sys.intern(s)""" |
| 7 | |
| 8 | # Local imports |
Benjamin Peterson | df6dc8f | 2008-06-15 02:57:40 +0000 | [diff] [blame] | 9 | from .. import fixer_base |
Benjamin Peterson | 448e81b | 2012-12-07 22:44:10 -0500 | [diff] [blame] | 10 | from ..fixer_util import ImportAndCall, touch_import |
Martin v. Löwis | ef04c44 | 2008-03-19 05:04:44 +0000 | [diff] [blame] | 11 | |
| 12 | |
Benjamin Peterson | df6dc8f | 2008-06-15 02:57:40 +0000 | [diff] [blame] | 13 | class FixIntern(fixer_base.BaseFix): |
Benjamin Peterson | f37eb3a | 2010-10-14 23:00:04 +0000 | [diff] [blame] | 14 | BM_compatible = True |
| 15 | order = "pre" |
Martin v. Löwis | ef04c44 | 2008-03-19 05:04:44 +0000 | [diff] [blame] | 16 | |
| 17 | PATTERN = """ |
| 18 | power< 'intern' |
| 19 | trailer< lpar='(' |
| 20 | ( not(arglist | argument<any '=' any>) obj=any |
| 21 | | obj=arglist<(not argument<any '=' any>) any ','> ) |
| 22 | rpar=')' > |
| 23 | after=any* |
| 24 | > |
| 25 | """ |
| 26 | |
| 27 | def transform(self, node, results): |
Benjamin Peterson | 448e81b | 2012-12-07 22:44:10 -0500 | [diff] [blame] | 28 | names = ('sys', 'intern') |
| 29 | new = ImportAndCall(node, results, names) |
Benjamin Peterson | 0b24b3d | 2008-12-16 03:57:54 +0000 | [diff] [blame] | 30 | touch_import(None, 'sys', node) |
Martin v. Löwis | ef04c44 | 2008-03-19 05:04:44 +0000 | [diff] [blame] | 31 | return new |