![Petrovich](petrovich.png)

Склонение русских имён, фамилий и отчеств по падежам.
Порт с [ruby](https://github.com/petrovich/petrovich-ruby) библиотеки на python


#### Описание

Перед использованием модуля требуется создать экземпляр класса 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  # > Алексеева
    
    
#### История изменений
##### 1.0.0. 
Присутствуют изменения с потерей обратной совместимости. 
Был удален префикс `CASE_` у всех значений перечисления `petrovich.enums.Case`.
