while path: print '{:10}\t{}'.format(count.pop(), path.pop()) break if head == path[-1]: count[-1] += 1 elif path[-1] in head: path.append(head) count.append(1) else: while path: prev = path.pop() prev_count = count.pop() print '{:10}\t{}'.format(prev_count, prev) if not path: break if path[-1] in head: path.append(head) count.append(1) if not path: path.append(head) count.append(1) if __name__ == '__main__': from yatiri.log import setup_logging; setup_logging() parser = argparse.ArgumentParser() parser.add_argument('db', choices=['corpus', 'staging', 'prod']) parser.add_argument('prefix', nargs='?') args = parser.parse_args() main(args)
logger = logging.getLogger(__file__) def main(args): indexer = search.IndexerContext(settings.XAPIAN_DB) with indexer as conn: search.create_index(conn) count = 0 with indexer as conn, open(args.file) as fp: for count, line in enumerate(report_progress(fp)): key, cat = line.strip().split('\t') cat = eval(cat) if isinstance(cat, list): cat = cat[0] doc = conn.get_document(key) doc.add_term('category', cat) indexer.conn.replace(doc) print "Updated {} documents".format(count) if __name__ == '__main__': from yatiri.log import setup_logging setup_logging() parser = argparse.ArgumentParser() parser.add_argument('file') args = parser.parse_args() main(args)