
    	z]Q                     @    d dl mZ d dlmZ  G d de          Zd ZdS )    )ParserCreate)IntrospectionParserExceptionc                   *    e Zd ZdZd Zd Zd Zd ZdS )_Parsermapin_iface	in_methodsigc                 >    i | _         d| _        d| _        d| _        d S )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        S )NzUTF-8 T)r   buffer_textStartElementHandlerEndElementHandlerParser   )r   dataparsers      r   parsez_Parser.parse'   sH    gs++!%)%="#'#9 Txr   c                    | j         s | j        s|dk    r|d         | _         d S d S d S | j        s|dk    r|d         | _        d S | j        r8|dk    r4|                    dd          dk    r| xj        |d         z  c_        d S d S d S d S )N	interfacenamemethodarg	directionintype)r	   r
   getr   )r   r   
attributess      r   r   z_Parser.StartElementHandler/   s    } 	3N 3t{':': *6 23 3':': N 3tx'7'7!+F!3. 3TU]]>>+t44<<HH
6 22HHHH3 3]]<<r   c                     | j         rR| j        s|dk    r	d| _         d S | j        r7|dk    r3| j        | j        | j         dz   | j        z   <   d| _        d| _        d S d S d S d S )Nr   r   r   .)r	   r
   r   r   )r   r   s     r   r   z_Parser.EndElementHandler:   s    = 	N t{':': ". TX%5%5AE,t~=>!#	 	 %5%5r   N)__name__
__module____qualname__	__slots__r   r   r   r    r   r   r   r      sU        7I    	3 	3 	3    r   r   c                     	 t                                          |           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yyt$$$ H H H*q{{{AA+FGGGHs    # 
AAAN)xml.parsers.expatr   dbus.exceptionsr   objectr   r0   r+   r   r   <module>r4      st   8 + * * * * * 8 8 8 8 8 8" " " " "f " " "HH H H H Hr   