o
    HEDi  ã                
   @   sv   d dl Z dZefdedede je fdd„Zedfdeded	ede je fd
d„Zdde jdedede jfdd„ZdS )é    Ni   ÚtextÚlengthÚreturnc                    s    ‡ ‡fdd„t dtˆƒˆ ƒD ƒS )z}
    Split long text

    :param text:
    :param length:
    :return: list of parts
    :rtype: :obj:`typing.List[str]`
    c                    s   g | ]
}ˆ||ˆ  … ‘qS © r   )Ú.0Úi©r   r   r   úb/var/www/www-root/data/www/ovozai.pdev.uz/venv/lib/python3.10/site-packages/aiogram/utils/parts.pyÚ
<listcomp>   s    zsplit_text.<locals>.<listcomp>r   )ÚrangeÚlen)r   r   r   r   r	   Ú
split_text   s    	r   ú Úsplit_separatorc                 C   s–   | }g }|rIt |ƒ|kr?z|d|…  |¡}W n ty"   |}Y nw ||d d k r-|}| |d|… ¡ ||d…  ¡ }n| |¡ 	 |S |s|S )zf
    Split long text

    :param text:
    :param length:
    :param split_separator
    :return:
    Né   é   )r   ÚrindexÚ
ValueErrorÚappendÚlstrip)r   r   r   Ú	temp_textÚpartsÚ	split_posr   r   r	   Úsafe_split_text   s$   ÿ
ór   é
   ÚdataÚpageÚlimitc                 C   s   | || || | … S )a"  
    Slice data over pages

    :param data: any iterable object
    :type data: :obj:`typing.Iterable`
    :param page: number of page
    :type page: :obj:`int`
    :param limit: items per page
    :type limit: :obj:`int`
    :return: sliced object
    :rtype: :obj:`typing.Iterable`
    r   )r   r   r   r   r   r	   Úpaginate/   s   r   )r   r   )	ÚtypingÚMAX_MESSAGE_LENGTHÚstrÚintÚListr   r   ÚIterabler   r   r   r   r	   Ú<module>   s
     &$