def execute_task(task_type: dict, parameters: dict, save_folder: str) -> bool: """Excecute Task. Executes the desired task by setting up the display window and data acquisition, then passing on to the start_task funtion which will initialize experiment. Input: parameters (dict): parameter dictionary task_type (dict): type and mode of experiment save_folder (str): path to save folder """ signal_model = None language_model = None filename = None exp_type = ExperimentType(task_type['exp_type']) fake = parameters['fake_data'] # Init EEG Model, if needed. Calibration Tasks Don't require probabilistic # modules to be loaded. if not fake and exp_type not in ExperimentType.calibration_tasks(): # Try loading in our signal_model and starting a langmodel(if enabled) try: signal_model, filename = load_signal_model() except Exception as e: logging.debug('Cannot load signal model. Exiting') raise e # if Language Model enabled init lm if parameters['languagemodelenabled']: language_model = init_language_model(parameters) # Initialize DAQ daq, server = init_eeg_acquisition(parameters, save_folder, server=fake) # Initialize Display Window # We have to wait until after the prompt to load the signal model before # displaying the window, otherwise in fullscreen mode this throws an error display = init_display_window(parameters) print_message(display, "Initializing...") # Start Task try: start_task(display, daq, exp_type, parameters, save_folder, language_model=language_model, signal_model=signal_model, fake=fake, auc_filename=filename) # If exception, close all display and acquisition objects except Exception as e: _clean_up_session(display, daq, server) raise e return _clean_up_session(display, daq, server)
def test_load_classifier(self): """Test load classifier can load pickled file when given path.""" # create a pickle file to save a pickled json pickle_file = self.temp_dir + "save.p" pickle.dump(self.parameters, open(pickle_file, "wb")) # Load classifier unpickled_parameters = load_signal_model(pickle_file) # assert the same data was returned self.assertEqual(unpickled_parameters, (self.parameters, pickle_file))