code: def _ascii_split(self, fws, string, splitchars):
      # The RFC 2822 header folding algorithm is simple in principle but
      # complex in practice.  Lines may be folded any place where "folding
      # white space" appears by inserting a linesep character in front of the
      # FWS.  The complication is that not all spaces or tabs qualify as FWS,
      # and we are also supposed to prefer to break at "higher level
      # syntactic breaks".  We can't do either of these without intimate
      # knowledge of the structure of structured headers, which we don't have
      # here.  So the best we can do here is prefer to break at the specified
      # splitchars, and hope that we don't choose any spaces or tabs that
      # aren't legal FWS.  (This is at least better than the old algorithm,
      # where we would sometimes *introduce* FWS after a splitchar, or the
      # algorithm before that, where we would turn all white space runs into
      # single spaces or tabs.)
      parts = re.split("([" + FWS + "]+)", fws + string)
      if parts[0]:
          parts[:0] = [""]
      else:
          parts.pop(0)
      for fws, part in zip(*[iter(parts)] * 2):
          self._append_chunk(fws, part)
  
imports: import re
  import binascii
  import email.quoprimime
  import email.base64mime
  from email.errors import HeaderParseError
  from email import charset
label_desc: Use image node_id 8 for calling the _ValueFormatter obj's underlying member method code with example usage: obj._ascii_split(fws, string, splitchars) without return types