
    %
i                         d Z ddlZddlZddlmZ ddlmZmZ ddlm	Z	m
Z
 d Z G d d	ej                  Z G d
 dej                  Z G d d          ZdS )z(Management of documents for AXDebugging.    N)unwrap   )axdebuggateways)_wraptracec                 F    | d         dk    rt          j        |           S | S )Nr   <)win32apiGetFullPathName)fnames    C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\win32comext/axdebug/documents.pyGetGoodFileNamer      s%    Qx3'...L    c                   &    e Zd Zd Zd Zd Zd ZdS )DebugDocumentProviderc                     || _         d S Ndoc)selfr   s     r   __init__zDebugDocumentProvider.__init__   s    r   c                 6    | j                             |          S r   )r   GetNamer   dnts     r   r   zDebugDocumentProvider.GetName   s    x$$$r   c                 4    | j                                         S r   )r   GetDocumentClassIdr   s    r   r   z(DebugDocumentProvider.GetDocumentClassId   s    x**,,,r   c                     | j         S r   r   r   s    r   GetDocumentz!DebugDocumentProvider.GetDocument   s	    xr   N)__name__
__module____qualname__r   r   r   r!    r   r   r   r      sP          % % %- - -    r   r   c                       e Zd Zej        j        ej        j        z   ej        j        z   Zej        j        ej        j        z   ej        j        z   Zd Z	d Z
d Zd Zd Zd Zd Zd Zd	 Zd
 ZdS )DebugDocumentTextc                     t           j                            |            t           j                            |            t           j                            |            || _        d S r   )r   r'   r   DebugDocumentInfoDebugDocumentcodeContainer)r   r+   s     r   r   zDebugDocumentText.__init__0   sU    "++D111"++D111''---*r   c                 "    d | _         d | _        d S r   )docContextsr+   r   s    r   _ClosezDebugDocumentText._Close6   s    !r   c                 6    | j                             |          S r   )r+   r   r   s     r   r   zDebugDocumentText.GetName<   s    !))#...r   c                     dS )Nz&{DF630910-1C1D-11d0-AE36-8C0F5E000000}r%   r   s    r   r   z$DebugDocumentText.GetDocumentClassId?   s    77r   c                 f    | j                                         | j                                         fS r   )r+   GetNumLinesGetNumCharsr   s    r   GetSizezDebugDocumentText.GetSizeG   s+    !--//1C1O1O1Q1QQQr   c                 6    | j                             |          S r   )r+   GetPositionOfLine)r   cLineNumbers     r   r6   z#DebugDocumentText.GetPositionOfLineK   s    !33K@@@r   c                 6    | j                             |          S r   )r+   GetLineOfPosition)r   charPoss     r   r9   z#DebugDocumentText.GetLineOfPositionN   s    !33G<<<r   c                 d    | j         }|                                }|                                |fS r   )r+   GetSyntaxColorAttributesGetText)r   r:   maxCharswantAttrcontattrs         r   r=   zDebugDocumentText.GetTextQ   s0     !,,..||~~t##r   c                 \    t          d|           t          |          }|j        |j        fS )NGetPositionOfContext)r   r   offsetlength)r   contexts     r   rC   z&DebugDocumentText.GetPositionOfContextY   s-    $g...//~w~--r   c                     t          | t          j                  }| j                            |          }|                    t          j                  S r   )r   r   IID_IDebugDocumentr+   GetCodeContextAtPositionQueryInterfaceIID_IDebugDocumentContext)r   r:   r>   r   rcs        r   GetContextOfPositionz&DebugDocumentText.GetContextOfPosition_   sA    D'45588AA  !BCCCr   N)r"   r#   r$   r   r)   _com_interfaces_r'   r*   _public_methods_r   r.   r   r   r4   r6   r9   r=   rC   rM   r%   r   r   r'   r'   "   s       "3

$
5	6

 
1	2  	"3

$
5	6

 
1	2 + + +" " "/ / /8 8 8R R RA A A= = =$ $ $. . .D D D D Dr   r'   c                   ,    e Zd ZdZd ZddZd Zd ZdS )CodeContainerProvidera(  An abstract Python class which provides code containers!

    Given a Python file name (as the debugger knows it by) this will
    return a CodeContainer interface suitable for use.

    This provides a simple base implementation that simply supports
    a dictionary of nodes and providers.
    c                     i | _         d S r   )ccsAndNodesr   s    r   r   zCodeContainerProvider.__init__p   s    r   Nc                 F    t          |j                  }||f| j        |<   d S r   )r   fileNamerS   )r   ccnoder   s       r   AddCodeContainerz&CodeContainerProvider.AddCodeContainers   s(    ,,"$d(r   c                 \    | j                             t          |          d          \  }}|S )N)NN)rS   getr   )r   r   rV   rW   s       r   FromFileNamez"CodeContainerProvider.FromFileNamew   s-    #''(>(>MMD 	r   c                     | j                                         D ]E\  }}	 ||                                 |                                 1# t          j        $ r Y Bw xY wi | _         d S r   )rS   valuesCloser.   	pythoncom	com_error)r   rV   rW   s      r   r^   zCodeContainerProvider.Close}   s~    (//11 	 	HB #JJLLL		&   s   *AAAr   )r"   r#   r$   __doc__r   rX   r[   r^   r%   r   r   rQ   rQ   f   s_           + + + +  
 
 
 
 
r   rQ   )ra   r_   r   win32com.server.utilr    r   r   utilr   r   r   r   r'   rQ   r%   r   r   <module>re      s   . .      ' ' ' ' ' '                      H:   AD AD AD AD AD2 AD AD ADH! ! ! ! ! ! ! ! ! !r   