in backfill/2023-09-26-initialize-clients_first_seen_v2/bigquery_etl_cli_query.py [0:0]
def render(name, sql_dir, output_dir):
"""Render a query Jinja template."""
if name is None:
name = "*.*"
query_files = paths_matching_name_pattern(name, sql_dir, project_id=None)
resolved_sql_dir = Path(sql_dir).resolve()
for query_file in query_files:
table_name = query_file.parent.name
dataset_id = query_file.parent.parent.name
project_id = query_file.parent.parent.parent.name
jinja_params = {
**{
"project_id": project_id,
"dataset_id": dataset_id,
"table_name": table_name,
},
}
rendered_sql = (
render_template(
query_file.name,
template_folder=query_file.parent,
templates_dir="",
format=False,
**jinja_params,
)
+ "\n"
)
if not any(s in str(query_file) for s in skip_format()):
rendered_sql = reformat(rendered_sql, trailing_newline=True)
if output_dir:
output_file = output_dir / query_file.resolve().relative_to(
resolved_sql_dir
)
output_file.parent.mkdir(parents=True, exist_ok=True)
output_file.write_text(rendered_sql)
else:
click.echo(query_file)
click.echo(rendered_sql)