+
    Ri                        R t ^ RIHt ^ RIHtHtHtHtHt ^ RI	H
t
HtHt ^ RIHt ^ RIHt R.t]]]]]],          R]3,          3,          t ! R R]4      tR# )	zA
Nestedcompleter for completion of hierarchical data structures.
)annotations)AnyIterableMappingSetUnion)CompleteEvent	Completer
Completion)WordCompleter)DocumentNestedCompleterNc                  X    ] tR t^tRtRR R lltR R lt]R R l4       tR R	 lt	R
t
R# )r   aw  
Completer which wraps around several other completers, and calls any the
one that corresponds with the first word of the input.

By combining multiple `NestedCompleter` instances, we can achieve multiple
hierarchical levels of autocompletion. This is useful when `WordCompleter`
is not sufficient.

If you need multiple levels, check out the `from_nested_dict` classmethod.
c               $    V ^8  d   QhRRRRRR/# )   optionszdict[str, Completer | None]ignore_caseboolreturnNone )formats   "_/home/ubuntu/hermes-agent/venv/lib/python3.14/site-packages/prompt_toolkit/completion/nested.py__annotate__NestedCompleter.__annotate__   s$     ' '2'AE'	'    c                	    Wn         W n        R # )Nr   r   )selfr   r   s   &&&r   __init__NestedCompleter.__init__   s     &r   c                   V ^8  d   QhRR/# )r   r   strr   )r   s   "r   r   r   %   s     V V# Vr   c                	@    R V P                   : RV P                  : R2# )zNestedCompleter(z, ignore_case=)r   )r   s   &r   __repr__NestedCompleter.__repr__%   s$    !$,,!1@P@P?SSTUUr   c                    V ^8  d   QhRRRR/# )r   data
NestedDictr   r   r   )r   s   "r   r   r   )   s     $ $J $? $r   c                f   / pVP                  4        F  w  r4\        V\        4      '       d   WBV&   K!  \        V\        4      '       d   V P	                  V4      W#&   KL  \        V\
        4      '       d)   V P	                  \        P                  V4      4      W#&   K  Ve   Q hRW#&   K  	  V ! V4      # )a"  
Create a `NestedCompleter`, starting from a nested dictionary data
structure, like this:

.. code::

    data = {
        'show': {
            'version': None,
            'interfaces': None,
            'clock': None,
            'ip': {'interface': {'brief'}}
        },
        'exit': None
        'enable': None
    }

The value should be `None` if there is no further completion at some
point. If all values in the dictionary are None, it is also possible to
use a set instead.

Values in this data structure can be a completers as well.
N)items
isinstancer	   dictfrom_nested_dictsetfromkeys)clsr(   r   keyvalues   &&   r   r.    NestedCompleter.from_nested_dict(   s    2 02**,JC%++$E4(("33E:E3''"33DMM%4HI}$}# ' 7|r   c               $    V ^8  d   QhRRRRRR/# )r   documentr   complete_eventr   r   zIterable[Completion]r   )r   s   "r   r   r   O   s)     K K K2?K	Kr   c              #  	  "   VP                   P                  4       p\        VP                   4      \        V4      ,
          pR V9   d   VP                  4       ^ ,          pV P                  P                  V4      pVex   V\        V4      R P                  4       p\        V4      \        V4      ,
          V,           p\        VVP                  V,
          R7      p	VP                  W4       Rj  xL
  R# R# \        \        V P                  P                  4       4      V P                  R7      pVP                  W4       Rj  xL
  R#  L[ L5i) N)cursor_position)r   )text_before_cursorlstriplensplitr   getr   r:   get_completionsr   listkeysr   )
r   r6   r7   textstripped_len
first_term	completerremaining_textmove_cursornew_documents
   &&&       r   r@   NestedCompleter.get_completionsO   s     **1138667#d)C $;aJ((4I $!%c*o&7!8!?!?!A!$i#n*==L'"$,$<$<{$J 
 %44\RRR % &T\\&&()t7G7GI !00JJJ S Ks%   C-E/E0AEEEE)r   r   N)T)__name__
__module____qualname____firstlineno____doc__r   r%   classmethodr.   r@   __static_attributes__r   r   r   r   r      s3    	'V $ $LK Kr   )rO   
__future__r   typingr   r   r   r   r   prompt_toolkit.completionr   r	   r
   (prompt_toolkit.completion.word_completerr   prompt_toolkit.documentr   __all__r"   r)   r   r   r   r   <module>rX      s\    # 5 5 J J B ,
 S%SXtY >??@
ZKi ZKr   