code: def join_key_value(key, value, separator='='):
      r
      # Escapes `key` and `value` the same way as java.util.Properties.store()
      return escape(key) \
          + separator \
          + re.sub(r'^ +', lambda m: r'\ ' * m.end(), _base_escape(value))
docs: r"""
      Join a key and value together into a single line suitable for adding to a
      simple line-oriented ``.properties`` file.  No trailing newline is added.
  
      >>> join_key_value('possible separators', '= : space')
      'possible\\ separators=\\= \\: space'
  
      :param key: the key
      :type key: text string
      :param value: the value
      :type value: text string
      :param separator: the string to use for separating the key & value.  Only
          ``" "``, ``"="``, and ``":"`` (possibly with added whitespace) should
          ever be used as the separator.
      :type separator: text string
      :rtype: text string