B
    S£†\…	  ã               @   sŽ   d Z ddlmZmZ ddlmZ ddlmZ ddlmZ ddd„Zd	d
„ Z	dd„ Z
dd„ Zeedeƒ e eje	e¡ e eje
dd„ ¡ dS )z#Astroid hooks for the PyQT library.é    )ÚMANAGERÚregister_module_extender)ÚAstroidBuilder)Únodes)ÚparseÚ
pyqtSignalc             C   s<   d| j kr8y| j d d }|j|kS  tk
r6   Y nX dS )NÚ	__class__r   F)Úinstance_attrsÚnameÚAttributeError)ÚnodeZsignal_nameÚcls© r   ú5lib/python3.7/site-packages/astroid/brain/brain_qt.pyÚ_looks_like_signal   s    

r   c             C   s>   t dƒ}|d }|d | jd< |d | jd< |d | jd< d S )NzÞ
    class pyqtSignal(object):
        def connect(self, slot, type=None, no_receiver_check=False):
            pass
        def disconnect(self, slot):
            pass
        def emit(self, *args):
            pass
    r   ÚemitÚ
disconnectÚconnect)r   r	   )r   ÚmoduleÚ
signal_clsr   r   r   Útransform_pyqt_signal   s    	r   c             C   s>   t dƒ}|d }|d | jd< |d | jd< |d | jd< d S )NzÒ
    class NotPySideSignal(object):
        def connect(self, receiver, type=None):
            pass
        def disconnect(self, receiver):
            pass
        def emit(self, *args):
            pass
    ZNotPySideSignalr   r   r   )r   r	   )r   r   r   r   r   r   Útransform_pyside_signal.   s    	r   c               C   s   t tƒ d¡S )NzY

def SIGNAL(signal_name): pass

class QObject(object):
    def emit(self, signal): pass
)r   r   Zstring_buildr   r   r   r   Úpyqt4_qtcore_transform@   s    r   zPyQt4.QtCorec             C   s   |   ¡ dkS )NzPySide.QtCore.Signal)Zqname)r   r   r   r   Ú<lambda>Q   s    r   N)r   )Ú__doc__Zastroidr   r   Zastroid.builderr   r   r   r   r   r   r   Zregister_transformZFunctionDefZClassDefr   r   r   r   Ú<module>	   s   
