
    Mh(                     8    d Z ddlZddlmZ  G d d          ZdS )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
d
S )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 | _        d S )Nstrsregexsselfs    Y/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/IPython/utils/strdispatch.py__init__zStrDispatch.__init__   s    	    r   c                     | j                             |t                                }|                    ||           || j         |<   dS )z( Adds a target 'string' for dispatching N)r   getr   add)r   sobjprioritychains        r   add_szStrDispatch.add_s   sC     	a!7!9!9::		#h	!r   c                     | j                             |t                                }|                    ||           || j         |<   dS )z& Adds a target regexp for dispatching N)r	   r   r   r   )r   regexr   r   r   s        r   add_rezStrDispatch.add_re#   sF     '='?'?@@		#h"Er   c              #      K   || j         v r| j         |         V  | j                                        D ]\  }}t          j        ||          r|V   dS )z2 Get a seq of Commandchain objects that match key N)r   r	   itemsrematch)r   keyrr   s       r   dispatchzStrDispatch.dispatch*   st      $))C.   k'')) 	 	FAsx3 				 	 	r   c                 (    d| j         d| j        dS )Nz<Strdispatch z, >r   r
   s    r   __repr__zStrDispatch.__repr__6   s     )-DKKK@@r   c              #   T   K   || j         vrd S | j         |         D ]}|d         V  d S )N   )r   )r   r   els      r   	s_matcheszStrDispatch.s_matches9   sF      diV)C. 	 	BQ%KKKK	 	r   c              #   X   K   |                      |          D ]}|D ]}|d         V  dS )z- Yield all 'value' targets, without priority r%   N)r    )r   r   valr&   s       r   flat_matcheszStrDispatch.flat_matches?   sI      ==%% 	 	C  er   N)r   )__name__
__module____qualname____doc__r   r   r   r    r#   r'   r*    r   r   r   r      s        
 
     # # # #
 
 
A A A      r   r   )r.   r   IPython.core.hooksr   r   r/   r   r   <module>r1      s`     
			 6 5 5 5 5 59 9 9 9 9 9 9 9 9 9r   