Exemplo n.º 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
Exemplo n.º 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
Exemplo n.º 3
0
from hysto.project.models import Project, Group, Animal, ProjectParameter, Occasion, ParameterData

from hysto.libs.database import Base, engine, db_session
from hysto.settings.config import DATABASE_FILE

if os.path.isfile(DATABASE_FILE):
    os.remove(DATABASE_FILE)
    print "Deleted existing db file found"

Base.metadata.create_all(bind=engine)
print "Created tables"

print "Adding data:"

db_session.add_all([
    Origin(name='Canada'),
    Origin(name='China'),
])
print "Origins"

db_session.add_all([
    Species(name='Rat', strain='mr', origin_id=1),
    Species(name='Mouse', strain='ms', origin_id=1),
    Species(name='Monkey', strain='mm', origin_id=2),
    Species(name='Rabbit', strain='ms', origin_id=2)
])

print "Species"

db_session.add_all([
    Sponsor(name='PyPharma', website='http://pypharma.py', address='12 PyStreet, PyState, PyCountry'),
    Sponsor(name='HystoPharma')