a
    ¥Q•h   ã                   @   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   úJ/var/www/sistema_ama/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   ÚLOGGERr   r   ÚWARNINGr   ÚNullHandlerÚPROGRESS_LOGGERr   r   Úcontextmanagerr"   r   r   r   r   Ú<module>   s   

