Склонение русских имён, фамилий и отчеств по падежам. Порт с ruby библиотеки на python
pip install petrovich
Перед использованием модуля требуется создать экземпляр класса Petrovich. В момент инстанцирования производится загрузка файла с правилами
from petrovich.main import Petrovich
p = Petrovich()
Также при инстанцировании есть возможность выполнить загрузку собственного файла с правилами, путем передачи значения через аргумент rules_path
p = Petrovich(rules_path='my/custom/rules/file.json')
Для склонения каждой из частей ФИО используется собственный метод. Это:
firstname
- склонение имениlastname
- склонение фамилииmiddlename
- склонение отчества
Каждый из этих методов принимает по 3 аргумента:
value
- слово для склонения в именительном падежеcase
- падеж для склонения, содержащий значение, представленное в перечисленииpetrovich.enums.Case
gender
- род для склонения, необязательное для заполнения. Если не задать, то будет попытка определить род самостоятельно на основе определенных правил. В ряде случаев возможно ошибочное определение, например для несклоняемых фамилий (Ткач, Бондаренко, и т.д.). Используется значение из перечисленияpetrovich.enums.Gender
.
from petrovich.main import Petrovich
from petrovich.enums import Case, Gender
p = Petrovich()
cased_lname = p.lastname(u'Алексеев', Case.GENITIVE, Gender.MALE)
print cased_lname # > Алексеева
Присутствуют изменения с потерей обратной совместимости.
Был удален префикс CASE_
у всех значений перечисления petrovich.enums.Case
.