def main(): options, args = parseCommandLine() api = MongoStampedAPI() matcher = EntityMatcher(api, options) keep = Entity() keep.entity_id = args[-1] remove = [] for arg in args[:-1]: entity = Entity() entity.entity_id = arg remove.append(entity) matcher.resolveDuplicates(keep, remove, override=options.force)
class MergeEntitySink(AEntitySink): def __init__(self): AEntitySink.__init__(self, "MergeEntitySink") self.stampedAPI = MongoStampedAPI() self.matcher = EntityMatcher(self.stampedAPI) self.matcher.options['merge'] = True def _processItem(self, item): assert isinstance(item, Entity) utils.log("merging item %s" % (item.title, )) self.matcher.addOne(item) def _processItems(self, items): for item in items: self._processItem(item)
def __init__(self): AEntitySink.__init__(self, "MergeEntitySink") self.stampedAPI = MongoStampedAPI() self.matcher = EntityMatcher(self.stampedAPI) self.matcher.options['merge'] = True