def queryParametersFromMapping(mapping): """ Take a dictionary mapping named query templates. For each template, parse out the referenced template variables. Return a list of tuples for each query name and its associated template variables. Example: {'query_a': sql_query} => [('query_a', var1, var2, var3)] """ rows = [] env = createQueryEnvironment() for key in sorted(mapping.keys(), key=len): spec = mapping[key] columns = parseVariables(env, spec['query']) rows.append([key] + columns) return rows
def extractQueryParams(query): """ Extract Jijna2 variables from a query template. """ env = createQueryEnvironment() return parseVariables(env, query)