509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<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_literalsNéd   é   é   é   é   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¤   xžyR| 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{®Gáz„?)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





