+
    ic  c                   sR    ^ RI Ht ^ RIHt RR.t ! R R]4      t ! R R]4      tR# )i    )ElementTree)minidom	XMLParserXMLGeneratorc                   s   a  ] tR t^!t o Rt]R 4       t]R 4       t]R 4       t]R 4       t	]R 4       t
]R 4       t]R 4       t]R	 4       t]R
 4       t]R 4       t]R 4       t]R 4       t]R 4       tRtV tR# )r   zClass for parsing XML.c                s.    \         P                  ! V 4      # N)r    Z
fromstring)xml   &//usr/lib/python3.14/site-packages/dasbus/xml.pyxml_to_elementZXMLParser.xml_to_element$   s    %%c**    c                s     V P                   R9   # )method)r
   signalpropertytagZmember_noder   r   	is_memberZXMLParser.is_member(   s    "BBBr	   c                     V P                   R 8H  # )	interfacer   r   r   r   is_interfaceZXMLParser.is_interface,   s    +--r	   c                r   )r   r   r   r   r   	is_signalZXMLParser.is_signal0       (**r	   c                r   )r
   r   r   r   r   	is_methodZXMLParser.is_method4   r   r	   c                r   )r   r   r   r   r   is_propertyZXMLParser.is_property8   s    *,,r	   c                r   )argr   r   r   r   is_parameterZXMLParser.is_parameter<   s    %''r	   c                s@    V P                   P                  R R4      V8H  # )name )attribZget)nodeZ	node_name   &&r   has_nameZXMLParser.has_name@   s    {{vr*i77r	   c                (    V P                   R ,          # r   r   r   r   r   get_nameZXMLParser.get_nameD       {{6""r	   c                r    )typer"   r#   r   r   get_typeZXMLParser.get_typeH   r%   r	   c                r    )accessr"   r#   r   r   
get_accessZXMLParser.get_accessL   s    {{8$$r	   c                r    )	directionr"   r#   r   r   get_directionZXMLParser.get_directionP   s    {{;''r	   c                sd    / pV P                  R4       F  pW!VP                  R,          &   K  	  V# )z<Return a dictionary of interfaces defined in a node element.r   r   )Ziterfindr   )Znode_elementZ
interfaceselements   &  r   get_interfaces_from_nodeZ"XMLParser.get_interfaces_from_nodeT   s7     
#,,[9G18w~~f-. : r	    N)__name__
__module____qualname____firstlineno____doc__staticmethodr   r   r   r   r   r   r   r   r$   r'   r)   r+   r-   __static_attributes____classdictcell__Z__classdict__   @r   r   r   !   s     + + C C . . + + + + - - ( ( 8 8 # # # # % % ( (  r	   c                   s   a  ] tR t^_t o Rt]R 4       t]R 4       t]R 4       t]R 4       t	]R 4       t
]R 4       t]R 4       t]R	 4       t]R
 4       t]R 4       tRtV tR# )r   zClass for generating XML.c                s4    \         P                  ! V RRR7      # )zReturn XML of the element.r   Zunicode)r
   Zencoding)r    Ztostring)r,   r   r   element_to_xmlZXMLGenerator.element_to_xmlb   s      ##
 	
r	   c                s   RP                  V P                  4        Uu. uF  qP                  4       NK  	  up4      p\        P                  ! V4      P                  RR7      p \        \        RR 4      pV! V RR7      # u upi )zReturn pretty printed normalized XML.

Python 3.8 changed the order of the attributes and introduced
the function canonicalize that should be used to normalize XML.
r   z  )Zindentcanonicalizec                 s    V # r   r.   )r   ZargsZkwargss   &*,r   Z<lambda>Z+XMLGenerator.prettify_xml.<locals>.<lambda>z   s    cr	   T)Zwith_comments)ZjoinZ
splitlinesZstripr   ZparseStringZtoprettyxmlZgetattrr    )r   ZlineZxml_liner:   s   &   r   prettify_xmlZXMLGenerator.prettify_xmlk   sw     77S^^5EF5ETJJL5EFG !!(+77t7D )I
 Ct44 Gs   A?c                s(    V P                  V4       R# )z/Append the child element to the parent element.N)append)Zparent_elementZchild_elementr   r   	add_childZXMLGenerator.add_child   s     	m,r	   c                sR    V P                  \        P                  ! VR 7      4       R# ))ZtextN)r<   r    ZComment)r,   Zcommentr   r   add_commentZXMLGenerator.add_comment   s    {**89r	   c                 s.    \         P                  ! R4      # )z"Create a node element called node.r   r    ZElementr.   r	   r   create_nodeZXMLGenerator.create_node   s     ""6**r	   c                4    \         P                  ! RRV /4      # )zCreate an interface element.r   r   r?   r!   r   r   create_interfaceZXMLGenerator.create_interface   s     "";??r	   c                rA   )zCreate a signal element.r   r   r?   r!   r   r   create_signalZXMLGenerator.create_signal        ""8fd^<<r	   c                rA   )zCreate a method element.r
   r   r?   r!   r   r   create_methodZXMLGenerator.create_method   rD   r	   c                B    RpRV RVRV/p\         P                  ! W44      # )zCreate a parameter element.r   r   r&   r*   r?   )r   Z
param_typer*   r   attr   &&&  r   create_parameterZXMLGenerator.create_parameter   s2     DJ

 ""3--r	   c                rF   )zCreate a property element.r   r   r&   r(   r?   )r   Zproperty_typer(   r   rG   rH   r   create_propertyZXMLGenerator.create_property   s2     DMf

 ""3--r	   r.   N)r/   r0   r1   r2   r3   r4   r9   r;   r=   r>   r@   rB   rC   rE   rI   rJ   r5   r6   r7   r8   r   r   r   _   s     #
 
 5 5& - - : : + + @ @ = = = = . . . .r	   N)Z	xml.etreer    Zxml.domr   Z__all__Zobjectr   r   r.   r	   r   <module>rK      s7   0 "  ; ;|Q.9 Q.r	   