
    >a                         S r SSKrSSKJr  SSKJs  Jr  SSKJ	r	  SSK
JrJr  SSKJr   " S S5      rS	r " S
 S5      rSr1 SkrS rSS jrS r\S:X  a  \" 5         gg)z5Generate a wrapper class from DBus introspection data    N)indent)Introspectable)open_dbus_connectionProxy)__version__c                   &    \ rS rSrS rS rS rSrg)Method
   c                    UR                   S   U l        / U l        / U l        UR	                  S5       HV  n UR                   S   nU R                  R                  U5        U R                  R                  UR                   S   5        MX     g ! [
         a'    SR                  [        U R                  5      5      n Nxf = f)Nnamezarg[@direction='in']zarg{}type)	attribr   in_args	signaturefindallKeyErrorformatlenappend)selfxml_nodeargr   s       /lib/python3.13/site-packages/jeepney/bindgen.py__init__Method.__init__   s    OOF+	##$:;C9zz&) LL%NN!!#**V"45 <  9~~c$,,&789s   B.C ?C c                 4    SR                  U R                  S9$ )Nz=def {name}(self):
    return new_method_call(self, '{name}')
)r   )r   r   )r   s    r   _make_code_noargsMethod._make_code_noargs   s%    ?@F AG A	    c                 >   U R                   (       d  U R                  5       $ SR                  U R                   5      nSR                  U R                  5      n[	        U R                   5      S:X  a  SOSR                  U5      nSR                  U R                  XUS9$ )Nz,     z({},)z({})zxdef {name}(self, {args}):
    return new_method_call(self, '{name}', '{signature}',
                           {tuple})
)r   argsr   tuple)r   r   joinr   r   r   r   )r   r#   r   r$   s       r   	make_codeMethod.make_code   s    ||))++yy&GGDNN+	-2FFtL89?% :@ :
	
r   )r   r   r   N)__name__
__module____qualname____firstlineno__r   r   r&   __static_attributes__ r   r   r	   r	   
   s    
6

r   r	   z
class {cls_name}(MessageGenerator):
    interface = {interface!r}

    def __init__(self, object_path={path!r},
                 bus_name={bus_name!r}):
        super().__init__(object_path=object_path, bus_name=bus_name)
c                        \ rS rSrS rS rSrg)	Interface2   c                     UR                   S   U l        X l        X0l        UR	                  S5       Vs/ s H  n[        U5      PM     snU l        g s  snf )Nr   method)r   r   pathbus_namer   r	   methods)r   r   r3   r4   nodes        r   r   Interface.__init__3   sF    OOF+		 191A1A(1KL1Kt1KLLs   Ac                 B   U R                   R                  S5      S   n[        R                  UU R                   U R                  U R
                  S9/nU R                   H,  nUR                  [        UR                  5       S5      5        M.     SR                  U5      $ )N.)cls_name	interfacer3   r4   z    
)r   splitINTERFACE_CLASS_TEMPLATEr   r3   r4   r5   r   r   r&   r%   )r   r;   chunksr2   s       r   r&   Interface.make_code9   s    99??3'+*118				DMM 2 K LllFMM&!1!1!3W=> #yy  r   )r4   r5   r   r3   N)r(   r)   r*   r+   r   r&   r,   r-   r   r   r/   r/   2   s    M!r   r/   z"""Auto-generated DBus bindings

Generated by jeepney version {version}

Object path: {path}
Bus name   : {bus_name}
"""

from jeepney.wrappers import MessageGenerator, new_method_call

>   org.freedesktop.DBus.Peerorg.freedesktop.DBus.Properties#org.freedesktop.DBus.Introspectablec                    [        U[        [        45      (       a"  [        US5       n[	        XX$5      sS S S 5        $ [
        R                  " U 5      nUR                  [        R                  [        UUS95        SnUR                  S5       HJ  nUR                  S   [        ;   a  M  UR                  [        XqU5      R                  5       5        US-  nML     U$ ! , (       d  f       N= f)Nw)versionr3   r4   r   r<   r   r"   )
isinstancebytesstropencode_from_xmlET
fromstringwriteMODULE_TEMPLATEr   r   r   r   IGNORE_INTERFACESr/   r&   )xmlr3   r4   fhfrootiinterface_nodes           r   rL   rL   U   s    "ucl##"c]a H8 ] ==DHH_##Kd-5 $ 7 8 	
A,,{3  (,==
>:DDFG	Q	 4 H ]s   C
C-c                     [        U5      n[        [        X5      U5      nUR                  5       u  n[	        X`X5      n[        SR                  Xr5      5        g )Nz#Written {} interface wrappers to {})r   r   r   
IntrospectrL   printr   )r3   r   output_filebusconnintrospectablerR   n_interfacess           r   generater`   g   sO    $D>$5t<N$$&DC !D>L	
/
6
6|
QRr   c                     [         R                  " 5       n U R                  SSSS9  U R                  SSSS9  U R                  SSS	9  U R                  S
S5        U R                  5       nUR                  =(       d"    UR
                  SS  R                  SS5      S-   n[        UR
                  UR                  X!R                  5        g )Nz-nz--nameT)requiredz-pz--pathz--busSESSION)defaultz-oz--outputr"   /_z.py)
argparseArgumentParseradd_argument
parse_argsoutputr3   replacer`   r   r\   )apr#   rk   s      r   mainrn   p   s    		 	 	"BOOD(TO2OOD(TO2OOGYO/OOD*%==?D[[ETYYqr]223<uDFTYY		6884r   __main__)rc   )__doc__rg   textwrapr   xml.etree.ElementTreeetreeElementTreerM   jeepney.wrappersr   jeepney.io.blockingr   r   jeepneyr   r	   r?   r/   rP   rQ   rL   r`   rn   r(   r-   r   r   <module>rx      sl    ;   " " + ; 
 
> ! ! $S
5 zF r   