Ejemplo n.º 1
0
def past_participle_dp5d(src_dict) -> list:
    name = src_dict['name']
    gpm = list(
        filter(lambda x: x.idf == '.ГПм',
               get_past_tense_forms(src_dict)))[0].name
    if not name.endswith(('ся', 'сь')):
        word_forms = [
            WordForm(f'{gpm[:-1]}дши', '.ДП'),
        ]
    else:
        word_forms = [
            WordForm(f'{gpm[:-3]}дшись', '.ДП'),
        ]
    return word_forms
Ejemplo n.º 2
0
def past_participle_dp9_dash_and_4(src_dict) -> list:
    name = src_dict['name']
    gpm = list(
        filter(lambda x: x.idf == '.ГПм',
               get_past_tense_forms(src_dict)))[0].name
    if not name.endswith(('ся', 'сь')):
        word_forms = [
            WordForm(f'{name[:-2]}в', '.ДП1'),
            WordForm(f'{gpm}ши', '.ДП2'),
        ]
    else:
        word_forms = [
            WordForm(f'{name[:-4]}вшись', '.ДП1'),
            WordForm(f'{gpm[:-2]}шись', '.ДП2'),
        ]
    return word_forms
Ejemplo n.º 3
0
def past_participle_dp7(src_dict) -> list:
    name = src_dict['name']
    gpm = list(
        filter(lambda x: x.idf == '.ГПм',
               get_past_tense_forms(src_dict)))[0].name
    gnb2e = list(
        filter(lambda x: x.idf == '.ГНБ2е',
               get_present_future_forms(src_dict)))[0].name
    if not name.endswith(('ся', 'сь')):
        word_forms = [
            WordForm(f'{gpm}ши', '.ДП'),
            WordForm(f'{gnb2e[:-3]}а', '.ДП!'),
        ]
    else:
        word_forms = [
            WordForm(f'{gpm[:-2]}шись', '.ДП'),
            WordForm(f'{gnb2e[:-5]}ась', '.ДП!'),
        ]
    return word_forms
Ejemplo n.º 4
0
def past_participle_is_valid_ppd1d(src_dict) -> list:
    name = src_dict['name']
    gpm = list(
        filter(lambda x: x.idf == '.ГПм',
               get_past_tense_forms(src_dict)))[0].name
    if not name.endswith(('ся', 'сь')):
        ppdmi = f'{gpm[:-1]}дший'
        word_forms = [
            WordForm(ppdmi, '.ППДмИ'),
            WordForm(f'{ppdmi[:-2]}его', '.ППДмР'),
            WordForm(f'{ppdmi[:-2]}ему', '.ППДмД'),
            WordForm(ppdmi, '.ППДмВ'),
            WordForm(f'{ppdmi[:-2]}им', '.ППДмТ'),
            WordForm(f'{ppdmi[:-2]}ем', '.ППДмП'),
            WordForm(f'{ppdmi[:-2]}ая', '.ППДжИ'),
            WordForm(f'{ppdmi[:-2]}ей', '.ППДжР'),
            WordForm(f'{ppdmi[:-2]}ей', '.ППДжД'),
            WordForm(f'{ppdmi[:-2]}ую', '.ППДжВ'),
            WordForm(f'{ppdmi[:-2]}ей', '.ППДжТ1'),
            WordForm(f'{ppdmi[:-2]}ею', '.ППДжТ2'),
            WordForm(f'{ppdmi[:-2]}ей', '.ППДжП'),
            WordForm(f'{ppdmi[:-2]}ее', '.ППДсИ'),
            WordForm(f'{ppdmi[:-2]}его', '.ППДсР'),
            WordForm(f'{ppdmi[:-2]}ему', '.ППДсД'),
            WordForm(f'{ppdmi[:-2]}ее', '.ППДсВ'),
            WordForm(f'{ppdmi[:-2]}им', '.ППДсТ'),
            WordForm(f'{ppdmi[:-2]}ем', '.ППДсП'),
            WordForm(f'{ppdmi[:-2]}ие', '.ППДмнИ'),
            WordForm(f'{ppdmi[:-2]}их', '.ППДмнР'),
            WordForm(f'{ppdmi[:-2]}им', '.ППДмнД'),
            WordForm(f'{ppdmi[:-2]}ие', '.ППДмнВ'),
            WordForm(f'{ppdmi[:-2]}ими', '.ППДмнТ'),
            WordForm(f'{ppdmi[:-2]}их', '.ППДмнП'),
        ]
    else:
        ppdmi = f'{gpm[:-3]}дшийся'
        word_forms = [
            WordForm(ppdmi, '.ППДмИ'),
            WordForm(f'{ppdmi[:-4]}егося', '.ППДмР'),
            WordForm(f'{ppdmi[:-4]}емуся', '.ППДмД'),
            WordForm(ppdmi, '.ППДмВ'),
            WordForm(f'{ppdmi[:-4]}имся', '.ППДмТ'),
            WordForm(f'{ppdmi[:-4]}емся', '.ППДмП'),
            WordForm(f'{ppdmi[:-4]}аяся', '.ППДжИ'),
            WordForm(f'{ppdmi[:-4]}ейся', '.ППДжР'),
            WordForm(f'{ppdmi[:-4]}ейся', '.ППДжД'),
            WordForm(f'{ppdmi[:-4]}уюся', '.ППДжВ'),
            WordForm(f'{ppdmi[:-4]}ейся', '.ППДжТ1'),
            WordForm(f'{ppdmi[:-4]}еюся', '.ППДжТ2'),
            WordForm(f'{ppdmi[:-4]}ейся', '.ППДжП'),
            WordForm(f'{ppdmi[:-4]}ееся', '.ППДсИ'),
            WordForm(f'{ppdmi[:-4]}егося', '.ППДсР'),
            WordForm(f'{ppdmi[:-4]}емуся', '.ППДсД'),
            WordForm(f'{ppdmi[:-4]}ееся', '.ППДсВ'),
            WordForm(f'{ppdmi[:-4]}имся', '.ППДсТ'),
            WordForm(f'{ppdmi[:-4]}емся', '.ППДсП'),
            WordForm(f'{ppdmi[:-4]}иеся', '.ППДмнИ'),
            WordForm(f'{ppdmi[:-4]}ихся', '.ППДмнР'),
            WordForm(f'{ppdmi[:-4]}имся', '.ППДмнД'),
            WordForm(f'{ppdmi[:-4]}иеся', '.ППДмнВ'),
            WordForm(f'{ppdmi[:-4]}имися', '.ППДмнТ'),
            WordForm(f'{ppdmi[:-4]}ихся', '.ППДмнП'),
        ]
    return word_forms
Ejemplo n.º 5
0
def get_group_word_form(src_dict: dict) -> GroupWordForm:
    name = src_dict['name']
    inf_0 = src_dict['Inf_0']
    if inf_0:
        info = [src_dict['Inf_0'], src_dict['Inf_1']]
        info += list(
            filter(None, [
                src_dict['Inf_2'],
                src_dict['Inf_3'],
                src_dict['Inf_4'],
                src_dict['Inf_5'],
                src_dict['Inf_6'],
                src_dict['Inf_7'],
                src_dict['Inf_8'],
                src_dict['Inf_9'],
                src_dict['Inf_10'],
                src_dict['Inf_11'],
                src_dict['Inf_12'],
            ]))

        word_forms = []
        if src_dict['Inf_3']:
            present_future_forms = get_present_future_forms(src_dict)
            word_forms += present_future_forms

        if src_dict['Inf_4']:
            past_tense_forms = get_past_tense_forms(src_dict)
            word_forms += past_tense_forms

        if src_dict['Inf_5']:
            imperative_mood_forms = get_imperative_mood_forms(src_dict)
            word_forms += imperative_mood_forms

        if src_dict['Inf_6']:
            joint_action_forms = get_joint_action_forms(src_dict)
            word_forms += joint_action_forms

        if src_dict['Inf_7']:
            present_participle_is_valid_forms = get_present_participle_is_valid(
                src_dict)
            word_forms += present_participle_is_valid_forms

        if src_dict['Inf_8']:
            passive_present_participle_forms = get_passive_present_participle(
                src_dict)
            word_forms += passive_present_participle_forms

        if src_dict['Inf_9']:
            past_participle_is_valid_forms = get_past_participle_is_valid(
                src_dict)
            word_forms += past_participle_is_valid_forms

        if src_dict['Inf_10']:
            passive_past_participle_forms = get_passive_past_participle(
                src_dict)
            word_forms += passive_past_participle_forms

        if src_dict['Inf_11']:
            present_participle_forms = get_present_participle(src_dict)
            word_forms += present_participle_forms

        if src_dict['Inf_12']:
            past_participle_forms = get_past_participle(src_dict)
            word_forms += past_participle_forms

        if name.endswith(('шел', 'шелся')):
            title_word_form = TitleWordForm(name, word_forms[0].idf, info, '')
            return GroupWordForm(title_word_form, word_forms[1:])
        else:
            title_word_form = TitleWordForm(name, '.ГИ', info, '')
            return GroupWordForm(title_word_form, word_forms)
    else:
        title_word_form = TitleWordForm(name, '', [], '')
        return GroupWordForm(title_word_form, [])