def __set_attributes__(cls):
        match_groups = OrderedDict([])

        # find all of our filters
        for item in cls.__dict__:
            if item[0] == '_':
                continue

            filt = cls.__dict__[item]

            # only process classes
            if not inspect.isclass(filt):
                continue

            # which grain are we filtering on
            grain = getattr(filt, '__grain__', 'os_family')
            if match_groups not in grain:
                match_groups[grain] = OrderedDict([])

            # does the object pointed to have a __match__ attribute?
            # if so use it, otherwise use the name of the object
            # this is so that you can match complex values, which the python
            # class name syntax does not allow
            if hasattr(filt, '__match__'):
                match = filt.__match__
            else:
                match = item

            match_groups[grain][match] = OrderedDict([])
            for name in filt.__dict__:
                if name[0] == '_':
                    continue

                match_groups[grain][match][name] = filt.__dict__[name]

        attrs = {}
        for grain in match_groups:
            filtered = Map.__salt__['grains.filter_by'](match_groups[grain],
                                                        grain=grain)
            if filtered:
                attrs.update(filtered)

        if hasattr(cls, 'merge'):
            pillar = Map.__salt__['pillar.get'](cls.merge)
            if pillar:
                attrs.update(pillar)

        for name in attrs:
            setattr(cls, name, attrs[name])
dataset/ETHPy150Open saltstack/salt/salt/utils/pyobjects.py/MapMeta.__set_attributes__/swapped operands of `not in`