def Visit_dictsetmaker()

in tools/yapf/yapf/yapflib/subtype_assigner.py [0:0]


  def Visit_dictsetmaker(self, node):  # pylint: disable=invalid-name
    # dictsetmaker ::= (test ':' test (comp_for |
    #                                   (',' test ':' test)* [','])) |
    #                  (test (comp_for | (',' test)* [',']))
    for child in node.children:
      self.Visit(child)

    comp_for = False
    dict_maker = False

    for child in node.children:
      if pytree_utils.NodeName(child) == 'comp_for':
        comp_for = True
        _AppendFirstLeafTokenSubtype(child,
                                     format_token.Subtype.DICT_SET_GENERATOR)
      elif pytree_utils.NodeName(child) in ('COLON', 'DOUBLESTAR'):
        dict_maker = True

    if not comp_for and dict_maker:
      last_was_colon = False
      for child in node.children:
        if dict_maker:
          if pytree_utils.NodeName(child) == 'DOUBLESTAR':
            _AppendFirstLeafTokenSubtype(child,
                                         format_token.Subtype.KWARGS_STAR_STAR)
          if last_was_colon:
            if style.Get('INDENT_DICTIONARY_VALUE'):
              _InsertPseudoParentheses(child)
            else:
              _AppendFirstLeafTokenSubtype(
                  child, format_token.Subtype.DICTIONARY_VALUE)
          elif (
              child is not None and
              (isinstance(child, pytree.Node) or
               (not child.value.startswith('#') and child.value not in '{:,'))):
            # Mark the first leaf of a key entry as a DICTIONARY_KEY. We
            # normally want to split before them if the dictionary cannot exist
            # on a single line.
            _AppendFirstLeafTokenSubtype(child,
                                         format_token.Subtype.DICTIONARY_KEY)
            _AppendSubtypeRec(child, format_token.Subtype.DICTIONARY_KEY_PART)
        last_was_colon = pytree_utils.NodeName(child) == 'COLON'