
    e:                         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ej                  dedefd	Zdej                  dd
fdZdej                  dd
fdZd Zde	dd
fdZy
)z#Astroid hooks for the PyQT library.    )nodesparse)register_module_extender)AstroidBuilder)AstroidManagernodesignal_namereturnc                     | j                   j                  dg       }| j                         j                  d      d   dv rt	        d |D              S |r	 |d   j
                  |k(  S y# t        $ r Y yw xY w)zDetect a Signal node.	__class__.r   >   PySide2PySide6c              3   B   K   | ]  }|j                         d k(    yw)SignalNqname).0clss     8/usr/lib/python3/dist-packages/astroid/brain/brain_qt.py	<genexpr>z%_looks_like_signal.<locals>.<genexpr>   s     >s399;(*>s   F)instance_attrsgetr   	partitionanynameAttributeError)r   r	   klassess      r   _looks_like_signalr      s     !!%%k26Gzz|c"1%)??>g>>>	1:??k11   		s   A) )	A54A5Nc                     t        d      }|d   }|d   g| j                  d<   |d   g| j                  d<   |d   g| j                  d<   y )Nz
    _UNSET = object()

    class pyqtSignal(object):
        def connect(self, slot, type=None, no_receiver_check=False):
            pass
        def disconnect(self, slot=_UNSET):
            pass
        def emit(self, *args):
            pass
    
pyqtSignalemit
disconnectconnectr   r   r   module
signal_clss      r   transform_pyqt_signalr)      se    
	F "(!5J#-f#5"6D)3L)A(BD%&0&;%<D	"    c                     t        d      }|d   }|d   g| j                  d<   |d   g| j                  d<   |d   g| j                  d<   y )Nz
    class NotPySideSignal(object):
        def connect(self, receiver, type=None):
            pass
        def disconnect(self, receiver):
            pass
        def emit(self, *args):
            pass
    NotPySideSignalr$   r#   r"   r%   r&   s      r   transform_pyside_signalr-   2   sf    	
F "((9!:J&0&;%<D	")3L)A(BD%#-f#5"6Dr*   c                  F    t        t                     j                  d      S )NzY

def SIGNAL(signal_name): pass

class QObject(object):
    def emit(self, signal): pass
)r   r   string_build r*   r   pyqt4_qtcore_transformr1   D   s"    .*+88	 r*   managerc                     t        | dt               | j                  t        j                  t
        t               | j                  t        j                  t        d        y )NzPyQt4.QtCorec                 &    | j                         dv S )N>   PySide.QtCore.SignalPySide2.QtCore.Signalr   )r   s    r   <lambda>zregister.<locals>.<lambda>X   s    TZZ\%VV r*   )	r   r1   register_transformr   FunctionDefr)   r   ClassDefr-   )r2   s    r   registerr;   P   sI    Wn6LM02D Vr*   )r!   )__doc__astroidr   r   astroid.brain.helpersr   astroid.builderr   astroid.managerr   r9   strboolr   r)   r-   r1   r;   r0   r*   r   <module>rC      s   
 *   : * * 1=


*-	"= 1 1 =d =(7%"3"3 7 7$		n 	 	r*   