§
    ÕóÉjö   ã                  óî  — U d Z ddlmZ ddlZddlZddlmZ ddlmZ ddlmZ ddlm	Z	 ddlm
Z
 dd	lmZ dd
lmZ ddlmZ dZdZ edd¬¦  «        Zedeed         f         Z ej        d¦  «        Zej        ej        k    re                     ej        ¦  «         d)d„Z e¦   «         Zded<   d*d„Zd+d„Zeej        d f         Z  G d!„ d¦  «        Z! G d"„ d ¦  «        Z"	 d,d-d&„Z# G d'„ d(¦  «        Z$dS ).a”  Logging control and utilities.

Control of logging for SA can be performed from the regular python logging
module.  The regular dotted module namespace is used, starting at
'sqlalchemy'.  For class-level logging, the class name is appended.

The "echo" keyword parameter, available on SQLA :class:`_engine.Engine`
and :class:`_pool.Pool` objects, corresponds to a logger specific to that
instance only.

é    )ÚannotationsN)ÚAny)ÚLiteral)ÚOptional)Úoverload)ÚSet)ÚType)ÚTypeVar)ÚUnionTé   Ú_ITÚ
Identified)ÚboundÚdebugÚ
sqlalchemyÚloggerúlogging.LoggerÚreturnÚNonec                óº   — t          j        t          j        ¦  «        }|                     t          j        d¦  «        ¦  «         |                      |¦  «         d S )Nz.%(asctime)s %(levelname)s %(name)s %(message)s)ÚloggingÚStreamHandlerÚsysÚstdoutÚsetFormatterÚ	FormatterÚ
addHandler)r   Úhandlers     ús/home/lighthouse/badge-speaker-benchmark/.benchmark-venv-community/lib64/python3.11/site-packages/sqlalchemy/log.pyÚ_add_default_handlerr    1   sW   € ÝÔ#¥C¤JÑ/Ô/€GØ×ÒÝÔÐJÑKÔKñô ð ð ×Ò�gÑÔÐÐÐó    zSet[Type[Identified]]Ú_logged_classesÚclsúType[Identified]Ústrc                óH   — t          | dd ¦  «        p| j        dz   | j        z   S )NÚ_sqla_logger_namespaceú.)ÚgetattrÚ
__module__Ú__name__)r#   s    r   Ú_qual_logger_name_for_clsr,   <   s-   € å�Ð-¨tÑ4Ô4ð 	/ØŒ>˜CÑ #¤,Ñ.ðr!   ú	Type[_IT]c                ó´   ‡— t          j        t          | ¦  «        ¦  «        Šˆfd„| _        ˆfd„| _        ‰| _        t                               | ¦  «         | S )Nc                óB   •— ‰                      t          j        ¦  «        S ©N)ÚisEnabledForr   ÚDEBUG©Úselfr   s    €r   ú<lambda>zclass_logger.<locals>.<lambda>E   s   ø€ ¨×)<Ò)<ÝŒñ*ô *€ r!   c                óB   •— ‰                      t          j        ¦  «        S r0   )r1   r   ÚINFOr3   s    €r   r5   zclass_logger.<locals>.<lambda>H   s   ø€ ¨×(;Ò(;ÝŒñ)ô )€ r!   )r   Ú	getLoggerr,   Ú_should_log_debugÚ_should_log_infor   r"   Úadd)r#   r   s    @r   Úclass_loggerr<   C   sp   ø€ ÝÔÕ8¸Ñ=Ô=Ñ>Ô>€Fðð ð ð €CÔðð ð ð €CÔð €C„JÝ×Ò˜ÑÔÐØ€Jr!   ÚInstanceLoggerc                  óF   — e Zd ZU dZdZded<   ded<   ded<   dd„Zdd„ZdS )r   © NzOptional[str]Úlogging_nameÚ_IdentifiedLoggerTyper   Ú_EchoFlagTypeÚ_echor   Úboolc                óJ   — | j                              t          j        ¦  «        S r0   )r   r1   r   r2   ©r4   s    r   r9   zIdentified._should_log_debug\   s   € ØŒ{×'Ò'­¬Ñ6Ô6Ð6r!   c                óJ   — | j                              t          j        ¦  «        S r0   )r   r1   r   r7   rF   s    r   r:   zIdentified._should_log_info_   s   € ØŒ{×'Ò'­¬Ñ5Ô5Ð5r!   )r   rD   )r+   r*   Ú__qualname__Ú	__slots__r@   Ú__annotations__r9   r:   r?   r!   r   r   r   S   sl   € € € € € € Ø€Ià"&€LÐ&Ð&Ð&Ñ&à!Ð!Ð!Ñ!àÐÐÑð7ð 7ð 7ð 7ð6ð 6ð 6ð 6ð 6ð 6r!   c                  ó¬   — e Zd ZU dZej        ej        ej        ej        dœZde	d<   dZ
dd	„Zdd„Zdd„Zdd„ZeZdd„Zdd„Zdd„Zdd„Zd d„Zd!d„ZdS )"r=   a  A logger adapter (wrapper) for :class:`.Identified` subclasses.

    This allows multiple instances (e.g. Engine or Pool instances)
    to share a logger, but have its verbosity controlled on a
    per-instance basis.

    The basic functionality is to return a logging level
    which is based on an instance's echo setting.

    Default implementation is:

    'debug' -> logging.DEBUG
    True    -> logging.INFO
    False   -> Effective level of underlying logger (
    logging.WARNING by default)
    None    -> same as False
    )NFTr   rB   rC   )Úechor   rL   Únamer%   c                óÄ   — || _         t          j        |¦  «        | _        | j        |         t          j        k    r"| j        j        st          | j        ¦  «         d S d S d S r0   )rL   r   r8   r   Ú	_echo_mapr7   Úhandlersr    )r4   rL   rM   s      r   Ú__init__zInstanceLogger.__init__‚   s_   € ØˆŒ	ÝÔ'¨Ñ-Ô-ˆŒð Œ>˜$Ô¥7¤<Ò/Ð/¸¼Ô8LÐ/Ý  ¤Ñ-Ô-Ð-Ð-Ð-ð 0Ð/Ð/Ð/r!   ÚmsgÚargsr   Úkwargsr   r   c                ó>   —  | j         t          j        |g|¢R i |¤Ž dS )z/Delegate a debug call to the underlying logger.N)Úlogr   r2   ©r4   rR   rS   rT   s       r   r   zInstanceLogger.debugŽ   s0   € ð 	ˆŒ•” Ð5 dÐ5Ð5Ð5¨fÐ5Ð5Ð5Ð5Ð5r!   c                ó>   —  | j         t          j        |g|¢R i |¤Ž dS )z/Delegate an info call to the underlying logger.N)rV   r   r7   rW   s       r   ÚinfozInstanceLogger.info“   s0   € ð 	ˆŒ•”˜sÐ4 TÐ4Ð4Ð4¨VÐ4Ð4Ð4Ð4Ð4r!   c                ó>   —  | j         t          j        |g|¢R i |¤Ž dS )z1Delegate a warning call to the underlying logger.N)rV   r   ÚWARNINGrW   s       r   ÚwarningzInstanceLogger.warning˜   s0   € ð 	ˆŒ•” #Ð7¨Ð7Ð7Ð7°Ð7Ð7Ð7Ð7Ð7r!   c                ó>   —  | j         t          j        |g|¢R i |¤Ž dS )zB
        Delegate an error call to the underlying logger.
        N©rV   r   ÚERRORrW   s       r   ÚerrorzInstanceLogger.errorŸ   s0   € ð 	ˆŒ•” Ð5 dÐ5Ð5Ð5¨fÐ5Ð5Ð5Ð5Ð5r!   c                óH   — d|d<    | j         t          j        |g|¢R i |¤Ž dS )z4Delegate an exception call to the underlying logger.é   Úexc_infoNr^   rW   s       r   Ú	exceptionzInstanceLogger.exception¥   s:   € ð ˆˆzÑØˆŒ•” Ð5 dÐ5Ð5Ð5¨fÐ5Ð5Ð5Ð5Ð5r!   c                ó>   —  | j         t          j        |g|¢R i |¤Ž dS )z2Delegate a critical call to the underlying logger.N)rV   r   ÚCRITICALrW   s       r   ÚcriticalzInstanceLogger.critical«   s1   € ð 	ˆŒ•Ô! 3Ð8¨Ð8Ð8Ð8°Ð8Ð8Ð8Ð8Ð8r!   ÚlevelÚintc                ó4  — | j         j        j        |k    rdS | j        | j                 }|t
          j        k    r| j                              ¦   «         }||k    r?t          r!| 	                    dd¦  «        t          z   |d<    | j         j        |||fi |¤Ž dS dS )zÎDelegate a log call to the underlying logger.

        The level here is determined by the echo
        flag as well as that of the underlying logger, and
        logger._log() is called directly.

        NÚ
stacklevelrb   )r   ÚmanagerÚdisablerO   rL   r   ÚNOTSETÚgetEffectiveLevelÚ
STACKLEVELÚgetÚSTACKLEVEL_OFFSETÚ_log)r4   rh   rR   rS   rT   Úselected_levels         r   rV   zInstanceLogger.log°   s¯   € ð Œ;ÔÔ&¨%Ò/Ð/ØˆFàœ¨¬	Ô2ˆØ�Wœ^Ò+Ð+Ø!œ[×:Ò:Ñ<Ô<ˆNà�NÒ"Ð"Ýð à—J’J˜|¨QÑ/Ô/Õ2CÑCð �|Ñ$ð ˆDŒKÔ˜U C¨Ð8Ð8°Ð8Ð8Ð8Ð8Ð8ð #Ð"r!   rD   c                ó`   — | j         j        j        |k    rdS ||                      ¦   «         k    S )z)Is this logger enabled for level 'level'?F)r   rl   rm   ro   ©r4   rh   s     r   r1   zInstanceLogger.isEnabledForË   s3   € ð Œ;ÔÔ&¨%Ò/Ð/Ø�5Ø˜×.Ò.Ñ0Ô0Ò0Ð0r!   c                ó|   — | j         | j                 }|t          j        k    r| j                             ¦   «         }|S )z+What's the effective level for this logger?)rO   rL   r   rn   r   ro   rv   s     r   ro   z InstanceLogger.getEffectiveLevelÒ   s7   € ð ”˜tœyÔ)ˆØ•G”NÒ"Ð"Ø”K×1Ò1Ñ3Ô3ˆEØˆr!   N)rL   rB   rM   r%   )rR   r%   rS   r   rT   r   r   r   )
rh   ri   rR   r%   rS   r   rT   r   r   r   )rh   ri   r   rD   )r   ri   )r+   r*   rH   Ú__doc__r   rn   r7   r2   rO   rJ   rI   rQ   r   rY   r\   Úwarnr`   rd   rg   rV   r1   ro   r?   r!   r   r=   r=   c   s$  € € € € € € ðð ð( ŒnØŒ~ØŒlØ”ð	ð €Ið ÐÐÑà"€Ið.ð .ð .ð .ð6ð 6ð 6ð 6ð
5ð 5ð 5ð 5ð
8ð 8ð 8ð 8ð
 €Dð6ð 6ð 6ð 6ð6ð 6ð 6ð 6ð9ð 9ð 9ð 9ð
9ð 9ð 9ð 9ð61ð 1ð 1ð 1ðð ð ð ð ð r!   ÚinstanceÚechoflagrB   c                óè   — | j         rt          | j        ¦  «        ›d| j         ›�}nt          | j        ¦  «        }|| _        |dv rt	          j        |¦  «        }nt          ||¦  «        }|| _        dS )zEcreate a logger for an instance that implements :class:`.Identified`.r(   )FNN)r@   r,   Ú	__class__rC   r   r8   r=   r   )rz   r{   rM   r   s       r   Úinstance_loggerr~   Û   s‹   € ð
 Ôð =å% hÔ&8Ñ9Ô9Ð9Ð9ØÔ!Ð!ð
ˆˆõ
 )¨Ô);Ñ<Ô<ˆà€H„Nð �=Ð Ð õ Ô" 4Ñ(Ô(ˆˆõ
   ¨$Ñ/Ô/ˆà€H„O€O€Or!   c                  óR   — e Zd ZdZedd„¦   «         Zedd
„¦   «         Zdd„Zdd„ZdS )Úecho_propertya}      When ``True``, enable log output for this element.

    This has the effect of setting the Python logging level for the namespace
    of this element's class and object reference.  A value of boolean ``True``
    indicates that the loglevel ``logging.INFO`` will be set for the logger,
    whereas the string value ``debug`` will set the loglevel to
    ``logging.DEBUG``.
    rz   úLiteral[None]Úownerr$   r   c                ó   — d S r0   r?   ©r4   rz   r‚   s      r   Ú__get__zecho_property.__get__  ó	   € ð ˜r!   r   rB   c                ó   — d S r0   r?   r„   s      r   r…   zecho_property.__get__	  r†   r!   úOptional[Identified]ú#Union[echo_property, _EchoFlagType]c                ó   — |€| S |j         S r0   )rC   r„   s      r   r…   zecho_property.__get__  s   € ð ÐØˆKà”>Ð!r!   Úvaluer   c                ó(   — t          ||¬¦  «         d S )N)r{   )r~   )r4   rz   r‹   s      r   Ú__set__zecho_property.__set__  s   € Ý˜¨5Ð1Ñ1Ô1Ð1Ð1Ð1r!   N)rz   r�   r‚   r$   r   r€   )rz   r   r‚   r$   r   rB   )rz   rˆ   r‚   r$   r   r‰   )rz   r   r‹   rB   r   r   )r+   r*   rH   rx   r   r…   r�   r?   r!   r   r€   r€   ù   sƒ   € € € € € ð€Gð ðð ð ñ „Xðð ðð ð ñ „Xðð"ð "ð "ð "ð2ð 2ð 2ð 2ð 2ð 2r!   r€   )r   r   r   r   )r#   r$   r   r%   )r#   r-   r   r-   r0   )rz   r   r{   rB   r   r   )%rx   Ú
__future__r   r   r   Útypingr   r   r   r   r   r	   r
   r   rp   rr   r   rD   rB   r8   Ú
rootloggerrh   rn   ÚsetLevelr[   r    Úsetr"   rJ   r,   r<   ÚLoggerrA   r   r=   r~   r€   r?   r!   r   ú<module>r”      sL  ðð
ð 
ð 
ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à€
ØÐ à€gˆe˜<Ð(Ñ(Ô(€à�d˜D '¨'Ô"2Ð2Ô3€ð
 ˆWÔ˜|Ñ,Ô,€
ØÔ�w”~Ò%Ð%Ø×Ò˜œÑ(Ô(Ð(ðð ð ð ð *-¨©¬€Ð .Ð .Ð .Ñ .ðð ð ð ð
ð 
ð 
ð 
ð ˜gœnÐ.>Ð>Ô?Ð ð6ð 6ð 6ð 6ð 6ñ 6ô 6ð 6ð uð uð uð uð uñ uô uð uðr 59ðð ð ð ð ð<2ð 2ð 2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2r!   