Ejemplo n.º 1
0
            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)
Ejemplo n.º 2
0
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)