diff options
Diffstat (limited to 'Lib/lib2to3/fixes/fix_numliterals.py')
-rw-r--r-- | Lib/lib2to3/fixes/fix_numliterals.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/Lib/lib2to3/fixes/fix_numliterals.py b/Lib/lib2to3/fixes/fix_numliterals.py new file mode 100644 index 0000000..f88be60 --- /dev/null +++ b/Lib/lib2to3/fixes/fix_numliterals.py @@ -0,0 +1,27 @@ +"""Fixer that turns 1L into 1, 0755 into 0o755. +""" +# Copyright 2007 Georg Brandl. +# Licensed to PSF under a Contributor Agreement. + +# Local imports +from ..pgen2 import token +from .import basefix +from .util import Number, set + + +class FixNumliterals(basefix.BaseFix): + # This is so simple that we don't need the pattern compiler. + + def match(self, node): + # Override + return (node.type == token.NUMBER and + (node.value.startswith("0") or node.value[-1] in "Ll")) + + def transform(self, node, results): + val = node.value + if val[-1] in 'Ll': + val = val[:-1] + elif val.startswith('0') and val.isdigit() and len(set(val)) > 1: + val = "0o" + val[1:] + + return Number(val, prefix=node.get_prefix()) |