code: def read(self, document, iface, *args, **kwargs):
          
          try:
              document = IReadableDocument(document)
              mime_type = document.mime_type
              reader = self.lookup_reader(mime_type, iface)
              if not reader:
                  msg = ("No adapter found to read object %s from %s document"
                         % (iface.__class__.__name__, mime_type))
                  raise NoReaderFoundError(msg)
              return reader.read(document, *args, **kwargs)
          except:
              return defer.fail(Failure())
docs: Returns a Deferred that fire the read object.