12.5.2 MultiFile Example
Keywords: lib

##
12.5.2 `MultiFile` Example

      import mimetools
      import multifile
      import StringIO

      def extract_mime_part_matching(stream, mimetype):
          """Return the first element in a multipart MIME message on stream
          matching mimetype."""

          msg = mimetools.Message(stream)
          msgtype = msg.gettype()
          params = msg.getplist()

          data = StringIO.StringIO()
          if msgtype[:10] == "multipart/":

              file = multifile.MultiFile(stream)
              file.push(msg.getparam("boundary"))
              while file.next():
                  submsg = mimetools.Message(file)
                  try:
                      data = StringIO.StringIO()
                      mimetools.decode(file, data, submsg.getencoding())
                  except ValueError:
                      continue
                  if submsg.gettype() == mimetype:
                      break
              file.pop()
          return data.getvalue()