def METHOD_NAME(self, node):
    depcy_name = node.id
    if depcy_name == 'NA':
        return
    if depcy_name == '$source':
        return
    if self._column is not None and self._column.name == depcy_name:
        raise RecursionError()
    try:
        depcy = self._dataset[depcy_name]
        if self._column is None:
            return
        if self._column.is_filter:
            if not depcy.is_filter and depcy.uses_column_formula:
                raise ValueError(_("Filters may not reference columns using 'V' or column functions"))
        if self._column.is_filter:
            if depcy.column_type is ColumnType.OUTPUT:
                raise ValueError(_('Filters may not reference output variables'))
        depcies = depcy.dependencies
        depcies_names = map(lambda x: x.name, depcies)
        if self._column.name in depcies_names:
            raise RecursionError()
    except KeyError:
        raise NameError(_("Column '{}' does not exist in the dataset").format(depcy_name))