mirror of
https://github.com/python/cpython.git
synced 2025-07-25 04:04:13 +00:00

svn+ssh://pythondev@svn.python.org/python/trunk ........ r61596 | martin.v.loewis | 2008-03-18 23:43:46 -0500 (Di, 18 Mär 2008) | 2 lines Import lib2to3. ........ r61597 | martin.v.loewis | 2008-03-18 23:58:04 -0500 (Di, 18 Mär 2008) | 3 lines Initialized merge tracking via "svnmerge" with revisions "1-61595" from svn+ssh://pythondev@svn.python.org/sandbox/trunk/2to3/lib2to3 ........
39 lines
974 B
Python
39 lines
974 B
Python
"""Fixer that changes 'a ,b' into 'a, b'.
|
|
|
|
This also changes '{a :b}' into '{a: b}', but does not touch other
|
|
uses of colons. It does not touch other uses of whitespace.
|
|
|
|
"""
|
|
|
|
from .. import pytree
|
|
from ..pgen2 import token
|
|
from .import basefix
|
|
|
|
class FixWsComma(basefix.BaseFix):
|
|
|
|
explicit = True # The user must ask for this fixers
|
|
|
|
PATTERN = """
|
|
any<(not(',') any)+ ',' ((not(',') any)+ ',')* [not(',') any]>
|
|
"""
|
|
|
|
COMMA = pytree.Leaf(token.COMMA, ",")
|
|
COLON = pytree.Leaf(token.COLON, ":")
|
|
SEPS = (COMMA, COLON)
|
|
|
|
def transform(self, node, results):
|
|
new = node.clone()
|
|
comma = False
|
|
for child in new.children:
|
|
if child in self.SEPS:
|
|
prefix = child.get_prefix()
|
|
if prefix.isspace() and "\n" not in prefix:
|
|
child.set_prefix("")
|
|
comma = True
|
|
else:
|
|
if comma:
|
|
prefix = child.get_prefix()
|
|
if not prefix:
|
|
child.set_prefix(" ")
|
|
comma = False
|
|
return new
|