
    %
i                     v    d dl Z d dlZd dlmZ d dlmZ d dlmZ  G d d          Zg dZ	 G d d	          Z
dS )
    N)axscript)util)COMExceptionc                   H    e Zd Zd Zd ZddZd ZddZd Zd	 Z	d
 Z
d ZdS )AXEnginec                    d x| _         x| _        | _        t          |t                    r+t          j        |d t
          j        t
          j                  }|	                    t          j                  | _         |	                    t          j                  | _        |	                    t          j                  | _        | j                             |           | j                                         d S N)eScripteParseeSafety
isinstancestr	pythoncomCoCreateInstanceCLSCTX_SERVERIID_IUnknownQueryInterfacer   IID_IActiveScriptIID_IActiveScriptParseIID_IObjectSafetySetScriptSiteInitNew)selfsiteengines      C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\win32comext/axscript/server/axsite.py__init__zAXEngine.__init__	   s    4888t{T\fc"" 	/i5y7M F ,,X-GHH++H,KLL,,X-GHH""4(((    c                 .    |                                   d S r	   )Closer   s    r   __del__zAXEngine.__del__   s    

r   Nc                 6    | j                             |          S r	   )r
   GetScriptDispatch)r   names     r   r$   zAXEngine.GetScriptDispatch   s    |--d333r   c                 8    | j                             ||          S r	   )r
   AddNamedItem)r   itemflagss      r   r'   zAXEngine.AddNamedItem   s    |((u555r   r   c           	      F    | j                             |d d d dd|           d S Nr   )r   ParseScriptText)r   coder)   s      r   AddCodezAXEngine.AddCode!   s*    ##D$dAq%HHHHHr   c           	      V    | j                             |d d d ddt          j                  S r+   )r   r,   r   SCRIPTTEXT_ISEXPRESSION)r   r-   s     r   EvalCodezAXEngine.EvalCode$   s.    {**$dAq(*J
 
 	
r   c                 N    | j                             t          j                   d S r	   )r
   SetScriptStater   SCRIPTSTATE_STARTEDr!   s    r   StartzAXEngine.Start)   s#     	##H$@AAAAAr   c                 p    | j         r| j                                          d x| _         x| _        | _        d S r	   )r
   r    r   r   r!   s    r   r    zAXEngine.Close0   s9    < 	!L   4888t{T\\\r   c                 :    | j                             |           d S r	   )r
   r3   r   states     r   r3   zAXEngine.SetScriptState5   s    ##E*****r   r	   )r   )__name__
__module____qualname__r   r"   r$   r'   r.   r1   r5   r    r3    r   r   r   r      s            4 4 4 46 6 6I I I I
 
 

B B B9 9 9
+ + + + +r   r   )GetLCIDGetItemInfoGetDocVersionStringOnScriptTerminateOnStateChangeOnScriptErrorOnEnterScriptOnLeaveScriptc                   t    e Zd ZdZeZej        gZi ddfdZ	d Z
e
Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zd ZdS )AXSitez>An Active Scripting site.  A Site can have exactly one engine.Nr   c                     || _         i | _        |                                D ]\  }}|| j        |<   d | _        |r|                     |           d S d S r	   )lcidobjModelitemsr   
_AddEngine)r   rJ   r   rI   r%   objects         r   r   zAXSite.__init__K   sm    	$NN,, 	) 	)LD&"(DM$ 	$OOF#####	$ 	$r   c                 l   t          |t                    r#t          t          j        |           |          }n|}|| _        t          j        t          j        z  t          j	        z  t          j
        z  }| j        D ]7}|                    ||           |                    t          j                   8|S )ziAdds a new engine to the site.
        engine can be a string, or a fully wrapped engine object.
        )r   r   r   r   wrapr   r   SCRIPTITEM_ISVISIBLESCRIPTITEM_NOCODESCRIPTITEM_GLOBALMEMBERSSCRIPTITEM_ISPERSISTENTrJ   r'   r3   SCRIPTSTATE_INITIALIZED)r   r   	newEnginer)   r%   s        r   	AddEnginezAXSite.AddEngineV   s     fc"" 	 4&99III)()/0 ./ 	 M 	G 	GD""4///$$X%EFFFFr   c                 F    | j                                          i | _        d S r	   )r   r    rJ   r!   s    r   _ClosezAXSite._Closem   s!    r   c                     | j         S r	   )rI   r!   s    r   r>   zAXSite.GetLCIDq   s
    yr   c                     || j         vrt          t          j        d          |t          j        z  r| j         |         d fS dS )Nzitem not found)scodedesc)NN)rJ   r   winerrorTYPE_E_ELEMENTNOTFOUNDr   SCRIPTINFO_IUNKNOWN)r   r%   
returnMasks      r   r?   zAXSite.GetItemInfot   sX    t}$$5<L    44 	/M$'..|r   c                     dS )NzPython AXHost version 1.0r=   r!   s    r   r@   zAXSite.GetDocVersionString   s    **r   c                     d S r	   r=   )r   result	excepInfos      r   rA   zAXSite.OnScriptTerminate       r   c                     d S r	   r=   r8   s     r   rB   zAXSite.OnStateChange   re   r   c                     t           j        S r	   )r]   S_FALSE)r   errorInterfaces     r   rC   zAXSite.OnScriptError   s    r   c                     d S r	   r=   r!   s    r   rD   zAXSite.OnEnterScript   re   r   c                     d S r	   r=   r!   s    r   rE   zAXSite.OnLeaveScript   re   r   )r:   r;   r<   __doc__IActiveScriptSite_methods_public_methods_r   IID_IActiveScriptSite_com_interfaces_r   rV   rL   rX   r>   r?   r@   rA   rB   rC   rD   rE   r=   r   r   rG   rG   E   s        HH0 67 "4a 	$ 	$ 	$ 	$  * J      + + +               r   rG   )r   r]   win32com.axscriptr   win32com.serverr   win32com.server.exceptionr   r   rm   rG   r=   r   r   <module>rt      s         & & & & & &             2 2 2 2 2 2.+ .+ .+ .+ .+ .+ .+ .+b	 	 	 L L L L L L L L L Lr   