def __init__(mcs, name, bases, dct):
        """ Process all of the attributes in the `Form` (or subclass)
        declaration and place them accordingly. This builds the internal
        _node_list and _validation_list and is responsible for preserving
        initial Node order. """

        nodes = {}
        mcs._validation_list = []
        mcs._node_list = []
        mcs._event_lists = {}
        for name, attribute in dct.items():
            # These aren't ordered Nodes, ignore them
            if name is 'start' or name is 'close':
                try:
                    attribute._attr_name = name
                except AttributeError:
                    raise AttributeError("start/close attribute is special and"
                        "should specify a Node to begin your form. Got type {0}"
                        "instead".format(type(name)))
                continue
            if isinstance(attribute, Node):
                attribute._attr_name = name
                nodes[attribute._create_counter] = attribute
                delattr(mcs, name)
            elif isinstance(attribute, Check):
                # if we've found a validation check
                attribute._attr_name = name
                mcs._validation_list.append(attribute)
                delattr(mcs, name)
            elif isinstance(attribute, Listener):
                # if we've found a validation check
                attribute._attr_name = name
                if attribute.type not in mcs._event_lists:
                    mcs._event_lists[attribute.type] = []
                mcs._event_lists[attribute.type].append(attribute)
                delattr(mcs, name)
            else:
                # just assume that this is some kind of blueprint with
                # ducktyping
                try:
                    for node in attribute._node_list:
                        nodes[node._create_counter] = node
                except AttributeError:
                    pass

                # merge in our events
                try:
                    for key, lst in attribute._event_lists.items():
                        if mcs._event_lists in key:
                            mcs._event_lists[key].extend(lst)
                        else:
                            mcs._event_lists[key] = lst
                except AttributeError:
                    pass

                # and validation
                try:
                    mcs._validation_list.extend(attribute._validation_list)
                except AttributeError:
                    pass

        # insert our nodes in sorted order by there initialization order, thus
        # preserving order
        for i, attribute in sorted(nodes.items()):
            mcs._node_list.append(attribute)
dataset/ETHPy150Open icook/yota/src/yota/__init__.py/TrackingMeta.__init__/swapped operands of `in`