
    %
iL                        d dl Z d dlZd dlZd dlmZmZmZmZmZ d dl	m
Z
 da G d d          Zd Zd Z G d d	ej                  Z G d
 d          Z G d d          Z G d d          Zd Zd ZeZeZd Zd Zd Zedk    rC ed            e              ed ej                     d ej                     d           dS dS )    N)adbaxdebugcodecontainer	documentsexpressions)_wrapc                   *    e Zd ZdZd Zd Zd Zd ZdS )ModuleTreeNodez'Helper class for building a module treec                 p    |j         }|| _        || _        d | _        t	          j        |          | _        d S N)__name__
moduleNamemodulerealNoder   SourceModuleContainercont)selfr   modNames      C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\win32comext/axdebug/debugger.py__init__zModuleTreeNode.__init__   s4    /!!7??			    c                     d| j          dS )Nz<ModuleTreeNode wrapping >)r   r   s    r   __repr__zModuleTreeNode.__repr__   s    94;9999r   c                 :    | j                             |           d S r   )r   Attach)r   parentRealNodes     r   r   zModuleTreeNode.Attach   s    ^,,,,,r   c                 0    d | _         d | _        d | _        d S r   )r   r   r   r   s    r   ClosezModuleTreeNode.Close   s    	r   N)r   
__module____qualname____doc__r   r   r   r     r   r   r
   r
      sY        11@ @ @: : :- - -    r   r
   c                    | rp| j         }|o|                    |           d u }|rNt          | d          r>t          j                            | j                  d                                         dv}| r|rt          |           }||| <    ||f|z    }||_	        | j         
                    d          }|d         d d         dk    r
|d d         }d                    |d d                   }	|}
|	r6t          j        |	         }t          |||||           ||v r||         j	        }
|                    |
           d S d S d S )N__file__   )z.pydz.dll.   r   )r   gethasattrospathsplitextr&   lowerr
   r   splitjoinsysmodulesBuildModuler   )r   built_nodesrootNodecreate_node_fncreate_node_argskeepnoder   partsparent
parentNodeparentModules               r   r5   r5   !   s    900D8 	GFJ// 	7##FO44Q7==?? H D
   $  f%%"F!>D7-=#=>  %%c**9RaR=J&&#2#JE%*%%
 	@;v.Lk8^EU   {**(6?
J)       r   c                 n    t           j                                        D ]}t          || |||           d S r   )r3   r4   valuesr5   )
builtItemsr7   create_noder9   r   s        r   RefreshAllModulesrD   B   sG    +$$&& Q QFJ+?OPPPPQ Qr   c                        e Zd Zd Zd Zd ZdS )CodeContainerProviderc                     || _         t          j                            |            t	          t
          j                  | _        i | _        | j         	                    | j        |            d S r   )

axdebuggerr   rF   r   lenr3   r4   currentNumModulesnodesrD   )r   rH   s     r   r   zCodeContainerProvider.__init__L   sY    $'00666!$S[!1!1
))$*d;;;;;r   c                 B    t           j                            | |          S r   )r   rF   FromFileName)r   fnames     r   rM   z"CodeContainerProvider.FromFileNameS   s     .;;D%HHHr   c                 
   t           j                            |            d | _        t	          dt          | j                   d           | j                                        D ]}|                                 i | _        d S )NzClosing z nodes)r   rF   r    rH   printrI   rK   rA   )r   r;   s     r   r    zCodeContainerProvider.Close\   sy    '--d3330TZ000111J%%'' 	 	DJJLLLL


r   N)r   r!   r"   r   rM   r    r$   r   r   rF   rF   K   sD        < < <I I I    r   rF   c                       e Zd Zd Zd ZdS )OriginalInterfaceMakerc                     | j                                         }|                    |          | _        |                                }||fS r   )pdmCreateApplicationAddApplicationcookieGetRootNoder   rT   approots       r   MakeInterfacesz%OriginalInterfaceMaker.MakeInterfacesf   sC    h((**((--  Dyr   c                 :    |                     | j                   d S r   )RemoveApplicationrW   r   rT   s     r   CloseInterfacesz&OriginalInterfaceMaker.CloseInterfacesl   s    dk*****r   Nr   r!   r"   r\   r`   r$   r   r   rR   rR   e   s2          + + + + +r   rR   c                       e Zd Zd Zd ZdS )SimpleHostStyleInterfaceMakerc                 Z    |                                 }|                                }||fS r   )GetDefaultApplicationrX   rY   s       r   r\   z,SimpleHostStyleInterfaceMaker.MakeInterfacesq   s,    ''))  Dyr   c                     d S r   r$   r_   s     r   r`   z-SimpleHostStyleInterfaceMaker.CloseInterfacesv   s    r   Nra   r$   r   r   rc   rc   p   s2          
    r   rc   c                   .    e Zd ZddZd Zd Zd Zd ZdS )
AXDebuggerNc                 T   |d}|t                      }t          j                    | _        t	          j        t          j        d t          j        t          j	                  | _
        |                    | j
                  \  | _        | _        | j                            |           || _        t!          t#          j                    t          j                  }| j                            |          | _        t-          |           }| j                            | j        |           d S )NzPython Process)rc   r   Debugger
pydebugger	pythoncomCoCreateInstancer   CLSID_ProcessDebugManager
CLSCTX_ALLIID_IProcessDebugManagerrT   r\   rZ   r[   SetNameinterfaceMakerr   r   ProvideExpressionContextsIID_IProvideExpressionContexts"AddGlobalExpressionContextProviderexpressionCookierF   	AttachApp)r   rr   processNameexpressionProvidercontProviders        r   r   zAXDebugger.__init__{   s   *K!:<<N,..-- ,	
 
 -;;DHEE$)%%%,"1332
 
 !% K K!
 !
 -T22!!$(L99999r   c                    	 ddz    n*#  t          j                    d         j        j        }Y nxY w| j                                         | j                            d |           | j                                         d S )Nr'       )	r3   exc_infotb_framef_backrZ   StartDebugSessionrk   SetupAXDebugging	set_trace)r   frames     r   BreakzAXDebugger.Break   s    	6FFF	6LNN1%.5EEE 	""$$$ 	((u555!!#####s    %/c                 ,   | j                                          | j                            | j                   | j                                          | j                            | j                   d | _        d | _        d | _        d | _         d | _	        d S r   )
rk   ResetAXDebuggingrr   r`   rT   CloseApprZ   %RemoveGlobalExpressionContextProviderrv   r[   r   s    r   r    zAXDebugger.Close   s    ((***++DH555  """66t7LMMM $			r   c                 @    t          || j        | j        |f           d S r   )rD   r[   CreateApplicationNode)r   rK   containerProviders      r   rD   zAXDebugger.RefreshAllModules   s0    49d8;L:N	
 	
 	
 	
 	
r   c                 r   | j                                         }t          j        |j                  }t          |t          j                  }||j        _        t          j	        |          }t          |t          j
                  }|                    |           |                    |j        |           |S r   )rZ   r   r   DebugDocumentTextr   r   r   IID_IDebugDocumentdebugDocumentDebugDocumentProviderIID_IDebugDocumentProviderSetDocumentProviderAddCodeContainer)r   r;   r   r   documentproviders         r   r   z AXDebugger.CreateApplicationNode   s    81133.ty997#=>>"*	28<<7#EFF$$X...**49h???r   )NN)r   r!   r"   r   r   r    rD   r   r$   r   r   rh   rh   z   sd        : : : :<$ $ $
 
 

 
 

    r   rh   c                  :    t           t                      a t           S r   )currentDebuggerrh   r$   r   r   _GetCurrentDebuggerr      s    $,,r   c                  F    t                                                       d S r   )r   r   r$   r   r   r   r      s     !!!!!r   c                      d} d}d S )Nr}   zHi therer$   abs     r   dosomethingelser      s    	AAAAr   c                  *    d} d}t                       d S )Nr'   r}   )r   r   s     r   dosomethingr      s    	A	Ar   c                  z    t                       t          d           t                       t          d           d S )Nz
Waiting...Done)r   inputr   rP   r$   r   r   testr      s1    	GGG	,MMM	&MMMMMr   __main__z'About to test the debugging interfaces! /z com objects still alive)r-   r3   rl   win32com.axdebugr   r   r   r   r   win32com.axdebug.utilr   r   r
   r5   rD   rF   rR   rc   rh   r   r   brkr   r   r   r   r   rP   _GetInterfaceCount_GetGatewayCountr$   r   r   <module>r      s0   				 



     P P P P P P P P P P P P P P ' ' ' ' ' '       ,     BQ Q Q    I;   4+ + + + + + + +       K K K K K K K K\  " " " 	  
     z	E
3444DFFF	Ec(I(**cc-GY-G-I-Iccc     r   