Перейти к содержанию

Исключения

Библиотека поднимает встроенные исключения Python и одно свое - FormNotFoundError, подкласс LookupError. Он доступен из rumorph.

Исключение Встроенный класс Когда поднимается
FormNotFoundError LookupError У лексемы нет формы с запрошенными признаками (inflect) или формы, согласованной с количеством, либо слово не согласуется с количеством (agree)
ValueError - Признака или значения нет в словаре (inflect); количество - бесконечность или NaN (agree); файл не словарь ruMorph или поврежден (Analyzer)
TypeError - Аргумент не того типа: слово или значение признака не строка, количество не число, путь к словарю не строка и не PathLike, строка вместо набора слов (analyze_many, lemmatize)
FileNotFoundError OSError Нет файла словаря (Analyzer)
PermissionError, IsADirectoryError и др. OSError Файл словаря не читается (Analyzer)

Сообщения исключений - на русском.

from rumorph import Analyzer, FormNotFoundError

morph = Analyzer()
try:
    morph.analyze("молоко")[0].agree(5)
except FormNotFoundError as e:
    print(type(e).__name__, isinstance(e, LookupError))
try:
    morph.analyze("кошка")[0].inflect(Case="Genitive")
except ValueError as e:
    print(e)
FormNotFoundError True
Неизвестное значение признака Case: Genitive; есть Acc, Dat, Gen, Ins, Loc, Nom, Par, Voc