def _validate(self):
        variable_names, _unused = getExprNames(self._expr, {})
        expr_indices = []
        for name in variable_names:
            if name == 'inf':
                continue
            match = _VARIABLE_NAME_RE.match(name)
            if not match:
                raise ValueError("%r is not a valid variable name" % name)
            expr_indices.append(int(match.group(2)))

        expr_indices.sort()
        expected_indices = list(range(len(self.inputs)))
        if expr_indices != expected_indices:
            raise ValueError(
                "Expected %s for variable indices, but got %s" % (
                    expected_indices, expr_indices,
                )
            )
        super(NumericalExpression, self)._validate()
Update a CFN stack.
dataset/ETHPy150Open quantopian/zipline/zipline/pipeline/expression.py/NumericalExpression._validate--crossover with--dataset/ETHPy150Open saltstack/salt/salt/modules/boto_cfn.py/update_stack