code: def __inst_doc(self, docid, doc_type_name=None):
          
          doc = None
          docpath = self.fs.join(self.rootdir, docid)
          if not self.fs.exists(docpath):
              return None
          if doc_type_name is not None:
              # if we already know the doc type name
              for (is_doc_type, doc_type_name_b, doc_type) in DOC_TYPE_LIST:
                  if (doc_type_name_b == doc_type_name):
                      doc = doc_type(self.fs, docpath, docid)
              if not doc:
                  logger.warning(
                      ("Warning: unknown doc type found in the index: %s") %
                      doc_type_name
                  )
          # otherwise we guess the doc type
          if not doc:
              for (is_doc_type, doc_type_name, doc_type) in DOC_TYPE_LIST:
                  if is_doc_type(self.fs, docpath):
                      doc = doc_type(self.fs, docpath, docid)
                      break
          if not doc:
              logger.warning("Warning: unknown doc type for doc '%s'" % docid)
  
          return doc
docs: Instantiate a document based on its document id.
          The information are taken from the whoosh index.