a
    [Xh                      @   sn   d Z ddlZddlZedZejs>eej ee	  edZ
G dd dejZejd	ddZdS )
a(  Logging setup.

The rest of the code gets the logger through this module rather than
``logging.getLogger`` to make sure that it is configured.

Logging levels are used for specific purposes:

- errors are used in ``LOGGER`` for unreachable or unusable external resources,
  including unreachable stylesheets, unreachables images and unreadable images;
- warnings are used in ``LOGGER`` for unknown or bad HTML/CSS syntaxes,
  unreachable local fonts and various non-fatal problems;
- infos are used in ``PROCESS_LOGGER`` to advertise rendering steps.

    N
weasyprintweasyprint.progressc                   @   s   e Zd ZdZdd ZdS )CallbackHandlerz:A logging handler that calls a function for every message.c                 C   s   t j|  || _d S )N)loggingHandler__init__emit)selfcallback r   V/var/www/viveiro_mudafortebrasil/venv/lib/python3.9/site-packages/weasyprint/logger.pyr      s    zCallbackHandler.__init__N)__name__
__module____qualname____doc__r   r   r   r   r   r      s   r   c              	   #   s    du rt j t | } g  fdd}| j}| j}g | _| t| | t j zV  W || _| | n|| _| | 0 dS )z;Return a context manager that captures all logged messages.Nc                    s>   | j dkrd S | j k rd S | j  d|    d S )Nr   z: )namelevelnoappend	levelnameupper
getMessage)recordlevelmessagesr   r   r   *   s
    

zcapture_logs.<locals>.emit)	r   INFO	getLoggerhandlersr   
addHandlerr   setLevelDEBUG)loggerr   r   Zprevious_handlersZprevious_levelr   r   r   capture_logs"   s     
r"   )r   N)r   
contextlibr   r   ZLOGGERr   r   WARNINGr   NullHandlerZPROGRESS_LOGGERr   r   contextmanagerr"   r   r   r   r   <module>   s   

