Как я уже прокомментировал, U + 00AF не является комбинирующим макроном.Но вы можете преобразовать его в U + 0020 U + 0304 с помощью преобразования NFKD.
>>> unicodedata.normalize('NFKD', u'o\u00af')
u'o \u0304'
Затем вы можете удалить пробел и получить ō с помощью NFC.NFKD довольно агрессивен в декомпозиции, так что некоторая семантика может быть потеряна - все, что «совместимо», будет выделено, например:
'½'
(U + 008D)1012 * (U + 2044) '2'
; '²'
(U + 00B2) ↦ '2'
'①'
(U + 2460) ↦ '1'
и т. Д.)