def METHOD_NAME(self, key, verbose=True):
    if 'key' not in key:
        if verbose:
            perror("'key' not set in rule %s"%str(key))
        return RET_NA
    if 'value' not in key:
        if verbose:
            perror("'value' not set in rule %s"%str(key))
        return RET_NA
    if 'op' not in key:
        op = "="
    else:
        op = key['op']
    target = key['value']
    if op not in ('>=', '<=', '='):
        if verbose:
            perror("'value' list member 0 must be either '=', '>=' or '<=': %s"%str(key))
        return RET_NA
    keyname = key['key']
    data = self.get_val(keyname)
    if len(data) == 0:
        perror("%s key is not set"%keyname)
        return RET_ERR
    r = RET_OK
    ok = 0
    for value, ref in data:
        r |= self._check_key(keyname, target, op, value, ref, verbose)
        if r == RET_OK:
            ok += 1
    if ok > 1:
        perror("duplicate lines for key %s"%keyname)
        r |= RET_ERR
    return r