wL i(0dZddlZddlmZGddZy)z>String dispatch class to match regexps and dispatch commands. N)CommandChainDispatcherc>eZdZdZdZd dZd dZdZdZdZ dZ y ) StrDispatchaDispatch (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)Nstrsregexsselfs _/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/IPython/utils/strdispatch.py__init__zStrDispatch.__init__s  c|jj|t}|j||||j|<y)z( Adds a target 'string' for dispatching N)rgetradd)r sobjprioritychains r add_szStrDispatch.add_ss7 a!7!9: #h ! rc|jj|t}|j||||j|<y)z& Adds a target regexp for dispatching N)r rrr)r regexrrrs r add_rezStrDispatch.add_re#s8 '='?@ #h" Erc#K||jvr|j||jjD] \}}tj||r|!"yw)z2 Get a seq of Commandchain objects that match key N)rr itemsrematch)r keyrrs r dispatchzStrDispatch.dispatch*sX $)) ))C. kk'') FAsxx3   sAA c<d|jd|jdS)Nz rr s r __repr__zStrDispatch.__repr__6s)-DKK@@rc#`K||jvry|j|D] }|d yw)N)r)r rels r s_matcheszStrDispatch.s_matches9s5 dii  ))C. BQ%K s,.c#TK|j|D]}|D] }|d yw)z- Yield all 'value' targets, without priority r%N)r )r rvalr&s r flat_matcheszStrDispatch.flat_matches?s;==% C e    s&(N)r) __name__ __module__ __qualname____doc__r rrr r#r'r*rr rr s+ # A rr)r.rIPython.core.hooksrrr/rr r1s 699r