
    =f$                     v    d dl Z d dlmZmZmZ d dlmZmZmZ d Z	efdZ
ddZdd	ZddZd ZdZdZd ZdZdS )    N)abspathjoindirname)TRANSLITERATE_TABLESUFFIXESPATRONYMIC_RULESc                 D    d}| D ]}|t          j        ||          z  }|S )N )r   get)word
trans_wordchars      E/var/www/html/env/lib/python3.11/site-packages/russian_names/utils.pytransliterate_wordr      s6    J : :)-dD999

    c                 T    |D ]$}t          |          }| | d          |k    r| c S %d S )N)len)r   suffixessuffix
suffix_lens       r   check_suffixr      sJ      [[
''KKK ( r   cp1251c                     t          | d|          }|                                                                d |         }|S )Nrencoding)openread
splitlines)path_inr   lengthfwordss        r   	read_filer$      s=    WcH---AFFHH!!'6'*ELr   Fc                     |r|                                  t          | d|          5 }d                    |          }|                    |           d d d            d S # 1 swxY w Y   d S )Nwr   
)sortr   r   write)path_outr#   r   sortingout_file	words_strs         r   	save_filer.      s     

	hh	/	/	/ "8IIe$$	y!!!" " " " " " " " " " " " " " " " " "s   +A!!A%(A%malec                     | d         }t          j                    D ]9\  }}|\  }}}|D ]+}||k    r#|dk    r|}n|}|r| dd         |z   n| |z   c c S ,:dS )zI
    :param name: string
    :param gender: bool
    :return: string
    r/   N)r   items)	namegender	last_charruler   cutm_suffixw_suffixr   s	            r   patronymic_from_namer:   #   s     RI(.00 D Df#) X 	D 	DDD  V##%FF%F-0CtCRCy6))dVmCCCCC !	DD Dr   c                 x    t                      }| D ](}t          |          }|r|                    |           )|S )z[
    Create patronymics from list of man names
    :param names: list
    :return: set
    )setr:   add)namespatronymicsr3   
patronymics       r   create_patronymicsrA   5   sJ     %%K ( ()$//
 	(OOJ'''r   z	_data.zipzbase.txtc                     t          t          t          t                    t                              } t          j        |           }|                    t                    }|	                    d          }|
                                S )Nutf8)r   r   r   __file__
_BASE_PATHzipfileZipFiler   
_BASE_NAMEdecoder   )pathdata_zipdatadata_decodeds       r   	load_datarN   G   sd    4)):6677Dt$$H==$$D;;v&&L""$$$r   )rN   r$   r.   r   r   )r   N)r   F)r/   )rF   os.pathr   r   r   russian_names.constsr   r   r   r   r   r$   r.   r:   rA   rE   rH   rN   __all__ r   r   <module>rS      s     * * * * * * * * * * P P P P P P P P P P   !)       " " " "D D D D$   

% % %r   