def add_meta_tag()

in mapillary_tools/process_import_meta_properties.py [0:0]


def add_meta_tag(desc: MetaProperties, tag_type: str, key: str, value_before) -> None:
    META_DATA_TYPES = {
        "strings": str,
        "doubles": float,
        "longs": int,
        "dates": int,
        "booleans": bool,
    }

    type_ = META_DATA_TYPES.get(tag_type)

    if type_ is None:
        raise exceptions.MapillaryBadParameterError(f"Invalid tag type: {tag_type}")

    try:
        value = type_(value_before)
    except (ValueError, TypeError) as ex:
        raise exceptions.MapillaryBadParameterError(
            f'Unable to parse "{key}" in the custom metatags as {tag_type}'
        ) from ex

    meta_tag = {"key": key, "value": value}
    tags = desc.setdefault("MAPMetaTags", {})
    tags.setdefault(tag_type, []).append(meta_tag)