
    k7i                         S r SSKrSSKrSSKrSSKJs  Jr  SSK	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 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       I/home/james-whalen/.local/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_default},
                 bus_name{name_default}):
        super().__init__(object_path=object_path, bus_name=bus_name)
c                        \ rS rSrS rS rSrg)	Interface4   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__5   sF    OOF+		 191A1A(1KL1Kt1KLLs   Ac                    U R                   R                  S5      S   n[        R                  UU R                   U R                  c  SOSU R                  < 3U R
                  c  SOSU R
                  < 3S9/nU R                   H,  nUR                  [        UR                  5       S5      5        M.     SR                  U5      $ )N.r!   =)cls_name	interfacepath_defaultname_defaultz    
)r   splitINTERFACE_CLASS_TEMPLATEr   r3   r4   r5   r   r   r&   r%   )r   r<   chunksr2   s       r   r&   Interface.make_code;   s    99??3'+*11ii#yy0$))6G#}}4Admm=N:O	 2 
  llFMM&!1!1!3W=> #yy  r   )r4   r5   r   r3   N)r(   r)   r*   r+   r   r&   r,   r-   r   r   r/   r/   4   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   rO   rO   [   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 (       d  SUR                  SS5      -   n [        U5      n[        [        X5      U5      nUR	                  5       u  n[        X`X5      n[        SR                  Xr5      5        g )N/r9   #Written {} interface wrappers to {})replacer   r   r   
IntrospectrO   printr   )r3   r   output_filebusconnintrospectablerU   n_interfacess           r   generate_from_introspectionrf   m   si     T\\#s++$D>$5t<N$$&DC !D>L	
/
6
6|
QRr   c                     [        U SS9 nUR                  5       nS S S 5        [        WXU5      n[        SR	                  Xc5      5        g ! , (       d  f       N6= f)Nzutf-8)encodingr]   )rN   readrO   r`   r   )
input_filer3   r   ra   rW   rU   re   s          r   generate_from_filerk   {   sK    	j7	+qffh 
, !d+>L	
/
6
6|
QR	 
,	+s   A
Ac                  
   [         R                  " SSS9n U R                  SSSS9  U R                  SS	S
S9  U R                  SSSS9  U R                  SSSS9  U R                  SSSS9  U R                  5       nUR                  (       d'  UR
                  (       d  [        R                  " S5        UR                  (       a  UR                  nOUR                  (       aM  [        R                  R                  [        R                  R                  UR                  5      5      S   S-   nOlUR                  (       a<  [        UR                  5      S:  a#  UR                  SS  R                  SS5      S-   nOUR
                  R                  SS5      S-   nUR                  (       a-  [        UR                  UR                  UR
                  U5        g [!        UR                  UR
                  X!R"                  5        g )Nz7Generate a simple wrapper module to call D-Bus methods.zIf you don't use --file, this will connect to D-Bus and introspect the given name and path. --name and --path can also be used with --file, to give defaults for the generated class.)descriptionepilogz-nz--namez2Bus name to introspect, required unless using file)helpz-pz--pathzObject path to introspect. If not specified, a path matching the name will be used, e.g. /org/freedesktop/Notifications for org.freedesktop.Notificationsz--busSESSIONzEBus to connect to for introspection (SESSION/SYSTEM), default SESSION)defaultro   z-fz--filez.XML file to use instead of D-Bus introspectionz-oz--outputzOutput filenamez#Either --name or --file is requiredr   z.pyr"   r\   _r9   )argparseArgumentParseradd_argument
parse_argsfiler   sysexitoutputosr3   splitextbasenamer   r^   rk   rf   rb   )apr#   rz   s      r   mainr      s   		 	 M;
B OOD(M  OOOD(x  y OOGY`  bOOD(I  KOOD**  ,==?DII67 {{	!!"''"2"2499"=>qAEI	s499~)12&&sC058""3,u4yy499diiFC#DIItyy&((Kr   __main__)rp   )__doc__rs   os.pathr{   rx   xml.etree.ElementTreeetreeElementTreerP   textwrapr   jeepney.wrappersr   jeepney.io.blockingr   r   jeepneyr   r	   rB   r/   rS   rT   rO   rf   rk   r   r(   r-   r   r   <module>r      sz    ;   
 " "  + ; 
 
> ! !& $SS$LN zF r   