Normalizando Unicode

Existe uma maneira padrão, em Python, para normalizar uma cadeia unicode, de modo que ela só compreenda as entidades unicode mais simples que podem ser usadas para representá-la?

Quero dizer, algo que traduziria uma sequência como['LATIN SMALL LETTER A', 'COMBINING ACUTE ACCENT'] para['LATIN SMALL LETTER A WITH ACUTE'] ?

Veja onde está o problema:

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

Mas agora:

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

Eu poderia, é claro, fazer uma iteração sobre todos os caracteres e fazer substituições manuais, etc., mas isso não é eficiente, e tenho certeza que perderia metade dos casos especiais e cometeria erros.

questionAnswers(2)

yourAnswerToTheQuestion