code: def close(self):
          
          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():
              defect = errors.MultipartInvariantViolationDefect()
              self.policy.handle_defect(root, defect)
          return root
docs: Parse all remaining data and return the root message object.