U
    /e                     @   sX   d Z ddlZddlZddlZddlZddlmZ edZG dd dej	j
ejjZ
dS )zBase class to manage comms    N   )Commzipykernel.commc                   @   s:   e Zd ZdZedZe Ze Z	dd Z
dd ZdS )CommManagerzA comm manager.zipykernel.kernelbase.Kernelc                 K   s$   t jj|  tjjj| f| dS )zInitialize the manager.N)comm	base_commr   __init__	traitletsconfigLoggingConfigurable)selfkwargs r   :/tmp/pip-unpacked-wheel-g43y689f/ipykernel/comm/manager.pyr      s    zCommManager.__init__c           	      C   s   |d }|d }|d }| j |d}t|d|dd}| | |dkrVtd| n6z||| W dS  tk
r   tjd|d	d
 Y nX z|  W n" tk
r   tjdd	d
 Y nX dS )zHandler for comm_open messagescontentcomm_idtarget_nameNF)r   Zprimaryr   Zshow_warningz"No such comm target registered: %sz&Exception opening comm with target: %sT)exc_infozqCould not close comm during `comm_open` failure
                clean-up.  The comm may not have been opened yet.)targetsgetr   Zregister_commloggererror	Exceptionclose)	r   streamidentmsgr   r   r   fr   r   r   r   	comm_open   s2    

zCommManager.comm_openN)__name__
__module____qualname____doc__r   ZInstancekernelDictZcommsr   r   r   r   r   r   r   r      s   
r   )r!   loggingZcomm.base_commr   r   Ztraitlets.configr   	getLoggerr   r   r   r	   r
   r   r   r   r   <module>   s   
