
    hn                         % S SK r S SKrS SKJrJrJrJrJr  \" S\S9r/ r	\\\\4      \
S'   SS jrS\S\\/\4   4S	 jrS
\S\4S jrg)    N)AnyCallableDictListTypeVarCallableType)bound_cache_listreturnc                  >    [          H  n U R                  5         M     g N)r
   clear)cs    L/home/james-whalen/.local/lib/python3.13/site-packages/tyro/_unsafe_cache.pyclear_cacher      s    		     maxsizec                 p   ^ ^ [         R                  0 5        [         S   mS[        S[        4UU 4S jjnU$ )zCache decorator that relies object IDs when arguments are unhashable. Makes the
very strong assumption of not only immutability, but that unhashable types don't go
out of scope.fr   c                 L   >^  [         R                  " T 5      U UU4S j5       nU$ )Nc                    > [        S U  5       5      [        S UR                  5        5       5      -   nUT;   a]  S[        R                  ;   aD  SS KnUR	                  5       S:  a,  T" U 0 UD6nTU   nXE:X  d  [        U5      [        U5      :X  d   eTU   $ T" U 0 UD6nUTU'   [        T5      T	:  a#  TR                  [        [        T5      5      5        U$ )Nc              3   8   #    U  H  n[        U5      v   M     g 7fr   	_make_key).0args     r   	<genexpr>Aunsafe_cache.<locals>.inner.<locals>.wrapped_f.<locals>.<genexpr>   s     7$3	#$s   c              3   B   #    U  H  u  pS U[        U5      4v   M     g7f)	__kwarg__Nr   )r   kvs      r   r   r      s!      @;I41a1.>s   pytestr   g?)
tupleitemssysmodulesrandomstrlenpopnextiter)
argskwargskeyr)   aboutr   local_cacher   s
          r   	wrapped_f.unsafe_cache.<locals>.inner.<locals>.wrapped_f   s    7$77% @;A<<>@ ; C k!s{{*!}},t.v.', vQ3q6)999"3''T$V$C"K;')T+%6 78Jr   )	functoolswraps)r   r6   r5   r   s   ` r   innerunsafe_cache.<locals>.inner   s&    			 
	. r   )r
   appendr   )r   r:   r5   s   ` @r   unsafe_cacher=      s;    
 rb/K ,  6 Lr   objc                 j     [        U 5        U $ ! [         a    [        U 5      [        U 5      4s $ f = f)z8Some context: https://github.com/brentyi/tyro/issues/214)hash	TypeErrortypeid)r>   s    r   r   r   6   s5    "S	
 "Cy"S'!!"s     22)r   N)r8   r'   typingr   r   r   r   r   r   r
   __annotations__r   intr=   r    r   r   <module>rH      sn     
 5 5~X6 %'T$sCx.! &
## #(L><+G"H #L"3 "3 "r   