def METHOD_NAME(self, config=None):
    if config is not None:
        self.config = config
    else:
        config = self.config
    cameras = re.split('[;, ]\s*', config['cameras'])
    settings = []
    for key, item in config.items():
        if key in ['type', 'cameras']:
            continue
        filters = re.split('[,;]\s*', item)
        if filters:
            if len(filters) != len(cameras):
                raise Exception('Drawer: mismatch between number of cameras and filters.')
            dyes, wls = zip(*[re.split('[:]\s*', f) for f in filters])
            settings.append(DrawerSettings(key, cameras, dyes, wls))
    return settings