
    k7i[                         S SK Jr  S SKJr  S SKJr  S SKJrJrJ	r	J
r
Jr  S SKJr  S SKJr  \(       a  S SKJr  \	" S5      r " S	 S
5      rg)    )Sequence)contextmanager)chain)TYPE_CHECKINGAnyTypeVarcastoverload)inverse_groups_from_app)	Parameter)AppVc            
          \ rS rSrS r\SS\S   \\   -  S\\\	4   S-  4S jj5       r
\S\4S	 j5       r\S\4S
 j5       r\S\S   4S j5       r\S\S\	4S j5       r\S\S\S\4S j5       r\S\S\S-  S\S\4S j5       r\SS\S\S-  S\S\4S jj5       rSS\S\S-  S\S-  S\S-  4S jjr\S\4S j5       rSrg)AppStack   c                 &    U//U l         0 /U l        g N)stackoverrides_stack)selfapps     L/home/james-whalen/.local/lib/python3.13/site-packages/cyclopts/app_stack.py__init__AppStack.__init__   s    (+ug
68T    Nappsr   	overridesc              #   p	  #    U R                   U=(       d    0 -  nU R                  R                  U=(       d    0 5        U(       d    S v   U R                  R                  5         g [	        US   [
        5      (       aF  [        [        [
           U5      nU R                  S   S   R                  USS9u  pEn[        U5      nO[        [        S   [        U5      5      nAU(       d    S v   U R                  R                  5         g / nU Vs1 s H  n[        U5      iM     n	nU GHl  nUR                  c@  U(       a9  US   R                  b)  UR                  5         U(       a  US   R                  b  M)  UR                  U5        UR                  R                  R                  UR                  5       5        UR                  R                  R                  U=(       d    0 5        Un
U
R                  =n
c  M  [        U
5      U	;   a  M"  UR                  5       nUR                  U
5        U
R                  R                  R                  U5        U
R                  R                  R                  U=(       d    0 5        U
R                  =n
b  M  GMo      S v   U H  nUR                  R                  R                  5         UR                  R                  R                  5         Un
U
R                  =n
c  M^  [        U
5      U	;   a  M"  U
R                  R                  R                  5         U
R                  R                  R                  5         U
R                  =n
b  Mj  M     U R                  R                  5         g ! U R                  R                  5         f = f! U R                  R                  5         f = fs  snf ! U H  nUR                  R                  R                  5         UR                  R                  R                  5         Un
U
R                  =n
c  M^  [        U
5      U	;   a  M"  U
R                  R                  R                  5         U
R                  R                  R                  5         U
R                  =n
b  Mj  M     U R                  R                  5         f = f7f)Nr   T)include_parent_metar   )r   r   appendpop
isinstancestrr	   r   r   parse_commandslistid_meta_parent	app_stackcopy_meta)r   r   r   str_apps_
apps_tupleresolved_appsso_farr   app_idsmeta_appmeta_subappss               r   __call__AppStack.__call__   s     NNio26	##IO4+$$((* d1gs##HSM40H#zz!}Q/>>x]a>bA1'+J'7M ed4j9M+$$((*&34ms2c7m4 C'!8!8!DJJL !8!8!D MM#MM&&v{{}5MM))00bA H'~~-8:h<7*%{{}##H-""((//=""2299)/rJ  (~~-8: !,	'$##'')--113#+>>1x>(|w. &&,,002&&66::<	 $,>>1x> %   $$&s $$((*  $$((* 54 %##'')--113#+>>1x>(|w. &&,,002&&66::<	 $,>>1x> %   $$&s   AR6N BR6)N% -!R6O#AR68BR6=BR6R6O	 AR6=A(R6'R6N""R6%OR6	AR3*A(R3R33R6returnc                     0 n[        U R                  5       H2  nUR                  5        H  u  p4Uc  M
  UR                  X45        M     M4     U$ r   )reversedr   items
setdefault)r   outoverrides_framekeyvalues        r   r   AppStack.overrides]   sJ    '(<(<=O-335
$NN3. 6  > 
r   c                 ^   / n[         R                  " U R                  5       Hp  nUR                  (       a  M  UR	                  UR
                  R                   Vs/ s H  o3R                  PM     sn5        UR                  UR                  5        Mr     [        R                  " U6 $ s  snf )zhdefault_parameter has special resolution since it needs to include the command groups in the derivation.)r   from_iterabler   r(   extendr)   command_groupsdefault_parameterr!   r   combine)r   cparams	child_appgroups       r   rD   AppStack.default_parameterf   s     ,,TZZ8I%%NNATATAcAcdAc33AcdeNN9667	 9   '** es   B*
c                 N    U R                   (       d  [        eU R                   S   $ )Nr    )r   
ValueError)r   s    r   current_frameAppStack.current_framer   s    zzzz"~r   	attributec                     g r    )r   rN   s     r   resolveAppStack.resolvey   s    .1r   overridec                     g r   rP   )r   rN   rS   s      r   rQ   rR   |   s    9<r   fallbackc                     g r   rP   r   rN   rS   rU   s       r   rQ   rR      s    MPr   c                    g r   rP   rW   s       r   rQ   rR      s    WZr   c                 n   Ub  U$ [        U R                  5       H  nX;   d  M
  XA   nUc  M  Us  $    [        [        [        R                  " U R
                  5      5      5       HK  n[        Xa5      nUb  Us  $ UnUR                  =nc  M(  [        X5      nUb  Us  $ UR                  =nb  M#  MM     U$ )z,Resolve an attribute from the App hierarchy.)r8   r   r&   r   rA   r   getattrr(   )	r   rN   rS   rU   r<   r>   r   resultr2   s	            r   rQ   rR      s    O  ((<(<=O+'2$ L	  > D!4!4TZZ!@ABCS,F! H'4448A 5%!M  (4448A C r   c                    ^ U R                   S   m U R                   S   nUb"   [        U4S j[        U5       5       5      S   $ / $ ! [         a    S n N5f = f! [         a    UR
                  n Of = fUb  MW  N6)Nr    c              3   :   >#    U  H  oS    TL d  M  Uv   M     g7f)r   NrP   ).0xcommand_apps     r   	<genexpr>*AppStack.command_groups.<locals>.<genexpr>   s      c'K!QRtWbObAA'Ks   	   )rL   
IndexErrornextr   StopIterationr(   )r   current_appra   s     @r   rC   AppStack.command_groups   s    ((,	&*&8&8&<K %7c'>{'Kccdeff 	  	K	 ! 7)667 %s"   A  A AAA32A3)r   r   r   )NN)__name__
__module____qualname____firstlineno__r   r   r   r$   dictr   r4   propertyr   r   rD   r&   rL   r
   rQ   r   rC   __static_attributes__rP   r   r   r   r      sn   : C'Xe_x}< C'cSVhZ^I^ C' C'J 4   	+9 	+ 	+ tE{   111 1<<<a< <PPDPAP!P PZZDZaZTUZ Z D 1t8 _`cg_g 6   r   r   N)collections.abcr   
contextlibr   	itertoolsr   typingr   r   r   r	   r
   cyclopts.group_extractorsr   cyclopts.parameterr   cyclopts.corer   r   r   rP   r   r   <module>rx      s7    $ %  > > = (! CL] ]r   