+++ /dev/null
-# Copyright 2006 Georg Brandl.\r
-# Licensed to PSF under a Contributor Agreement.\r
-\r
-"""Fixer for intern().\r
-\r
-intern(s) -> sys.intern(s)"""\r
-\r
-# Local imports\r
-from .. import pytree\r
-from .. import fixer_base\r
-from ..fixer_util import Name, Attr, touch_import\r
-\r
-\r
-class FixIntern(fixer_base.BaseFix):\r
- BM_compatible = True\r
- order = "pre"\r
-\r
- PATTERN = """\r
- power< 'intern'\r
- trailer< lpar='('\r
- ( not(arglist | argument<any '=' any>) obj=any\r
- | obj=arglist<(not argument<any '=' any>) any ','> )\r
- rpar=')' >\r
- after=any*\r
- >\r
- """\r
-\r
- def transform(self, node, results):\r
- syms = self.syms\r
- obj = results["obj"].clone()\r
- if obj.type == syms.arglist:\r
- newarglist = obj.clone()\r
- else:\r
- newarglist = pytree.Node(syms.arglist, [obj.clone()])\r
- after = results["after"]\r
- if after:\r
- after = [n.clone() for n in after]\r
- new = pytree.Node(syms.power,\r
- Attr(Name(u"sys"), Name(u"intern")) +\r
- [pytree.Node(syms.trailer,\r
- [results["lpar"].clone(),\r
- newarglist,\r
- results["rpar"].clone()])] + after)\r
- new.prefix = node.prefix\r
- touch_import(None, u'sys', node)\r
- return new\r