def create_document(self, meta, type=None): if meta.content_hash: q = Document.all() if meta.foreign_id: q = q.filter(Document.foreign_id == meta.foreign_id) else: q = q.filter(Document.content_hash == meta.content_hash) q = q.filter(Document.source_id == self.source_id) document = q.first() if document is None: document = Document() document.source_id = self.source_id document.meta = meta document.type = type or self.DOCUMENT_TYPE db.session.add(document) db.session.flush() return document