cpython/Lib/lib2to3/fixes/fix_long.py
Benjamin Peterson e607823af5 Merged revisions 63661,63666,63695,63711,63729,63769,63790,63880,63886 via svnmerge from
svn+ssh://pythondev@svn.python.org/sandbox/trunk/2to3/lib2to3

........
  r63661 | georg.brandl | 2008-05-26 05:26:20 -0500 (Mon, 26 May 2008) | 2 lines

  Add import fixes for dbm package.
........
  r63666 | georg.brandl | 2008-05-26 05:49:09 -0500 (Mon, 26 May 2008) | 2 lines

  Add xmlrpc package fixes.
........
  r63695 | georg.brandl | 2008-05-26 10:14:33 -0500 (Mon, 26 May 2008) | 2 lines

  Add fixer entries for http package.
........
  r63711 | benjamin.peterson | 2008-05-26 13:43:51 -0500 (Mon, 26 May 2008) | 2 lines

  add import mapping for test.test_support -> test.support
........
  r63729 | benjamin.peterson | 2008-05-26 16:31:03 -0500 (Mon, 26 May 2008) | 2 lines

  mapping for commands module -> subprocess
........
  r63769 | brett.cannon | 2008-05-29 00:13:13 -0500 (Thu, 29 May 2008) | 1 line

  Fixer for UserString.UserString over to the collections module.
........
  r63790 | brett.cannon | 2008-05-29 14:13:51 -0500 (Thu, 29 May 2008) | 4 lines

  Add a fixer for UserList.

  Closes issue #2878. Thanks to Quentin Gallet-Gilles for the patch.
........
  r63880 | collin.winter | 2008-06-01 18:09:38 -0500 (Sun, 01 Jun 2008) | 6 lines

  Move lib2to3/fixes/{basefix,util}.py down to lib2to3/.

  This is step 1 of turning lib2to3/ into a general-purpose refactoring
  library, reusable by other projects.
........
  r63886 | collin.winter | 2008-06-01 22:15:01 -0500 (Sun, 01 Jun 2008) | 5 lines

  Allow refactoring tools to specify a directory for fixer modules.

  This is step 2 of turning lib2to3/ into a general-purpose refactoring
  library, reusable by other projects. Step 1: r63880.
........
2008-06-15 02:31:05 +00:00

35 lines
937 B
Python

# Copyright 2006 Google, Inc. All Rights Reserved.
# Licensed to PSF under a Contributor Agreement.
"""Fixer that turns 'long' into 'int' everywhere.
This also strips the trailing 'L' or 'l' from long loterals.
"""
# Local imports
from .. import pytree
from .. import fixer_base
from ..fixer_util import Name, Number
class FixLong(fixer_base.BaseFix):
PATTERN = """
(long_type = 'long' | number = NUMBER)
"""
static_long = Name("long")
static_int = Name("int")
def transform(self, node, results):
long_type = results.get("long_type")
number = results.get("number")
new = None
if long_type:
assert node == self.static_long, node
new = self.static_int.clone()
if number and node.value[-1] in ("l", "L"):
new = Number(node.value[:-1])
if new is not None:
new.set_prefix(node.get_prefix())
return new