def setup_session_directory(directory, input_video, force=False): """Create (or overwrite) directory for whisker tracking""" # Parse the input video filename input_video = os.path.abspath(os.path.expanduser(input_video)) if not os.path.exists(input_video): raise ValueError("%s does not exist" % input_video) input_video_directory, input_video_filename = os.path.split(input_video) # Erase existing directory and create anew whiski_files = [ '.mp4', '.avi', '.whiskers', '.tif', '.measurements', '.detectorbank', '.parameters', '.hdf5' ] if os.path.exists(directory): # Check that it looks like a whiskers directory file_list = os.listdir(directory) for filename in file_list: if (os.path.splitext(filename)[1]) not in whiski_files: raise ValueError(directory + " does not look safe to overwrite, aborting") # Get user confirmation if not force: confirm = WhiskiWrap.raw_input('Ok to erase %s? [y/N]: ' % directory) if confirm.upper() != 'Y': raise ValueError("did not receive permission to setup test") # Erase os.system('rm -rf %s' % directory) os.mkdir(directory) # Copy the input video into the session directory new_video_filename = os.path.join(directory, input_video_filename) shutil.copyfile(input_video, new_video_filename) # Copy the parameter files in for filename in [ WhiskiWrap.PARAMETERS_FILE, WhiskiWrap.HALFSPACE_DB_FILE, WhiskiWrap.LINE_DB_FILE ]: raw_filename = os.path.split(filename)[1] shutil.copyfile(filename, os.path.join(directory, raw_filename)) return WhiskiWrap.utils.FileNamer.from_video(new_video_filename)
def get_permission_for_test_root(test_root): """Ask for permission to run in test_root""" response = WhiskiWrap.raw_input('Run tests in %s? [y/N]: ' % test_root) if response.upper() != 'Y': raise ValueError("did not receive permission to run test")