def decorate_cooperative_methods(cls):
    for name, value in cls.__dict__.iteritems():
        if name == '__init__':
            check_single_root(cls, name)
            if isinstance(value, CoopDecorator):
                if overrides_method(cls, name):
                    wrapped = value(cls)
                else:
                    wrapped = value.wrapped_function
                    wrapped._cooperative_is_root = True
                wrapped._cooperative_is_coop = True
                setattr(cls, name, wrapped)
            elif overrides_cooperative(cls, name):
                # TODO: This enforces explicit cooperation. This
                # contradicts behaviour for __init__. Should we make
                # this consistent either by making it optionally
                # implicit or enforcing it explicity for __init__
                raise CooperativeError, \
                      "Overriding cooperative method without cooperation"
dataset/ETHPy150Open arximboldi/cooper/cooper/cooper.py/decorate_cooperative_methods/operator `!=` -> `==`