+
    V#gd  c                   s   ^ RI t  ^ RIHt ^ RIt^ RIHt ^ RIH	t	H
t
HtHt Rt] P                  ! R4      t^ RIHtHtHtHtHt ^ RIHt  ! R	 R
4      t ! R R4      t ! R R]4      t ! R R]4      tR#   ] d
    ^ RIHt  Lyi ; i)i    N)RLock)process_introspection_data)DBusExceptionIntrospectionParserExceptionMissingErrorHandlerExceptionMissingReplyHandlerExceptionZrestructuredtextzdbus.proxies)BUS_DAEMON_IFACEBUS_DAEMON_NAMEBUS_DAEMON_PATHINTROSPECTABLE_IFACE
LOCAL_PATH)is_py2c                   s6   a  ] tR t^4t o RtR tR tR tRtV t	R# )_DeferredMethodzPA proxy method which will only get called once we have its
introspection reply.
c                sL    Wn         VP                  V n        W n        W0n        R # N)_proxy_method_method_name_append_block)selfproxy_methodappendblock   &&&&3/usr/lib64/python3.14/site-packages/dbus/proxies.py__init__Z_DeferredMethod.__init__8   s     )(55    c                s    R V9   g   VP                  RR4      '       d   V P                  V P                  W4       R# V P                  4        V P                  ! V/ VB # )reply_handlerignore_replyFN)getr   r   r   r   argskeywords   &*,r   __call__Z_DeferredMethod.__call__?   sS    x'LL//LL++T< KKM%%t8x88r   c                s>    V P                  V P                  W4       R # r   )r   r   r   r    r   
call_asyncZ_DeferredMethod.call_asyncJ   s    T''8r   )r   r   r   r   N
__name__
__module____qualname____firstlineno____doc__r   r!   r"   __static_attributes____classdictcell__Z__classdict__   @r   r   r   4   s     	99 9r   r   c                   s6   a  ] tR t^Nt o RtR tR tR tRtV t	R# )_ProxyMethodzA proxy method.

Typically a member of a ProxyObject. Calls to the
method produce messages that travel over the Bus and are routed
to a specific named Service.
c                s    V\         8X  d   \        R \         ,          4      hWn        W n        W0n        W@n        \        P                  ! V4       WPn        Ve   \        P                  ! V4       W`n
        R# )z1Methods may not be called on the reserved path %sN)r
   r   _proxy_connection_named_service_object_path_dbus_bindingsZvalidate_member_namer   Zvalidate_interface_name_dbus_interface)r   ZproxyZ
connectionbus_nameobject_pathZmethod_nameZifaces   &&&&&&&r   r   Z_ProxyMethod.__init__U   sk    *$ !*,6!7 8 8  %)'*++K8*2259$r   c           
     s   VP                  R R4      pVP                  RR4      pVP                  RR4      pVP                  RR4      pVf   Ve0   Vf   \        4       hVf   \        4       hV'       d   \        R4      hVP                  RV P                  4      pVfR   Vf   V P
                  pMVR,           V P
                  ,           pV P                  P                  P                  VR4      pV'       g   VeE   V P                  P                  ! V P                  V P                  VV P
                  VVVV3/ VB  R# V P                  P                  ! V P                  V P                  VV P
                  VV3/ VB # )	r   Nerror_handlerr   F	signaturez6ignore_reply and reply_handler cannot be used togetherdbus_interface.)popr   r   	TypeErrorr3   r   r.   _introspect_method_mapr   r/   r"   r0   r1   Zcall_blocking)	r   r   r   r   r6   r   r7   r8   keys	   &*,      r   r!   Z_ProxyMethod.__call__i   sx    _d; _d;||NE:LLd3	$(A$244&244 !0 1 1 "&68L8LM%''$s*T->->>::>>sDII=4''(;(;(,(9(9(6(,(9(9(1(,(5(54 +34 ##11$2E2E262C2C2@262C2C2;26> 5=> >r   c           
     s   VP                  R R4      pVP                  RR4      pVP                  RR4      pVP                  RV P                  4      pVfV   V'       d   VR,           V P                  ,           pMV P                  pV P                  P                  P                  VR4      pV P                  P                  ! V P                  V P                  VV P                  VVVV3/ VB  R# )r   Nr6   r7   r8   r9   )
r:   r3   r   r.   r<   r   r/   r"   r0   r1   )r   r   r   r   r6   r7   r8   r=   s   &*,     r   r"   Z_ProxyMethod.call_async   s     _d; _d;LLd3	!&68L8LM$s*T->->>''::>>sDII##D$7$7$($5$5$2$($5$5$-$($1$1	0 '/	0r   )r/   r3   r   r0   r1   r.   Nr#   r+   r,   r   r-   r-   N   s     %(*>X0 0r   r-   c                   s   a  ] tR t^t o Rt]t]t^ t	^t
^tRR lt]! R RRR4      t]! R RRR4      t]! R RRR	4      tRR
 ltR tR tR tR tR tR tR tRR ltR t]tRtV tR# )ProxyObjectzA proxy to the remote Object.

A ProxyObject is provided by the Bus. ProxyObjects
have member functions, and can be called like normal Python objects.
Nc                sX   VP                  RR4      pVe'   Ve   \        R4      hTp^ RIHp V! R\        ^R7       VP                  RR4      p	V	e'   Ve   \        R4      hT	p^ RIHp V! R	\        ^R7       V'       d0   \        R
RP                  VP                  4       4      ,          4      hV'       d   VP                  4        Wn        Ve   \        P                  ! V4       V;V n        V n        \        P                  ! V4       W0n        V'       g   VP                  V4      V n        RV n        . V n        / V n        \'        4       V n        V'       d   V P                  \*        8X  d   V P,                  V n        R# V P0                  V n        V P3                  4       V n        R# )ah  Initialize the proxy object.

:Parameters:
    `conn` : `dbus.connection.Connection`
        The bus or connection on which to find this object.
        The keyword argument `bus` is a deprecated alias for this.
    `bus_name` : str
        A bus name for the application owning the object, to be used
        as the destination for method calls and the sender for
        signal matches. The keyword argument ``named_service`` is a
        deprecated alias for this.
    `object_path` : str
        The object path at which the application exports the object
    `introspect` : bool
        If true (default), attempt to introspect the remote
        object to find out supported methods and their signatures
    `follow_name_owner_changes` : bool
        If true (default is false) and the `bus_name` is a
        well-known name, follow ownership changes for that name
busNz%conn and bus cannot both be specified)warnz`Passing the bus parameter to ProxyObject by name is deprecated: please use positional parameters)Z
stacklevelnamed_servicez3bus_name and named_service cannot both be specifiedzjPassing the named_service parameter to ProxyObject by name is deprecated: please use positional parametersz>ProxyObject.__init__ does not take these keyword arguments: %sz, )r:   r;   Zwarningsr@   ZDeprecationWarningZjoinZkeysZ_require_main_loop_busr2   Zvalidate_bus_namer0   _requested_bus_nameZvalidate_object_path__dbus_object_path__Zactivate_name_owner_pending_introspect_pending_introspect_queuer<   r    _introspect_lockr
    INTROSPECT_STATE_DONT_INTROSPECT_introspect_state'INTROSPECT_STATE_INTROSPECT_IN_PROGRESS_Introspect)
r   Zconnr4   r5   Z
introspectZfollow_name_owner_changeskwargsr?   r@   rA   s
   &&&&&&,   r   r   ZProxyObject.__init__   s   , jj%? GHHD% @#3 

?D9$# !, - -$H% C#3  4"ii67 8 8 % ##%	,,X6 :BAd6++K8$/!("&":":8"DD $( )+&&(# !&T66*D%)%J%JD"%)%Q%QD"'+'7'7'9D$r   c                    V P                   # r   )r0   r      &r   <lambda>ProxyObject.<lambda>  s
    T%8%8r   a  The bus name to which this proxy is bound. (Read-only,
            may change.)

            If the proxy was instantiated using a unique name, this property
            is that unique name.

            If the proxy was instantiated with a well-known name and with
            ``follow_name_owner_changes`` set false (the default), this
            property is the unique name of the connection that owned that
            well-known name when the proxy was instantiated, which might
            not actually own the requested well-known name any more.

            If the proxy was instantiated with a well-known name and with
            ``follow_name_owner_changes`` set true, this property is that
            well-known name.
            c                rM   r   )rC   rN   rO   r   rP   rQ      s
    t/G/Gr   z[The bus name which was requested when this proxy was
            instantiated.
            c                rM   r   )rD   rN   rO   r   rP   rQ   &  s
    (A(Ar   zThe object-path of this proxy.c                st    V P                   P                  ! V3RVRVRV P                  RV P                  /VB # )a:  Arrange for the given function to be called when the given signal
is received.

:Parameters:
    `signal_name` : str
        The name of the signal
    `handler_function` : callable
        A function to be called when the signal is emitted by
        the remote object. Its positional arguments will be the
        arguments of the signal; optionally, it may be given
        keyword arguments as described below.
    `dbus_interface` : str
        Optional interface with which to qualify the signal name.
        If None (the default) the handler will be called whenever a
        signal of the given member name is received, whatever
        its interface.
:Keywords:
    `utf8_strings` : bool
        If True, the handler function will receive any string
        arguments as dbus.UTF8String objects (a subclass of str
        guaranteed to be UTF-8). If False (default) it will receive
        any string arguments as dbus.String objects (a subclass of
        unicode).
    `byte_arrays` : bool
        If True, the handler function will receive any byte-array
        arguments as dbus.ByteArray objects (a subclass of str).
        If False (default) it will receive any byte-array
        arguments as a dbus.Array of dbus.Byte (subclasses of:
        a list of ints).
    `sender_keyword` : str
        If not None (the default), the handler function will receive
        the unique name of the sending endpoint as a keyword
        argument with this name
    `destination_keyword` : str
        If not None (the default), the handler function will receive
        the bus name of the destination (or None if the signal is a
        broadcast, as is usual) as a keyword argument with this name.
    `interface_keyword` : str
        If not None (the default), the handler function will receive
        the signal interface as a keyword argument with this name.
    `member_keyword` : str
        If not None (the default), the handler function will receive
        the signal name as a keyword argument with this name.
    `path_keyword` : str
        If not None (the default), the handler function will receive
        the object-path of the sending object as a keyword argument
        with this name
    `message_keyword` : str
        If not None (the default), the handler function will receive
        the `dbus.lowlevel.SignalMessage` as a keyword argument with
        this name.
    `arg...` : unicode or UTF-8 str
        If there are additional keyword parameters of the form
        ``arg``\ *n*, match only signals where the *n*\ th argument
        is the value given for that keyword parameter. As of this time
        only string arguments can be matched (in particular,
        object paths and signatures can't).
    `arg0namespace` : str
        If not None (the default) match only signals where the first
        argument is a string that either is equal to the
        keyword parameter, or starts with the keyword parameter
        followed by a dot (and optionally more text).
    `arg...path`: str
        If there are additional keyword parameters of the form
        ``arg``\ *n* ``path``, match only signals where the *n*\ th
        argument is either equal or matches in a path-like manner.
        A path-like comparison matches when either the keyword or the
        argument ends with a '/' and is a prefix of the other. An
        example argument path match is arg0path='/aa/bb/'. This would
        match messages with first arguments of '/', '/aa/', '/aa/bb/',
        '/aa/bb/cc/' and '/aa/bb/cc'. It would not match messages with
        first arguments of '/aa/b', '/aa' or even '/aa/bb'.
signal_namer8   r4   Zpath)rB   Zadd_signal_receiverr0   rD   r   rR   Zhandler_functionr8   r      &&&&,r   connect_to_signalZProxyObject.connect_to_signal2  sY    V 			%%&6 	22=	25C	2 04/B/B	2 ,0+D+D		2
 )1	2	2r   c           
     s    / pV P                   P                  ! V P                  V P                  \        R RRV P
                  V P                  3RR/VB # )Z
IntrospectZ Zrequire_main_loopF )rB   r"   r0   rD   r	   _introspect_reply_handler_introspect_error_handler)r   rL   s   & r   rK   ZProxyObject._Introspect  sd    yy##D$7$7$($=$=$8,B$($B$B$($B$B	G
 7<G
 @FG 	Gr   c                sP    V P                    F  w  rpV! V/ VB  K  	  . V n         R # r   )rF   )r   r   r   r   s   &   r   _introspect_execute_queueZ%ProxyObject._introspect_execute_queue  s/     /3.L.L*\$+(+ /M)+&r   c                s   V P                   P                  4          \        V4      V n        T P                  T n        R T n	        T P                  4        T P                   P                  4        R #   \         d7   pT P                  T4        R p?T P                   P                  4        R # R p?ii ; i  T P                   P                  4        i ; ir   )rG   acquirer   r<   r   rX   release INTROSPECT_STATE_INTROSPECT_DONErI   rE   rY   )r   ZdataZes   && r   rW   Z%ProxyObject._introspect_reply_handler  s    %%'	,.H.N+
 &*%J%JD"'+D$**,!!))+ 0 ..q1 !!))+ !!))+s.   A1 (B5 1B2<B-B5 -B22B5 5Cc                s   \         P                  ! 4        \        P                  R V P                  V P
                  VP                  P                  VP                  P                  V4       V P                  P                  4         \        P                  R4       V P                  V n        RV n        V P                  4        V P                  P!                  4        R#   T P                  P!                  4        i ; i)z$Introspect error on %s:%s: %s.%s: %sz'Executing introspect queue due to errorN)loggingZbasicConfig_loggererrorr0   rD   Z	__class__r%   r$   rG   rZ   ZdebugrH   rI   rE   rY   r[   )r   r_      &&r   rX   Z%ProxyObject._introspect_error_handler  s    <))4+D+Doo00%//2J2J	 	%%'	,MMCD%)%J%JD"'+D$**,!!))+D!!))+s   =C   C<c                s    V P                   P                  4         V P                  e   V P                  P                  4        V P                   P	                  4        R #   T P                   P	                  4        i ; ir   )rG   rZ   rE   r   r[   rN   rO   r   _introspect_blockZProxyObject._introspect_block  s^    %%'	,''3((..0 !!))+D!!))+s   (A   A<c                s0   V P                   P                  4         V P                  V P                  8X  d   V P                  P                  WV34       MV! V/ VB  V P                   P                  4        R #   T P                   P                  4        i ; ir   )rG   rZ   rI   rJ   rF   r   r[   )r   Zcallbackr   rL   r   r   _introspect_add_to_queueZ$ProxyObject._introspect_add_to_queue  sz    %%'	,%%)U)UU..55xv6NO $)&)!!))+D!!))+s   AA9 9Bc                s    VP                  R 4      '       d#   VP                  R 4      '       d   \        V4      hV P                  V4      # Z__)
startswithendswithAttributeErrorget_dbus_methodr   memberr`   r   __getattr__ZProxyObject.__getattr__  s=    T""vt'<'< ((''//r   c                s    V P                  W P                  V P                  V P                  VV4      pV P                  V P
                  8X  d'   V P                  W0P                  V P                  4      pV# )a  Return a proxy method representing the given D-Bus method. The
returned proxy method can be called in the usual way. For instance, ::

    proxy.get_dbus_method("Foo", dbus_interface='com.example.Bar')(123)

is equivalent to::

    proxy.Foo(123, dbus_interface='com.example.Bar')

or even::

    getattr(proxy, "Foo")(123, dbus_interface='com.example.Bar')

However, using `get_dbus_method` is the only way to call D-Bus
methods with certain awkward names - if the author of a service
implements a method called ``connect_to_signal`` or even
``__getattr__``, you'll need to use `get_dbus_method` to call them.

For services which follow the D-Bus convention of CamelCaseMethodNames
this won't be a problem.
)	ProxyMethodClassrB   r0   rD   rI   rJ   DeferredMethodClassrb   ra   )r   ri   r8   Zrets   &&& r   rg   ZProxyObject.get_dbus_method  sp    . ##D))$($7$7$($=$=v$24 !!T%Q%QQ**30M0M+/+A+ACC 
r   c                sj    R V P                   V P                  V P                  \        V 4      3,          # )z&<ProxyObject wrapping %s %s %s at %#x>)rB   r0   rD   idrN   rO   r   __repr__ZProxyObject.__repr__  s4    7IIt**D,E,Er$x9Q Q 	Qr   )	rD   rB   rG   r<   rI   r0   rE   rF   rC   )NNNTFr   )r$   r%   r&   r'   r(   r-   rk   r   rl   rH   rJ   r\   r   propertyr4   requested_bus_namer5   rU   rK   rY   rW   rX   ra   rb   rj   rg   rn   __str__r)   r*   r+   r,   r   r>   r>      s     
 $)'($./+'($Q:f 8$H$ ""G$ A$02KP2dG,,,,
,0$LQ Gr   r>   c                   s   a  ] tR tRt o RtR t]! R RRR4      t]t]! R RRR4      t	]! R	 RRR
4      t
]! R RRR4      t]! R RRR4      tRR ltR tRR ltR t]tRtV tR# )	Interfacei  zAn interface into a remote object.

An Interface can be used to wrap ProxyObjects
so that calls can be routed to their correct
D-Bus interface.
c                sn    \        V\        4      '       d   VP                  V n        MWn        W n        R# )a
  Construct a proxy for the given interface on the given object.

:Parameters:
    `object` : `dbus.proxies.ProxyObject` or `dbus.Interface`
        The remote object or another of its interfaces
    `dbus_interface` : str
        An interface the `object` implements
N)Z
isinstancerr   proxy_object_objr3   )r   objectr8      &&&r   r   ZInterface.__init__  s)     fi((++DII-r   c                .    V P                   P                  # r   )rt   r5   rN   rO   r   rP   Interface.<lambda>  s    )>)>r   Nz.The D-Bus object path of the underlying objectc                rw   r   )rt   r4   rN   rO   r   rP   rx     s    dii&8&8r   z:The bus name to which the underlying proxy object is boundc                rw   r   )rt   rp   rN   rO   r   rP   rx     s    		0L0Lr   zGThe bus name which was requested when the underlying object was createdc                rM   r   )rt   rN   rO   r   rP   rx     s    $))r   zThe underlying proxy objectc                rM   r   )r3   rN   rO   r   rP   rx     s
    D,@,@r   zThe D-Bus interface representedc                sf    V'       g   V P                   pV P                  P                  ! WV3/ VB # )a1  Arrange for a function to be called when the given signal is
emitted.

The parameters and keyword arguments are the same as for
`dbus.proxies.ProxyObject.connect_to_signal`, except that if
`dbus_interface` is None (the default), the D-Bus interface that
was passed to the `Interface` constructor is used.
)r3   rt   rU   rS   rT   r   rU   ZInterface.connect_to_signal!  s9     !11Nyy**;+9G=EG 	Gr   c                s    VP                  R 4      '       d#   VP                  R 4      '       d   \        V4      hV P                  P	                  WP
                  4      # rc   )rd   re   rf   rt   rg   r3   rh   r`   r   rj   ZInterface.__getattr__1  sG    T""vt'<'< ((99,,V5I5IJJr   c                sX    Vf   V P                   pV P                  P                  W4      # )zReturn a proxy method representing the given D-Bus method.

This is the same as `dbus.proxies.ProxyObject.get_dbus_method`
except that if `dbus_interface` is None (the default),
the D-Bus interface that was passed to the `Interface` constructor
is used.
)r3   rt   rg   )r   ri   r8   rv   r   rg   ZInterface.get_dbus_method7  s*     !!11Nyy((@@r   c                sT    R V P                   V P                  \        V 4      3,          # )z%<Interface %r implementing %r at %#x>)rt   r3   rm   rN   rO   r   rn   ZInterface.__repr__C  s)    6		4''D83 3 	3r   )r3   rt   r   )r$   r%   r&   r'   r(   r   ro   r5   rD   r4   rp   rs   r8   rU   rj   rg   rn   rq   r)   r*   r+   r,   r   rr   rr     s     . >dLNK&8$$%H "#L#'$CD 3T4>@L@$DFNG K
A3 Gr   rr   )r]   Z	threadingr    ZImportErrorZdummy_threadingr2   Zdbus._expat_introspect_parserr   Zdbus.exceptionsr   r   r   r   Z__docformat__Z	getLoggerr^   r   r   r   r	   r
   Zdbus._compatr   r   r-   ru   r>   rr   rV   r   r   <module>ry      s   8 &  D" " # 

N
+   9 94]0 ]0@J& JZ
K Kw  &%&s   A6 6BB