
    h<r                       S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKrS SKrS SKJrJrJrJrJrJrJrJrJrJrJrJrJr  S SKJrJrJrJr  SSK J!r!J"r"  \(       a  SSK#J$r$  SS	K%J&r&J'r'  SS
K(J)r)  SSK*J+r+  SSK,J-r-   " S S\.5      r/\" S5      r0\Rb                  " SS9 " S S5      5       r2\Rb                  " SS9 " S S\\0   5      5       r3    SS jr4SS jr5g)    )annotationsN)AnyCallableDictGenericListLiteralSequenceSetTupleTypeTypeVarUnioncast)TYPE_CHECKINGassert_neverget_args
get_origin   )is_typing_literalis_typing_union   ConstructorRegistry)	_resolver_strings)TypeForm)_markers)parse_with_backtrackingc                      \ rS rSrSrSrg)UnsupportedTypeAnnotationError+   zAException raised when an unsupported type annotation is detected. N)__name__
__module____qualname____firstlineno____doc____static_attributes__r#       [/home/james-whalen/.local/lib/python3.13/site-packages/tyro/constructors/_primitive_spec.pyr!   r!   +   s    Kr*   r!   TT)frozenc                  j    \ rS rSr% SrS\S'    S\S'    S\S'    S	\S
'    \      SS j5       rSrg)PrimitiveTypeInfo2   z>Information used to generate constructors for primitive types.r   typezTypeForm | Nonetype_originset[_markers.Marker]markersPrimitiveConstructorSpec | None_primitive_specc                   [         R                  " U [        S9u  p#[        U5      S:  a  US   OS n[         R                  " U [        R
                  S9u  pV[        [        [        U5      [        U5      U[        U5      -  US9$ )N)search_typer   )r1   r2   r4   r6   )r   unwrap_annotatedPrimitiveConstructorSpeclenr   _Markerr/   r   r   r   set)raw_annotationparent_markers_primitive_specsprimitive_spectypextra_markerss          r+   makePrimitiveTypeInfo.makeA   s    
 '77(@
 03?/Ca/G+T&77(8(8
 !h$"3"S%77*	
 	
r*   r#   N)r>   zTypeForm | Callabler?   r3   returnr/   )	r$   r%   r&   r'   r(   __annotations__staticmethodrE   r)   r#   r*   r+   r/   r/   2   sX    H
N3 ! 8!!;44O
+
,
 

 
r*   r/   c                  t    \ rS rSr% SrS\S'    S\S'    S\S'    S	\S
'    S\S'    SrS\S'    SrS\S'   Srg)r:   V   ab  Specification for constructing a primitive type from a string.

There are two ways to use this class:

First, we can include it in a type signature via :class:`typing.Annotated`.
This is the simplest for making local modifications to parsing behavior for
individual fields.

Alternatively, it can be returned by a rule in a :class:`ConstructorRegistry`.
$int | tuple[int, ...] | Literal['*']nargsstrmetavarzCallable[[list[str]], T]instance_from_strz$Callable[[Any], bool | Literal['~']]is_instancezCallable[[T], list[str]]str_from_instanceNztuple[str, ...] | NonechoiceszLiteral['append'] | None_actionr#   )	r$   r%   r&   r'   r(   rH   rS   rT   r)   r#   r*   r+   r:   r:   V   s_    	 0/Q L.//955 0/P&*G#*.(,G%,=r*   r:   c                J   / nSnU  H  nUR                   S:X  a  SnM  [        UR                   [        5      (       a  UR                  UR                   45        MT  [        UR                   [        5      (       a/  UR                  [	        [        UR                   5      5      5        M  [        UR                   5        M     U(       a  g[        R                  " U6  Vs1 s H  n[        U5      iM     nn[	        [        U5      5      n[        U5      S:X  a  US   $ U$ s  snf )a  Compute all possible total argument counts for a sequence of specs.

When specs have tuple nargs (representing multiple valid argument counts),
this computes all possible sums.

Note: This uses itertools.product which is exponential in the number of specs,
but in practice we're only combining 2-3 specs (e.g., dict keys and values,
or tuple elements). Could be optimized in the future.

Args:
    specs: Sequence of PrimitiveConstructorSpec objects.

Returns:
    Total nargs value: either a single int, a tuple of ints, or "*".
F*Tr   r   )rM   
isinstanceintappendtuplesortedr   	itertoolsproductsumr;   )specsnargs_options_per_specis_variable_nargsspeccombopossible_totalsrM   s          r+   _compute_total_nargsre      s    $ 57:: $

C(("))4::-8

E**"))%tzz0B*CD$   %.$5$57M$N
$N5CJ$N 	 
 f_-.u:?8O
s   D c                V  ^^^^ SSK Jm  U R                      SS j5       n[        [        [
        [        [        [        [        R                  4mU R                  SU4S jj5       nS[        R                  R                  5       ;   a  SSKmU R                      SU4S jj5       nU R                  SS	 j5       nU R                  SS
 j5       nU R                  SS j5       nU R                  SS j5       nU R                  SS j5       nU R                      SU4S jj5       n	U R                      SU4S jj5       mU R                      SUU4S jj5       n
U R                      SU4S jj5       nU R                  SS j5       nU R                      SU4S jj5       ng)z$Apply default rules to the registry.r   r   c                @    U R                   [        La  g [        S5      $ )Nz`Any` is not a parsable type.)r1   r   r!   	type_infos    r+   any_rule/apply_default_primitive_rules.<locals>.any_rule   s     >>$-.MNNr*   c                   >^  T R                   T;  a  g [        ST R                   R                  R                  5       U 4S jU 4S jS S9$ )Nr   c                l   > TR                   [        L a  [        U S   SS9$ TR                  U S   5      $ )Nr   ascii)encoding)r1   bytesargsri   s    r+   <lambda>Dapply_default_primitive_rules.<locals>.basics_rule.<locals>.<lambda>   s9    >>U* d1g0 -^^DG,-r*   c                F   > [         R                  " U TR                  5      $ N)r   #isinstance_with_fuzzy_numeric_towerr1   xri   s    r+   rs   rt      s    )"O"O9>>#r*   c                    [        U 5      /$ rv   rN   instances    r+   rs   rt      
    Hr*   rM   rO   rP   rQ   rR   )r1   r:   r$   upper)ri   vanilla_typess   `r+   basics_rule2apply_default_primitive_rules.<locals>.basics_rule   sG    >>.'NN++113 ?
 	
r*   torchr   Nc                   >^  T R                   TR                  La  g [        ST R                   R                  R	                  5       U4S jU 4S jS S9$ )Nr   c                ,   > TR                  U S   5      $ Nr   )device)rr   r   s    r+   rs   Japply_default_primitive_rules.<locals>.torch_device_rule.<locals>.<lambda>   s    u||DG/Dr*   c                0   > [        U TR                  5      $ rv   rW   r1   rx   s    r+   rs   r      s    jINN&Cr*   c                    [        U 5      /$ rv   r{   r|   s    r+   rs   r      s
    CM?r*   r   )r1   r   r:   r$   r   )ri   r   s   `r+   torch_device_rule8apply_default_primitive_rules.<locals>.torch_device_rule   sG     ~~U\\1+!//557"DC"B r*   c           	     L    U R                   [        La  g [        SSS SS S S9$ )Nr   z{True,False}c                    U S   S:H  $ )Nr   Truer#   rr   s    r+   rs   Bapply_default_primitive_rules.<locals>.bool_rule.<locals>.<lambda>   s    47f+<r*   )r   Falsec                "    [        U [        5      $ rv   )rW   boolry   s    r+   rs   r      s    *Q"5r*   c                    U (       a  S/$ S/$ )Nr   r   r#   r|   s    r+   rs   r      s    (/P/Pr*   )rM   rO   rP   rS   rQ   rR   )r1   r   r:   rh   s    r+   	bool_rule0apply_default_primitive_rules.<locals>.bool_rule   s0    >>%'"<%5P
 	
r*   c           	     V    U R                   [        S 5      La  g [        SSSS S S S9$ )Nr   z{None})Nonec                    g rv   r#   r   s    r+   rs   Fapply_default_primitive_rules.<locals>.nonetype_rule.<locals>.<lambda>   s    4r*   c                
    U S L $ rv   r#   r   s    r+   rs   r      s    !t)r*   c                    S/$ )Nr   r#   r|   s    r+   rs   r      s    xr*   )rM   rO   rS   rP   rQ   rR   )r1   r:   rh   s    r+   nonetype_rule4apply_default_primitive_rules.<locals>.nonetype_rule   s4    >>d+'/+7
 	
r*   c                `   U R                   [        R                  [        R                  4;   dO  [
        R                  " U R                   5      (       a)  [        U R                   [        R                  5      (       d  g [        SU R                   R                  R                  5       S S S S9$ )Nr   c                4    [         R                  " U S   5      $ r   )pathlibPathr   s    r+   rs   Bapply_default_primitive_rules.<locals>.path_rule.<locals>.<lambda>  s    7<<Q+@r*   c                    [        U S5      $ )N
__fspath__)hasattrr   s    r+   rs   r     s    '!\":r*   c                    [        U 5      /$ rv   r{   r|   s    r+   rs   r     r~   r*   r   )r1   osPathLiker   r   inspectisclass
issubclassPurePathr:   r$   r   rh   s    r+   	path_rule0apply_default_primitive_rules.<locals>.path_rule   s{     NNr{{GLL99	//y~~w/?/?@@ 'NN++113@:>
 	
r*   c           	       ^ ^ [         R                  " T R                  5      (       a)  [        T R                  [        R
                  5      (       d  g [        [        [        R
                     T R                  5      m[        R                  T R                  ;   a  [        S T 5       5      nO-[        T R                  R                  R                  5       5      n[        SSSR                  U5      -   S-   UU 4S jU4S jU 4S jUS	9$ )
Nc              3  L   #    U  H  n[        UR                  5      v   M     g 7frv   rN   value).0ms     r+   	<genexpr>Capply_default_primitive_rules.<locals>.enum_rule.<locals>.<genexpr>  s     <)QCLL)s   "$r   {,}c                   >^  [         R                  TR                  ;   a  [        [	        U 4S jT 5       5      5      $ TT S      $ )Nc              3  d   >#    U  H%  n[        UR                  5      TS    :X  d  M!  Uv   M'     g7f)r   Nr   )r   memberrr   s     r+   r   Uapply_default_primitive_rules.<locals>.enum_rule.<locals>.<lambda>.<locals>.<genexpr>!  s*     XiF3v||;LPTUVPW;Wis    0	0r   )r   EnumChoicesFromValuesr4   nextiter)rr   	cast_typeri   s   `r+   rs   Bapply_default_primitive_rules.<locals>.enum_rule.<locals>.<lambda>  sI     11Y5F5FF XiXX ( tAw'	(r*   c                   > [        U T5      $ rv   )rW   )ry   r   s    r+   rs   r   &  s    *Q	":r*   c                   > [         R                  TR                  ;   a  [        U R                  5      /$ U R
                  /$ rv   )r   r   r4   rN   r   name)r}   ri   s    r+   rs   r   '  s8    11Y5F5FF HNN#0 ]]0r*   rM   rO   rP   rQ   rR   rS   )r   r   r1   r   enumEnumr   r   r   r   r4   rZ   __members__keysr:   join)ri   rS   r   s   ` @r+   	enum_rule0apply_default_primitive_rules.<locals>.enum_rule  s     OOINN++
9>>4990U0Udii)..9	))Y->->><)<<GINN66;;=>G'#((7++c1 ;
 !
 	
r*   c           	     &  ^  T R                   [        R                  [        R                  [        R                  4;  a  g [	        S[        R                  S[        R                  S[        R                  S0T R                      U 4S jU 4S jS S9$ )	Nr   u   YYYY-MM-DD[THH:MM:[SS[…]]]z
YYYY-MM-DDu   HH:MM[:SS[…]]c                   > [        [        [        [        R                     [        [        R                     [        [        R
                     4   TR                  5      R                  U S   5      $ r   )r   r   r   datetimedatetimer1   fromisoformatrq   s    r+   rs   Fapply_default_primitive_rules.<locals>.datetime_rule.<locals>.<lambda>:  sW    4**+T(---@$x}}BUU 	,
 mDG$,%r*   c                0   > [        U TR                  5      $ rv   r   rx   s    r+   rs   r   @  s    *Q	"?r*   c                $    U R                  5       /$ rv   )	isoformatr|   s    r+   rs   r   A  s    0B0B0D/Er*   r   )r1   r   r   r   r:   rh   s   `r+   datetime_rule4apply_default_primitive_rules.<locals>.datetime_rule/  sw    >>("3"3X]]HMM!RR'!!#A|0 nn	
% @E
 	
r*   c                `  > U R                   [        [        [        [        [
        [        [        R                  R                  [        [        [        4
;  a  g U R                   nU[        [        4;   a  [        [        [        4   nOyU[        [        4;   a  [        [        S4   nOYU[
        [        [        R                  R                  [        4;   a  [        [           nOU[        [        4;   a  [        [           nTR                  " [        R                  UU R                   S95      $ )N.)r?   )r1   dictr   rZ   r   listr   collectionsabcr
   r=   r   rN   get_primitive_specr/   rE   r4   )ri   rC   r   s     r+   vague_container_rule;apply_default_primitive_rules.<locals>.vague_container_ruleD  s     >>OO$$"
 
 nn4,sCx.CUEN"S/CT4!9!98DDs)CS#Jc(C"55""(00 # 
 	
r*   c           
       >^^ U R                   [        R                  R                  [        [
        [        [        R                  [        4;  a  g U R                   mTc   eT[        R                  R                  L a  [
        m[        U R                  5      nT[        L a"  [        U5      S:X  d   eUu  p#U[        :X  d   eO[        U5      S:X  a  Uu  nO[        nTR                  " [        R!                  UU R"                  [$        R&                  1-
  S95      m[)        T[*        5      (       a  T$ SUU4S jjnSU4S jjn[$        R&                  U R"                  ;   a<  [-        TR.                  TR0                  TR2                  UU4S jUTR4                  SS9$ [-        S	[6        R8                  " TR0                  5      UUU4S
 jUTR4                  S9$ )Nr   r   r>   r?   c                x   > [        U T4SS9nUc  [        SU  35      eUnTc   e[        [        T5      " U5      $ )NTrr   r_   is_repeatingz*Could not find valid parse for arguments: )r   
ValueErrorr   r   )rr   resultoutcontainer_type
inner_specs      r+   rP   Oapply_default_primitive_rules.<locals>.sequence_rule.<locals>.instance_from_str  sU    ,!m!F
 ~ #MdV!TUUC!---.1#66r*   c                ^   > / nU  H#  nUR                  TR                  U5      5        M%     U$ rv   )extendrR   )r}   r   ir   s      r+   rR   Oapply_default_primitive_rules.<locals>.sequence_rule.<locals>.str_from_instance  s.    C

:77:; Jr*   c                T   > [        U T5      =(       a    [        U4S jU  5       5      $ )Nc              3  F   >#    U  H  nTR                  U5      v   M     g 7frv   rQ   r   r   r   s     r+   r   Yapply_default_primitive_rules.<locals>.sequence_rule.<locals>.<lambda>.<locals>.<genexpr>       =1a
..q111   !rW   allry   r   r   s    r+   rs   Fapply_default_primitive_rules.<locals>.sequence_rule.<locals>.<lambda>  $    jN&C '>=1=='>r*   rY   )rM   rO   rP   rQ   rR   rS   rT   rV   c                T   > [        U T5      =(       a    [        U4S jU  5       5      $ )Nc              3  F   >#    U  H  nTR                  U5      v   M     g 7frv   r   r   s     r+   r   r     r   r   r   r   s    r+   rs   r     r  r*   r   )rr   	list[str]rG   r   )r}   r
   rG   r  )r2   r   r   r
   	frozensetr   r=   dequerZ   r   r1   r;   Ellipsisr   r   r/   rE   r4   r   UseAppendActionrW   r!   r:   rM   rO   rP   rS   r   multi_metavar_from_single)	ri   rr   contained_typeellrP   rR   r   r   r   s	         @@r+   sequence_rule4apply_default_primitive_rules.<locals>.sequence_rulef  s      OO$$)
 
 "..)))[__555!N	'U"t9>!>$(!^(?"?Y!^ $^ N(;;""-(00H4L4L3MM # 

 j"@AA	7 	7	 ##y'8'88+ &&"**",">">>"3"** 	 	 , :::;M;MN"3>"3"** r*   c                  >^ ^	 T R                   [        La  g [        T R                  5      n[	        U5      nU[
        1-
  nX2:w  a  [        U5      S:X  d   eT" T 5      $ / m	U H]  nT
R                  " [        R                  UT R                  5      5      n[        U[        5      (       a  Us  $ T	R                  U5        M_     SU	U 4S jjnS	U	4S jjn[        T	5      n[        USR!                  S T	 5       5      UUU	4S jS9$ )
Nr   c                ~   > [        U [        T5      SS9nUc  [        SU  STR                   35      e[        U5      $ )NFr   zCould not parse arguments z into tuple type )r   rZ   r   r1   )rr   r   inner_specsri   s     r+   rP   Lapply_default_primitive_rules.<locals>.tuple_rule.<locals>.instance_from_str  sS    
 -K("F
 ~ 06G	GWX  = r*   c                v   > / n[        U T5       H%  u  p#UR                  UR                  U5      5        M'     U$ rv   )zipr   rR   )r}   r   r   rb   r  s       r+   rR   Lapply_default_primitive_rules.<locals>.tuple_rule.<locals>.str_from_instance  s7    C #Hk :

411&9: !;Jr*    c              3  8   #    U  H  oR                   v   M     g 7frv   )rO   )r   rb   s     r+   r   Dapply_default_primitive_rules.<locals>.tuple_rule.<locals>.<genexpr>  s     Bkd\\ks   c                   > [        U [        5      =(       a:    [        U 5      [        T5      :H  =(       a    [        S [	        U T5       5       5      $ )Nc              3  H   #    U  H  u  pUR                  U5      v   M     g 7frv   r   )r   r   rb   s      r+   r   Vapply_default_primitive_rules.<locals>.tuple_rule.<locals>.<lambda>.<locals>.<genexpr>  s"     UATD$$V,,ATs    ")rW   rZ   r;   r   r  )ry   r  s    r+   rs   Capply_default_primitive_rules.<locals>.tuple_rule.<locals>.<lambda>  sD    *Q"6 #VA#k**#VUQATUU#Vr*   )rM   rO   rP   rR   rQ   )rr   r  rG   rZ   )r}   rZ   rG   r  )r2   rZ   r   r1   r=   r  r;   r   r/   rE   r4   rW   r!   rY   re   r:   r   )ri   typestypesettypeset_no_ellipsisr
  rb   rP   rR   rM   r  r   r  s   `        @r+   
tuple_rule1apply_default_primitive_rules.<locals>.tuple_rule  s      -(e*%
2) *+q000 ++68#N&99!&&~y7H7HID $ >??t$ $	! 	! 	 %[1'HHBkBB//V
 	
r*   c           	     6  >^ ^^ T R                   [        [        R                  R                  4;  d"  [        [        T R                  5      5      S:w  a  g [        T R                  5      u  pT	R                  " [        R                  UT R                  S95      mT	R                  " [        R                  UT R                  [        R                  1-
  S95      m[        T[        5      (       a  T$ [        T[        5      (       a  T$ TR                    STR                    3nSUU U4S jjnSUU4S jjn[        R                  T R                  ;   a   [#        TT/5      n[%        UUUUU4S jUSS9$ [%        S	[&        R(                  " U5      UUU4S
 jUS9$ )Nr   r   r  c                \  > 0 n[         R                  TR                  ;   aD  [        TR                  [
        5      (       a"  [        TR                  [
        5      (       a  SnOSnOSn[        U TT4US9nUc  [        S5      e[        S[        U5      S5       H  nX4S-      XU   '   M     U$ )NFT)r   z Failed to parse key-value pairs!r   r   r   )
r   r  r4   rW   rM   rX   r   r   ranger;   )rr   r   r   parsedr   key_specri   val_specs        r+   rP   Kapply_default_primitive_rules.<locals>.dict_rule.<locals>.instance_from_str  s    C
 ''9+<+<<hnnc22z(..RU7V7V#(L $(L  $,x*F ~ !CDD 1c&k1-!'A1I . Jr*   c                   > / nU R                  5        HE  u  p#UR                  TR                  U5      5        UR                  TR                  U5      5        MG     U$ rv   )itemsr   rR   )r}   r   keyr   r%  r&  s       r+   rR   Kapply_default_primitive_rules.<locals>.dict_rule.<locals>.str_from_instance.  sP    C&nn.


855c:;

855e<= / Jr*   c                z   > [        U [        5      =(       a$    [        UU4S jU R                  5        5       5      $ )Nc              3  z   >#    U  H0  u  pTR                  U5      =(       a    TR                  U5      v   M2     g 7frv   r   r   kvr%  r&  s      r+   r   Uapply_default_primitive_rules.<locals>.dict_rule.<locals>.<lambda>.<locals>.<genexpr>?  8       ) ((+G0D0DQ0GG )   8;rW   r   r   r)  ry   r%  r&  s    r+   rs   Bapply_default_primitive_rules.<locals>.dict_rule.<locals>.<lambda>>  1    jD&9 '  !	 'r*   rY   )rM   rO   rP   rQ   rR   rT   rV   c                z   > [        U [        5      =(       a$    [        UU4S jU R                  5        5       5      $ )Nc              3  z   >#    U  H0  u  pTR                  U5      =(       a    TR                  U5      v   M2     g 7frv   r   r.  s      r+   r   r1  L  r2  r3  r4  r5  s    r+   rs   r6  K  r7  r*   r   )rr   r  rG   r   )r}   r   rG   r  )r2   r   r   r   Mappingr;   r   r1   r   r/   rE   r4   r   r  rW   r!   rO   re   r:   r   r	  )
ri   key_typeval_typepair_metavarrP   rR   rM   r%  r&  r   s
   `      @@r+   	dict_rule0apply_default_primitive_rules.<locals>.dict_rule  s   
 !!$0G0G)HH8INN+,1%inn5&99""'(00 # 
 '99""'(00H4L4L3MM # 
 h >??Oh >??O"**+1X-=-=,>?	 	>	 	 ##y'8'88((H)=>E+$"3
 #4   , ::<H"3
 #4
 
r*   c           	        ^ ^^ [        T R                  5      (       d  g [        T R                  5      m[	        U 4S jT 5       5      m[        SSSR                  T5      -   S-   UU4S jU4S jS TS	9$ )
Nc              3     >#    U  He  n[        U[        R                  5      (       a6  [        R                  TR
                  ;   a  UR                  OUR                  O
[        U5      v   Mg     g 7frv   )	rW   r   r   r   r   r4   r   r   rN   )r   ry   ri   s     r+   r   Fapply_default_primitive_rules.<locals>.literal_rule.<locals>.<genexpr>X  s^      
  a++  559J9JJ GG V s   A-A0r   r   r   r   c                2   > TTR                  U S   5         $ r   )index)rr   rS   str_choicess    r+   rs   Eapply_default_primitive_rules.<locals>.literal_rule.<locals>.<lambda>g  s    7;3D3DT!W3M+Nr*   c                   > U T;   $ rv   r#   )ry   rS   s    r+   rs   rF  h  s	    !w,r*   c                    [        U 5      /$ rv   r{   r|   s    r+   rs   rF  i  r~   r*   r   )r   r2   r   r1   rZ   r:   r   )ri   rS   rE  s   `@@r+   literal_rule3apply_default_primitive_rules.<locals>.literal_ruleS  sr     !6!6779>>* 
 
 
 (#((;//#5N.>
 	
r*   c                t  >^ ^^^ [        T R                  5      (       d  g [        [        T R                  5      5      m[	        S 5      T;   a5  TR                  [	        S 5      5        TR                  S[	        S 5      5        0 mSnSnSnSn[        5       n/ nT GH  n[        R                  UT R                  S9n[        R                  T R                  ;  a   [        R                  UR                  ;   a  M`  TR                  " U5      n	[        U	[        5      (       a  U	s  $ U	R                   c  S nOUb  XR                   -   nU	TU'   U[	        S 5      L a  [        R"                  T R                  ;   d  UR%                  U	R&                  5        U[	        S 5      Ld  GM	  [        U	R(                  [*        5      (       a  UR-                  U	R(                  5        OSnU(       a  U	R(                  nSnGM^  X)R(                  :w  d  GMp  U(       a"  [        U	R(                  [*        5      (       a  GM  SnGM     U(       a#  [/        U5      S:  a  [1        [3        U5      5      n[4        R6                  " U5      mSUUUU 4S jjn
SUU4S	 jjn[9        UTU
U4S
 jUUc  S S9$ [1        [        U5      5      S9$ )Nr   r#   r   Tr   FrV   c                  >^ / n[        TR                  5       5       GHc  u  nu  nmU[        S 5      L a   [        R                  T
R
                  ;   a  M8  TR                  bB  [        U4S jU  5       5      (       a(  UR                  T	U    SU  STR                   35        M  Sn[        TR                  [        5      (       a  [        U 5      TR                  :H  nOJ[        TR                  [        5      (       a  [        U 5      TR                  ;   nOTR                  S:X  a  SnU(       a   TR                  U 5      s  $ UR                  T	U    S[        U 5       S	TR                   S
TR"                   S35        GMf     [        ST SU  S3SR%                  U5      -   5      e! [         a2  nUR                  T	U    SUR                   S    35         S nAGM  S nAff = f)Nc              3  @   >#    U  H  oTR                   ;  v   M     g 7frv   )rS   )r   ry   option_specs     r+   r   `apply_default_primitive_rules.<locals>.union_rule.<locals>.union_instantiator.<locals>.<genexpr>  s      ;:AQ[000's   z: z does not match choices FrV   Tr   z: input length z' did not match expected argument count z of `[bold]z[/bold]`zno type matching z could be instantiated from z.

Got errors:  
- z
- )	enumerater)  r1   r   DisallowNoner4   rS   anyrY   rW   rM   rX   r;   rZ   rP   r   rr   rO   r   )stringserrorsr   tnargs_matcherN  rO   option_specsoptionsri   s         @r+   union_instantiatorMapply_default_primitive_rules.<locals>.union_rule.<locals>.union_instantiator  s   F'01C1C1E'F##A{T
?x'<'<	@Q@Q'Q &&2s ;:A; 8 8 MM"1:,b	1I+J]J]I^_  $k//55"%g,+2C2C"CK 1 1599"%g,+2C2C"CK &&#-"&KD*<<WEE
 MM"1:,oc'l^ D++6+<+<*=[I\I\H]]eg= (GD #G9 -9246<kk&6IJ  & DBqvvayk&BCCDs   1F**
G&4&G!!G&c                   > S nTR                  5        H6  nUR                  U 5      nUSL a  UR                  U 5      s  $ US:X  d  M4  UnM8     Ub  UR                  U 5      $  SU  ST 35       e)NT~zcould not match default value z with any types in union )valuesrQ   rR   )r}   fuzzy_matchrN  rQ   rX  rY  s       r+   rR   Lapply_default_primitive_rules.<locals>.union_rule.<locals>.str_from_instance  s    K+224)55h?$&&88BB C'"-K  5 &"44X>>0
:ST[S\]5r*   c                L   >^  [        U 4S jTR                  5        5       5      $ )Nc              3  D   >#    U  H  oR                  T5      v   M     g 7frv   r   )r   rb   ry   s     r+   r   Vapply_default_primitive_rules.<locals>.union_rule.<locals>.<lambda>.<locals>.<genexpr>  s!      &0E  ##0Es    )rR  r^  )ry   rX  s   `r+   rs   Capply_default_primitive_rules.<locals>.union_rule.<locals>.<lambda>  s     # &0<0C0C0E& #r*   r   )rS  r  rG   r   )r}   r   rG   r  )r   r2   r   r   r1   removeinsertr=   r/   rE   r4   r   Suppressr   rW   r!   rS   rQ  rY   rO   rM   rX   addr;   rZ   r[   r   join_union_metavarsr:   )ri   rS   rM   firstall_fixed_nargs	nargs_setmetavar_partsrU  option_type_inforN  rZ  rR   rO   rX  rY  r   s   `           @@@r+   
union_rule1apply_default_primitive_rules.<locals>.union_rulem  sc    y4455x	/0:  NN4:&NN1d4j) JL*,67!e	#%A055 (00  6   !!):)::%%)9)A)AA-@@AQRK+'EFF""""*$!$7$77)LOdO(=(=ARAR(R$$[%8%89T
"k//55MM+"3"34&+O '--E!E///&:k6G6G+M+M  !$Y ^ s9~1&+,E ..}='	 '	R	 	" (0 0#OD	
 		
 27s7|1D	
 		
r*   )ri   r/   rG   z@PrimitiveConstructorSpec | UnsupportedTypeAnnotationError | None)ri   r/   rG   r5   )	_registryr   primitive_rulerX   rN   floatcomplexrp   	bytearrayjsonloadssysmodulesr   r   )registryrj   r   r   r   r   r   r   r   r   r  r>  rI  ro  r   r  r   r   s                 @@@@r+   apply_default_primitive_rulesr{     s&    /O$O	IO O #uguiLM
 
& #++""$$		 	 	(	,	 
!	 

 

 

 

 
 
" 
 
< 
 
( 
$
	I
 
B M$M	IM M^ 9
$9
	I9
 9
v ^$^	I^ ^@ 
 
2 P
$P
	IP
 P
r*   )r_   z"Sequence[PrimitiveConstructorSpec]rG   rL   )rz  r   rG   r   )6
__future__r   r   collections.abcdataclassesr   r   r   r\   rv  r   r   rx  typingr   r   r   r   r   r	   r
   r   r   r   r   r   r   typing_extensionsr   r   r   r   _typing_compatr   r   rq  r    r   r   _typingr   confr   _backtrackingr   	Exceptionr!   r,   	dataclassr/   r:   re   r{  r#   r*   r+   <module>r     s    "         	  
     P O ?. "   2LY L CL d# 
  
 $ 
F d#%>wqz %> $%>P)-)))XS	
r*   