
    d                         d Z ddlZddlmZ ddlmc mZ ddlm	Z	 ddl
mZmZ ddlmZ  G d d          Zd	Z G d
 d          ZdZh dZd ZddZd Zedk    r e             dS dS )z5Generate a wrapper class from DBus introspection data    N)indent)Introspectable)open_dbus_connectionProxy)__version__c                        e Zd Zd Zd Zd ZdS )Methodc                    |j         d         | _        g | _        g | _        |                    d          D ]}	 |j         d         }n7# t
          $ r* d                    t          | j                            }Y nw xY w| j                            |           | j                            |j         d                    d S )Nnamezarg[@direction='in']zarg{}type)	attribr   in_args	signaturefindallKeyErrorformatlenappend)selfxml_nodeargr   s       S/home/feoh/.local/pipx/venvs/poetry/lib/python3.11/site-packages/jeepney/bindgen.py__init__zMethod.__init__   s    OF+	##$:;; 	6 	6C9z&) 9 9 9~~c$,&7&7889L%%%N!!#*V"45555	6 	6s   A1A;:A;c                 8    d                     | j                  S )Nz=def {name}(self):
    return new_method_call(self, '{name}')
)r   )r   r   )r   s    r   _make_code_noargszMethod._make_code_noargs   s)    ?@F AG A A	    c                 :   | j         s|                                 S d                    | j                   }d                    | j                  }t	          | j                   dk    rdnd                    |          }d                    | j        |||          S )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_codezMethod.make_code   s    | 	,))+++yy&&GGDN++	--22FFtLL89?% :@ :
 :
	
r   N)__name__
__module____qualname__r   r   r#    r   r   r	   r	   
   sA        
6 
6 
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                       e Zd Zd Zd ZdS )	Interfacec                     |j         d         | _        || _        || _        d |                    d          D             | _        d S )Nr   c                 ,    g | ]}t          |          S r'   )r	   ).0nodes     r   
<listcomp>z&Interface.__init__.<locals>.<listcomp>7   s    LLLtLLLr   method)r   r   pathbus_namer   methods)r   r   r0   r1   s       r   r   zInterface.__init__3   sE    OF+		 LL1A1A(1K1KLLLr   c                 F   | j                             d          d         }t                              || j         | j        | j                  g}| j        D ]7}|                    t          |	                                d                     8d
                    |          S )N.)cls_name	interfacer0   r1   z    
)r   splitINTERFACE_CLASS_TEMPLATEr   r0   r1   r2   r   r   r#   r"   )r   r6   chunksr/   s       r   r#   zInterface.make_code9   s    9??3''+*118		DM 2 K K Ll 	? 	?FMM&!1!1!3!3W==>>>>yy   r   N)r$   r%   r&   r   r#   r'   r   r   r)   r)   2   s5        M M 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                    t          |t          t          f          r:t          |d          5 }t	          | |||          cd d d            S # 1 swxY w Y   t          j        |           }|                    t          	                    t          ||                     d}|                    d          D ]R}|j        d         t          v r|                    t          |||                                                     |dz  }S|S )Nw)versionr0   r1   r   r7   r   r   )
isinstancebytesstropencode_from_xmlET
fromstringwriteMODULE_TEMPLATEr   r   r   r   IGNORE_INTERFACESr)   r#   )xmlr0   r1   fhfrootiinterface_nodes           r   rF   rF   U   sF   "ucl## 9"c]] 	9a dHa88	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 =DHH_##Kd-5 $ 7 7 8 8 8 	
A,,{33   (,===
>4::DDFFGGG	QHs   AAASESSIONc                     t          |          }t          t          | |          |          }|                                \  }t	          || ||          }t          d                    ||                     d S )Nz#Written {} interface wrappers to {})r   r   r   
IntrospectrF   printr   )r0   r   output_filebusconnintrospectablerL   n_interfacess           r   generater[   g   su    $$D>$55t<<N$$&&DC !dD+>>L	
/
6
6|[
Q
QRRRRRr   c                     t          j                    } |                     ddd           |                     ddd           |                     dd	           |                     d
d           |                                 }|j        p%|j        dd                              dd          dz   }t          |j        |j        ||j	                   d S )Nz-nz--nameT)requiredz-pz--pathz--busrR   )defaultz-oz--outputr   /_z.py)
argparseArgumentParseradd_argument
parse_argsoutputr0   replacer[   r   rW   )apr    re   s      r   mainrh   p   s    		 	"	"BOOD(TO222OOD(TO222OOGYO///OOD*%%%==??D[ETYqrr]223<<uDFTY	64844444r   __main__)rR   )__doc__ra   textwrapr   xml.etree.ElementTreeetreeElementTreerG   jeepney.wrappersr   jeepney.io.blockingr   r   jeepneyr   r	   r:   r)   rJ   rK   rF   r[   rh   r$   r'   r   r   <module>rr      sH   ; ;        " " " " " " " " " + + + + + + ; ; ; ; ; ; ; ;      
 
 
 
 
 
 
 
> ! ! ! ! ! ! ! !     $S S S S
5 
5 
5 zDFFFFF r   