
    f.                     2    d Z ddlZddlmZ  G d de      Zy)z>String dispatch class to match regexps and dispatch commands.
    N)CommandChainDispatcherc                   >    e Zd ZdZd Zd
dZd
dZd Zd Zd Z	d Z
y	)StrDispatcha  Dispatch (lookup) a set of strings / regexps for match.

    Example:

    >>> dis = StrDispatch()
    >>> dis.add_s('hei',34, priority = 4)
    >>> dis.add_s('hei',123, priority = 2)
    >>> dis.add_re('h.i', 686)
    >>> print(list(dis.flat_matches('hei')))
    [123, 34, 686]
    c                      i | _         i | _        y )Nstrsregexsselfs    T/var/www/cvtools/html/venv/lib/python3.12/site-packages/IPython/utils/strdispatch.py__init__zStrDispatch.__init__   s    	    c                     | j                   j                  |t                     }|j                  ||       || j                   |<   y)z( Adds a target 'string' for dispatching N)r   getr   add)r   sobjprioritychains        r   add_szStrDispatch.add_s   s7     		a!7!9:		#h		!r   c                     | j                   j                  |t                     }|j                  ||       || j                   |<   y)z& Adds a target regexp for dispatching N)r	   r   r   r   )r   regexr   r   r   s        r   add_rezStrDispatch.add_re#   s8     '='?@		#h"Er   c              #      K   || j                   v r| j                   |    | j                  j                         D ]   \  }}t        j                  ||      r| !" yw)z2 Get a seq of Commandchain objects that match key N)r   r	   itemsrematch)r   keyrr   s       r   dispatchzStrDispatch.dispatch*   sX     $))))C. kk'') 	FAsxx3	 	s   AA c                 <    d| j                   d| j                  dS )Nz<Strdispatch z, >r   r
   s    r   __repr__zStrDispatch.__repr__6   s    )-DKK@@r   c              #   `   K   || j                   vry | j                   |   D ]	  }|d     y w)N   )r   )r   r   els      r   	s_matcheszStrDispatch.s_matches9   s5     dii))C. 	BQ%K	s   ,.c              #   T   K   | j                  |      D ]  }|D ]	  }|d      yw)z- Yield all 'value' targets, without priority r%   N)r    )r   r   valr&   s       r   flat_matcheszStrDispatch.flat_matches?   s;     ==% 	C e	 	s   &(N)r   )__name__
__module____qualname____doc__r   r   r   r    r#   r'   r*    r   r   r   r      s+    
#
Ar   r   )r.   r   IPython.core.hooksr   objectr   r/   r   r   <module>r2      s     
 69& 9r   