INNER CODE UNIT · Python
filter_to_reference_keys
nielsfaber/scheduler-card · scripts/cleanup_translations.py:74
def filter_to_reference_keys(reference: dict, translation: dict) -> dict:
"""Like *cleanup* but preserves *translation* key order (for reorder detection)."""
result: dict = {}
for key, trans_value in translation.items():
if key not in reference:
continue
ref_value = reference[key]
if isinstance(ref_value, dict) and isinstance(trans_value, dict):
result[key] = filter_to_reference_keys(ref_value, trans_value)
elif not isinstance(ref_value, dict) and not isinstance(trans_value, dict):
result[key] = trans_value
return result
def reorder_to_reference(reference: dict, data: dict) -> dict:
"""Return *data* with keys reordered to match *reference* order.
Only keys present in both *reference* and *data* are included.