§
    AxÅj«  ã                   óÈ   — U d Z ddlmZmZ ddlZddlZddlmZ dZg d¢Z	 edd¬¦  «        Z
eee                  ed	<   d
ee         defd„Zdefd„Zd„ Z G d„ d¦  «        ZdS )aÑ  
PodWorker | modules | logging.py

Log Levels (Level - Value - Description)

NOTSET - 0 - No logging is configured, the logging system is effectively disabled.
DEBUG - 1 - Detailed information, typically of interest only when diagnosing problems. (Default)
INFO - 2 - Confirmation that things are working as expected.
WARN - 3 - An indication that something unexpected happened.
ERROR - 4 - Serious problem, the software has not been able to perform some function.
é    )Ú
ContextVarÚTokenN)ÚOptionali   )ÚNOTSETÚTRACEÚDEBUGÚINFOÚWARNÚERRORÚrunpod_batch_id)ÚdefaultÚ	_batch_idÚbatch_idÚreturnc                 ó6   — t                                | ¦  «        S )z6Set the batch ID associated with the current job task.)r   Úset)r   s    úTC:\Projects\Historical\venv\Lib\site-packages\runpod/serverless/modules/rp_logger.pyÚ_set_batch_idr      s   € å�=Š=˜Ñ"Ô"Ð"ó    Útokenc                 ó:   — t                                | ¦  «         dS )z7Restore the previous batch ID for the current job task.N)r   Úreset)r   s    r   Ú_reset_batch_idr      s   € å‡O‚O�EÑÔÐÐÐr   c                 óV  — t          | t          ¦  «        r1|                      ¦   «         } | t          vrt	          d| › �¦  «        ‚| S t          | t
          ¦  «        r=| dk     s| t          t          ¦  «        k    rt	          d| › �¦  «        ‚t          |          S t	          d| › �¦  «        ‚)zB
    Checks the debug level and returns the debug level name.
    zInvalid debug level: r   )Ú
isinstanceÚstrÚupperÚ
LOG_LEVELSÚ
ValueErrorÚintÚlen)Ú	log_levels    r   Ú_validate_log_levelr#   !   s±   € õ �)�SÑ!Ô!ð Ø—O’OÑ%Ô%ˆ	à�JÐ&Ð&ÝÐ@°YÐ@Ð@ÑAÔAÐAàÐå�)�SÑ!Ô!ð %Ø�qŠ=ˆ=˜I­­Z©¬Ò8Ð8ÝÐ@°YÐ@Ð@ÑAÔAÐAå˜)Ô$Ð$å
Ð8¨YÐ8Ð8Ñ
9Ô
9Ð9r   c            	       ó2  — e Zd ZdZdZ eej                             dej                             dd¦  «        ¦  «        ¦  «        Z	d„ Z
d„ Zdd	„Zd
„ Zddee         fd„Zddee         fd„Zddee         fd„Zddee         fd„Zd„ Zddee         fd„ZdS )ÚRunPodLoggerzSingleton class for logging.NÚRUNPOD_LOG_LEVELÚRUNPOD_DEBUG_LEVELr   c                 óz   — t           j        €$t                               | ¦  «        t           _        t           j        S ©N)r%   Ú_RunPodLogger__instanceÚobjectÚ__new__)Úclss    r   r,   zRunPodLogger.__new__@   s(   € ÝÔ"Ð*Ý&,§n¢n°SÑ&9Ô&9�LÔ#ÝÔ&Ð&r   c                 óh   — t          |¦  «        | _        |                      d| j        › �¦  «         dS )zn
        Set the debug level for logging.
        Can be set to the name or value of the debug level.
        zLog level set to N)r#   ÚlevelÚinfo)ÚselfÚ	new_levels     r   Ú	set_levelzRunPodLogger.set_levelE   s6   € õ
 )¨Ñ3Ô3ˆŒ
Ø�	Š	Ð2 d¤jÐ2Ð2Ñ3Ô3Ð3Ð3Ð3r   r	   c                 ó¶  — | j         dk    rdS t                               | j         ¦  «        }|t                               |¦  «        k    r|dk    rdS t          |¦  «        }t                               ¦   «         x}rd|› d|› �}t          |¦  «        t          k    r@t          dz  }t          |¦  «        t          z
  }d|› d�}|d|…         |z   || d…         z   }t          j	                             d	¦  «        r+|||d
œ}	t          t          j        |	¦  «        d¬¦  «         dS |r|› d|› �}t          |                     d¦  «        › d|› �d¬¦  «         dS )z@
        Log message to stdout if RUNPOD_DEBUG is true.
        r   NÚTIPz	[batchId=z] é   z
...TRUNCATED z CHARACTERS...
ÚRUNPOD_ENDPOINT_ID)Ú	requestIdÚmessager/   T)Úflushz | é   z| )r/   r   Úindexr   r   Úgetr!   ÚMAX_MESSAGE_LENGTHÚosÚenvironÚprintÚjsonÚdumpsÚljust)
r1   r9   Úmessage_levelÚjob_idÚlevel_indexr   Úhalf_max_lengthÚtruncated_amountÚtruncation_noteÚlog_jsons
             r   ÚlogzRunPodLogger.logM   s�  € ð Œ:˜Ò!Ð!ØˆFå ×&Ò& t¤zÑ2Ô2ˆØ�×)Ò)¨-Ñ8Ô8Ò8Ð8¸]ÈeÒ=SÐ=SØˆFå�g‘,”,ˆÝ —}’}‘”Ð&ˆ8ð 	8Ø7 (Ð7Ð7¨gÐ7Ð7ˆGõ ˆw‰<Œ<Õ,Ò,Ð,Ý0°AÑ5ˆOÝ" 7™|œ|Õ.@Ñ@ÐØRÐ0@ÐRÐRÐRˆOàÐ(˜Ð(Ô)¨OÑ;¸gÀÐFVÐFWÐFWÔ>XÑXð õ Œ:�>Š>Ð.Ñ/Ô/ð 	Ø%+¸È-ÐXÐXˆHÝ•$”*˜XÑ&Ô&¨dÐ3Ñ3Ô3Ð3ØˆFàð 	.ØÐ-Ð- GÐ-Ð-ˆGå�×$Ò$ QÑ'Ô'Ð4Ð4¨7Ð4Ð4¸DÐAÑAÔAÐAØˆr   c                 ó¦   — t          |¦  «        }|d         dt          |¦  «        dz
  z  z   |d         z   }|                      |› d|› �¦  «         dS )zv
        Censors secrets for logging.
        Replaces everything except the first and last characters with *
        r   Ú*r6   éÿÿÿÿz: N)r   r!   r0   )r1   Úsecret_nameÚsecretÚredacted_secrets       r   rQ   zRunPodLogger.secretp   s[   € õ
 �V‘”ˆØ  œ) c­S°©[¬[¸1©_Ñ&=Ñ=ÀÀrÄ
ÑJˆØ�	Š	�[Ð5Ð5 OÐ5Ð5Ñ6Ô6Ð6Ð6Ð6r   Ú
request_idc                 ó4   — |                       |d|¦  «         dS )z
        debug log
        r   N©rL   ©r1   r9   rS   s      r   ÚdebugzRunPodLogger.debugy   ó    € ð 	�Š�˜' :Ñ.Ô.Ð.Ð.Ð.r   c                 ó4   — |                       |d|¦  «         dS )z
        info log
        r	   NrU   rV   s      r   r0   zRunPodLogger.info   ó    € ð 	�Š�˜& *Ñ-Ô-Ð-Ð-Ð-r   c                 ó4   — |                       |d|¦  «         dS )z
        warn log
        r
   NrU   rV   s      r   ÚwarnzRunPodLogger.warn…   rZ   r   c                 ó4   — |                       |d|¦  «         dS )z
        error log
        r   NrU   rV   s      r   ÚerrorzRunPodLogger.error‹   rX   r   c                 ó2   — |                       |d¦  «         dS )z
        tip log
        r5   NrU   )r1   r9   s     r   ÚtipzRunPodLogger.tip‘   s   € ð 	�Š�˜%Ñ Ô Ð Ð Ð r   c                 ó4   — |                       |d|¦  «         dS )z4
        trace log (buffered until flushed)
        r   NrU   rV   s      r   ÚtracezRunPodLogger.trace—   rX   r   )r	   Nr)   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r*   r#   r?   r@   r=   r/   r,   r3   rL   rQ   r   r   rW   r0   r\   r^   r`   rb   © r   r   r%   r%   6   s_  € € € € € Ø&Ð&à€JØÐØ
Œ
�ŠØ ¤
§¢Ð/CÀWÑ MÔ Mñ	
ô 	
ñô €Eð'ð 'ð 'ð
4ð 4ð 4ð!ð !ð !ð !ðF7ð 7ð 7ð/ð /¨°#¬ð /ð /ð /ð /ð.ð .¨°¬ð .ð .ð .ð .ð.ð .¨°¬ð .ð .ð .ð .ð/ð /¨°#¬ð /ð /ð /ð /ð!ð !ð !ð/ð /¨°#¬ð /ð /ð /ð /ð /ð /r   r%   )rf   Úcontextvarsr   r   rB   r?   Útypingr   r>   r   r   r   Ú__annotations__r   r   r#   r%   rg   r   r   ú<module>rk      s  ðð
ð 
ð 
ð *Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð àÐ ØBÐBÐB€
Ø'1 zÐ2CÈTÐ'RÑ'RÔ'R€	ˆ:�h˜s”mÔ$Ð RÐ RÑ Rð#˜H SœMð #¨eð #ð #ð #ð #ð
˜5ð ð ð ð ð
:ð :ð :ð*e/ð e/ð e/ð e/ð e/ñ e/ô e/ð e/ð e/ð e/r   