<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
ft`r(                 @   s  d dl mZ d dl mZ d dlZd dlZd dlZd dlZd dlZ	d dl
Z
d dlZ
d dlZd dlZd dlZd dlZd dlZdZe
jZe
jZe
jZe
jZe
jZdZdZdZdZd	d
 ZG dd deZee
je
je
je
je
je
jeeeedZdd Zee
je
jdZ dd Z!dd Z"d%Z#dd Z$G dd de
j%j&Z'dd Z(dd Z)G dd  d eZ*G d!d" d"eZ+e	j,j-j.ee	j,j-j/ee	j,j-j0ee	j,j-j1ee	j,j-j2ee	j,j-j3ee	j,j-j4eiZ5G d#d$ d$e	j,j-Z6e6 Z7e	j,j8j9e7 dS )&    )absolute_import)unicode_literalsNd               c                s   dd  fdd}|S )zGMethod decorator turning the method into noop on second or later calls.c              _   s   d S )N )Z_argsZ_kwargsr	   r	   /usr/lib/python3.6/logging.pynoop3   s    zonly_once.<locals>.noopc                s"    | f|| t |  j d S )N)setattr__name__)selfargskwargs)funcr   r	   r
   	swan_song5   s    zonly_once.<locals>.swan_songr	   )r   r   r	   )r   r   r
   	only_once1   s    r   c               @   s   e Zd Zdd Zdd ZdS )_MaxLevelFilterc             C   s
   || _ d S )N)	max_level)r   r   r	   r	   r
   __init__;   s    z_MaxLevelFilter.__init__c             C   s   |j | jkrdS dS )Nr      )Zlevelnor   )r   recordr	   r	   r
   filter>   s    z_MaxLevelFilter.filterN)r   
__module____qualname__r   r   r	   r	   r	   r
   r   :   s   r   )r   r   r      r      r      r   	   
   c             C   s   t j| tS )N)_VERBOSE_VAL_MAPPINGgetTRACE)
cfg_errvalr	   r	   r
   _cfg_verbose_val2levelQ   s    r%   )r   r   r   c             C   s   t j| tjS )N)_ERR_VAL_MAPPINGr"   loggingWARNING)r$   r	   r	   r
   _cfg_err_val2level^   s    r)   c             C   s   | d S )Nz.gzr	   )namer	   r	   r
   compression_namerc   s    r+      i   c             C   s\   t | d>}tj |d&}x|jt}|s,P |j| qW W d Q R X W d Q R X tj|  d S )Nrbwb)opengzipread
CHUNK_SIZEwriteosremove)sourcedestZsfZwfdatar	   r	   r
   compression_rotatorj   s    
"r9   c                   s&   e Zd Zd	 fdd	Zdd Z  ZS )
MultiprocessRotatingFileHandlerar   NFc                s.   t t| j|||||| tjjdd| _d S )Nz	/var/log/T)superr:   r   dnflockZbuild_log_lockrotate_lock)r   filenamemodemaxBytesbackupCountencodingZdelay)	__class__r	   r
   r   v   s    
z(MultiprocessRotatingFileHandler.__init__c             C   s   xyR| j |rD| j* tj| jj}| j  tj| j| W d Q R X tj	j
| | d S  tjjtjjfk
r~   tjd Y q tk
r   | j| d S X qW d S )Ng{Gz?)ZshouldRolloverr?   r4   statZbaseFilenamest_modeZ
doRolloverchmodr'   ZFileHandleremitr=   
exceptionsZProcessLockErrorZThreadLockErrortimeZsleep	ExceptionZhandleError)r   r   rA   r	   r	   r
   rI   {   s    

z$MultiprocessRotatingFileHandler.emit)r;   r   r   NF)r   r   r   r   rI   __classcell__r	   r	   )rE   r
   r:   u   s   r:   c             C   sl   t jj| s,tjjt jj|  tjj|  t| ||d}t	j
dd}tj|_|j| |rht|_t|_|S )N)rB   rC   z%%(asctime)s %(levelname)s %(message)sz%Y-%m-%dT%H:%M:%S%z)r4   pathexistsr=   utilZ
ensure_dirdirnameZtouchr:   r'   Z	FormatterrK   Z	localtimeZ	converterZsetFormatterr9   Zrotatorr+   Znamer)logfilelog_size
log_rotatelog_compresshandlerZ	formatterr	   r	   r
   _create_filehandler   s    
rW   c             C   s   | j ttjj d S )N)logINFOr=   constZ
LOG_MARKER)Zloggerr	   r	   r
   _paint_mark   s    r[   c               @   sB   e Zd Zdd Zedd Zedd Zedd Zdd
dZdS )Loggingc             C   sP   d  | _ | _tjtd tjtd tjtd tjtd tjd dt_	d S )NDDEBUGSUBDEBUGr#   ALLTF)
stdout_handlerstderr_handlerr'   ZaddLevelNamer]   r^   r#   r_   ZcaptureWarningsZraiseExceptions)r   r	   r	   r
   r      s    
zLogging.__init__c             C   st   t jd}|jt t jtj}|jt |jt	t j
 |j| || _t jtj}|jt
 |j| || _d S )Nr=   )r'   	getLoggersetLevelr#   ZStreamHandlersysstdoutrY   Z	addFilterr   r(   
addHandlerr`   stderrra   )r   
logger_dnfre   rg   r	   r	   r
   	_presetup   s    





zLogging._presetupc             C   s   t jd}|jt tjj|tjj	}t
||||}|j| |j| t jd}	|	j| t jd}
|
jt tjj|tjj}t
||||}|
j| tjjj||tk t jd}d|_|jt tjj|tjj}t
||||}|j| d S )Nr=   zpy.warningslibrepozdnf.rpmF)r'   rb   rc   r#   r4   rN   joinr=   rZ   ZLOGrW   rf   ZLOG_LIBREPOlibdnfZrepoZ
LibrepoLogr_   Z	propagater^   ZLOG_RPM)r   logfile_levellogdirrS   rT   rU   rh   rR   rV   logger_warningsZlogger_librepo
logger_rpmr	   r	   r
   _setup_file_loggers   s(    










zLogging._setup_file_loggersc             C   s   | j   | j||||| tjd}|j| j tjd}	|	j| j |	j| j tjd}
| jjt | jjt t	|
 t	|	 | jj| | jj| d S )Nzpy.warningszdnf.rpmr=   )
ri   rq   r'   rb   rf   ra   r`   rc   r(   r[   )r   Zverbose_levelZerror_levelrm   rn   rS   rT   rU   ro   rp   rh   r	   r	   r
   _setup   s    


zLogging._setupFc       
      C   sf   t |j}t|j}t |j}|j}|j}|j}|j}	|rL| j	|||||	S | j
|||||||	S d S )N)r%   Z
debuglevelr)   Z
errorlevelZlogfilelevelrn   rS   rT   rU   rq   rr   )
r   ZconfZfile_loggers_onlyZverbose_level_rZerror_level_rZlogfile_level_rrn   rS   rT   rU   r	   r	   r
   _setup_from_dnf_conf   s    


zLogging._setup_from_dnf_confN)F)	r   r   r   r   r   ri   rq   rr   rs   r	   r	   r	   r
   r\      s
   	r\   c               @   s   e Zd Zdd Zdd ZdS )Timerc             C   s   || _ tj | _d S )N)whatrK   start)r   ru   r	   r	   r
   r     s    zTimer.__init__c             C   s6   t j  | j }d| j|d f }tjdjt| d S )Nztimer: %s: %d msi  r=   )rK   rv   ru   r'   rb   rX   r]   )r   Zdiffmsgr	   r	   r
   __call__  s    zTimer.__call__N)r   r   r   r   rx   r	   r	   r	   r
   rt      s   rt   c                   s$   e Zd Z fddZdd Z  ZS )LibdnfLoggerCBc                s*   t t| j  tjd| _tjd| _d S )Nr=   rj   )r<   ry   r   r'   rb   _dnf_logger_librepo_logger)r   )rE   r	   r
   r     s    zLibdnfLoggerCB.__init__c             G   sf   t |dkr|\}}nt |dkr.|\}}}}|tjjjkrP| jjt| | n| jjt| | dS )zoLog message.

        source -- integer, defines origin (libdnf, librepo, ...) of message, 0 - unknown
        r   r   N)	lenrl   utilsLoggerZLOG_SOURCE_LIBREPOr{   rX   _LIBDNF_TO_DNF_LOGLEVEL_MAPPINGrz   )r   r6   r   levelmessagerK   pidr	   r	   r
   r3     s    
zLibdnfLoggerCB.write)r   r   r   r   r3   rM   r	   r	   )rE   r
   ry     s   ry   i   ):Z
__future__r   r   Zdnf.exceptionsr=   Z	dnf.constZdnf.lockZdnf.utilZlibdnf.reporl   r'   Zlogging.handlersr4   rd   rK   warningsr0   ZSUPERCRITICALZCRITICALZERRORr(   rY   DEBUGr]   r^   r#   r_   r   objectr   r!   r%   r&   r)   r+   r2   r9   ZhandlersZRotatingFileHandlerr:   rW   r[   r\   rt   r}   r~   ZLevel_CRITICALZLevel_ERRORZLevel_WARNINGZLevel_NOTICEZ
Level_INFOZLevel_DEBUGZLevel_TRACEr   ry   ZlibdnfLoggerCBZLogZ	setLoggerr	   r	   r	   r
   <module>   sv   	

a





