'Get all components with these flags
@param flags: dictionary of flags'

def get_all(self, **flags):

    items = []
    for item in self.components:
        if ((not flags) or all([(getattr(item, f) == flags[f]) for f in flags])):
            items.append(item)
    return items
