def yield_documents(self, file_filter=None): """Yields set of documents. :param str file_filter: Optional file filter. :returns: Set of file paths. :rtype: generator """ for file_info in self.yield_files(file_filter): yield extend_doc(read_doc(file_info.path))
def write(self, doc): """Writes a document to the archive. :param object doc: Document to be written. :returns: Pointer to archive file. :rtype: pyesdoc.archive.ArchiveFileInfo """ # Ensure document is extended. extend_doc(doc) # Set file path. fname = "{}_{}_{}.{}".format(doc.meta.type, doc.meta.id, doc.meta.version, DEFAULT_ENCODING) fpath = os.path.join(self.path, fname) # Write to file system. with open(fpath, 'w') as fstream: fstream.write(pyesdoc.encode(doc, DEFAULT_ENCODING)) # Return file wrapper. return ArchiveFileInfo(self, fpath)