Ë
    ®¦j  ã                   ó–   — d dl Z d dlZd dlmZ 	 d dlmZ dZdefd„Z	defd„Z
defd	„Zdefd
„Zdd„Zd„ Zdefd„Zy# e$ r dZY Œ/w xY w)é    N)ÚBytesIO)ÚImageTFÚreturnc                 ó"   — t        | t        «      S )z7
    Returns True if the given object is a string.
    )Ú
isinstanceÚstr©Úvars    úH/var/www/html/venv/lib/python3.12/site-packages/telebot/service_utils.pyÚ	is_stringr      s   € ô �cœ3ÓÐó    c                 ó"   — t        | t        «      S )zÎ
    Returns True if the given object is a dictionary.

    :param var: object to be checked
    :type var: :obj:`object`

    :return: True if the given object is a dictionary.
    :rtype: :obj:`bool`
    )r   Údictr	   s    r   Úis_dictr      s   € ô �cœ4Ó Ð r   c                 ó"   — t        | t        «      S )zÒ
    Returns True if the given object is a bytes object.

    :param var: object to be checked
    :type var: :obj:`object`

    :return: True if the given object is a bytes object.
    :rtype: :obj:`bool`
    )r   Úbytesr	   s    r   Úis_bytesr   !   s   € ô �cœ5Ó!Ð!r   c                 óF   — t         xr t        | t        j                  «      S )zæ
    Returns True if the given object is a PIL.Image.Image object.

    :param var: object to be checked
    :type var: :obj:`object`

    :return: True if the given object is a PIL.Image.Image object.
    :rtype: :obj:`bool`
    )Úpil_importedr   r   r	   s    r   Úis_pil_imager   .   s   € ô Ò8œJ s¬E¯K©KÓ8Ð8r   c                 ó¤   — t         r@t        «       }| j                  d«      j                  |||¬«       |j	                  d«       |S t        d«      ‚)NÚRGB)Úqualityr   zPIL module is not imported)r   r   ÚconvertÚsaveÚseekÚRuntimeError)ÚimageÚ	extensionr   ÚphotoBuffers       r   Úpil_image_to_filer!   ;   sJ   € ÝÜ“iˆØ�‰�eÓ×!Ñ! +¨yÀ'Ð!ÔJØ×Ñ˜ÔàÐäÐ7Ó8Ð8r   c              #   óV   K  — t        dt        | «      |«      D ]  }| |||z    –— Œ y­w)z)Yield successive n-sized chunks from lst.r   N)ÚrangeÚlen)ÚlstÚnÚis      r   Úchunksr(   F   s4   è ø€ ô �1”c˜#“h Ó"ò ˆØ�!�A˜‘EˆlÓñùs   ‚')c                  óh   — dj                  t        j                  t        j                  d«      «      S )zŒ
    Generates a random token consisting of letters and digits, 16 characters long.

    :return: a random token
    :rtype: :obj:`str`
    Ú é   )ÚjoinÚrandomÚsampleÚstringÚascii_letters© r   r   Úgenerate_random_tokenr2   M   s$   € ð �7‰7”6—=‘=¤×!5Ñ!5°rÓ:Ó;Ð;r   )ÚJPEGÚweb_low)r-   r/   Úior   ÚPILr   r   ÚImportErrorÚboolr   r   r   r   r!   r(   r   r2   r1   r   r   ú<module>r9      sx   ðÛ Û Ý ðåØ€Lð
 �dó  ð
!�Dó 
!ð
"�Tó 
"ð
9˜ó 
9ó9òð<˜sô <øðI ò Ø‚Lðús   �> ¾AÁA