
    	z]Q                     8    d dl mZ d dlmZ  G d de      Zd Zy)    )ParserCreate)IntrospectionParserExceptionc                   (    e Zd ZdZd Zd Zd Zd Zy)_Parsermapin_iface	in_methodsigc                 <    i | _         d| _        d| _        d| _        y )N r   )selfs    ?/usr/lib/python3/dist-packages/dbus/_expat_introspect_parser.py__init__z_Parser.__init__!   s        c                     t        dd      }d|_        | j                  |_        | j                  |_        |j	                  |       | j
                  S )NzUTF-8 T)r   buffer_textStartElementHandlerEndElementHandlerParser   )r   dataparsers      r   parsez_Parser.parse'   sG    gs+!%)%=%="#'#9#9 Txxr   c                    | j                   s| j                  s|dk(  r|d   | _         y y y | j                  s|dk(  r|d   | _        y | j                  r5|dk(  r/|j                  dd      dk(  r| xj                  |d   z  c_        y y y y )N	interfacenamemethodarg	directionintype)r	   r
   getr   )r   r   
attributess      r   r   z_Parser.StartElementHandler/   s    }}NNt{': *6 2 (;N NNtx'7!+F!3..TU]>>+t4<HH
6 22H = &3.r   c                     | j                   rn| j                  s|dk(  rd| _         y | j                  rH|dk(  rB| j                  | j                  | j                   dz   | j                  z   <   d| _        d| _        y y y y )Nr   r   r   .)r	   r
   r   r   )r   r   s     r   r   z_Parser.EndElementHandler:   sj    ==NNt{': "..TX%5AE,t~~=>!# &6. r   N)__name__
__module____qualname__	__slots__r   r   r   r    r   r   r   r      s    7I	3r   r   c                     	 t               j                  |       S # t        $ r}t        |j                  d|      d}~ww xY w)a  Return a dict mapping ``interface.method`` strings to the
    concatenation of all their 'in' parameters, and mapping
    ``interface.signal`` strings to the concatenation of all their
    parameters.

    Example output::

        {
            'com.example.SignalEmitter.OneString': 's',
            'com.example.MethodImplementor.OneInt32Argument': 'i',
        }

    :Parameters:
        `data` : str
            The introspection XML. Must be an 8-bit string of UTF-8.
    z: N)r   r   	Exceptionr   	__class__)r   es     r   process_introspection_datar0   C   s?    "Hyt$$ H*q{{A+FGGHs    	A>AN)xml.parsers.expatr   dbus.exceptionsr   objectr   r0   r+   r   r   <module>r4      s    8 + 8"f "HHr   