示例#1
0
def tag():
    """Endpoint for saving tags"""
    data = request.get_json()
    cite = data['cite']
    fnid = data['fnid']
    tags = data['tags']
    type = data['type']
    data = data['data']

    if data in db[fnid]:
        # Update tags
        # Assume the type hasn't changed
        if tags:
            db[fnid][data]['tags'] = tags

        # If no tags, delete this
        else:
            del db[fnid][data]
    elif tags:
        # Add new entry
        db[fnid][data] = {'type': type, 'tags': tags}

    db.sources[fnid] = cite
    db.save()
    return jsonify(ok=True)
示例#2
0
def url2hash():
    url = request.values.get('url')
    if url is None:
        return ''
    else:
        if not url.startswith('http://'):
            url = 'http://' + url
        return db.save(url)
示例#3
0
def test_save(set, get):
    db.save(url)
    set.assert_called()
    get.assert_called()
示例#4
0
def save_stats(event):
    population = event.data['population']
    best_genome = population.get_best_genome()
    # average_fitness = reduce(lambda avg, g: avg + g.fitness, population.genomes, 0) / len(population.genomes)
    fitness_values = [g.fitness for g in population.genomes]
    average_fitness = average(fitness_values)
    std_fitness = std(fitness_values)
    genomes = [{"serial": g.serial, "fitness": g.fitness, "pngPath": g.pngPath} for g in population.genomes]
    duration_run = int(time() - _time_run)
    global _time_generation
    if _time_generation:
        duration_generation = int(time() - _time_generation)
    else:
        duration_generation = 0
    _time_generation = time()

    db.save('generation', population.generation)
    db.save('best_genome', best_genome.serial)
    db.save('best_fitness', best_genome.fitness)
    db.save('average_fitness', average_fitness)
    db.save('std_fitness', std_fitness)
    db.save('genomes', json.dumps(genomes))
    db.save('duration_run', duration_run)
    db.save('duration_generation', duration_generation)