示例#1
0
def add_parameter_data_values(project_id, occasion, csv_data):
    groups = [g.id for g in Group.query.filter_by(project_id=project_id)]
    project_animals = {animal.number: animal.id for animal in Animal.query.filter(Animal.group_id.in_(groups)).all()}
    valid_data = []
    invalid_data = []
    for animal, value in csv_data:
        animal = int(animal)
        value = float(value)
        if animal in project_animals:
            animal_id = project_animals[animal]
            valid_data.append(ParameterData(animal_id=animal_id, occasion_id=occasion, value=value))
        else:
            invalid_data.append([animal, value])

    print valid_data
    if len(valid_data) > 0:
        db_session.add_all(valid_data)
        db_session.commit()

    return valid_data, invalid_data
示例#2
0
    def import_animals_from_csv(groups, csv_file_path):
        all_animals = []
        for group in groups:
            all_animals.extend(group.animals)

        animal_numbers = [animal.number for animal in all_animals]
        group_numbers = [group.number for group in groups]
        groups = {group.number: group.id for group in groups}

        sexes = ['m', 'f']
        imported_animals = []
        ignored_animal_data = []

        with open(csv_file_path, 'rb') as csvfile:
            csvreader = csv.reader(csvfile)

            for row in csvreader:
                group = int(row[0])
                number = int(row[1])
                gender = row[2].lower()
                age = int(row[3])

                if group in group_numbers \
                        and number not in animal_numbers \
                        and gender in sexes \
                        and age > 0:
                    animal_numbers.append(int(row[1]))
                    imported_animals.append(Animal(group_id=groups[group], number=number, gender=gender, age=age))
                else:
                    ignored_animal_data.append({'group': group, 'number': number, 'gender': gender, 'age': age})

        if len(imported_animals) > 0:
            from hysto.libs.database import db_session
            db_session.add_all(imported_animals)
            db_session.commit()

        return imported_animals, ignored_animal_data
示例#3
0
 def save(self, model):
     db_session.add(model)
     db_session.commit()
     return model
示例#4
0
    Animal(number=5, age=6, gender='m', group_id=3),
    Animal(number=6, age=6, gender='f', group_id=4),
    Animal(number=7, age=6, gender='f', group_id=5),
    Animal(number=8, age=6, gender='f', group_id=6),
    Animal(number=9, age=6, gender='f', group_id=5),
    Animal(number=10, age=6, gender='f', group_id=6)
])

print "Animals"

db_session.add_all([
    Occasion(number=1, name='prestudy', parameter_id=1) 
])

print "Occasions"

db_session.add_all([
    ProjectParameter(project_id=1, parameter_id=1, precision=2)
])

print "Parameter to Project"

db_session.add_all([
    ParameterData(occasion_id=1, animal_id=1, value=1.11)
])

print "Parameter data"

db_session.commit()

print "Done."