Я только начинаю работать с HarfBuzz и перешел на использование интерфейса GObject Introspection для изучения его API. Пока все было просто, но я немного запутался с language_from_string
, который имеет следующую строку документации:
language_from_string(str:list) -> HarfBuzz.language_t
т.е. в IPython я делаю:
from gi.repository import HarfBuzz
?HarfBuzz.language_from_string
в ванильном Python вы можете заменить последнюю строку на: print(HarfBuzz.language_from_string.__doc__)
(или аналогичный)
если я вызову этот метод со строкой, например:
HarfBuzz.language_from_string('en')
Я получаю
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Item 0: Must be number, not str
назад, а если я сначала преобразую в список кодов:
en = HarfBuzz.language_from_string(list(map(ord, 'en')))
ошибка исчезает, и я получаю что-то полезное обратно. например Я могу сделать:
HarfBuzz.language_to_string(en)
и я получаю ожидаемое en
в виде строки.
HarfBuzz Issue # 91 об этом методе, но, похоже, не имеет отношения к делу.