o
    JPZ                     @   s@   d dl Z d dlmZ d dlmZ d dlmZ G dd deZdS )    N)AbstractWriter)debug)errorc                   @   s4   e Zd ZdZdddZdd Zdd	d
Zdd ZdS )CallbackWriterzInvokes user-specified callable and passes transformed
       MIB module to it.

       Note: user callable object signature must be as follows

       .. function:: cbFun(mibname, contents, cbCtx)

    Nc                 C   s   || _ || _dS )zCreates an instance of *CallbackWriter* class.

        Args:
            cbFun (callable): user-supplied callable
        Keyword Args:
            cbCtx: user-supplied object passed intact to user callback
        N)_cbFun_cbCtx)selfZcbFunZcbCtx r	   7/usr/lib/python3/dist-packages/pysmi/writer/callback.py__init__   s   
zCallbackWriter.__init__c                 C   s   d| j j| jf S )Nz%s{"%s"})	__class____name__r   )r   r	   r	   r
   __str__"   s   zCallbackWriter.__str__r	   Fc              	   C   s   |rt jt j@ ot d d S  d S z
| ||| j W n ty4   tjd| j|t	 d f | dw t jt j@ oDt d|  d S  d S )Nzdry run modez'user callback %s failure writing %s: %s   )writerzuser callback for %s succeeded)
r   loggerZ
flagWriterr   r   	Exceptionr   ZPySmiWriterErrorsysexc_info)r   ZmibnamedataZcommentsZdryRunr	   r	   r
   putData%   s   $zCallbackWriter.putDatac                 C   s   dS )N r	   )r   filenamer	   r	   r
   getData3   s   zCallbackWriter.getData)N)r	   F)r   
__module____qualname____doc__r   r   r   r   r	   r	   r	   r
   r      s    
	
r   )r   Zpysmi.writer.baser   Zpysmir   r   r   r	   r	   r	   r
   <module>   s
   