# Authors: The MNE-Python contributors. # License: BSD-3-Clause # Copyright the MNE-Python contributors. def parse_config(fname): """Parse a config file (like .ave and .cov files). Parameters ---------- fname : path-like Config file name. Returns ------- conditions : list of dict Each condition is indexed by the event type. A condition contains as keys:: tmin, tmax, name, grad_reject, mag_reject, eeg_reject, eog_reject """ reject_params = read_reject_parameters(fname) with open(fname) as f: lines = f.readlines() cat_ind = [i for i, x in enumerate(lines) if "category {" in x] event_dict = dict() for ind in cat_ind: for k in range(ind + 1, ind + 7): words = lines[k].split() if len(words) >= 2: key = words[0] if key == "event": event = int(words[1]) break else: raise ValueError("Could not find event id.") event_dict[event] = dict(**reject_params) for k in range(ind + 1, ind + 7): words = lines[k].split() if len(words) >= 2: key = words[0] if key == "name": name = " ".join(words[1:]) if name[0] == '"': name = name[1:] if name[-1] == '"': name = name[:-1] event_dict[event]["name"] = name if key in ["tmin", "tmax", "basemin", "basemax"]: event_dict[event][key] = float(words[1]) return event_dict def read_reject_parameters(fname): """Read rejection parameters from .cov or .ave config file. Parameters ---------- fname : path-like Filename to read. Returns ------- params : dict The rejection parameters. """ with open(fname) as f: lines = f.readlines() reject_names = ["gradReject", "magReject", "eegReject", "eogReject", "ecgReject"] reject_pynames = ["grad", "mag", "eeg", "eog", "ecg"] reject = dict() for line in lines: words = line.split() if words[0] in reject_names: reject[reject_pynames[reject_names.index(words[0])]] = float(words[1]) return reject