def close(self):
        self._input.close()
        self._call_parse()
        root = self._pop_message()
        if root.get_content_maintype(
        ) == 'multipart' and not root.is_multipart():
            root.defects.append(Errors.MultipartInvariantViolationDefect())

        return root
 def close(self):
     """Parse all remaining data and return the root message object."""
     self._input.close()
     self._call_parse()
     root = self._pop_message()
     assert not self._msgstack
     # Look for final set of defects
     if root.get_content_maintype() == 'multipart' \
            and not root.is_multipart():
         root.defects.append(Errors.MultipartInvariantViolationDefect())
     return root