def _channel_type_old(info, idx): """Get channel type using old, slower scheme.""" ch = info['chs'][idx] # iterate through all defined channel types until we find a match with ch for t, rules in get_channel_types().items(): for key, vals in rules.items(): # all keys must match the values if ch.get(key, None) not in np.array(vals): break # not channel type t, go to next iteration else: return t raise ValueError('Unknown channel type for {}'.format(ch["ch_name"]))
def _channel_type_old(info, idx): """Get channel type using old, slower scheme.""" ch = info['chs'][idx] # iterate through all defined channel types until we find a match with ch for t, rules in get_channel_types().items(): for key, vals in rules.items(): # all keys must match the values if ch.get(key, None) not in np.array(vals): break # not channel type t, go to next iteration else: return t raise ValueError('Unknown channel type for {}'.format(ch["ch_name"]))
def _channel_type_old(info, idx): """Get channel type using old, slower scheme.""" ch = info['chs'][idx] # iterate through all defined channel types until we find a match with ch # go in order from most specific (most rules entries) to least specific channel_types = sorted(get_channel_types().items(), key=lambda x: len(x[1]))[::-1] for t, rules in channel_types: for key, vals in rules.items(): # all keys must match the values if ch.get(key, None) not in np.array(vals): break # not channel type t, go to next iteration else: return t raise ValueError('Unknown channel type for {}'.format(ch["ch_name"]))
def test_deprecation(): """Test deprecated call.""" with pytest.deprecated_call(): _ = get_channel_types()
from PyQt5.QtWidgets import (QDialog, QVBoxLayout, QDialogButtonBox, QAbstractItemView, QTableView, QComboBox, QStyledItemDelegate) from PyQt5.QtGui import QStandardItemModel, QStandardItem from PyQt5.QtCore import Qt, QSortFilterProxyModel, pyqtSlot from mne.io.pick import channel_type, get_channel_types channel_types = [k.upper() for k in get_channel_types().keys()] class ChannelPropertiesDialog(QDialog): def __init__(self, parent, info, title="Channel Properties"): super().__init__(parent) self.setWindowTitle(title) self.model = QStandardItemModel(info["nchan"], 4) self.model.setHorizontalHeaderLabels(["#", "Label", "Type", "Bad"]) for index, ch in enumerate(info["chs"]): item = QStandardItem() item.setData(index, Qt.DisplayRole) item.setFlags(item.flags() & ~Qt.ItemIsEditable) self.model.setItem(index, 0, item) self.model.setItem(index, 1, QStandardItem(ch["ch_name"])) kind = channel_type(info, index).upper() self.model.setItem(index, 2, QStandardItem(str(kind))) bad = QStandardItem() bad.setData(ch["ch_name"] in info["bads"], Qt.UserRole) bad.setCheckable(True) bad.setEditable(False)