in jetstream/config.py [0:0]
def updated_configs(self, bq_project: str, bq_dataset: str) -> list[Config]:
"""
Return external configs that have been updated/added and
with associated BigQuery tables being out of date.
"""
client = bigquery.Client(bq_project)
job = client.query(
rf"""
SELECT
table_name,
REGEXP_EXTRACT_ALL(
option_value,
'.*STRUCT\\(\"last_updated\", \"([^\"]+)\"\\).*'
) AS last_updated
FROM
{bq_dataset}.INFORMATION_SCHEMA.TABLE_OPTIONS
WHERE option_name = 'labels' AND table_name LIKE "statistics_%"
"""
)
result = list(job.result())
updated_configs = []
for config in self.configs.configs:
seen = False
table_prefix = bq_normalize_name(config.slug)
for row in result:
if not row.table_name.startswith(f"statistics_{table_prefix}"):
continue
seen = True
if not len(row.last_updated):
continue
table_last_updated = UTC.localize(
dt.datetime.utcfromtimestamp(int(row.last_updated[0]))
)
if table_last_updated < config.last_modified:
updated_configs.append(config)
break
if not seen:
updated_configs.append(config)
return updated_configs