original_docstring: 
      Unpacking tuple assignments in for statements and expr_stmts.
      
docstring: Unpacking tuple assignments in for statements and expr_stmts.
docstring_tokens: Unpacking tuple assignments in for statements and expr_stmts .
code: def unpack_tuple_to_dict(context, types, exprlist):
      """
      Unpacking tuple assignments in for statements and expr_stmts.
      """
      if exprlist.type == 'name':
          return {exprlist.value: types}
      elif exprlist.type == 'atom' and exprlist.children[0] in ('(', '['):
          return unpack_tuple_to_dict(context, types, exprlist.children[1])
      elif exprlist.type in ('testlist', 'testlist_comp', 'exprlist',
                             'testlist_star_expr'):
          dct = {}
          parts = iter(exprlist.children[::2])
          n = 0
          for lazy_value in types.iterate(ContextualizedNode(context, exprlist)):
              n += 1
              try:
                  part = next(parts)
              except StopIteration:
                  analysis.add(context, 'value-error-too-many-values', part,
                               message="ValueError: too many values to unpack (expected %s)" % n)
              else:
                  dct.update(unpack_tuple_to_dict(context, lazy_value.infer(), part))
          has_parts = next(parts, None)
          if types and has_parts is not None:
              analysis.add(context, 'value-error-too-few-values', has_parts,
                           message="ValueError: need more than %s values to unpack" % n)
          return dct
      elif exprlist.type == 'power' or exprlist.type == 'atom_expr':
          # Something like ``arr[x], var = ...``.
          # This is something that is not yet supported, would also be difficult
          # to write into a dict.
          return {}
      elif exprlist.type == 'star_expr':  # `a, *b, c = x` type unpackings
          # Currently we're not supporting them.
          return {}
      raise NotImplementedError
code_tokens: def unpack_tuple_to_dict ( context , types , exprlist ) : if exprlist . type == 'name' : return { exprlist . value : types } elif exprlist . type == 'atom' and exprlist . children [ 0 ] in ( '(' , '[' ) : return unpack_tuple_to_dict ( context , types , exprlist . children [ 1 ] ) elif exprlist . type in ( 'testlist' , 'testlist_comp' , 'exprlist' , 'testlist_star_expr' ) : dct = { } parts = iter ( exprlist . children [ : : 2 ] ) n = 0 for lazy_value in types . iterate ( ContextualizedNode ( context , exprlist ) ) : n += 1 try : part = next ( parts ) except StopIteration : analysis . add ( context , 'value-error-too-many-values' , part , message = "ValueError: too many values to unpack (expected %s)" % n ) else : dct . update ( unpack_tuple_to_dict ( context , lazy_value . infer ( ) , part ) ) has_parts = next ( parts , None ) if types and has_parts is not None : analysis . add ( context , 'value-error-too-few-values' , has_parts , message = "ValueError: need more than %s values to unpack" % n ) return dct elif exprlist . type == 'power' or exprlist . type == 'atom_expr' : return { } elif exprlist . type == 'star_expr' : return { } raise NotImplementedError
short_docstring: Unpacking tuple assignments in for statements and expr_stmts.
short_docstring_tokens: Unpacking tuple assignments in for statements and expr_stmts .
comment: """
      Unpacking tuple assignments in for statements and expr_stmts.
      """$SEP$# Something like ``arr[x], var = ...``.$SEP$# This is something that is not yet supported, would also be difficult$SEP$# to write into a dict.$SEP$# `a, *b, c = x` type unpackings$SEP$# Currently we're not supporting them.