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)