Ejemplo n.º 1
0
def lookup_assembly(name):
    pwdb.connect(reuse_if_open=True)
    try:
        assy = AssemblyModel.get(AssemblyModel.name == name)
    except AssemblyModel.DoesNotExist as e:
        raise AssemblyLookupError("A DataAssembly named " + name +
                                  " was not found.")
    return assy
Ejemplo n.º 2
0
def add_stimulus_set_lookup_to_db(stimulus_set_name, bucket_name, zip_file_name,
                                  image_store_unique_name, zip_sha1):
    _logger.debug(f"Adding stimulus set {stimulus_set_name} to db")
    pwdb.connect(reuse_if_open=True)
    stim_set_model, created = StimulusSetModel.get_or_create(name=stimulus_set_name)
    image_store_model, created = ImageStoreModel.get_or_create(location_type="S3", store_type="zip",
                                                               location=f"https://{bucket_name}.s3.amazonaws.com/{zip_file_name}",
                                                               unique_name=image_store_unique_name,
                                                               sha1=zip_sha1)
    return (stim_set_model, image_store_model)
Ejemplo n.º 3
0
def add_stimulus_set_metadata_and_lookup_to_db(stimuli, stimulus_set_name,
                                               bucket_name, zip_file_name,
                                               image_store_unique_name,
                                               zip_sha1):
    pwdb.connect(reuse_if_open=True)
    stim_set_model, created = StimulusSetModel.get_or_create(
        name=stimulus_set_name)
    image_store, created = ImageStoreModel.get_or_create(
        location_type="S3",
        store_type="zip",
        location=f"https://{bucket_name}.s3.amazonaws.com/{zip_file_name}",
        unique_name=image_store_unique_name,
        sha1=zip_sha1)
    add_image_metadata_to_db(stimuli, stim_set_model, image_store)
    return stim_set_model
Ejemplo n.º 4
0
def test_add_image_metadata_to_db(transaction):
    pwdb.connect(reuse_if_open=True)
    proto = prep_proto_stim()
    stim_set_model, created = StimulusSetModel.get_or_create(
        name=f"test_stimulus_set.{now()}")
    image_store_model, created = ImageStoreModel.get_or_create(
        location_type="test_loc_type",
        store_type="test_store_type",
        location="test_loc",
        unique_name=f"test_store.{now()}",
        sha1=f"foo.{now()}")
    add_image_metadata_to_db(proto, stim_set_model, image_store_model)
    pw_query = ImageModel.select() \
        .join(StimulusSetImageMap) \
        .join(StimulusSetModel) \
        .where(StimulusSetModel.name == stim_set_model.name)
    print(f"Length of select query:  {len(pw_query)}")
    assert len(pw_query) == 25
Ejemplo n.º 5
0
def add_image_metadata_to_db(proto_stimulus_set, stim_set_model, image_store_model):
    pwdb.connect(reuse_if_open=True)
    stimulus_set_specific_attributes = extract_specific(proto_stimulus_set)
    eav_attributes = {}

    for name in stimulus_set_specific_attributes:
        target_type = type(proto_stimulus_set[name].values.item(0)).__name__
        eav_attribute, created = AttributeModel.get_or_create(name=name, type=target_type)
        eav_attributes[name] = eav_attribute

    for image in tqdm(proto_stimulus_set.itertuples(), desc='images->db', total=len(proto_stimulus_set)):
        pw_image, created = ImageModel.get_or_create(image_id=image.image_id)
        StimulusSetImageMap.get_or_create(stimulus_set=stim_set_model, image=pw_image)
        file_name = image.image_path_within_store if hasattr(image,
                                                             'image_path_within_store') else image.image_file_name
        ImageStoreMap.get_or_create(image=pw_image, image_store=image_store_model, path=file_name)
        for name in eav_attributes:
            ImageMetaModel.get_or_create(image=pw_image, attribute=eav_attributes[name],
                                         value=str(getattr(image, name)))
Ejemplo n.º 6
0
def add_image_metadata_to_db(stimuli, stim_set_model, image_store):
    pwdb.connect(reuse_if_open=True)
    eav_image_sample_obj, created = AttributeModel.get_or_create(
        name="image_sample_obj", type="str")
    eav_image_label, created = AttributeModel.get_or_create(name="image_label",
                                                            type="str")

    for image in stimuli.itertuples():
        pw_image, created = ImageModel.get_or_create(image_id=image.image_id)
        pw_stimulus_set_image_map, created = StimulusSetImageMap.get_or_create(
            stimulus_set=stim_set_model, image=pw_image)
        pw_image_image_store_map, created = ImageStoreMap.get_or_create(
            image=pw_image,
            image_store=image_store,
            path=image.image_path_within_store)
        ImageMetaModel.get_or_create(image=pw_image,
                                     attribute=eav_image_sample_obj,
                                     value=str(image.image_sample_obj))
        ImageMetaModel.get_or_create(image=pw_image,
                                     attribute=eav_image_label,
                                     value=str(image.image_label))