nodes: 0, module; 1, function_definition; 2, function_name:dumps; 3, parameters; 4, block; 5, identifier:props; 6, default_parameter; 7, default_parameter; 8, default_parameter; 9, default_parameter; 10, expression_statement; 11, expression_statement; 12, expression_statement; 13, return_statement; 14, identifier:separator; 15, string; 16, identifier:comments; 17, None; 18, identifier:timestamp; 19, True; 20, identifier:sort_keys; 21, False; 22, comment:"""
      Convert a series of key-value pairs to a text string in simple
      line-oriented ``.properties`` format.
  
      :param props: A mapping or iterable of ``(key, value)`` pairs to serialize.
          All keys and values in ``props`` must be text strings.  If
          ``sort_keys`` is `False`, the entries are output in iteration order.
      :param separator: The string to use for separating keys & values.  Only
          ``" "``, ``"="``, and ``":"`` (possibly with added whitespace) should
          ever be used as the separator.
      :type separator: text string
      :param comments: if non-`None`, ``comments`` will be output as a comment
          before any other content
      :type comments: text string or `None`
      :param timestamp: If neither `None` nor `False`, a timestamp in the form of
          ``Mon Sep 02 14:00:54 EDT 2016`` is output as a comment after
          ``comments`` (if any) and before the key-value pairs.  If ``timestamp``
          is `True`, the current date & time is used.  If it is a number, it is
          converted from seconds since the epoch to local time.  If it is a
          `datetime.datetime` object, its value is used directly, with naïve
          objects assumed to be in the local timezone.
      :type timestamp: `None`, `bool`, number, or `datetime.datetime`
      :param bool sort_keys: if true, the elements of ``props`` are sorted
          lexicographically by key in the output
      :rtype: text string
      """; 23, assignment; 24, call; 25, call; 26, string_content:=; 27, identifier:s; 28, call; 29, identifier:dump; 30, argument_list; 31, attribute; 32, argument_list; 33, identifier:StringIO; 34, argument_list; 35, identifier:props; 36, identifier:s; 37, keyword_argument; 38, keyword_argument; 39, keyword_argument; 40, keyword_argument; 41, identifier:s; 42, identifier:getvalue; 43, identifier:separator; 44, identifier:separator; 45, identifier:comments; 46, identifier:comments; 47, identifier:timestamp; 48, identifier:timestamp; 49, identifier:sort_keys; 50, identifier:sort_keys
code: def dumps(props, separator='=', comments=None, timestamp=True, sort_keys=False):
      """
      Convert a series of key-value pairs to a text string in simple
      line-oriented ``.properties`` format.
  
      :param props: A mapping or iterable of ``(key, value)`` pairs to serialize.
          All keys and values in ``props`` must be text strings.  If
          ``sort_keys`` is `False`, the entries are output in iteration order.
      :param separator: The string to use for separating keys & values.  Only
          ``" "``, ``"="``, and ``":"`` (possibly with added whitespace) should
          ever be used as the separator.
      :type separator: text string
      :param comments: if non-`None`, ``comments`` will be output as a comment
          before any other content
      :type comments: text string or `None`
      :param timestamp: If neither `None` nor `False`, a timestamp in the form of
          ``Mon Sep 02 14:00:54 EDT 2016`` is output as a comment after
          ``comments`` (if any) and before the key-value pairs.  If ``timestamp``
          is `True`, the current date & time is used.  If it is a number, it is
          converted from seconds since the epoch to local time.  If it is a
          `datetime.datetime` object, its value is used directly, with naïve
          objects assumed to be in the local timezone.
      :type timestamp: `None`, `bool`, number, or `datetime.datetime`
      :param bool sort_keys: if true, the elements of ``props`` are sorted
          lexicographically by key in the output
      :rtype: text string
      """
      s = StringIO()
      dump(props, s, separator=separator, comments=comments, timestamp=timestamp,
           sort_keys=sort_keys)
      return s.getvalue()