in etl/glean_etl.py [0:0]
def _incorporate_annotation(item, item_annotation, app=False, full=False):
incorporated = dict(item, has_annotation=len(item_annotation) > 0)
if app:
# app annotations have some special properties
if item_annotation.get("logo"):
# the logo is dowloaded locally elsewhere
incorporated.update(
{"logo": f"/data/{item['app_name']}/" + _get_logo_filename(item_annotation["logo"])}
)
if item_annotation.get("featured"):
incorporated["featured"] = True
# we use the `app_tags` property to disambiguate between the tags
# that are a property of an application vs. the list of tags that
# it has (and can be applied to other things)
if item_annotation.get("tags"):
incorporated["app_tags"] = item_annotation["tags"]
elif item_annotation.get("tags"):
# for non-apps, just use the tags from the annotation directly, if they
# exist
# annotation tags always take precedence over any tags defined in
# metrics.yaml
incorporated.update({"tags": item_annotation["tags"]})
if full:
# other annotations are only applied to the full version (not the
# summaries we list out in various places)
for annotation_type in ["commentary", "warning"]:
if item_annotation.get(annotation_type):
incorporated[annotation_type] = item_annotation[annotation_type]
return incorporated