a
     1$eg  ã                   @   s0   d Z ddlZG dd„ dejƒZG dd„ dƒZdS )zLogging helper classes.é    Nc                       s*   e Zd ZdZd‡ fdd„	Zdd„ Z‡  ZS )ÚFieldSkipLogFilterzhFilter field skip log messges.

    At most, one message per field skipped per loop will be passed.
    Ú c                    s   t ƒ  |¡ tƒ | _d S ©N)ÚsuperÚ__init__ÚsetÚ	seen_msgs)ÚselfÚname©Ú	__class__© úJ/var/www/html/django/DPS/env/lib/python3.9/site-packages/fiona/logutils.pyr      s    zFieldSkipLogFilter.__init__c                 C   s4   |  ¡ }| d¡r,|| jv}| j |¡ |S dS dS )zPass record if not seen.zSkipping fieldé   N)Ú
getMessageÚ
startswithr   Úadd)r	   ÚrecordÚmsgÚretvalr   r   r   Úfilter   s    

zFieldSkipLogFilter.filter)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__classcell__r   r   r   r   r      s   r   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚLogFilteringc                 C   s   || _ || _d S r   )Úloggerr   )r	   r   r   r   r   r   r      s    zLogFiltering.__init__c                 C   s   | j  | j¡ d S r   )r   Ú	addFilterr   )r	   r   r   r   Ú	__enter__    s    zLogFiltering.__enter__c                 O   s   | j  | j¡ d S r   )r   ÚremoveFilterr   )r	   ÚargsÚkwargsr   r   r   Ú__exit__#   s    zLogFiltering.__exit__N)r   r   r   r   r   r#   r   r   r   r   r      s   r   )r   ÚloggingÚFilterr   r   r   r   r   r   Ú<module>   s   