blob: fb2973c24252a0fe51bf11ef51afc85796a103f9 [file] [log] [blame]
Martin v. Löwisef04c442008-03-19 05:04:44 +00001# Copyright 2006 Georg Brandl.
2# Licensed to PSF under a Contributor Agreement.
3
4"""Fixer for intern().
5
6intern(s) -> sys.intern(s)"""
7
8# Local imports
Benjamin Petersondf6dc8f2008-06-15 02:57:40 +00009from .. import fixer_base
Benjamin Peterson448e81b2012-12-07 22:44:10 -050010from ..fixer_util import ImportAndCall, touch_import
Martin v. Löwisef04c442008-03-19 05:04:44 +000011
12
Benjamin Petersondf6dc8f2008-06-15 02:57:40 +000013class FixIntern(fixer_base.BaseFix):
Benjamin Petersonf37eb3a2010-10-14 23:00:04 +000014 BM_compatible = True
15 order = "pre"
Martin v. Löwisef04c442008-03-19 05:04:44 +000016
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 Peterson448e81b2012-12-07 22:44:10 -050028 names = ('sys', 'intern')
29 new = ImportAndCall(node, results, names)
Benjamin Peterson0b24b3d2008-12-16 03:57:54 +000030 touch_import(None, 'sys', node)
Martin v. Löwisef04c442008-03-19 05:04:44 +000031 return new