
    !<i                        d dl mZmZmZ d dlmZ erd dlmZ  G d de          Zde	e
ee	e         f                  deez  defd	Zd
dde	e
ee	e         f                  fdZddde	e
de	e         f                  fdZdS )    )TYPE_CHECKINGAny
NamedTuple)Group)Appc                   8    e Zd ZU dZeedf         ed<   ded<   dS )RegisteredCommandzAn App with the names it was registered under.

    Attributes
    ----------
    names : tuple[str, ...]
        All names (including aliases) this command is registered under.
    app : "App"
        The command's App instance.
    .namesr   appN)__name__
__module____qualname____doc__tuplestr__annotations__     /Users/kimhansen/Desktop/03 Workspace/ceo-agents/chl-effectiveness/mcp-servers/whoop/.venv/lib/python3.11/site-packages/cyclopts/group_extractors.pyr	   r	   	   s9           c?	JJJJJr   r	   group_mappinggroupelementc                 ,   t          |t                    rt          |          }nt          |t                    rnt          | D ]6}|d         j        |j        k    r|d                             |            d S 7|                     ||gf           d S )Nr      )
isinstancer   r   	TypeErrornameappend)r   r   r   mappings       r   _create_or_appendr       s     % e	E5	!	!   1 11:?ej((AJg&&&EE ) 	egY/00000r   r   r   returnc                    t          | j        t                    rJ | j        pt          j                    }i }i }| D ]K}| |         }t          |          }|                    |g                               |           ||vr|||<   L|g fg}|                                D ]}t          |j	        t                    sJ |j	        D ]m}t          |t                    rV|D ]<}	|	d         |u r nF|	d         j        |j        k    rt          d|j         d          =|                    |g f           n|                                D ]\  }}t          ||                   }
t          |
|          }|j	        r8t          |j	        t                    sJ |j	        D ]}t          |||           it          || j        pt          j                    |           d |D             }|                    d            |S )a]  Extract Group/App association from all commands of ``app``.

    Returns
    -------
    list
        List of items where each item is a tuple containing:

        * :class:`.Group` - The group

        * ``list[RegisteredCommand]`` - List of RegisteredCommand tuples containing
          the registered names and app instance for each command.
    r   zCommand Group "z" already exists.c                 "    g | ]}|d          
|S )r   r   ).0xs     r   
<listcomp>z#groups_from_app.<locals>.<listcomp>e   s!    666116Q666r   c                     | d         j         S )Nr   )r   )r%   s    r   <lambda>z!groups_from_app.<locals>.<lambda>h   s    QqTY r   )key)r   group_commandsr   r   create_default_commandsid
setdefaultr   valuesr   r   r   
ValueErroritemsr	   r    sort)r   r*   	app_namesunique_appsr   subappapp_idr   r   r   r
   registered_commands               r   groups_from_appr7   -   su    #,c22222'J5+H+J+JN ')I"$K ) )TFVR((//555$$"(K 
BM
 $$&& 
6 
6&,.....\ 	6 	6E%'' 6, 6 6GqzU** EJ66()X5:)X)X)XYYY 7 "((%555	6 &++-- x xi'((.uf==< 	xflE22222 L L!-8JKKKKL mS-?-b5C`CbCbdvwwww 76666M ..///r   	input_appc                 V   g }g }t          |           D ]\  }}|D ]}|j        }	 |                    |          }nK# t          $ r> t	          |          }|                    |g f           |                    |           Y nw xY w||         d                             |           |S )Nr   )r7   r   indexr/   lenr   )r8   out	seen_appsr   registered_commandsr6   r   r:   s           r   inverse_groups_from_appr?   m   s    
CI&5i&@&@ 	( 	("""5 	( 	($(C&!,, & & &C

C9%%%  %%%%%& JqM  ''''	( Js   ;ABBN)typingr   r   r   cyclopts.groupr   cyclopts.corer   r	   listr   r   r    r7   r?   r   r   r   <module>rD      s5   1 1 1 1 1 1 1 1 1 1             "!!!!!!    
   1eT#Y./01;1 1 1 1 1*= =4eT:K5L.L(M#N = = = =@u eE4;<N6O1P      r   