Normalizando Unicode

¿Existe una forma estándar, en Python, para normalizar una cadena Unicode, de modo que solo comprenda las entidades Unicode más simples que se pueden usar para representarla?

Quiero decir, algo que traduciría una secuencia como['LATIN SMALL LETTER A', 'COMBINING ACUTE ACCENT'] a['LATIN SMALL LETTER A WITH ACUTE'] ?

Vea dónde está el problema:

>>> import unicodedata
>>> char = "á"
>>> len(char)
1
>>> [ unicodedata.name(c) for c in char ]
['LATIN SMALL LETTER A WITH ACUTE']

Pero ahora:

>>> char = "á"
>>> len(char)
2
>>> [ unicodedata.name(c) for c in char ]
['LATIN SMALL LETTER A', 'COMBINING ACUTE ACCENT']

Podría, por supuesto, iterar sobre todos los caracteres y hacer reemplazos manuales, etc., pero no es eficiente, y estoy bastante seguro de que me perdería la mitad de los casos especiales y cometería errores.

Respuestas a la pregunta(2)

Su respuesta a la pregunta