123456789101112131415161718192021222324252627282930313233343536373839 |
- """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 fixer_base
- class FixWsComma(fixer_base.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.prefix
- if prefix.isspace() and "\n" not in prefix:
- child.prefix = ""
- comma = True
- else:
- if comma:
- prefix = child.prefix
- if not prefix:
- child.prefix = " "
- comma = False
- return new
|