示例#1
0
def get_fstates(decay):
    global db
    global br_cutoff
    if decay['branching'] < br_cutoff:
        return
    if decay['branching'] > 1:
        return
    if len(decay['childs'])>max_decay_chain:
        return
    if len(decay['childs'])<1:
        return 
    #print decay['history'], decay['products']
    db_dec = Decay(parent = decay['parent'], childs = decay['childs'], branching = decay["branching"])
    #db_dec.printdecay()
    #db_dec.save()
    try:
        db_dec.save()
    except:
        print "Failed to save decay!"
        db_dec.printdecay()
        return
示例#2
0
            work_copy = deepcopy(decay)
            #work_copy['history'] = "{} --> {}".format(
            #    parent, ' '.join(decay['products']))

            get_fstates(work_copy)

        end = datetime.now()

        print "{}\t{}".format(parent, end-start)


if __name__ == "__main__":
    from fstate_lazy import get_fstates
    #from fstate import get_fstates
    connect(db_name)
    Decay.objects().delete()
    #fstates.drop()
    #fstates.create_index("fstate")
    #fstates.create_index("scheme", unique=True)


    #do_work(test_set['decays'].keys())
    
    print "DB build started on {}.".format(datetime.now())
    
    start = datetime.now()
    
    workers  = cpu_count()
    p = Pool(processes=workers)
    p.map(do_work, get_jobs(workers))