U
K��^� � @ sH d Z ddlZddlZddlZe�d�ZG dd� de�ZG dd� d�ZdS )z% Registers all known signal emitters
� Nzsubiquity.signalsc @ s e Zd ZdZdS )�SignalExceptionzProblem with a signalN)�__name__�
__module__�__qualname__�__doc__� r r �-/usr/share/subiquity/subiquitycore/signals.pyr s r c @ s0 e Zd Zg Zdd� Zdd� Zdd� Zdd� Zd S )
�Signalc C s8 t |�tkr| j�|� n| j�|� t�t| j� d S �N)�type�list�
known_signals�extend�append�urwidZregister_signalr )�selfZsignalsr r r �register_signals! s zSignal.register_signalsc O s t j| |f|�|� d S r
)r �emit_signal)r �name�args�kwargsr r r r ( s zSignal.emit_signalc C sL t |tj�r$d�|jjj|jj�}nt|�}t �
d||� t�| ||� d S )Nz{}.{}zconnect_signal: %s -> %s)
�
isinstance�types�
MethodType�format�__self__� __class__r �__func__�str�log�debugr �connect_signal)r r �cbZscbr r r r! + s �zSignal.connect_signalc C sF t |�tk rtd��|D ](\}}|| jkr4| �|� | �||� qdS )zs Connects a batch of signals
:param list signal_callback: List of tuples eg. ('signame', self.cb)
z,Passed something other than a required list.N)r r r r
r r! )r Zsignal_callbackZsigr" |