in generator/views/ping_view.py [0:0]
def to_lookml(self, v1_name: Optional[str], dryrun) -> Dict[str, Any]:
"""Generate LookML for this view."""
view_defn: Dict[str, Any] = {"name": self.name}
# use schema for the table where channel=="release" or the first one
table = next(
(table for table in self.tables if table.get("channel") == "release"),
self.tables[0],
)["table"]
dimensions = self.get_dimensions(table, v1_name, dryrun=dryrun)
# set document id field as a primary key for joins
view_defn["dimensions"] = [
d if d["name"] != "document_id" else dict(**d, primary_key="yes")
for d in dimensions
if not lookml_utils._is_dimension_group(d)
]
view_defn["dimension_groups"] = [
d for d in dimensions if lookml_utils._is_dimension_group(d)
]
# add measures
view_defn["measures"] = self.get_measures(dimensions, table, v1_name)
[project, dataset, table_id] = table.split(".")
table_schema = dryrun.create(
project=project,
dataset=dataset,
table=table_id,
).get_table_schema()
nested_views = lookml_utils._generate_nested_dimension_views(
table_schema, self.name
)
# Round-tripping through a dict to get an ordered deduped list.
suggestions = list(
dict.fromkeys(
_table["channel"] for _table in self.tables if "channel" in _table
)
)
if len(suggestions) > 1:
view_defn["filters"] = [
{
"name": "channel",
"type": "string",
"description": "Filter by the app's channel",
"sql": "{% condition %} ${TABLE}.normalized_channel {% endcondition %}",
"default_value": suggestions[0],
"suggestions": suggestions,
}
]
view_defn["sql_table_name"] = f"`{table}`"
return {"views": [view_defn] + nested_views}