'Is the given field explicitly set in this kvs (neither inherited nor default)'

def has(self, key):

    if (key.scope not in self.VALID_SCOPES):
        return False
    if (key.scope == Scope.content):
        self._load_definition()
    elif (key.scope == Scope.parent):
        return True
    if (key.block_family == XBlockAside.entry_point):
        if (key.scope == Scope.children):
            return False
        b_type = key.block_scope_id.block_type
        return ((b_type in self.aside_fields) and (key.field_name in self.aside_fields[b_type]))
    else:
        return (key.field_name in self._fields)
