CasperSecurity

Current Path : /lib/python3/dist-packages/gi/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/gi/__pycache__/_signalhelper.cpython-310.pyc

o

��	^W$�@s@ddlmZGdd�de�ZGdd�de�Zdd�Zdd	�Zd
S)�)�_gic@sjeZdZdZGdd�de�Zddd�Zddejdddddfdd	�Z	dd
d�Z
dd
�Zddd�Zdd�Z
dS)�Signala�Object which gives a nice API for creating and binding signals.

    :param name:
        Name of signal or callable closure when used as a decorator.
    :type name: str or callable
    :param callable func:
        Callable closure method.
    :param GObject.SignalFlags flags:
        Flags specifying when to run closure.
    :param type return_type:
        Return type of the Signal.
    :param list arg_types:
        List of argument types specifying the signals function signature
    :param str doc:
        Documentation of signal object.
    :param callable accumulator:
        Accumulator method with the signature:
        func(ihint, return_accu, handler_return, accu_data) -> boolean
    :param object accu_data:
        User data passed to the accumulator.

    :Example:

    .. code-block:: python

        class Spam(GObject.Object):
            velocity = 0

            @GObject.Signal
            def pushed(self):
                self.velocity += 1

            @GObject.Signal(flags=GObject.SignalFlags.RUN_LAST)
            def pulled(self):
                self.velocity -= 1

            stomped = GObject.Signal('stomped', arg_types=(int,))

            @GObject.Signal
            def annotated_signal(self, a:int, b:str):
                "Python3 annotation support for parameter types.

        def on_pushed(obj):
            print(obj)

        spam = Spam()
        spam.pushed.connect(on_pushed)
        spam.pushed.emit()
    c@sPeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�ZdS)zSignal.BoundSignalz�
        Temporary binding object which can be used for connecting signals
        without specifying the signal name string to connect.
        cOst�||�S�N)�str�__new__��cls�name�args�kargs�r�2/usr/lib/python3/dist-packages/gi/_signalhelper.pyrNszSignal.BoundSignal.__new__cCst�|�||_||_dSr)r�__init__�signal�gobj)�selfrrrrr
rQs

zSignal.BoundSignal.__init__cCsd|S)NzBoundSignal("%s")r�rrrr
�__repr__VszSignal.BoundSignal.__repr__cOs|jj|jg|�Ri|��S)zCall the signals closure.)r�funcr�rr
rrrr
�__call__YszSignal.BoundSignal.__call__cOs|jj||g|�Ri|��S)z^Same as GObject.Object.connect except there is no need to specify
            the signal name.�r�connect)r�callbackr
rrrr
r]szSignal.BoundSignal.connectcOs$|jj|d||g|�Ri|��S)a
Same as GObject.Object.connect except there is no need to specify
            the signal name. In addition concats "::<detail>" to the signal name
            when connecting; for use with notifications like "notify" when a property
            changes.
            z::r)rr�detailr
rrrr
�connect_detailedbs$z#Signal.BoundSignal.connect_detailedcCs|j�|�dS)z"Same as GObject.Object.disconnect.N)r�
disconnect)r�
handler_idrrr
rjszSignal.BoundSignal.disconnectcOs|jjt|�g|�Ri|��S)z[Same as GObject.Object.emit except there is no need to specify
            the signal name.)r�emitrrrrr
rnszSignal.BoundSignal.emitN)�__name__�
__module__�__qualname__�__doc__rrrrrrrrrrrr
�BoundSignalIsr#�cOst|�r|j}t�||�Sr)�callablerrrrrrr
rsszSignal.__new__Nc		Cs�|dur
t|�r
|}|r|s|j}t�|�|r"|s"|s"t|�\}}|dur)t�}||_||_||_||_	||_||_
||_dSr)r%r"rr�get_signal_annotations�tupler�flags�return_type�	arg_types�accumulator�	accu_data)	rr	rr(r)r*�docr+r,rrr
rxs 

zSignal.__init__cCs|dur|S|�||�S)z:Returns a BoundSignal when accessed on an object instance.N)r#)r�instance�ownerrrr
�__get__�szSignal.__get__c
Osht|tj�r|j|g|�Ri|��dSt|�rt|�}n|j}t|�|||j|j|j	|j
|j|jd�S)zmAllows for instantiated Signals to be used as a decorator or calling
        of the underlying signal method.�r	rr(r)r*r-r+r,N)
�
isinstancer�GObjectrrr�typer(r)r*r"r+r,)r�objr
rr	rrr
r�s
�zSignal.__call__c
Cs*t|�||j|j|j|j|j|j|jd�S)z%Returns a renamed copy of the Signal.r1)r4rr(r)r*r"r+r,)r�newNamerrr
�copy�s�zSignal.copycCs|j|j|j|j|jfS)zKReturns a tuple of: (flags, return_type, arg_types, accumulator, accu_data))r(r)r*r+r,rrrr
�get_signal_args�szSignal.get_signal_args)r$r)rr r!r"rr#rr�SIGNAL_RUN_FIRSTrr0rr7r8rrrr
rs1
*

�

rc@seZdZdZdd�ZdS)�SignalOverridea&Specialized sub-class of Signal which can be used as a decorator for overriding
    existing signals on GObjects.

    :Example:

    .. code-block:: python

        class MyWidget(Gtk.Widget):
            @GObject.SignalOverride
            def configure_event(self):
                pass
    cCsdS)zReturns the string 'override'.�overriderrrrr
r8�szSignalOverride.get_signal_argsN)rr r!r"r8rrrr
r:�sr:csZt�}d}t|d�r)ddl}|�|��t�fdd��jD��}d�jvr)�jd}||fS)aAttempt pulling python 3 function annotations off of 'func' for
    use as a signals type information. Returns an ordered nested tuple
    of (return_type, (arg_type1, arg_type2, ...)). If the given function
    does not have annotations then (None, tuple()) is returned.
    N�__annotations__�c3s$�|]
}|�jvr�j|VqdSr)�annotations)�.0�arg��specrr
�	<genexpr>�s�
��z)get_signal_annotations.<locals>.<genexpr>�return)r'�hasattr�inspect�getfullargspecr
r>)rr*r)rFrrAr
r&�s



r&cCs�|j�di�}i}|j��D]0\}}t|t�r>t|�}|s*|}|�|�}t|||�||vr4td|��|||<|�	�||<q||_
|��D]\}}|jdurcd|�dd�}t
||�sct|||j�qFdS)z�Adds Signal instances on a GObject derived class into the '__gsignals__'
    dictionary to be picked up and registered as real GObject signals.
    �__gsignals__z(Signal "%s" has already been registered.N�do_�-�_)�__dict__�get�itemsr2rrr7�setattr�
ValueErrorr8rHr�replacerE)r�gsignals�
newsignalsr	r�
signalName�funcNamerrr
�install_signals�s,

�

��rVN)r$rrrr:r&rVrrrr
�<module>s
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY