o
    Zzjü	  ã                   @   sd   d Z ddlmZ ddlmZ ddlmZ eeƒZdedB dede	fd	d
„Z
dedede	fdd„ZdS )aE  This module contains helper functions related to inspecting the program stack.

.. versionadded:: 20.0

Warning:
    Contents of this module are intended to be used internally by the library and *not* by the
    user. Changes to this module are not considered breaking changes and may not be documented in
    the changelog.
é    )ÚPath)Ú	FrameType)Ú
get_loggerÚframeNÚcallerÚreturnc              
   C   sN   | du rdS zt | |ƒW S  ty& } ztjd|d� W Y d}~dS d}~ww )a+  Checks if the passed frame was called by the specified file.

    Example:
        .. code:: pycon

            >>> was_called_by(inspect.currentframe(), Path(__file__))
            True

    Arguments:
        frame (:obj:`FrameType`): The frame - usually the return value of
            ``inspect.currentframe()``. If :obj:`None` is passed, the return value will be
            :obj:`False`.
        caller (:obj:`pathlib.Path`): File that should be the caller.

    Returns:
        :obj:`bool`: Whether the frame was called by the specified file.
    NFzJFailed to check if frame was called by `caller`. Assuming that it was not.)Úexc_info)Ú_was_called_byÚ	ExceptionÚ_LOGGERÚdebug)r   r   Úexc© r   úT/var/www/kodo/tsheker/venv/lib/python3.10/site-packages/telegram/ext/_utils/stack.pyÚwas_called_by%   s   þ€ûr   c                 C   sF   t | jjƒ ¡ |krdS | jr!| j} t | jjƒ ¡ |krdS | jsdS )NTF)r   Úf_codeÚco_filenameÚresolveÚf_back)r   r   r   r   r   r	   D   s   ýr	   )Ú__doc__Úpathlibr   Útypesr   Útelegram._utils.loggingr   Ú__name__r   Úboolr   r	   r   r   r   r   Ú<module>   s   
