def _args_to_val(self, func, args): """Helper for GQL parsing to extract values from GQL expressions. This can extract the value from a GQL literal, return a Parameter for a GQL bound parameter (:1 or :foo), and interprets casts like KEY(...) and plain lists of values like (1, 2, 3). Args: func (str): A string indicating what kind of thing this is. args list[Union[int, str, Literal]]: One or more GQL values, each integer, string, or GQL literal. """ vals = [] for arg in args: if isinstance(arg, six.string_types + six.integer_types): val = query_module.Parameter(arg) else: val = arg.Get() vals.append(val) if func == "nop": return vals[0] # May be a Parameter pfunc = query_module.ParameterizedFunction(func, vals) if pfunc.is_parameterized(): return pfunc return pfunc.resolve({}, {})
def test_constructor(): with pytest.raises(NotImplementedError): query.ParameterizedFunction()