
    ^h               	       &   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  S SK	7  S SK
7   " S S\ R                  5      rS\S\\   4S jrS	\\\4   4S
 jrS\S\4S jrS\S\4S jr SS\\\R2                  4   S\S\S\4S jjrS\S\SS4S jrg)    N)StringIO)*c                       \ rS rSrS rS\R                  SS4S jrS\R                  SS4S jr	S\R                  SS4S jrS	rg)
SymbolFinder   c                 "    [        5       U l        g N)setdefined_symbols)selfs    Q/home/james-whalen/.local/lib/python3.13/site-packages/chatdbg/pdb_util/locals.py__init__SymbolFinder.__init__   s    "u    nodereturnNc                     UR                    HI  n[        U[        R                  5      (       d  M$  U R                  R                  UR                  5        MK     U R                  U5        g r	   )targets
isinstanceastNamer   addidgeneric_visit)r   r   targets      r   visit_AssignSymbolFinder.visit_Assign   sI    llF&#((++$$((3 # 	4 r   c                     [        UR                  [        R                  5      (       a/  U R                  R                  UR                  R                  5        U R                  U5        g r	   r   r   r   r   r   r   r   r   r   r   s     r   	visit_ForSymbolFinder.visit_For   A    dkk388,,  $$T[[^^44 r   c                     [        UR                  [        R                  5      (       a/  U R                  R                  UR                  R                  5        U R                  U5        g r	   r   r    s     r   visit_comprehension SymbolFinder.visit_comprehension   r#   r   )r   )__name__
__module____qualname____firstlineno__r   r   Assignr   Forr!   r   r%   __static_attributes__ r   r   r   r      sL    %! ! !!cgg !$ !
! !T !r   r   framer   c                     [         R                  " [        R                  " U 5      5      n[        R
                  " U5      n[        5       nUR                  U5        [        R                  " U 5      u  pEpg[        XEU/-   5      nUR                  S 5        UR                  U-  UR                  5       -  $ !   [        5       s $ = fr	   )textwrapdedentinspect	getsourcer   parser   visitgetargvaluesr
   discardr   keys)	r/   sourcetreefinderargsvarargskeywordslocalsparameter_symbolss	            r   _extract_localsrB   #   s    !2!25!9:yy T*1*>*>u*E'x': :;!!$'&&)::fkkmKKus   B3B6 6Cglobalsc                    [        5       nU S    HT  n [        R                  " U5      n[        5       nUR	                  U5        XR
                  U R                  5       -  -  nMV     U$ ! [         a  n S nAMj  S nAff = f)NIn)r
   r   r5   r   r6   r   r9   	Exception)rC   resultr:   r;   r<   es         r   _extract_nb_globalsrI   5   sr    UF$-	99V$D!^FLL55FGF   M  		s   AA**
A?:A?objc                 <     [        U 5        g! [         a     gf = f)NTF)iter	TypeError)rJ   s    r   _is_iterablerN   B   s#    S	 s    
c                     U R                   [        R                  [        [        [
        4;   a  gS[        U R                   5      ;   =(       a&    U R                   R                  [        R                  LnU$ )NF__repr__)		__class__npndarraydictlisttupledirrP   object)rJ   rG   s     r   _repr_if_definedrY   J   sV    
}}T477c#--(( 	:MM""&//9  Mr   valuelimitdepthc                    ^^^^^^ U4S jmU4S jmU4S jmU4S jmUUUUU4S jm[        T" U SS95      R                  SS	5      n[        U5      S
:  a  US S S	-   n[        U 5      [         :X  a  SU-   S-   $ U$ )Nc           	      R   > [        U  Vs/ s H  nT" X!5      PM     sn5      $ s  snf r	   )rV   )tr\   xhelpers      r   format_tuple%_format_limited.<locals>.format_tupleX   s%    21fQ&2332s   $c                 @   > U  Vs/ s H  nT" X!5      PM     sn$ s  snf r	   r.   )rU   r\   r`   ra   s      r   format_list$_format_limited.<locals>.format_list[   s     *./$Qq $///s   c           	      L   > U  VVs0 s H  u  p#UT" X15      _M     snn$ s  snnf r	   r.   )itemsr\   kvra   s       r   format_dict$_format_limited.<locals>.format_dict^   s'    0566!##666s    c           
      6  > [        U 5      nU Vs0 s HD  n[        [        XS 5      5      (       a  M  UR                  S5      (       a  M7  U[        XS 5      _MF     nn[	        [        U 5      R                   ST" UR                  5       U5       35      $ s  snf )N__z object with fields )rW   callablegetattr
startswithformattyper'   rh   )rJ   r\   
attributesattrfieldsrk   s        r   format_object&_format_limited.<locals>.format_objecta   s    X
 #
"GCt45 +>Bood>S +D'#T**" 	 

 Cy!!""6{6<<>SX7Y6Z[
 	

s   BBBc                   > US:X  a  gU [         L a  g[        U [        5      (       aV  [        U 5      T:  a-  T" [	        U R                  5       5      S TS-
   S/-   US-
  5      $ T" U R                  5       US-
  5      $ [        U [        [        45      (       a"  [        U 5      S:  a  [        U 5      SS S-   n U $ [        U [        5      (       a/  [        U 5      T:  a  T" U STS-
   S-   US-
  5      $ T" XS-
  5      $ U b4  [        U [        [        [        [        [        R                  45      (       a  U $ [        U [        R                   5      (       a4  [        R"                  " TS	9   [        R$                  " U 5      sS S S 5        $ [&        R(                  " [        U 5      5      (       a  [+        U 5      (       a  [-        U 5      $ [/        U 5      (       aT  [	        [0        R2                  " U STS-   5      5      n [        U 5      T:  a  T" U S TS-
   S/-   US-
  5      $ T" XS-
  5      $ [&        R(                  " [        U 5      5      (       a  T" XS-
  5      $ U $ ! , (       d  f       g = f)
Nr   .   )..      ...).)	threshold)Ellipsisr   rT   lenrU   rh   strbytesrV   intfloatboolrs   numbersNumberrR   rS   printoptions
array_reprr3   isclassrY   reprrN   	itertoolsislice)rZ   r\   rk   re   rw   rb   r[   s     r   ra   _format_limited.<locals>.helperl   s   A:HeT""5zE!"'%!)4
|CUQY  #5;;=%!)<<U|,,5zCE
1S)E1Lu%%5zE!#E!eai$86$A519MM#E1955]jCdGNN;
 
 Lrzz**51}}U+ 21__T%[)).>u.E.E;%  ))%EAI>?E5zE!"5519#5#=uqyII"5!)44__T%[)) 	22L 21s   +I
I-   )r\   r   r}   i   i  ')r   replacer   rs   )	rZ   r[   r\   rG   rk   re   rw   rb   ra   s	    `  @@@@@r   _format_limitedr   U   s    407	
' 'R Q'(00UCF
6{X,'%/E{cV|c!!r   filec           	         UR                   nX!R                  L n[        U5      n[        U5      S:  a  U(       a  [	        SU S9  O
[	        SU S9  [        U5       H  nX%   n[        U5      R                  nSU SU S3n[        USS	9R                  S
5      n	[        U	5      S:  a@  UU	S   -   S
-   [        R                  " S
R                  U	SS  5      S[        U5      -  S9-   n
OXS   -   n
[	        XS9  M     [	        U S9  g g )Nr   z    Global variables:)r   z    Variables in this frame:z      z: z =    )r[   
rz    )prefix)f_locals	f_globalsrB   r   printsortedrs   r'   r   splitr1   indentjoin)r   r/   r@   in_global_scopedefined_localsnamerZ   r_   r   rep_listreps              r   print_localsr      s   ^^F/O$U+N >Q)60=>*DLEU$$AdV2aS,F&uB7==dCH8}q qk" oodii&=cCPVKFWXY  {*#! + 	4) r   )
   r   )r   r3   r   r   r1   numpyrR   ior   typestypingNodeVisitorr   	FrameTypeSetr   rB   DictAnyrI   r   rN   rY   Unionr   rS   r   r   r.   r   r   <module>r      s    
        !3?? !*9 S $
c3h 
c d # $  BCFbjj!F*-F;>FFRx 	 d r   