INNER CODE UNIT · Python
changed_catalog_entries
joreilly/Confetti · .github/scripts/ios-changes.py:68
def changed_catalog_entries(base: dict[str, Any], head: dict[str, Any]) -> set[tuple[str, str]]:
changed: set[tuple[str, str]] = set()
for section in ("versions", "libraries", "bundles", "plugins"):
before = base.get(section, {})
after = head.get(section, {})
for key in before.keys() | after.keys():
if before.get(key) != after.get(key):
changed.add((section, key))
return changed
def version_ref(entry: Any) -> str | None:
if not isinstance(entry, dict):
return None
reference = entry.get("version.ref")
if reference is None and isinstance(entry.get("version"), dict):
reference = entry["version"].get("ref")
return reference if isinstance(reference, str) else None