def delete_Collection(user, collection): collection_dir = os.path.join(UPLOAD_DIR,user,collection) if(os.path.exists(collection_dir)): shutil.rmtree(collection_dir) print "Deletion successful" collection_db = db_session.query(Collection).filter_by(user_id = user, name=collection) for list in collection_db: print list.id db_session.delete(list) db_session.commit() print "Deleted entry"
def decode_collection(directory, collection_name, movie_name): """ Celery task to decode processed dataset """ decoding_set = db_session.query(DecodingSet).filter_by(name='terms_20k') decoding_set = decoding_set.first() print directory print collection_name if isdir(join(directory, collection_name)): decode_movie_folder = join(DECODING_RESULTS_DIR, collection_name) if not exists(decode_movie_folder): mkdir(decode_movie_folder) decodings = db_session.query(Decoding).filter_by(collection=collection_name) for a in decodings: db_session.delete(a) db_session.commit() time = datetime.utcnow() for filename in listdir(join(directory, collection_name)): print filename if filename == ".DS_Store" or filename == "terms": continue decoding = Decoding(filename=filename, uuid=uuid4().hex, decoding_set=decoding_set, movie=movie_name, collection=collection_name) decoding = decode_image(decoding, decoding_set, collection_name, filename) if decoding is not None: decoding.image_decoded_at = time db_session.add(decoding) db_session.commit() analysis = db_session.query(Analysis.name) movie_decode = db_session.query(Decoding.filename, Decoding.movie, Decoding.term) movie_decode = movie_decode.filter_by(movie=movie_name) for term in analysis: print term.name movie_decode_term = movie_decode.filter_by(term=term.name) if movie_decode_term.count() == 0: print 'There are no components for this term' else: imgs = [] collection_name = collection_name for component in movie_decode_term: file = component_directory(collection_name, component.filename) print "Now decoding for" + term.name imgs.append(file) concat_components(imgs, term.name, collection_name) collection = db_session.query(Collection).filter_by(name=collection_name).first() collection.decoded = True db_session.commit()