parameters: (header, charset='iso-8859-1', keep_eols=False,
                    maxlinelen=76, eol=NL)
return_statement: return joiner.join(lines)
docstring: Encode a single header line with Base64 encoding in a given charset.
  
      Defined in RFC 2045, this Base64 encoding is identical to normal Base64
      encoding, except that each line must be intelligently wrapped (respecting
      the Base64 encoding), and subsequent lines must start with a space.
  
      charset names the character set to use to encode the header.  It defaults
      to iso-8859-1.
  
      End-of-line characters (\\r, \\n, \\r\\n) will be automatically converted
      to the canonical email line separator \\r\\n unless the keep_eols
      parameter is True (the default is False).
  
      Each line of the header will be terminated in the value of eol, which
      defaults to "\\n".  Set this to "\\r\\n" if you are using the result of
      this function directly in email.
  
      The resulting string will be in the form:
  
      "=?charset?b?WW/5ciBtYXp66XLrIHf8eiBhIGhhbXBzdGHuciBBIFlv+XIgbWF6euly?=\\n
        =?charset?b?6yB3/HogYSBoYW1wc3Rh7nIgQkMgWW/5ciBtYXp66XLrIHf8eiBhIGhh?="
  
      with each line wrapped at, at most, maxlinelen characters (defaults to 76
      characters).
docstring_summary: Encode a single header line with Base64 encoding in a given charset.
docstring_tokens: Encode a single header line with Base64 encoding in a given charset .
function: def header_encode(header, charset='iso-8859-1', keep_eols=False,
                    maxlinelen=76, eol=NL):
      """Encode a single header line with Base64 encoding in a given charset.
  
      Defined in RFC 2045, this Base64 encoding is identical to normal Base64
      encoding, except that each line must be intelligently wrapped (respecting
      the Base64 encoding), and subsequent lines must start with a space.
  
      charset names the character set to use to encode the header.  It defaults
      to iso-8859-1.
  
      End-of-line characters (\\r, \\n, \\r\\n) will be automatically converted
      to the canonical email line separator \\r\\n unless the keep_eols
      parameter is True (the default is False).
  
      Each line of the header will be terminated in the value of eol, which
      defaults to "\\n".  Set this to "\\r\\n" if you are using the result of
      this function directly in email.
  
      The resulting string will be in the form:
  
      "=?charset?b?WW/5ciBtYXp66XLrIHf8eiBhIGhhbXBzdGHuciBBIFlv+XIgbWF6euly?=\\n
        =?charset?b?6yB3/HogYSBoYW1wc3Rh7nIgQkMgWW/5ciBtYXp66XLrIHf8eiBhIGhh?="
  
      with each line wrapped at, at most, maxlinelen characters (defaults to 76
      characters).
      """
      # Return empty headers unchanged
      if not header:
          return header
  
      if not keep_eols:
          header = fix_eols(header)
  
      # Base64 encode each line, in encoded chunks no greater than maxlinelen in
      # length, after the RFC chrome is added in.
      base64ed = []
      max_encoded = maxlinelen - len(charset) - MISC_LEN
      max_unencoded = max_encoded * 3 // 4
  
      for i in range(0, len(header), max_unencoded):
          base64ed.append(b2a_base64(header[i:i+max_unencoded]))
  
      # Now add the RFC chrome to each encoded chunk
      lines = []
      for line in base64ed:
          # Ignore the last character of each line if it is a newline
          if line.endswith(NL):
              line = line[:-1]
          # Add the chrome
          lines.append('=?%s?b?%s?=' % (charset, line))
      # Glue the lines together and return it.  BAW: should we be able to
      # specify the leading whitespace in the joiner?
      joiner = eol + ' '
      return joiner.join(lines)
function_tokens: def header_encode ( header , charset = 'iso-8859-1' , keep_eols = False , maxlinelen = 76 , eol = NL ) : # Return empty headers unchanged if not header : return header if not keep_eols : header = fix_eols ( header ) # Base64 encode each line, in encoded chunks no greater than maxlinelen in # length, after the RFC chrome is added in. base64ed = [ ] max_encoded = maxlinelen - len ( charset ) - MISC_LEN max_unencoded = max_encoded * 3 // 4 for i in range ( 0 , len ( header ) , max_unencoded ) : base64ed . append ( b2a_base64 ( header [ i : i + max_unencoded ] ) ) # Now add the RFC chrome to each encoded chunk lines = [ ] for line in base64ed : # Ignore the last character of each line if it is a newline if line . endswith ( NL ) : line = line [ : - 1 ] # Add the chrome lines . append ( '=?%s?b?%s?=' % ( charset , line ) ) # Glue the lines together and return it.  BAW: should we be able to # specify the leading whitespace in the joiner? joiner = eol + ' ' return joiner . join ( lines )