o
    h                     @   sH   d Z dZddlmZ G dd dZe ZG dd dZe ZedZd	S )
z3.3.0zALogging and warning framework, predating Python's logging package    )stderrc                   @   s8   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d ZdS )Loggerz
    An extended file type thing initially equivalent to sys.stderr
    You can add/remove file type things; it has a write method
    c                 C   s   t g| _i | _d S N)r   _fps_fns)self r   V/var/www/html/optinet_system/venv/lib/python3.10/site-packages/reportlab/lib/logger.py__init__   s   
zLogger.__init__c                 C   s<   t |tr|| jv rdS ttd}|| jt< | j| dS )z*add the file/string fp to the destinationsNwb)
isinstancestrr   openfnr   append)r   fpr   r   r	   add   s
   


z
Logger.addc                 C   sP   t |tr|| jvrdS |}| j| }| j|= || jv r&| j| j|= dS dS )z/remove the file/string fp from the destinationsN)r   r   r   fnsr   index)r   r   r   r   r   r	   remove   s   


zLogger.removec                 C   s.   |d dkr
|d }| j D ]}|| qdS )z"write text to all the destinations
N)r   write)r   textr   r   r   r	   r   #   s   zLogger.writec                 C      |  | d S r   )r   )r   r   r   r   r	   __call__(      zLogger.__call__N)	__name__
__module____qualname____doc__r
   r   r   r   r   r   r   r   r	   r      s    
r   c                   @   s&   e Zd Zd	ddZdd Zdd ZdS )
WarnOnceWarnc                 C   s   i | _ d| | _d| _d S )Nz%s:    )utteredpfxenabled)r   kindr   r   r	   r
   /   s   

zWarnOnce.__init__c                 C   s2   || j vr| jrt| j|  d| j |< d S d S )Nr#   )r$   r&   loggerr   r%   r   warningr   r   r	   once4   s   
zWarnOnce.oncec                 C   r   r   )r+   r)   r   r   r	   r   9   r   zWarnOnce.__call__N)r"   )r   r   r   r
   r+   r   r   r   r   r	   r!   -   s    
r!   InfoN)	__version__r    sysr   r   r(   r!   warnOnceinfoOncer   r   r   r	   <module>   s   #