INNER CODE UNIT · Python
dump_enum
renezander030/capcut-cli · scripts/extract-enums.py:79
def dump_enum(enum_cls: type[Enum]) -> list[dict]:
out: list[dict] = []
seen_slugs: set[str] = set()
for name, member in enum_cls.__members__.items():
slug = to_slug(name)
if slug is None:
# Non-ASCII (JianYing Chinese). Keep the entry but no slug.
slug = ""
elif slug in seen_slugs:
# Disambiguate duplicates (e.g. `Mix` and `Mix_1`).
i = 1
while f"{slug}-{i}" in seen_slugs:
i += 1
slug = f"{slug}-{i}"
if slug:
seen_slugs.add(slug)
entry = {"member": name, "slug": slug, **extract_meta(member.value)}
out.append(entry)