From da7d576326f6c49d884582e1639604d3e946b555 Mon Sep 17 00:00:00 2001 From: Ian Roy Sacbibit Date: Mon, 2 Mar 2026 16:26:32 -0500 Subject: [PATCH 1/2] deduplicate properties by name --- .../convert_tags_to_custom_properties.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/scripts/convert_tags_to_custom_properties/convert_tags_to_custom_properties.py b/scripts/convert_tags_to_custom_properties/convert_tags_to_custom_properties.py index db49eb4..6678a40 100644 --- a/scripts/convert_tags_to_custom_properties/convert_tags_to_custom_properties.py +++ b/scripts/convert_tags_to_custom_properties/convert_tags_to_custom_properties.py @@ -100,8 +100,23 @@ def fetch_custom_properties(): return properties +def deduplicate_properties_by_name(properties): + """ + Return properties with duplicate names removed, keeping the first occurrence. + """ + seen_names = set() + deduplicated = [] + for prop in properties: + name = prop["name"] + if name not in seen_names: + seen_names.add(name) + deduplicated.append(prop) + return deduplicated + + def main(): properties = fetch_custom_properties() + properties = deduplicate_properties_by_name(properties) for index, property_info in enumerate(properties, 1): property_name = property_info["name"] From c77324592b2890f0056d2af11a589255393e1f8d Mon Sep 17 00:00:00 2001 From: Ian Roy Sacbibit Date: Thu, 5 Mar 2026 16:28:55 -0500 Subject: [PATCH 2/2] deduplicate by alias instead of name --- .../convert_tags_to_custom_properties.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/scripts/convert_tags_to_custom_properties/convert_tags_to_custom_properties.py b/scripts/convert_tags_to_custom_properties/convert_tags_to_custom_properties.py index 6678a40..597b78b 100644 --- a/scripts/convert_tags_to_custom_properties/convert_tags_to_custom_properties.py +++ b/scripts/convert_tags_to_custom_properties/convert_tags_to_custom_properties.py @@ -100,23 +100,26 @@ def fetch_custom_properties(): return properties -def deduplicate_properties_by_name(properties): +def deduplicate_properties_by_alias(properties): """ - Return properties with duplicate names removed, keeping the first occurrence. + Return properties with duplicate aliases removed, keeping the first occurrence. + Uses the first alias from each property's aliases list. """ - seen_names = set() + seen_aliases = set() deduplicated = [] for prop in properties: - name = prop["name"] - if name not in seen_names: - seen_names.add(name) + alias = prop["aliases"][0] if prop.get("aliases") else None + if alias is not None and alias not in seen_aliases: + seen_aliases.add(alias) deduplicated.append(prop) + elif alias is None: + deduplicated.append(prop) # Keep properties with no aliases return deduplicated def main(): properties = fetch_custom_properties() - properties = deduplicate_properties_by_name(properties) + properties = deduplicate_properties_by_alias(properties) for index, property_info in enumerate(properties, 1): property_name = property_info["name"]